Sync menu items and prices with your POS. REST, JSON, and predictable status codes.
API access is available on the Pro plan
Every request needs a bearer token. Create one under Settings → API keys in your dashboard.
curl https://api.menufly.app/v1/menus \
-H "Authorization: Bearer mf_live_xxxxxxxxxxxx"
GET /v1/menus
{
"data": [
{
"id": "menu_9f2a",
"name": "Dinner",
"branch_id": "br_01",
"items": 84,
"updated_at": "2026-08-12T18:04:00Z"
}
]
}
PATCH /v1/items/item_4c81
Content-Type: application/json
{ "price": 349, "available": true }
| Method | Path | Description |
|---|---|---|
| GET | /v1/menus | List all menus |
| GET | /v1/menus/:id | Retrieve one menu with items |
| POST | /v1/items | Create an item |
| PATCH | /v1/items/:id | Update price or availability |
| DELETE | /v1/items/:id | Remove an item |
| GET | /v1/analytics/scans | Scan counts by day |
| POST | /v1/exports/pdf | Queue a print-ready PDF export |
120 requests per minute per key. Exceeding it returns 429 with a Retry-After header.
Subscribe to menu.published, item.updated and export.completed to keep your POS in sync.
Errors return a JSON body with a stable code and a human-readable message. 4xx means fix the request; 5xx is safe to retry with backoff.
API keys are included on Pro. Tell us which POS you run and we will help with the integration.
Pro plan · REST + webhooks · Integration support included