Brand Alignment: positioning
GET /v1/brands/:brand_id/alignment/positioning
Access is limited to the brands permitted by your credential. Requires read:alignment. Workspace API keys and signed-in MCP sessions are supported.
How the AI engines position the brand in one scan, as the “How AI positions you” card on the Brand Alignment page shows it: a summary per location of how the engines describe the brand, written from the scan’s answers and the tracked answers that mention the brand together, compared point by point with the positioning statement in the Brand Profile.
Asky manages the monitoring questions. Responses include the summaries and the answers behind them without exposing generated question text.
Query parameters
| Parameter | Type | Description |
|---|---|---|
scan_id | uuid | Finished scan identifier from the program endpoint. Defaults to the latest finished scan. |
models | string (repeatable) | Engine identifiers. Repeat this parameter to select multiple engines. Where no combined summary exists for the selection, each engine’s own summary is returned. |
markets | string (repeatable) | Country codes (DE) or one country and language (DE:de-DE). Repeat this parameter to select multiple markets. |
Response
The standard API envelope places the result in data, with request metadata in meta.
| Field | Description |
|---|---|
scan | The scan: id, cutoff, state and published_at. |
available | Whether a summary exists for this selection. |
preparing | True while the latest scan’s summary is still being written. Try again shortly. |
brand_positioning | The current Brand Profile positioning statement, or null. |
statements | One entry per summary: engines, country, locale, summary, answer_ids (the answers it was written from) and comparisons. |
statements[].comparisons | Each point compared: aspect, status, positioning_part (the words of the statement it checks), explanation and answer_ids. Empty when the Brand Profile has no positioning statement. |
note | Set when the Brand Profile has no positioning statement yet, or when it changed after this scan was compared and the scan has not been compared again with the current statement. The comparisons then quote the statement as it was, and later scans compare against the current one. Null otherwise. |
Comparison statuses:
| Status | Meaning |
|---|---|
aligned | Engines describe it the way the brand does. |
different_emphasis | Engines mention it but stress something else. |
qualification | Engines add a caveat the brand does not make. |
contradiction | Engines say the opposite. |
not_established | Engines do not mention it. |
Read a supporting answer in full with the answer endpoint, or several with ids on the answers endpoint. Scan identifiers come from the program endpoint.