Authentication
Authentication works in both directions and uses, in both, the Authorization header.
When you call us
Section titled “When you call us”Every request to the API carries your API key on Authorization:
POST /api/v3/menu/upload HTTP/1.1Host: prod.store-management.glovo.alb.app.onlineservice.ioAuthorization: your-api-keyContent-Type: application/jsonThe Bearer prefix is accepted but not required — both forms below are treated identically:
Authorization: your-api-keyAuthorization: Bearer your-api-keyKeys are created and read in the portal, under Profile → API keys. See API keys.
| Situation | Response |
|---|---|
| Header missing or empty | 401 Unauthorized |
| Unknown or inactive key | 401 Unauthorized |
| Valid key | the request is processed |
When we call you
Section titled “When we call you”Every order we send carries, also on Authorization, the value of the API key you associated with
that endpoint in the portal.
POST /your-webhook HTTP/1.1Authorization: the-key-configured-on-the-endpointContent-Type: application/json
{ "order_code": "ISRQHPPK1", ... }Check it. Your endpoint is public on the internet; this header is the only thing separating a real order from a request sent by anyone else.
Rotating a key
Section titled “Rotating a key”- Create a new key in the portal.
- Attach it to your endpoints and temporarily accept both values in your validation.
- Switch your own calls to the new key.
- Delete the old key from the portal and drop it from your validation.
Step 2 avoids the window in which orders would be rejected because you already expect the new key while we are still sending the old one.
Rate limits
Section titled “Rate limits”Operations are not rate-limited per key, with one exception: full menu updates are capped at 5 per day per store.