Graniite Docs

Add content to the caller's knowledge base.

Ingest a URL or raw text snippet. Requires the 'write' capability on the bearer token. Per-token rate limit: 60/hr. Counts against monthly transcription quota for paid-transcription paths (audio URLs, YouTube videos, audio/video uploads).

POST
/ingest

Ingest a URL or raw text snippet. Requires the 'write' capability on the bearer token. Per-token rate limit: 60/hr. Counts against monthly transcription quota for paid-transcription paths (audio URLs, YouTube videos, audio/video uploads).

Authorization

bearerAuth
AuthorizationBearer <token>

Per-user bearer token minted at /settings/integrations. Format: 'lev_' followed by 32 base64url chars. Each token carries a capability set (read | write) and a folder scope (whole library or a list of specific folders). Per-endpoint requirements are noted on each operation.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/ingest" \  -H "Content-Type: application/json" \  -d '{    "kind": "url",    "url": "string"  }'
{
  "status": "ready",
  "content_id": "713e4c61-5a69-43fb-a600-2e2699462e14",
  "user_item_id": "bdbfc5c1-4635-4d6b-a226-2cb5d7e08712"
}
{
  "error": "string",
  "message": "string"
}
{
  "error": "string",
  "message": "string"
}
{
  "error": "quota_exceeded",
  "resource": "transcription_minutes",
  "tier": "free",
  "cap_per_month": 0,
  "message": "string"
}
{
  "error": "capability_denied",
  "required": "read",
  "have": [
    "string"
  ],
  "message": "string"
}
{
  "error": "rate_limited",
  "retry_after_sec": 0
}
{
  "error": "string",
  "message": "string"
}