Download results as NDJSON
One result per line, oldest first, each carrying your ref. The canonical format: stream it rather than holding a run in memory. verdict.outcome is the default — review rows are a find that a human should look at (a variant, a low score), reject rows are not the product.
Authorization
apiKey Your API key. X-Api-Key: <key> is accepted as an alternative.
A key belongs to an organization, not a user, so it outlives whoever created it. It carries two independent things, and both are checked: an org role (a member key cannot approve a publish or activate a mapping) and a set of scopes — catalog:read, catalog:write, enrichment:write, publishing:read, publishing:write, org:read, org:write. Holding a scope does not grant a role, and holding a role does not grant a scope.
GET /v1/me returns both for the key you are holding.
In: header
Path Parameters
Which of your brands this run belongs to. A brand outside your organization answers not found.
The run id from POST /runs.
Response Body
application/x-ndjson
application/problem+json
application/problem+json
application/json
application/problem+json
curl -X GET "https://example.com/v1/brands/string/catalog-builder/runs/string/results.jsonl"{ "attributes": { "property1": { "confidence": 0, "inferred": true, "sourceUrl": "string", "value": "string" }, "property2": { "confidence": 0, "inferred": true, "sourceUrl": "string", "value": "string" } }, "failure": { "kind": "blocked", "note": "string", "stage": "search" }, "media": [ { "position": -9007199254740991, "url": "string" } ], "ref": "string", "source": { "domain": "string", "fetchedAt": "string", "kind": "brand", "tier": "http", "url": "string" }, "verdict": { "decidedBy": "string", "outcome": "promote", "reason": "string", "reviewScore": 0 }}Download results as CSV GET
Flat: one row per identity, one column per attribute found anywhere in the run. `ref`, `outcome`, `reviewScore`, `sourceUrl` and `failure` come first.
List a brand's categories GET
Flat, with `parentId` — the tree is derived, never stored, so a breadcrumb is built by walking parents (ADR-0027).