Brand score history
Score-over-time trend points for the brand (per-prompt mean across all eligible prompts, same methodology as the brand detail's `averageScore`), plus a windowed hero delta over the same range.
/api/brands/{brand_id}/score-history/Personal Access Token (create one from Settings -> API Keys in the dashboard). Send as Authorization: Bearer gr_live_.... An X-API-Key: gr_live_... header (see the apiKeyAuth scheme) is accepted as an equivalent alternative — send ONE of the two, not both.
In: header
Path Parameters
Query Parameters
Max chart points to return. Default 30; hard cap 1000. Ignored when since=all (that always returns the full bounded history).
ISO date/datetime cutoff for the display window, or all for the full history. Omit for the default 30-day window. The running score accumulation always spans all history — since only bounds which points are returned.
Response Body
application/json
curl -X GET "https://example.com/api/brands/0/score-history/"{ "points": [ { "date": "2026-06-20T14:03:00+00:00", "score": 612, "runId": 9902 }, { "date": "2026-06-27T09:11:00+00:00", "score": 648, "runId": 9931 } ], "windowedDelta": { "latestScore": 648, "boundaryScore": 612, "delta": 36, "asOfRunId": 9931, "spanLabel": "last 30 days", "suppressedReason": null }}Per-category windowed score deltas GET
Windowed hero delta (same shape as the score-history endpoints) for every non-archived category on the brand, over the same window — so category-card delta chips agree with the brand chart for that window.
List a brand's categories GET
GET /api/brands/:brandId/categories/ POST /api/brands/:brandId/categories/ Nested under brand. Demo-public brand (id=9) allows unauthenticated GET; POST is always authed + non-demo.