Pricing API
Check the new Pricing onboarding guide. This guide improves the onboarding experience for developers at VTEX by assembling all Pricing documentation on our Developer Portal and organizing it around the developer journey.
Pricing is the VTEX module responsible for the SKU price list. It stores each SKU’s base price, optional fixed prices by trade policy, and rules that dynamically generate final prices according to the purchase context and trade policy.
For details on how to use this module and its business logic, see the Pricing onboarding guide.
Rate limits per route
The following table summarizes the rate limits per HTTP method and the available burst credits for each route:
| Operation | Rate | Burst credits |
|---|---|---|
GET |
Rate limit under review. Usage may be restricted in cases of excessive use. | Under review |
POST and PUT |
2000 per minute 33 per second |
500 |
DELETE |
1000 per minute 16 per second |
300 |
Burst credits
When an account exceeds the per-second rate for a route, the excess is deducted from that route’s burst credits.
Example: If an account sends 34 requests per second to a POST or PUT price route (whose per-second rate is 33), 1 burst credit is consumed.
If burst credits reach 0, the service blocks new requests and returns HTTP 429.
Burst credits refill over time while the route is idle, at the same rate as the route’s per-second limit.
Example: For POST or PUT routes (whose per-second rate is 33), each idle second refills 33 burst credits for that limiter.
Response headers for rate limits
In the response of any request to the Pricing API, there are headers indicating the current status of the Rate Limiting. This information may be useful to evaluate the ideal frequency to send requests to a route, and when to send a new request in the event of reaching a Rate Limit.
Ratelimit-Limit: total burst credits available for the route.Ratelimit-Remaining: remaining burst credits for the route.Ratelimit-Reset: time, in seconds, until burst credits fully refill (up toRatelimit-Limit).Retry-After: time, in seconds, until the route accepts a new request. If present, the current request was rate-limited and not processed.
Integrating with Pricing v2 considering rate limits
When developing an integration, consider the request, route, and account limits specified in the Rate limits per route section, and avoid surpassing this frequency.
If you happen to be rate limited, please await the time in seconds specified in Retry-After before making another request to the service, and reduce the rate of requests per second that your integration is making.
Index
Prices and fixed prices
GETGet priceDELETEDelete pricePUTCreate or update base price or fixed pricesPATCHCreate or update base price or fixed pricesGETGet fixed pricesPOSTCreate or update fixed prices on a price table or trade policyGETGet fixed prices on a price table policyDELETEDelete fixed prices on a price table or trade policyGETGet computed prices for all price tablesGETGet computed price by price table or trade policy
Pricing configuration
Price tables
GETGet rules for a price tablePUTUpdate rules for a price tableGETGet all price tables and their rulesGETList price tables
Common parameters in the documentation
| Parameter name | Description |
|---|---|
{accountName} |
Store account name. |
{environment} |
Environment to be called. |
X-VTEX-API-AppKey |
Header used for authentication (application key). |
X-VTEX-API-AppToken |
Header used for authentication (application token). |
Endpoints
Price Tables
| Summary | Method | Path |
|---|---|---|
| Get rules for a price table | GET | /pricing/pipeline/catalog/{priceTableId} |
| Update rules for a price table | PUT | /pricing/pipeline/catalog/{priceTableId} |
| Create price table | PUT | /pricing/tables/{priceTableId} |
| Get all price tables and their rules | GET | /pricing/pipeline/catalog |
| List price tables | GET | /pricing/tables |
Prices and Fixed Prices
| Summary | Method | Path |
|---|---|---|
| Get price by SKU ID | GET | /pricing/prices/{itemId} |
| Delete price all base and fixed prices of an SKU | DELETE | /pricing/prices/{itemId} |
| Create or update base price or fixed price | PUT | /pricing/prices/{itemId} |
| Get fixed prices | GET | /pricing/prices/{itemId}/fixed |
| Create or update base price or fixed price | PATCH | /pricing/prices/{itemId}/fixed |
| Create or update fixed prices on a price table or trade policy | POST | /pricing/prices/{itemId}/fixed/{priceTableId} |
| Get fixed prices on a price table or trade policy | GET | /pricing/prices/{itemId}/fixed/{priceTableId} |
| Delete fixed prices on a price table or trade policy | DELETE | /pricing/prices/{itemId}/fixed/{priceTableId} |
| Get computed prices for all price tables | GET | /pricing/prices/{itemId}/computed |
| Get computed price by price table or trade policy | GET | /pricing/prices/{itemId}/computed/{priceTableId} |
Pricing Configuration
| Summary | Method | Path |
|---|---|---|
| Get pricing configuration | GET | /pricing/config |
| Get pricing v2 status | GET | /pricing/migration |