Download results as CSV
Flat: one row per identity, one column per attribute found anywhere in the run. ref, outcome, reviewScore, sourceUrl and failure come first.
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
text/csv
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.csv""string"Poll a run GET
Status, counts and progress. `processed` reaches `total` even when a third of the catalog is unfindable — every identity finishes, with a result or a failure.
Download results as NDJSON GET
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.