ReferenceStores

Enrich up to 100 domains

Batch form of the store profile. Each input is canonicalized and answered independently; the response preserves input order. Matched and stale inputs return the full store object. No-match inputs return a reason and are not billed. With `refresh: true` and the `write:scans` scope, unknown or stale domains are queued for observation and the result is marked `scan_requested`.

scoperead:storesbilling unitlookup_cached

agent notesBills one lookup_cached per matched or stale result and one lookup_live per queued scan; no_match and error results are free. Send an Idempotency-Key on every retry so a timeout cannot double-bill. Keep batches at or under plan.limits.enrich_batch_max. Results with match: no_match and reason: not_in_corpus are unknown to us, not confirmed non-stores. A scan_requested result completes later; poll GET /v1/stores/{domain} after a few minutes or subscribe to events.

Batch form of the store profile. Each input is canonicalized and answered independently; the response preserves input order. Matched and stale inputs return the full store object. No-match inputs return a reason and are not billed. With refresh: true and the write:scans scope, unknown or stale domains are queued for observation and the result is marked scan_requested.

AuthorizationBearer <token>

Workspace API key as a bearer token. Create keys in the dashboard under Settings → API keys. Test keys (oai_test_) answer from a fixed test tenant and never queue production scans.

In: header

Header Parameters

x-request-id?string

Optional caller-supplied request id (8 to 64 characters, A-Z a-z 0-9 _ -). Echoed back on the response; otherwise the API generates one.

idempotency-key?string

Optional. Replaying the same key with the same body within 24 hours returns the original response with Idempotent-Replayed: true and bills nothing. Same key with a different body returns 409 conflict.

Length8 <= length <= 128

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

POST
/v1/stores/enrich
curl -X POST "https://example.com/v1/stores/enrich" \  -H "Content-Type: application/json" \  -d '{    "domains": [      "string"    ]  }'
{  "billed": {    "lookup_cached": 1,    "lookup_live": 0  },  "request_id": "req_01J9X4K6ZP3M8Q2R5T7V9W1Y3A",  "results": [    {      "input": "gymshark.com",      "match": "matched",      "reason": null,      "scan_job_id": null,      "scan_requested": false,      "store": {        "brand_group_id": "bg_01J9X4K6ZP3M8Q2R5T7V9W1Y3A",        "catalog": {          "as_of": "2026-09-09T02:20:00Z",          "available_count": null,          "coverage": "first_page",          "currency": "GBP",          "price_range": {            "median": 34,            "p25": 28,            "p75": 98          },          "product_count": 1284        },        "domain": "gymshark.com",        "geography": {          "basis": "observed",          "country": "GB"        },        "industry": {          "basis": "classified",          "slug": "apparel"        },        "name": "Gymshark",        "observation": {          "coverage_note": null,          "last_completed_scan_at": "2026-09-08T04:12:31Z",          "scope": "full"        },        "platform": {          "confidence": "high",          "first_observed_at": "2025-11-02T09:41:00Z",          "last_confirmed_at": "2026-09-08T04:12:31Z",          "name": "Shopify",          "slug": "shopify"        },        "profile_url": "https://ongoing.ai/stores/gymshark.com",        "recent_signals": [          {            "confidence": "high",            "confirmed_at": "2026-09-01T04:02:44Z",            "effective_at": "2026-08-30T03:58:10Z",            "from": null,            "id": "evt_7Q2M4K9ZP3R5T7V9W1Y3A6B8C",            "technology": "gorgias",            "to": null,            "type": "technology_added"          }        ],        "status": {          "as_of": "2026-09-08T04:12:31Z",          "state": "active_storefront"        },        "storefront_host": "www.gymshark.com",        "storefront_id": "sf_01J9X4K6ZP3M8Q2R5T7V9W1Y3A",        "technologies": [          {            "category": "email-marketing",            "confidence": "high",            "first_observed_at": "2026-02-14T11:05:12Z",            "install_state": "active",            "last_confirmed_at": "2026-09-08T04:12:31Z",            "name": "Klaviyo",            "slug": "klaviyo"          },          {            "category": "customer-support",            "confidence": "high",            "first_observed_at": "2026-08-30T03:58:10Z",            "install_state": "active",            "last_confirmed_at": "2026-09-08T04:12:31Z",            "name": "Gorgias",            "slug": "gorgias"          },          {            "category": "reviews",            "confidence": "medium",            "first_observed_at": "2026-01-20T08:00:00Z",            "install_state": "configured",            "last_confirmed_at": "2026-09-08T04:12:31Z",            "name": "Yotpo",            "slug": "yotpo"          }        ]      }    },    {      "input": "notastore.example",      "match": "no_match",      "reason": "not_in_corpus",      "scan_job_id": null,      "scan_requested": false,      "store": null    }  ]}