Publisher Integration Guide

ARCP lets you make your content available to AI applications while maintaining full control over your content, ads, and monetization. You receive signed usage receipts for every AI-rendered view.

What you need to implement

As an ARCP publisher, you host three endpoints:

Discovery endpoint

The discovery endpoint tells the ARCP router about your publisher:

// GET /.well-known/arcp
{
  "publisher_id": "your-publisher-id",
  "display_name": "Your Publication",
  "query_url": "https://your-site.com/v1/query",
  "render_base_url": "https://your-site.com/v1/render",
  "jwks_url": "https://your-site.com/v1/jwks",
  "auth_mode": "ARCP_MANAGED"
}

Query endpoint

Receive search queries and return relevant content:

// POST /v1/query
// Request:
{
  "query": "best smartphones 2026",
  "profile": "MVP",
  "user_id": "user-123"
}

// Response:
{
  "publisher_id": "your-publisher-id",
  "items": [
    {
      "content_id": "article-slug-here",
      "title": "Article Title",
      "summary": "Brief summary...",
      "source_url": "https://your-site.com/article",
      "published_at": "2026-02-22T10:00:00Z",
      "claims": [
        {
          "claim_id": "claim-1",
          "text": "Specific factual claim",
          "confidence": 0.92,
          "source_url": "https://your-site.com/article"
        }
      ]
    }
  ]
}

Render endpoint

The render endpoint serves your content to users who click through from an AI response. Verify the ARCP render token before serving content:

// GET /v1/render?token=<signed-jwt>&content_id=<id>
// 1. Verify the JWT token using the router's JWKS
// 2. Check the content_id claim matches
// 3. Serve your content (with ads, paywall, etc.)
// 4. The token contains: aud (your publisher_id), sub (user_id), rights

Add a /connect page

The easiest way to let users link your publication to Clevername and other AI tools is to drop the official @arcp-protocol/connect React component onto your site.

npm install @arcp-protocol/connect
// app/connect/page.tsx (Next.js App Router)
import { ArcpConnectPage } from '@arcp-protocol/connect';

export default function ConnectPage() {
  return (
    <ArcpConnectPage
      publisherId="your-publisher-id"
      publisherName="Your Publication"
      publisherDomain="your-site.com"
      publisherDescription="Short description of your content"
      contentDescription="news articles"
      exampleQueries={[
        'What are the top stories today?',
        'Summarize the latest tech news',
      ]}
    />
  );
}

The component handles everything: Clevername one-click connect, manual MCP config, self-serve API key generation, and protocol docs links.

Register your publisher

To register as an ARCP publisher, contact publishers@arcp-protocol.com or submit via the registry API once self-registration is available.