Retailer Coverage

The set of retailers available to your organization can change independent
of any client release — a retailer can be added, temporarily disabled, or
your organization's specific access can change. Don't hard-code a retailer
slug list.
Call GET /v1/retailers to get the current, live list of slugs
your organization can use:

curl https://atlas.usebutton.com/v1/retailers \
  -H "Authorization: Bearer YOUR_API_KEY"
{
  "retailers": [
    { "slug": "amazon", "name": "Amazon", "domains": ["amazon.com"] },
    { "slug": "walmart", "name": "Walmart", "domains": ["walmart.com"] }
  ]
}

Use the slug value as the retailer parameter anywhere the API accepts
one — for example GET /v1/products/amazon/{product_id}.

As of the private beta, Amazon and Walmart are supported. More retailers are
being added; check this endpoint rather than a static list to stay current,
and watch the changelog for announcements.

If you request a retailer slug your organization isn't entitled to, or one
that doesn't exist, you'll get a 403 or 400 respectively rather than a
silent empty result — see Getting Started for
the full error contract.

Mapping a URL to a retailer

You don't need to know a link's retailer to look it up — send the URL
directly to GET /v1/products?url=
and Product Atlas resolves it server-side.

If your own code wants to identify the retailer before calling the API —
for example, to decide which UI to show, or to route a paste-a-link flow —
match the URL's host against domains instead of hard-coding a domain-to-slug
table:

{ "slug": "amazon", "name": "Amazon", "domains": ["amazon.com"] }

domains is always present on each entry ([] if none are configured for
that retailer yet) and, like the slug list itself, can change over time, so
re-check it rather than caching a domain map indefinitely.