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.co

Authentication

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 HTTPS

Calls 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 Required

Set a descriptive User-Agent header on all requests (e.g., YourCompany/YourProduct v1.0). See User Agents for details.

API Resources

ResourceDescriptionAPI Reference
Org ManagementCreate and manage orgsView endpoints
Menu ManagementCreate, update, and publish menusView endpoints
SalesQuery sales (orders that have been accepted by the kitchen)View endpoints
Consumer OrdersPlace and track customer orders (v1.0)View endpoints
Operations UpdatesPublish menus and manage store operationsView endpoints
Audit LogsQuery audit log entriesView endpoints
Webhook SubscriptionsCreate and manage webhook subscriptionsView endpoints
Webhook EventsEvent schemas for real-time notificationsView schemas
📘

Orders vs Sales

An 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

v1.0 Client Libraries (Consumer Orders)

These libraries cover the v1.0 API surface, including Consumer Orders endpoints:

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

  1. Get credentialsCreate your Flipdish App and request an access token.
  2. Explore the API — Browse the interactive API Reference to see all available endpoints.
  3. Set up webhooksSubscribe to events to receive real-time notifications.
  4. Build your integration — Follow a use-case guide for step-by-step instructions.

Need Help?

If you need assistance, email us at [email protected].


What’s Next

Set up your credentials and make your first API call.