About authentication

One access token authenticates every Yotpo API on api.yotpo.com: V3, Reviews V1 and Core V1. Generate it with your store ID and API secret, then send it in the X-Yotpo-Token header.

Merchant endpoints on api.yotpo.com use one access token, whatever the API version. Generate it from your store ID and API secret with Generate access token, then send it on every call:

X-Yotpo-Token: YOUR_ACCESS_TOKEN

The same token works on V3 endpoints (/core/v3/...), Reviews V1 endpoints and Core V1 endpoints. A request without a valid token returns 401 (or 403 when the header is missing on some V1 paths). See Errors.

Exceptions

EndpointsHow to send the token
Storefront endpoints on api-cdn.yotpo.com and storefront.yotpo.com/loyaltyNo token. They're public, so you can call them from browser code.
Reviews Insights (/insights/v1/...)Authorization: Bearer YOUR_ACCESS_TOKEN. The X-Yotpo-Token header isn't read.
Custom albums (GET /albums/{store_id})As the utoken query parameter. The header isn't read.
Loyalty API (V2) on loyalty.yotpo.comYour Loyalty GUID and API key, in the x-guid and x-api-key headers. See Loyalty authentication.
App partners on developers.yotpo.comA per-store OAuth token you get when a merchant installs your app. See Authenticating with OAuth 2.0.

Moving from utoken

V1 calls used to take the token as utoken in the query string or body. They still accept it there, but send it in the X-Yotpo-Token header instead: URLs end up in logs. The V1 token endpoint (POST /oauth/token) returns the same token as Generate access token, so you don't need a separate one for V1.

Keep the token safe

Generate and use the token on your server only. Never put your API secret or the token in browser or mobile code, and never commit them to a repository. When a call returns 401, generate a new token and retry once.