API Reference
Build integrations with the Flipdish platform using our REST APIs.
The Flipdish API is a REST API that lets you programmatically manage orgs, menus, sales, store operations, audit logs, and webhooks on the Flipdish platform. The current API version is v3.0. Consumer Orders endpoints remain available on v1.0.
Base URL
All API requests should be made to:
https://api.flipdish.coAuthentication
The Flipdish API uses OAuth2 client credentials for authentication. You'll need your App's Client ID and Secret Key, which you can find in the Flipdish Developer Portal.
Request an access token:
curl --request POST \
--url https://api.flipdish.co/identity/connect/token \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=<your_client_id>' \
--data-urlencode 'client_secret=<your_secret_key>' \
--data-urlencode 'scope=api'import requests
response = requests.post(
"https://api.flipdish.co/identity/connect/token",
data={
"grant_type": "client_credentials",
"client_id": "<your_client_id>",
"client_secret": "<your_secret_key>",
"scope": "api",
},
)
access_token = response.json()["access_token"]const response = await fetch("https://api.flipdish.co/identity/connect/token", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({
grant_type: "client_credentials",
client_id: "<your_client_id>",
client_secret: "<your_secret_key>",
scope: "api",
}),
});
const { access_token } = await response.json();Use the token in requests by including the Authorization header:
curl --request GET \
--url https://api.flipdish.co/orgManagement/orgs \
--header 'Authorization: Bearer <access_token>'
Always use HTTPSCalls made over plain HTTP will fail. API requests without authentication will also fail.
For a detailed walkthrough, see Getting Started with Flipdish API.
Your First API Call
Step 1: List your orgs
Once you have a token, start by retrieving your orgs to find your org ID:
curl --request GET \
--url https://api.flipdish.co/orgManagement/orgs \
--header 'Authorization: Bearer <access_token>'import requests
response = requests.get(
"https://api.flipdish.co/orgManagement/orgs",
headers={"Authorization": "Bearer <access_token>"},
)
print(response.json())const response = await fetch("https://api.flipdish.co/orgManagement/orgs", {
headers: { "Authorization": "Bearer <access_token>" },
});
const data = await response.json();
console.log(data);The response includes your org IDs (e.g., org2566). See Get all orgs for the full endpoint documentation.
Step 2: Get your published menus
Use the org ID from Step 1 to list your published menus:
curl --request GET \
--url https://api.flipdish.co/menumanagement/orgs/<orgId>/menus/published \
--header 'Authorization: Bearer <access_token>'import requests
response = requests.get(
"https://api.flipdish.co/menumanagement/orgs/<orgId>/menus/published",
headers={"Authorization": "Bearer <access_token>"},
)
print(response.json())const response = await fetch(
"https://api.flipdish.co/menumanagement/orgs/<orgId>/menus/published",
{ headers: { "Authorization": "Bearer <access_token>" } }
);
const data = await response.json();
console.log(data);Replace <orgId> with the org ID from Step 1 (e.g., org2566). See Get all published menus for the full endpoint documentation.
User-Agent RequiredSet a descriptive
User-Agentheader on all requests (e.g.,YourCompany/YourProduct v1.0). See User Agents for details.
API Resources
| Resource | Description | API Reference |
|---|---|---|
| Org Management | Create and manage orgs | View endpoints |
| Menu Management | Create, update, and publish menus | View endpoints |
| Sales | Query sales (orders that have been accepted by the kitchen) | View endpoints |
| Consumer Orders | Place and track customer orders (v1.0) | View endpoints |
| Operations Updates | Publish menus and manage store operations | View endpoints |
| Audit Logs | Query audit log entries | View endpoints |
| Webhook Subscriptions | Create and manage webhook subscriptions | View endpoints |
| Webhook Events | Event schemas for real-time notifications | View schemas |
Orders vs SalesAn order is the customer's request to buy; a sale is the merchant's accepted transaction. Once an order is accepted and committed for fulfilment, it becomes a sale — the record that operations, finance, and reporting systems use. Consumer Orders remain on v1.0; Sales endpoints are available on v3.0.
Common Integration Scenarios
- Property, Brand and Sales Channel Management — Manage your org's properties, brands, and sales channels via the Org Management API.
- Menu Management — Create and publish menus programmatically. See Menu Structure.
- Webhooks — Receive real-time event notifications when things happen in your account. See Subscribe to Flipdish Events.
- POS Integration — Receive orders, map menus, and sync with your point-of-sale system. See Build a POS Integration.
SDKs
v3.0 Client Libraries
- Org Management (TypeScript/JavaScript) — @flipdish/orgmanagement
v1.0 Client Libraries (Consumer Orders)
These libraries cover the v1.0 API surface, including Consumer Orders endpoints:
- .NET — NuGet package | GitHub
- JavaScript — npm package | GitHub
- TypeScript (Node.js) — npm package | GitHub
For installation and usage examples, see Flipdish SDK.
Error Handling
The API returns structured JSON error responses with errorMessage and errorCode fields, along with standard HTTP status codes. See Error Handling for response formats and status codes.
What's Next
- Get credentials — Create your Flipdish App and request an access token.
- Explore the API — Browse the interactive API Reference to see all available endpoints.
- Set up webhooks — Subscribe to events to receive real-time notifications.
- Build your integration — Follow a use-case guide for step-by-step instructions.
Need Help?
If you need assistance, email us at [email protected].
Updated about 7 hours ago