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).
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 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"
}Remove an item from a folder. DELETE
Removing the item's only folder is allowed — the item becomes unfiled but stays in the library. Returns 404 if the membership didn't exist (idempotent). Per-token rate limit: 60/hr.
Step 1: get a signed Storage URL for a binary upload. POST
Three-step binary upload, step 1 of 3. The server validates the declared MIME + size against the appropriate bucket's allowlist (media-uploads for audio/video, document-uploads for PDF/image), generates a single-use signed URL the client PUTs bytes to directly, and returns the path + which finalize endpoint to call next. Vercel caps request bodies at 4.5 MB; this flow exists because direct-to-Storage upload bypasses that limit. Rate limit: 30/hr per token.