Skip to content

Your research,
with the Citation API.

Find documents, revise drafts and format references through your own tools. Connect your workflows with structured JSON results and scoped workspace access.

Find

A request away

Search your workspace and read a saved draft with its sources through a simple HTTP request.

Build

Built for your workflow

Use structured results in your own tools, with scoped permissions and clear errors.

Export

Take your work further

Export DOCX, PDF, TXT or a bibliography for the next step in your research.

OpenAPIAPI docs
export CITATION_API_BASE=https://citation.co/api/v1

curl "$CITATION_API_BASE/me" \
  -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.

From your workflow
to your workspace.

  1. Choose your workspace

    Create a key for the workspace and permissions your application needs.

  2. Keep your token private

    Send your bearer token from a server or a private workflow secret store.

  3. Make each change explicit

    Read the current version before editing and keep the same idempotency key when retrying a save.

Requests for
your saved work.

Find your work

Search documents and read saved drafts with their sources.

GET /documentsGET /documents/{id}/sources

Write and revise

Create drafts and save changes to documents or sources with explicit permissions.

POST /documentsPATCH /documents/{id}POST /write

Format and check

Format saved references, inspect citation links and review a draft with Check.

GET /documents/{id}/bibliographyPOST /checks

Take the result with you

Import 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"

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.

Good questions.
Straight answers.

How do I connect to the API?

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.

What can I build?

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.

How do API credits work?

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.

Do credits affect my Free or Pro plan?

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.

Will AI change my document automatically?

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.

What happens if a request is interrupted?

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.

Which files are supported?

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.

Can I receive change notifications?

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.

How do I remove access?

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.