Menu Guide
Menu Guide
Use Wolt’s Menu API to fetch menu data, update item details (e.g., price, availability), and push real-time inventory updates — all without managing full menu structures.
Rate Limits
All limits are enforced per venue:
Operation | Limit |
Get Menu / Update Items | 1 request per 15 minutes |
Update Inventory | 1 request per 5 minutes |
Exceeding rate limits may result in a 429 error (too many requests).
API Workflows
1. Create a Venue Menu
Use this to create a full menu structure, including categories, items, and options. This is useful for syncing your POS or ERP system’s menu to be the live menu on Wolt.
POST https://pos-integration-service.wolt.com/v1/restaurants/{{venue_id}}/menu
Authorization: Bearer {{access_token}}
Use this endpoint to:
Set a whole menu - categories, items, options (modifiers)
NOTE: this sets your menu on Wolt and controls the data used in multiple Wolt systems. identifiers used by your system (POS ID and\or SKUs\GTINs) must be unique to each item.
2. Fetch Venue Menu
Use this to retrieve the full menu structure, including categories, items, and options. This is useful for syncing your POS or ERP system with the live menu.
GET https://pos-integration-service.wolt.com/venues/{{venue_id}}/menu
Authorization: Bearer {{access_token}}
Use this endpoint to:
Get all active categories and items
Track item and option availability
Keep local copies of venue menus up to date
3. Update Menu Items
Use this to:
Change item pricing (including discounted prices)
Update item visibility
Mark items as temporarily unavailable
Update item’s image
PATCH https://pos-integration-service.wolt.com/venues/{{venue_id}}/menu/items
Authorization: Bearer {{access_token}}
Content-Type: application/json
Payload Example:
{
"items": [
{
"id": "item_id_123",
"price": 1090,
"discount_price": 990,
"is_available": true
}
]
}
4. Update Inventory
Use this endpoint to dynamically update stock levels from your POS or ERP system.
PATCH https://pos-integration-service.wolt.com/venues/{{venue_id}}/menu/inventory
Authorization: Bearer {{access_token}}
Content-Type: application/json
Payload Example:
{
"inventory": [
{
"item_id": "item_id_123",
"is_in_stock": false
}
]
}
Best used for time-sensitive updates to avoid overselling.
Best Practices
Respect rate limits to avoid request blocks.
Cache menus locally and only re-fetch if significant updates are expected.
Use inventory updates for frequent availability changes.
Use menu item updates for pricing and availability adjustments that don’t happen often.