A request away
Search your workspace and read a saved draft with its sources through a simple HTTP request.
Find documents, revise drafts and format references through your own tools. Connect your workflows with structured JSON results and scoped workspace access.
Search your workspace and read a saved draft with its sources through a simple HTTP request.
Use structured results in your own tools, with scoped permissions and clear errors.
Export DOCX, PDF, TXT or a bibliography for the next step in your research.
export CITATION_API_BASE=https://citation.co/api/v1
curl "$CITATION_API_BASE/me" \
-H "Authorization: Bearer $CITATION_API_KEY"curl "$CITATION_API_BASE/documents?query=urban%20gardens&limit=10" \
-H "Authorization: Bearer $CITATION_API_KEY"curl "$CITATION_API_BASE/events?limit=20" \
-H "Authorization: Bearer $CITATION_API_KEY"Create an API key in settings and select its workspace and permissions. Store the token privately as CITATION_API_KEY, then use Verify to check access.
Use the API from your server or an automation platform that supports HTTP requests. Keep the token out of browser code.
Create a key for the workspace and permissions your application needs.
Send your bearer token from a server or a private workflow secret store.
Read the current version before editing and keep the same idempotency key when retrying a save.
Search documents and read saved drafts with their sources.
GET /documentsGET /documents/{id}/sourcesCreate drafts and save changes to documents or sources with explicit permissions.
POST /documentsPATCH /documents/{id}POST /writeFormat saved references, inspect citation links and review a draft with Check.
GET /documents/{id}/bibliographyPOST /checksImport drafts, export documents and bibliographies, and manage sharing from your tools.
POST /importsPOST /exportsGET /jobs/{id}curl "$CITATION_API_BASE/documents/DOCUMENT_ID" \
-H "Authorization: Bearer $CITATION_API_KEY"curl "$CITATION_API_BASE/documents" \
-H "Authorization: Bearer $CITATION_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $REQUEST_ID" \
-d '{
"title": "Reading notes",
"text": "A draft to review."
}'curl "$CITATION_API_BASE/documents/DOCUMENT_ID/bibliography?style=apa" \
-H "Authorization: Bearer $CITATION_API_KEY"curl "$CITATION_API_BASE/exports" \
-H "Authorization: Bearer $CITATION_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $REQUEST_ID" \
-d '{
"document_id": "DOCUMENT_ID",
"version": 1,
"format": "docx",
"max_credits": 1
}'Replace DOCUMENT_ID with a saved document ID and REQUEST_UUID with a new UUID for each intended change. Reuse that UUID and the same input when retrying an uncertain save.
Open API in settings, choose a workspace and create a key with the permissions you need. Save its secret when it appears. Send it as a bearer token from your server.
Read and edit documents, resolve sources, insert citations, use Write and Check, import or export files, and manage document sharing and comments. TypeScript and Python clients use the same API.
Credit purchases are currently unavailable. The package price is 100 credits for $10. Operations that use credits require an existing balance. AI writing, source resolution, import and export each cost 1 credit. Check costs 5 credits for up to 5000 words. Basic reads, document edits, source records and citation formatting do not cost credits.
API credits have a separate account balance shared by your API keys. They never expire. Product allowances remain separate. Rate, file size and storage limits still apply.
Write and Check return proposals by default. Set apply to true and provide the document version to apply supported edits. If the document changes, the API preserves the proposal and returns a conflict without overwriting it.
Retry with the same Idempotency-Key and identical input. Paid operations return a durable job ID. Poll the job after reconnecting. A duplicate request does not create another document or charge.
Import DOCX and TXT drafts or read PDF source metadata. Export DOCX, PDF, TXT, BibTeX and RIS. Files stay in private storage and downloads check current access.
Poll the events endpoint or register an HTTPS webhook. Deliveries include an event ID, timestamp and signature. Failed deliveries are retried and their status is visible through the API.
Revoke a key in API settings. You can also rotate its secret without losing request history. Access always depends on your current workspace membership and document role.