Get one briefing edition by id
Get one strategic briefing edition by runId, in exactly the same shape as GET /strategic-briefing.
Take the runId from GET /strategic-briefing/history (or from meta.runId on a current read). Accepts the same sections and includeCharts options, with the same ["hub"] default.
A runId naming a run that failed or is still generating returns 200 with meta.status set accordingly and item null — that run genuinely produced no edition, which is an answer rather than an error. A malformed id returns 400 invalid_run_id; an id that does not belong to this project returns 404 run_not_found.
Use this to read or quote a specific past edition. For the current state use GET /strategic-briefing.
Request
- Base URL: https://api.competlab.com
- URL: https://api.competlab.com/v1/projects/{projectId}/strategic-briefing/history/{runId}
- Auth: API key in header CL-API-Key
Path parameters
Briefing run ID, from meta.runId or a history row
Project ID
Query parameters
Which sections to return. Defaults to ["hub"] — the executive digest and navigation map. Pass specific sections to go deeper (e.g. a hub diagnosis pointer of ai-visibility maps to deep-ai-visibility), or all for the full document. Prefer deriving deep-<dimension> values from the hub diagnosis pointers rather than requesting slots blind — the response's contains array lists exactly which sections exist for this edition, in this same vocabulary.
[ "hub" ]
Include full chart series data. Defaults to false — each chart returns its title and note only, with no underlying numbers. Pass true for the full series.
Response
Example response
{
"meta": {
"runId": "6a3950c06bda450a1372048e",
"editionNumber": 4,
"startedAt": "2026-06-22T14:20:02.110Z",
"briefingDate": "2026-06-22T15:51:24.443Z",
"progress": {
"startedAt": "2026-07-27T06:00:11.002Z",
"updatedAt": "2026-07-27T06:41:03.771Z"
}
},
"item": {
"hub": {
"kind": "hub",
"blocks": [
{
"type": "headline",
"verdict": "Pricing pressure is rising."
}
]
}
},
"coverage": {
"type": "coverage",
"items": [
"review counts are directional"
]
},
"contains": [
"hub",
"competitors",
"deep-ai-visibility",
"deep-pricing"
],
"tickets": {
"total": 9,
"byStatus": {
"triage": 5,
"todo": 3,
"in_progress": 0,
"done": 1,
"dismissed": 0
},
"opened": [
"507f1f77bcf86cd799439011",
"507f1f77bcf86cd799439012"
],
"commented": [
{
"ticketId": "507f1f77bcf86cd799439011",
"commentId": "507f1f77bcf86cd799439021",
"body": "On 14 Sep, before this ticket opened, ChatGPT named you in 2 of 8 answers. On 5 Oct, the first check after it closed, it named you in 4 of 8."
}
],
"alreadyOnBoard": [
{
"ticketId": "507f1f77bcf86cd799439011",
"move": "Get onto the 2026 buyer guide",
"status": "triage"
}
],
"recheckedUnchanged": [
"507f1f77bcf86cd799439014"
]
}
}Changes
No recorded changes to this operation across all 1 revision of this API.