API & MCP

Run audits via API or MCP

Self-serve access to the same engine behind the free audit: a REST API and a read-only MCP server. No sales call, no annual commitment. Build it into your stack, or resell audits to your clients.

Base URL

Every endpoint lives under one host. All requests and responses are JSON unless noted.

https://api.citepulse.ai

Authentication

Two access modes, depending on what you call.

Free audit engine (no key)

The audit endpoints need no API key. They do require a valid, deliverable email and acceptance of the Terms and Privacy Policy in the request body, and they draw from a shared daily pool. One free audit runs per email and domain; a repeat for the same site returns a paid upsell. This is the anti-abuse gate on a run that costs real money.

Agency API (Bearer key)

The /api/v1 endpoints authenticate with an agency API key issued from your agency dashboard, available on the Scale plan. Send it as a bearer token.

Authorization: Bearer <your-agency-api-key>

REST API

POST /api/audit

Start an AI-visibility audit for a domain. Returns 202 with an audit_id to poll, or 200 with the result inline when a fresh result is already cached (under 24 hours). The PDF report is also emailed to the address you pass.

curl -X POST https://api.citepulse.ai/api/audit \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "example.com",
    "email": "[email protected]",
    "accept_terms": true,
    "industry": "b2b saas"
  }'

# 202 Accepted (a fresh run, poll for the result)
{ "audit_id": "3f2c..." }

# 200 OK (cache hit under 24h)
{ "audit_id": "3f2c...", "result": { "score": 34, "layers": { ... }, "citations": [ ... ] } }

Error codes you should handle: 400 (missing domain or email, or terms not accepted), 409 audit_limit (a free audit already ran for this email and domain), 429 quota_exhausted (the daily free pool is spent, refreshes at midnight UTC).

GET /api/audit/:id

Poll a running audit.

curl https://api.citepulse.ai/api/audit/3f2c...

# while running
{ "status": "running", "progress": 45, "message": "Querying Perplexity..." }
# when finished
{ "status": "done", "result": { ... } }
GET /api/audit/:id/stream

The same progress as Server-Sent Events (SSE), if you prefer a stream to polling.

GET /api/audit/quota

How many free audits are left in today's shared pool.

{ "limit": 30, "used": 12, "left": 18, "resets_at": "..." }

Agency API (Bearer)

Read your monitored clients and their results. Requires an agency API key (Scale plan).

GET /api/v1/clients
GET /api/v1/clients/:domain/source-presence
GET /api/v1/clients/:domain/badge
curl https://api.citepulse.ai/api/v1/clients \
  -H "Authorization: Bearer <your-agency-api-key>"

# /source-presence
{ "score": 62, "present": ["g2.com", "reddit.com"], "missing": ["wikipedia.org"], "last_checked": "..." }

MCP servers

Two read-only Model Context Protocol servers let an AI agent (Claude, Cursor, and similar) pull CitePulse data directly as a tool. Both are authless and read-only. Discovery manifest:

GET /.well-known/mcp.json

Directory server: /mcp

JSON-RPC 2.0 over Streamable HTTP (protocol 2025-06-18). Read-only tools over verified brand records and AI Trust Scores.

ToolArgumentsReturns
get_brand_recorddomainCanonical record: name, description, services, profiles, AI Trust Score, verification status
search_brandsquery, min_trust_score?Matching verified brands with domain, name, Trust Score, description
curl -X POST https://api.citepulse.ai/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"get_brand_record","arguments":{"domain":"example.com"}}}'

To wire it into an MCP client, point it at the URL:

{
  "mcpServers": {
    "citepulse": { "url": "https://api.citepulse.ai/mcp" }
  }
}

Per-brand server: /mcp/:domain

A per-brand endpoint that serves that brand's approved facts, with Ed25519-signed responses.

GET /mcp/example.com
ToolReturns
get_factsApproved brand facts (signed)
get_pricingMachine-readable pricing
get_policiesPolicies (refund, shipping where relevant)
get_productsProduct records

Limits & pricing

Free audits draw from a shared daily pool and are limited to one per email and domain. There is no per-call charge and, today, no usage-based API billing. For instant or deeper results, and for programmatic use at volume, the paid paths are:

  • Full Audit, a one-time $39 deep audit (adds Claude, per-area competitor breakdown, no pool cap).
  • Monitoring plans, from $89/mo, for ongoing checks.
  • Scale, $349/mo, which bundles the agency API key, white-label and up to 10 client domains.

Honest scope. MCP is a forward-looking bet, not a proven citation channel: there is no evidence today that AI assistants auto-discover and ingest a third-party brand's MCP server. A signed fact attests that the brand approved a value as of a version, not that it is objectively true. We sell measurement and fixes, not guaranteed AI citations.

Start with a free audit

Run one from the browser, or call POST /api/audit and build it into your stack.

Run a free audit See plans