Welcome to our new Vignette ID Developer Portal documentation!
Wiki

Rate limits

API Rate Limits

To ensure fair usage and maintain performance for all users, certain API endpoints are subject to rate limits. These limits restrict the number of requests that can be made to specific endpoints within a defined time period. Exceeding the rate limit will result in a 429 Too Many Requests error response.

Understanding Rate Limits

Each rate-limited endpoint has a defined threshold measured in requests per minute. If your application exceeds this threshold, further requests will be temporarily blocked until the limit resets.

Counters are per partner, per route — usage on one endpoint does not consume the budget of another. Endpoints that include {id} in the path also count per resource ID, so a high-traffic order does not affect requests against other orders.

To avoid exceeding rate limits:

  • Implement retry logic with exponential backoff.
  • Monitor your usage patterns and adjust your requests accordingly.
  • Cache catalog data (/products, /products/status) — it changes rarely.
  • Use Webhooks instead of polling for order status updates. Endpoints GET /orders/{id} and GET /orders/{id}/status have strict per-ID limits (15–25 req/min) because real-time status updates are delivered via webhooks.

Webhooks instead of polling

Don't poll GET /orders/{id}/status repeatedly — configure a Webhook URL in the Partner Panel to receive ORDER_STATUS_CHANGED events automatically when an order moves to PENDING, ACTIVE, REFUNDED, or other statuses.

Rate-Limited Endpoints

Below is a table of API endpoints with their respective rate limits. All time windows are per minute.

EndpointStandardPremiumEnterpriseTime Window
GET /products50 requests100 requests300 requestsPer minute
GET /products/status25 requests100 requests300 requestsPer minute
GET /users100 requests500 requests1000 requestsPer minute
GET /users/{id}/orders50 requests200 requests1000 requestsPer minute for the same {id}
GET /users/{id}/vehicles50 requests200 requests1000 requestsPer minute for the same {id}
POST /orders200 requests1000 requests2500 requestsPer minute
GET /orders100 requests500 requests1000 requestsPer minute
GET /orders/{id}25 requests50 requests100 requestsPer minute for the same {id}
GET /orders/{id}/status15 requests30 requests50 requestsPer minute for the same {id}
POST /orders/{id}/cancel-pending25 requests100 requests250 requestsPer minute for the same {id}
POST /orders/{id}/cancel-deferred25 requests100 requests250 requestsPer minute for the same {id}
POST /validate-vehicle250 requests1000 requests2500 requestsPer minute
POST /transaction/create50 requests250 requests1000 requestsPer minute
GET /transactions100 requests500 requests1000 requestsPer minute
GET /transaction/{unique_id}/status100 requests300 requests1000 requestsPer minute for the same {unique_id}
GET /transaction/{unique_id}/fee50 requests200 requests500 requestsPer minute for the same {unique_id}
GET /transaction/{id}/data100 requests300 requests1000 requestsPer minute for the same {id}
POST /transaction/{id}/cancel25 requests100 requests250 requestsPer minute for the same {id}
/mcp100 requests300 requests1000 requestsPer minute
Last modified on