Skip to content

Captures

POST /api/v1/captures
Content-Type: application/json
{
"title": "Article title",
"url": "https://example.com/article",
"content_type": "article",
"why": "Relevant to current project",
"selected_text": "Key passage from the page",
"raw_content": "<html>...</html>",
"source": "cli"
}
FieldTypeRequiredDescription
titlestringYesCapture title
urlstringNoSource URL
content_typestringYestweet, video, repo, article, pdf, audio, note, image
whystringNoReason for capturing
selected_textstringNoHighlighted text from the page
raw_contentstringNoRaw HTML content
sourcestringYesbrowser-extension, cli, api, or mcp

Returns 201 with capture ID and status: "pending". The capture is queued for processing.


POST /api/v1/captures/upload
Content-Type: multipart/form-data
FieldTypeRequiredDescription
filebinaryYesThe file to upload
titlestringNoOverride title
whystringNoReason for capturing

Supported types: PDF, PNG, JPEG, GIF, WebP, Word (.doc/.docx), plain text, markdown

Max size: 25 MB

File type is verified using magic bytes, not just the extension.

Returns 201 with capture ID.


GET /api/v1/captures/check?url=https://example.com

Check if a URL has already been captured. Returns 200 if found, 404 if not.


GET /api/v1/captures
ParameterTypeDefaultDescription
pagenumber1Page number
per_pagenumber20Results per page (max 100)
statusstringFilter by status

GET /api/v1/captures/:id

Returns capture details including metadata and processing status.


GET /api/v1/captures/:id/content
ParameterTypeDefaultDescription
formatstringmarkdown for processed content, omit for raw

Returns the capture content with appropriate Content-Type header.


POST /api/v1/captures/:id/retry

Re-queue a failed capture for processing. Returns 409 if already processing.

POST /api/v1/captures/:id/reingest

Full reprocessing through the entire pipeline.

POST /api/v1/captures/:id/archive
POST /api/v1/captures/:id/unarchive
POST /api/v1/captures/:id/dismiss
DELETE /api/v1/captures/:id

GET /api/v1/captures/:id/activity

Returns the timeline of events for a capture (created, retried, archived, etc.).


GET /api/v1/captures/:id/provenance

Returns the full processing chain with timestamps, AI model used, and outputs at each stage.