API overview
Endpoint details, authentication, response formats, error responses, and known limitations for the Export API.
The Export API is accessed via authenticated HTTP calls. This page covers the endpoint details, authentication, response formats, and known limitations you need before making your first request.
We provide an OpenAPI 3 specification file in the API specification section, and a full generated API reference for every endpoint.
We currently do not have a client library for the Export API.
Endpoint details
| Property | Value |
|---|---|
| Hostname | export-api.productsup.com |
| Protocol | https |
| Route | /sites/{siteId}/channels/{channelId}/destinations/{destinationId}/products |
The full route and token are available on the Destination settings page.
Authentication
Send the authentication token as the value for the X-EA-Auth-Token header:
curl -i -X GET \
-H "X-EA-Auth-Token:{AUTH_TOKEN}" \
'{URL}'Find the token on the Destination settings page. See How to set up the Export API Destination.
The token must consist only of alphanumeric characters, hyphens (-), and underscores (_). A token with any other character returns a 401 Unauthorized response with the message Provided token format is invalid.
API limits
Each page returns a maximum of 1,000 products. The default limit is 100 if omitted. Requesting a limit above 1,000 does not return an error — it is silently capped to 1,000. Use the limit and offset parameters to paginate through larger result sets; see Pagination.
Response formats
The response format is controlled by the Accept header:
| Accept header | Format |
|---|---|
application/json (or omitted) | A raw JSON array of product objects: [{...}, {...}] |
application/vnd.api+json | A JSON:API-style envelope: {"data": [...], "meta": {"total": ..., "limit": ..., "offset": ...}} |
The envelope's meta.total gives you the total number of matching records, ignoring limit and offset — useful for knowing when you've paginated through the full result set.
Error responses
| Status | Cause |
|---|---|
401 Unauthorized | Authentication token is missing, has an invalid format, or (on legacy routes) the destination ID is missing |
403 Forbidden | The token is valid but is not authorized for the requested destination |
404 Not Found | No exported data is available for the destination, or the route itself doesn't exist |
The 404 response body differs by cause: no exported data returns {"message": "..."}, while an invalid route returns {"error": "..."}.
How is this guide?