Skip to content
Hub documentation

Received reports

A receiver lets your organisation be the Content Telemetry endpoint that a site you publish declares. Agents that read the declaration report their use of the site’s content to the receiver’s URL, and Received reports, in the Network group, shows what arrived. Any member can read the page; an owner adds and revokes receivers.

Events here were reported by other parties’ agents. The hub does not verify them: anyone who has the URL can post to it, and the host, URL, agent id and times are as the sender stated them.

Owners enter a label, such as the sites it is for, and choose Add receiver. The receiver shows its URL, https://hub.commonmeasure.ai/api/v1/inbound/<token>/events, with the two declarations that name it:

  • for the site’s Content Telemetry manifest at https://<host>/.well-known/content-telemetry.json:

    {"telemetry": {"endpoint": "<url>"}}
  • for a reporting binding in the site’s RSL licence:

    <reporting type="telemetry" endpoint="<url>"/>

Publish either on each site that should report to this receiver. The URL needs no key: a sender reads it from your declaration and posts to it. The token in it only keeps the receiver unknown until you publish it. Owners add receivers in their own session; support acting as an owner cannot.

For the last 7, 30, 90 or 366 days of receipt:

  • retrieved and grounded events in total, and when the last delivery arrived;
  • by host: retrieved and grounded events for each host, with the first and last event time the senders stated;
  • by reporting agent: the same counts for each agent_id a sender gave.

Each list shows the 50 entries with most events and says when there are more. A host or agent id longer than 256 characters is shown, and counted, by its first 256. Conversation turn events and citations are stored and not counted; a citation keeps its output_id in the download. Download JSON downloads the events received in the window, most recent first, each as its sender stated it and marked "verified": false. One download carries up to 10,000 events or 16 MiB of their data, turns, agent ids, URLs and references as written in the file, whichever comes first; when it stops short, it says "truncated": true, and the events left out are the oldest in the window. An event larger than 16 MiB on its own is left out with every event older than it.

Received events are kept apart from your fleet evidence. They do not appear in Fleet evidence, in owner reports or unattributed content, and the hub never delivers them onward (see Content owners), so a site that declares this receiver cannot make the hub send an event back to it.

An owner, or support acting as one, chooses Revoke receiver and confirms. From then on the URL answers 404 and stores nothing, the same answer as a URL that never existed. What the receiver took in stays until your retention period removes it. Remove the URL from your declarations too, or senders keep trying.

A receiver accepts what the hub’s own ingest accepts: a Content Telemetry v1.0 event_batch of up to 500 events and 8 MiB, one wire session per batch, each event with an id, an agent_id of at most 256 characters, a content_url of at most 8,192, and times that fall in years 1 to 9999 in UTC. Only turn_started and turn_completed events carry a turn, and its only member is privacy_level, set to minimal. It answers 201 with {"status": "ok", "events_created": n}. A redelivered event creates nothing: the count covers only events new to your organisation. A malformed batch is refused whole with 400 and a detail. One receiver takes two deliveries at a time; a third at once answers 429 with Retry-After before its body is read. Session documents, standalone events and later 1.x versions are refused.

Received events follow your organisation’s retention period, measured from receipt, and are deleted without any summary being kept. Closing the account stops every receiver at once, and its received events are deleted with the rest of the organisation’s telemetry thirty days later.