|

Platforms

A platform is any service that sits between agents, content owners, and end users: a content marketplace, an affiliate or ad network, an attribution vendor, an analytics tool, a monetisation platform. You can emit telemetry events on behalf of others, read telemetry that content owners delegate to you, or both. This page is the setup flow common to all of them; the deep dives are linked at the end.

Two things a platform can do. Pick one or both - they're the same org, one API key, different scopes.

  • Emit events (telemetry:write) - report content_retrieved when an agent fetches content through you, and content_engaged (plus checkout_completed from the ACP commerce extension) when a user clicks through from an AI response.
  • Read delegated telemetry (telemetry:read) - a content owner grants your org read access; you query their telemetry through the same API they use, with a delegated_from parameter.

Platform access is by approval - a human reviews each request, usually a working day or two. Content owners stay self-serve.


Setup, step by step

1

Request access

Go to /signup/platform and submit your platform name and an admin email. After you verify the email, we ask one question: what your platform does and who you work with. That creates a gated platform-access request - nothing is visible to other parties yet.

2

Wait for approval

The request lands with the OA director automatically. Review is manual - usually a working day or two. If you sign back in while it's in flight, you'll see your status at /onboarding/pending and a banner on every dashboard page.

3

Approval email

Once approved, we create your platform org and give your admin email the owner role. Sign in via magic link at /signin.

4

Find your organisation ID

Go to /partners. Your org ID is at the top with a copy button. A content owner pastes this into their dashboard to delegate telemetry:read on their domain to you. Only needed if you'll read delegated data - for "report my own emissions", no delegation is required.

5

Mint an API key

Go to /api-keys → Create key. Scope it to telemetry:write to report events, telemetry:read to query delegated telemetry, or both. The raw key (oat_pk_...) is shown once - put it on the X-API-Key header.

6

Send your first event (or first query)

Reporting a retrieval an agent made through you - no session needed, the marketplace doesn't see the agent's conversation:

POST /events
curl -X POST https://telemetry.openattribution.org/events \
  -H "X-API-Key: oat_pk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "events": [
      {
        "type": "content_retrieved",
        "timestamp": "2026-05-11T10:00:01Z",
        "source_role": "index",
        "content_url": "https://example.com/article/best-headphones",
        "content_id": "doi:10.1000/example.123",
        "content_telemetry_id": "550e8400-e29b-41d4-a716-446655440000",
        "data": { "media_type": "text" }
      }
    ]
  }'

Or, once a content owner has delegated read access, reading their telemetry:

GET /content-owners/summary
curl "https://api.openattribution.org/content-owners/summary?delegated_from=<owner-org-id>&since=2026-05-01" \
  -H "X-API-Key: oat_pk_..."
7

Watch it land

/dashboard shows "your platform this week" - event totals, top destination domains (which content owners' content you've served most), and a recent activity feed. Delegated telemetry shows up under /partners → View telemetry.


Next steps

Self-hosting
If a content owner runs its own telemetry endpoint instead of OpenAttribution's, send their events to the URL declared in their .well-known manifest. The protocol is open - OA isn't a required intermediary, and a competing operator can run the same API surface.