OpenAPI reference · Knowledge
Get one knowledge document
/knowledge/{documentId}Metadata, processing status, tags, the chunk count, and a text
preview capped at 2,000 characters — the full body is never
returned over the API. Workspace-scoped documents honour the
assignment visibility rules; ephemeral chat uploads read as
not-found. Requires the knowledge:read scope.
Authorization
AuthorizationstringrequiredBearer token in the Authorization header.
Pass
Authorization: Bearer scripe_sk_live_<...>(orscripe_sk_test_<...>for test keys) on every request. Keys are scoped to a single workspace and can be revoked from the Scripe dashboard.The same header also accepts an OAuth 2.1 access token (
scripe_oat_*); both credentials share one scope vocabulary and every operation below documents the scope it requires. An API key can hold every scope named on this surface exceptwebhooks:manage, which is grantable to OAuth tokens only today — the webhook-endpoint operations answer403 scope_missingto every API key. Operations that name no scope accept any valid token of the workspace.
Path parameters
documentIdstringrequired
Query parameters
projectIdstringrequired
Header parameters
Scripe-Api-VersionstringPin the API version. Format
YYYY-MM-DD. Omit to receive the currently rolling default. Unknown versions return400 version_unsupported.
Responses
- 200
The document.
- 400
Malformed request (bad cursor, bad limit, etc.).
- 401
Missing, malformed, expired, or revoked API key.
- 403
Plan not eligible, scope missing, or workspace mismatch.
- 404
Resource not found in this workspace.
- 429
Sliding-window rate limit exceeded.
Example request
curl --request GET \
--url 'https://api.scripe.io/v1/knowledge/{documentId}?projectId=<projectId>' \
--header 'Authorization: Bearer <token>'Example response (200)
{
"data": {
"id": "kb_a1b2c3d4e5f6g7h8",
"projectId": "string",
"scope": "PROJECT",
"type": "string",
"name": "string",
"sourceName": "string",
"sourceUrl": "string",
"language": "string",
"folderId": "string",
"status": "string",
"tags": [
"string"
],
"createdAt": "string",
"lastSyncedAt": "string",
"chunkCount": 0,
"textPreview": "string",
"textPreviewTruncated": true,
"hasFullText": true
}
}