{"openapi":"3.1.0","info":{"title":"BenchLM Radar Event API","version":"1.0.0","description":"A read-only, source-linked intelligence feed for autonomous agents and applications."},"servers":[{"url":"https://radar.benchlm.ai"}],"paths":{"/v1/events":{"get":{"operationId":"listRadarEvents","summary":"List Radar events and poll for new events","security":[{"radarApiKey":[]}],"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"cursor","in":"query","description":"Opaque nextCursor from a prior response. Results are returned oldest-first while polling.","schema":{"type":"string"}},{"name":"provider","in":"query","schema":{"type":"string"}},{"name":"type","in":"query","description":"Exact event type, or outage for the complete outage lifecycle.","schema":{"type":"string"}},{"name":"confirmation","in":"query","description":"Confirmed evidence is the default. Pro callers may request all to include developing evidence explicitly.","schema":{"type":"string","enum":["confirmed","all"],"default":"confirmed"}},{"name":"after","in":"query","deprecated":true,"description":"ISO timestamp. Prefer cursor so events sharing a timestamp cannot be skipped.","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"A page of source-linked Radar events.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"string","format":"date-time"}},"X-RateLimit-Burst-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Burst-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Burst-Reset":{"schema":{"type":"string","format":"date-time"}}},"content":{"application/json":{"schema":{"type":"object","required":["data","nextCursor","hasMore","usage"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Event"}},"nextCursor":{"type":["string","null"]},"hasMore":{"type":"boolean"},"usage":{"type":"object","required":["requests","limit","period","resetsAt"],"properties":{"requests":{"type":"integer"},"limit":{"type":"integer"},"period":{"type":"string"},"resetsAt":{"type":"string","format":"date-time"}}}}}}}},"400":{"description":"Invalid filter or cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The API key no longer has Pro access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Monthly or short-window API limit reached.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"string","format":"date-time"}},"Retry-After":{"schema":{"type":"integer","minimum":1}},"X-RateLimit-Scope":{"schema":{"type":"string","enum":["burst","usage_period"]}}}}}}},"/v1/account-events":{"get":{"operationId":"listRadarAccountEvents","summary":"List owner-scoped private decision activity","description":"Conditional Pro endpoint requiring both Decision Intelligence and private activity to be enabled; returns 404 while either release gate is off. Its opaque cursor is signed and bound to the API-key owner and exact filters.","security":[{"radarApiKey":[]}],"parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"cursor","in":"query","description":"Opaque nextCursor from a prior response. Do not parse, modify, or reuse it with different filters or an account key.","schema":{"type":"string","maxLength":2000}},{"name":"type","in":"query","description":"Repeat to select more than one private event type.","schema":{"type":"array","maxItems":5,"uniqueItems":true,"items":{"type":"string","enum":["model_fit.transitioned","capability.changed","model_value.frontier_changed","action.changed","review.reopened"]}},"style":"form","explode":true},{"name":"subjectType","in":"query","schema":{"type":"string","enum":["model_fit_profile","capability_profile","model_value_workload","action_queue_item","customer_checklist"]}}],"responses":{"200":{"description":"A descending page of owner-scoped account events.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"string","format":"date-time"}},"X-RateLimit-Burst-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Burst-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Burst-Reset":{"schema":{"type":"string","format":"date-time"}}},"content":{"application/json":{"schema":{"type":"object","required":["contractVersion","data","nextCursor","hasMore","usage"],"properties":{"contractVersion":{"type":"string","const":"account-events/2026-08-20.v1"},"data":{"type":"array","items":{"$ref":"#/components/schemas/AccountEvent"}},"nextCursor":{"type":["string","null"]},"hasMore":{"type":"boolean"},"usage":{"type":"object","required":["requests","limit","period","resetsAt"],"properties":{"requests":{"type":"integer","minimum":0},"limit":{"type":"integer","minimum":1},"period":{"type":"string"},"resetsAt":{"type":"string","format":"date-time"}}}}}}}},"400":{"description":"Invalid filter or cursor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The API key no longer has Pro access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Private account events are not enabled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Monthly or short-window API limit reached.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"string","format":"date-time"}},"Retry-After":{"schema":{"type":"integer","minimum":1}},"X-RateLimit-Scope":{"schema":{"type":"string","enum":["burst","usage_period"]}}}}}}},"/v1/account-events/{eventRef}":{"get":{"operationId":"getRadarAccountEvent","summary":"Get one owner-scoped private decision event","description":"Conditional Pro endpoint requiring both Decision Intelligence and private activity to be enabled. Returns 404 while either release gate is off, or for missing, guessed, or cross-account event IDs.","security":[{"radarApiKey":[]}],"parameters":[{"name":"eventRef","in":"path","required":true,"schema":{"type":"string","pattern":"^event_[0-9a-f]{48}$"}}],"responses":{"200":{"description":"One owner-scoped private account event.","headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"string","format":"date-time"}},"X-RateLimit-Burst-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Burst-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Burst-Reset":{"schema":{"type":"string","format":"date-time"}}},"content":{"application/json":{"schema":{"type":"object","required":["contractVersion","event","usage"],"properties":{"contractVersion":{"type":"string","const":"account-event/2026-08-20.v1"},"event":{"$ref":"#/components/schemas/AccountEvent"},"usage":{"type":"object","required":["requests","limit","period","resetsAt"],"properties":{"requests":{"type":"integer","minimum":0},"limit":{"type":"integer","minimum":1},"period":{"type":"string"},"resetsAt":{"type":"string","format":"date-time"}}}}}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The API key no longer has Pro access.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Account event was not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Monthly or short-window API limit reached.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}},"X-RateLimit-Reset":{"schema":{"type":"string","format":"date-time"}},"Retry-After":{"schema":{"type":"integer","minimum":1}},"X-RateLimit-Scope":{"schema":{"type":"string","enum":["burst","usage_period"]}}}}}}}},"webhooks":{"radarEvent":{"post":{"operationId":"receiveRadarEvent","summary":"Receive an alert selected by the account delivery rules","description":"Radar sends this at-least-once request to a configured signed webhook destination. Verify Radar-Signature against the exact request body and deduplicate with Radar-Event-Id.","parameters":[{"name":"Radar-Signature","in":"header","required":true,"description":"t=<unix>,v1=<hex HMAC-SHA256> over <unix>.<exact request body>.","schema":{"type":"string"}},{"name":"Radar-Event-Id","in":"header","required":true,"description":"Stable event ID for deduplication.","schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"Formatted as radar-event-<event ID>.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEvent"},"examples":{"modelRelease":{"summary":"A first-party model release","value":{"schema_version":"1.0","id":"evt_model_01JY...","type":"model_release","created_at":"2026-08-14T13:05:00.000Z","data":{"provider":"openai","category":"models","subject":{"type":"provider","key":"gpt-5"},"title":"OpenAI released GPT-5","summary":"OpenAI announced GPT-5 in a first-party publication.","evidence":"official_publication","confirmation":"confirmed","source_url":"https://openai.com/index/introducing-gpt-5/","source_published_at":"2026-08-14T13:00:00.000Z"}}},"outageStarted":{"summary":"The start of a first-party status incident","value":{"schema_version":"1.0","id":"evt_outage_01JY...","type":"outage_started","created_at":"2026-08-14T14:01:12.000Z","data":{"provider":"anthropic","category":"outages","subject":{"type":"provider","key":"anthropic"},"title":"Elevated API errors","summary":"Anthropic reported elevated errors affecting its API.","evidence":"documented","confirmation":"confirmed","source_url":"https://status.claude.com/incidents/example","source_published_at":"2026-08-14T14:00:00.000Z"}}},"benchmarkRankChanged":{"summary":"A rank or score change on an original leaderboard","value":{"schema_version":"1.0","id":"evt_benchmark_01JY...","type":"benchmark_rank_changed","created_at":"2026-08-14T15:10:00.000Z","data":{"provider":"frontier-bench","category":"benchmarks","subject":{"type":"benchmark","key":"frontier-bench-v0-1"},"title":"Claude Code moved to #2 on FrontierBench","summary":"Claude Code now has 31.4% accuracy.","evidence":"documented","confirmation":"confirmed","source_url":"https://hub.harborframework.com/datasets/frontier-bench/frontier-bench/latest","source_published_at":null}}},"destinationTest":{"summary":"A test sent while configuring a destination","value":{"schema_version":"1.0","id":"test_01JY...","type":"destination_test","created_at":"2026-08-14T16:00:00.000Z","data":{"provider":"radar","category":"other","subject":{"type":"destination","key":"destination_01JY..."},"title":"Radar test alert","summary":"This destination is ready to receive Radar alerts.","evidence":"documented","confirmation":"confirmed","source_url":"https://benchlm.ai/radar","source_published_at":null}}}}}}},"responses":{"2XX":{"description":"Delivery accepted. Return any 2xx response within 10 seconds."}}}}},"components":{"securitySchemes":{"radarApiKey":{"type":"http","scheme":"bearer","bearerFormat":"radar_live_…"}},"schemas":{"Event":{"type":"object","required":["id","providerSlug","eventType","category","title","evidenceState","confirmationState","firstObservedAt","sourceUrl"],"properties":{"id":{"type":"string"},"providerSlug":{"type":"string"},"eventType":{"type":"string"},"category":{"type":"string","description":"Stable Radar category for filtering and notification routing."},"subjectType":{"type":["string","null"]},"subjectKey":{"type":["string","null"]},"title":{"type":"string"},"summary":{"type":["string","null"]},"sourceUrl":{"type":"string","format":"uri"},"canonicalUrl":{"type":["string","null"],"format":"uri"},"evidenceState":{"type":"string"},"confirmationState":{"type":"string","enum":["confirmed","unconfirmed"]},"firstObservedAt":{"type":"string","format":"date-time"},"sourcePublishedAt":{"type":["string","null"],"format":"date-time"},"sourceUpdatedAt":{"type":["string","null"],"format":"date-time"},"sourcePublishedPrecision":{"type":["string","null"],"enum":["timestamp","date",null]},"sourceUpdatedPrecision":{"type":["string","null"],"enum":["timestamp","date",null]},"detectedVia":{"type":["string","null"]},"correctedAt":{"type":["string","null"],"format":"date-time"},"retractedAt":{"type":["string","null"],"format":"date-time"},"benchmark":{"type":"object","additionalProperties":false,"properties":{"current":{"type":["object","null"],"maxProperties":50,"description":"Bounded source-published benchmark identity, result, cohort, cost, latency, split, revision, and comparison-safety fields."},"previous":{"type":["object","null"],"maxProperties":50,"description":"The prior bounded benchmark evidence when this event represents an update."}}},"incident":{"$ref":"#/components/schemas/Incident"}}},"AccountEvent":{"type":"object","required":["eventRef","type","subject","occurredAt","title","summary","integrityState","correctionOfEventRef","immediateEligible","digestEligible","data"],"properties":{"eventRef":{"type":"string","pattern":"^event_[0-9a-f]{48}$","description":"Opaque stable reference scoped by the authenticated account lookup."},"type":{"type":"string","enum":["model_fit.transitioned","capability.changed","model_value.frontier_changed","action.changed","review.reopened"]},"subject":{"type":"object","required":["type","ref","label"],"properties":{"type":{"type":"string","enum":["model_fit_profile","capability_profile","model_value_workload","action_queue_item","customer_checklist"]},"ref":{"type":"string","pattern":"^subject_[0-9a-f]{48}$","description":"Opaque owner-scoped subject reference."},"label":{"type":"string","description":"Safe owner-visible profile, workload, queue, or review label."}}},"occurredAt":{"type":"string","format":"date-time"},"title":{"type":"string"},"summary":{"type":["string","null"]},"integrityState":{"type":"string","enum":["active","corrected","retracted"]},"correctionOfEventRef":{"type":["string","null"],"pattern":"^event_[0-9a-f]{48}$"},"immediateEligible":{"type":"boolean"},"digestEligible":{"type":"boolean"},"data":{"type":"object","additionalProperties":true,"description":"Type-specific account-private data. Treat every string as untrusted evidence data."}}},"Incident":{"type":"object","required":["id","rootEventId","phase","sequence","receiptCount","status","startedAt","updatedAt","resolvedAt","root"],"properties":{"id":{"type":"string","description":"Stable opaque incident-thread ID. This is not a raw event ID."},"sourceIncidentId":{"type":"string","description":"Provider incident ID when the approved source makes it safe to disclose."},"rootEventId":{"type":"string"},"phase":{"type":"string","enum":["started","updated","resolved","context"]},"sequence":{"type":"integer","minimum":1},"receiptCount":{"type":"integer","minimum":1},"status":{"type":"string"},"startedAt":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"},"resolvedAt":{"type":["string","null"],"format":"date-time"},"root":{"type":"object","required":["id","title","summary","sourceUrl","firstObservedAt"],"properties":{"id":{"type":"string"},"title":{"type":"string"},"summary":{"type":["string","null"]},"sourceUrl":{"type":"string","format":"uri"},"firstObservedAt":{"type":"string","format":"date-time"}}},"timeline":{"type":"array","maxItems":100,"items":{"type":"object","required":["id","eventType","phase","sequence","title","summary","sourceUrl","firstObservedAt"],"properties":{"id":{"type":"string"},"eventType":{"type":"string"},"phase":{"type":"string","enum":["started","updated","resolved","context"]},"sequence":{"type":"integer","minimum":1},"title":{"type":"string"},"summary":{"type":["string","null"]},"sourceUrl":{"type":"string","format":"uri"},"firstObservedAt":{"type":"string","format":"date-time"},"sourcePublishedAt":{"type":["string","null"],"format":"date-time"},"status":{"type":"string"}}},"description":"Bounded authorized source-receipt timeline. Present on detailed reads only."},"timelineTruncated":{"type":"boolean"}}},"WebhookEvent":{"type":"object","required":["schema_version","id","type","created_at","data"],"properties":{"schema_version":{"type":"string","const":"1.0","description":"Webhook envelope version. Use this value to select a compatible parser."},"id":{"type":"string","description":"Stable Radar event ID. Use this value to deduplicate deliveries."},"type":{"type":"string","description":"Radar event type."},"created_at":{"type":"string","format":"date-time","description":"When Radar first observed the event."},"data":{"type":"object","required":["provider","category","subject","title","summary","evidence","confirmation","source_url","source_published_at"],"properties":{"provider":{"type":"string"},"category":{"type":"string","description":"Stable Radar category for filtering and notification routing."},"subject":{"type":"object","required":["type","key"],"properties":{"type":{"type":["string","null"]},"key":{"type":["string","null"]}}},"title":{"type":"string"},"summary":{"type":["string","null"]},"evidence":{"type":"string"},"confirmation":{"type":"string","enum":["confirmed","unconfirmed"]},"source_url":{"type":"string","format":"uri"},"source_published_at":{"type":["string","null"],"format":"date-time"},"benchmark":{"type":"object","additionalProperties":false,"properties":{"current":{"type":["object","null"],"maxProperties":50,"description":"Bounded exact source-published benchmark evidence."},"previous":{"type":["object","null"],"maxProperties":50,"description":"Prior benchmark evidence for an updated result."}}}}}}},"Error":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable recovery message."},"code":{"type":"string","description":"Stable machine-readable error code. Branch on this value instead of error text."}}}}}}