Use the public API
Base address, authentication, rate limits and request ID: the essentials for connecting your tools to Upsellr.
Upsellr’s public API gives access to your master data, your products, your sources and your workflows from your own tools. It is included in the Enterprise plan.
The essentials
- Base address:
https://api.upsellr.io/v2 - Authentication: each request carries the Authorization header with the value Bearer followed by your key. See create and manage API keys.
- Documentation: the full reference, with examples, is published on docs.upsellr.io.
Calls from a server only
The API is called from a server, never from a browser: it does not respond to requests sent by a web page. This also avoids exposing your key in a page’s code.
Rate limits
The limits apply to the whole organization, across all keys.
| Request type | Per minute | Burst |
|---|---|---|
| Reads | 200 | 30 |
| Writes | 60 | 10 |
| Heavy writes: product creation, file upload, workflow launch | 20 | 5 |
| Product search and reading | 60 | 5 |
Beyond that, the API responds with a 429 code and a Retry-After header that indicates, in seconds, when to try again.
Request ID
Each response carries an X-Request-Id header. If a request fails unexpectedly, note this ID and pass it on to support: it lets us find your exact call.
Good to know
- A key restricted to certain IP addresses or certain User-Agents is refused from any other origin.
- Too many requests with an invalid key from the same address lead to a temporary block, signaled by a 429 code.
- A key only acts within the limits of its scopes: a request outside its scopes is refused.
- Launching a workflow through the API consumes credits just as it does from the app.
- To be notified when a run ends without polling the API in a loop, use webhooks.
- A question? Go through contact us or the Report a bug button in the app, with the request ID.





