For developers and agencies

CitationOne API

Run audits programmatically and pull the result as JSON. The same engine that powers reports in the app - wired into your workflow, your CMS or your client dashboard.

REST · JSON · api/v1
# 1. Start an audit
curl -X POST https://app.citationone.com/api/v1/audits \
  -H "Authorization: Bearer co_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://example.com/article", "keyword": "your keyword" }'

# 202 { "id": "job_V1StGXR8", "status": "queued" }

# 2. Collect the result
curl https://app.citationone.com/api/v1/audits/job_V1StGXR8 \
  -H "Authorization: Bearer co_live_..."

# Or skip step 2: pass "webhookUrl" when submitting and we
# POST the result to you, signed with HMAC-SHA256.

API key instead of a session

An Authorization: Bearer header. You create and revoke keys in the app; a key is shown once and only its hash is stored.

Asynchronous by design

POST returns 202 with a job id and never holds the connection open. The audit runs in the background, you collect it with GET.

Webhooks instead of polling

Pass webhookUrl and the result is POSTed to you when it is ready - signed with HMAC-SHA256. Failures are delivered too, and a batch sends one event per audit.

Audit content before it is published

Send content instead of url (50-200,000 characters) to audit a draft, a rewrite or copy for a site that does not exist yet. Same dimensions, same 1 credit.

Full result as JSON

CQS, AI Citability, 10 dimensions with problems, E-E-A-T, Before/After recommendations, SERP benchmark and Fan-Out coverage.

Bulk requests

Up to 50 URLs in a single request. Server-side queue, one batched keyword-data lookup, plus status and cancellation for the batch.

Public report links

Optionally an audit gets a read-only URL you can send to a client without creating an account for them. With or without an expiry date.

Billed in credits

One API audit costs 1 credit - exactly the same as an audit ordered in the app. No separate API subscription; balance and history come from GET /credits/usage.

Documentation your AI agent can read

The same documentation is served as plain Markdown at /api-docs.md. Point your assistant (Claude, ChatGPT, Cursor) at that URL and it gets the API contract without stripping layout out of an HTML page - tables and code blocks intact. Both versions are generated from one source, so they cannot drift apart.

https://app.citationone.com/api-docs.md

You create API keys in the app, in the developers section. The first 3 audits are free - through the API too.

Create an API key