API Reference

ARCP exposes three groups of endpoints: Registry (discovery + publisher metadata), Router (query routing + receipts), and Publisher (content delivery).

Authentication

Authenticated endpoints require a Bearer API key:

Authorization: Bearer arcp_your_key_here
Content-Type: application/json
User-Agent: your-app/1.0

Registry Endpoints

Base URL: https://registry.arcp-protocol.com

GET/.well-known/arcp-rootNo auth

Root discovery metadata for the ARCP protocol.

GET/v1/publishersNo auth

List all active publishers. Returns publisher ID, display name, query URL, and verification status.

GET/v1/publishers/:publisherIdNo auth

Get metadata for a single publisher.

GET/v1/revocationsNo auth

List revoked publisher keys and suspended publishers.

GET/v1/jwksNo auth

Registry public keys in JWKS format.

Router Endpoints

Base URL: https://router.arcp-protocol.com

POST/v1/router/queryBearer API key

Query across selected publishers in parallel. Returns structured content envelopes, claims, render tokens, and receipts.

FieldTypeRequiredDescription
querystringYesThe search query (max 1000 chars)
publishersstring[]YesPublisher IDs to query (max 10)
client_idstringYesYour client ID
user_idstringNoEnd-user identifier for receipts
profilestringNoContent profile (default: "MVP")
POST/v1/router/render/openedBearer API key

Track a render link open. Issues a signed render-open receipt for the publisher.

FieldTypeRequiredDescription
publisher_idstringYesPublisher whose content was opened
content_idstringYesThe content item that was viewed
render_urlstringNoThe render URL that was clicked
user_idstringNoEnd-user identifier
GET/v1/router/receipts/exportBearer API key

Export receipts for a publisher and day.

Query params: publisher_id (required), date (YYYY-MM-DD, optional — defaults to today)

GET/v1/router/metricsAdmin key

Usage metrics for the router (events, receipts, active clients). Query param: days (default: 7).

GET/.well-known/arcp-routerNo auth

Router discovery metadata including supported protocol versions and endpoint URLs.

GET/v1/jwksNo auth

Router public keys for receipt and render token verification.

MCP Endpoint

GET/mcpNo auth

MCP server metadata and available tools list.

POST/mcpBearer API key

JSON-RPC 2.0 endpoint for MCP clients. Supports: initialize, tools/list, tools/call.

Available MCP tools: arcp_discover, arcp_query, arcp_render_opened, arcp_receipts_export

Managed Auth Endpoints

These endpoints require an admin API key (scoped to managed:read or managed:write).

POST/v1/router/managed/users/linkmanaged:write

Link a user identity for managed subscription tracking.

POST/v1/router/managed/subscriptions/upsertmanaged:write

Create or update a managed subscription.

POST/v1/router/managed/subscriptions/cancelmanaged:write

Cancel a managed subscription.

GET/v1/router/managed/entitlementsmanaged:read

Query entitlements for a user and publisher.

Rate Limits

EndpointDefault limit
/v1/router/query60 req/min, 5000 req/day
/v1/router/render/opened120 req/min
/v1/router/receipts/export30 req/min

Rate limit headers: X-RateLimit-Limit-Minute, X-RateLimit-Usage-Minute, X-RateLimit-Limit-Daily, X-RateLimit-Usage-Daily

Error Responses

StatusError codeDescription
400INVALID_INPUTMissing or invalid request field
401UNAUTHORIZED_CLIENTMissing or invalid API key
401INVALID_API_KEYAPI key not found
401API_KEY_REVOKEDAPI key has been revoked
401API_KEY_EXPIREDAPI key has expired
403CLIENT_SUSPENDEDClient account suspended
413PAYLOAD_TOO_LARGERequest body exceeds 32KB
429RATE_LIMIT_EXCEEDEDMinute rate limit hit
429DAILY_QUOTA_EXCEEDEDDaily quota exhausted
503CLIENT_AUTH_SCHEMA_NOT_READYMigration not applied