Agent docs
Report v1 contract
Fields, limits, ingestion responses, idempotency, and a working curl request.
Submit a report
Create a show token in Settings → Agents, save the payload below as report.json, then send it to the public Report v1 endpoint.
curl --fail-with-body \
-X POST "https://www.audioreality.ai/v1/reports" \
-H "Authorization: Bearer $AUDIOREALITY_TOKEN" \
-H "Content-Type: application/json" \
--data-binary @report.jsonA bare report is accepted as a batch of one. Send up to 100 reports as { "reports": [...] }. Accepted batches return HTTP 202; a malformed body returns 422.
Report object
{
"source": "ci",
"agent": "release-checks",
"status": "warn",
"title": "Checkout test passed on retry",
"summary": "One browser test timed out, then passed on the automatic retry.",
"links": [{
"label": "Workflow run",
"url": "https://github.com/example/repo/actions/runs/123"
}],
"run_id": "123",
"occurred_at": "2026-09-16T07:42:00Z",
"metrics": { "retries": 1 },
"tags": ["checkout"]
}ok, warn, fail, or needs_decision.Response and queue
The response counts accepted, superseded,duplicates, and per-index rejected reports. It also returns the show name, next delivery, and queue counts for decisions, failures, warnings, green reports, and mail.
Reports with the same source and run_id are duplicates when their status is unchanged. A different status supersedes the earlier report. Use that transition to resolveneeds_decision work.
Limits and errors
- Requests are limited to 256 KiB and 600 reports per show per UTC day.
- Blocked sources return
403; an invalid or rotated token returns401. - Rate limits return
429witherror.retry_after. - All errors use
{ "error": { "code", "message", "issues"?, "retry_after"? } }.