Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/flipdish:flipdish-catalogchanges-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
OpenAPI Specification
openapi: 3.2.0
info:
version: v1.0
title: Flipdish Open API v1.0 Catalog Changes API
servers:
- url: https://api.flipdish.co
tags:
- name: CatalogChanges
paths:
/api/v1.0/{appId}/menus/catalog-changes/summaries:
get:
tags:
- CatalogChanges
summary: Get menu pending changes summaries by appId
operationId: GetPendingMenuChangesSummaries
parameters:
- name: appId
in: path
description: ''
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RestApiArrayResult_PendingMenuChangesSummaries'
text/json:
schema:
$ref: '#/components/schemas/RestApiArrayResult_PendingMenuChangesSummaries'
application/xml:
schema:
$ref: '#/components/schemas/RestApiArrayResult_PendingMenuChangesSummaries'
text/xml:
schema:
$ref: '#/components/schemas/RestApiArrayResult_PendingMenuChangesSummaries'
'400':
description: BadRequest
content:
application/json:
schema:
$ref: '#/components/schemas/RestApiErrorResult'
text/json:
schema:
$ref: '#/components/schemas/RestApiErrorResult'
application/xml:
schema:
$ref: '#/components/schemas/RestApiErrorResult'
text/xml:
schema:
$ref: '#/components/schemas/RestApiErrorResult'
'401':
description: Authentication has been denied for this request.
content:
application/json:
schema:
$ref: '#/components/schemas/RestApiUnauthorizedResult'
text/json:
schema:
$ref: '#/components/schemas/RestApiUnauthorizedResult'
application/xml:
schema:
$ref: '#/components/schemas/RestApiUnauthorizedResult'
text/xml:
schema:
$ref: '#/components/schemas/RestApiUnauthorizedResult'
'403':
description: Successful authentication, but authorization has been denied for this request.
content:
application/json:
schema:
$ref: '#/components/schemas/RestApiForbiddenResult'
text/json:
schema:
$ref: '#/components/schemas/RestApiForbiddenResult'
application/xml:
schema:
$ref: '#/components/schemas/RestApiForbiddenResult'
text/xml:
schema:
$ref: '#/components/schemas/RestApiForbiddenResult'
security:
- oauth2:
- api
/api/v1.0/{appId}/menus/catalog-changes:
get:
tags:
- CatalogChanges
summary: Get menu pending changes from Catalog groups and items
description: '[BETA - this endpoint is under development, do not use it in your production system]'
operationId: GetPendingMenuChanges
parameters:
- name: appId
in: path
description: ''
required: true
schema:
type: string
- name: menuId
in: query
description: ''
required: false
schema:
type: integer
format: int32
- name: catalogItemId
in: query
description: ''
required: false
schema:
type: string
- name: page
in: query
description: ''
required: false
schema:
type: integer
format: int32
- name: limit
in: query
description: ''
required: false
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RestApiPaginationResult_PendingMenuChanges'
text/json:
schema:
$ref: '#/components/schemas/RestApiPaginationResult_PendingMenuChanges'
application/xml:
schema:
$ref: '#/components/schemas/RestApiPaginationResult_PendingMenuChanges'
text/xml:
schema:
$ref: '#/components/schemas/RestApiPaginationResult_PendingMenuChanges'
'400':
description: BadRequest
content:
application/json:
schema:
$ref: '#/components/schemas/RestApiErrorResult'
text/json:
schema:
$ref: '#/components/schemas/RestApiErrorResult'
application/xml:
schema:
$ref: '#/components/schemas/RestApiErrorResult'
text/xml:
schema:
$ref: '#/components/schemas/RestApiErrorResult'
'401':
description: Authentication has been denied for this request.
content:
application/json:
schema:
$ref: '#/components/schemas/RestApiUnauthorizedResult'
text/json:
schema:
$ref: '#/components/schemas/RestApiUnauthorizedResult'
application/xml:
schema:
$ref: '#/components/schemas/RestApiUnauthorizedResult'
text/xml:
schema:
$ref: '#/components/schemas/RestApiUnauthorizedResult'
'403':
description: Successful authentication, but authorization has been denied for this request.
content:
application/json:
schema:
$ref: '#/components/schemas/RestApiForbiddenResult'
text/json:
schema:
$ref: '#/components/schemas/RestApiForbiddenResult'
application/xml:
schema:
$ref: '#/components/schemas/RestApiForbiddenResult'
text/xml:
schema:
$ref: '#/components/schemas/RestApiForbiddenResult'
security:
- oauth2:
- api
/api/v1.0/{appId}/menus/catalog-changes/publish:
post:
tags:
- CatalogChanges
summary: Update menus with the pending changes from Catalog groups and items
description: '[BETA - this endpoint is under development, do not use it in your production system]'
operationId: PublishPendingMenuChanges
parameters:
- name: appId
in: path
description: ''
required: true
schema:
type: string
responses:
'200':
description: OK
'400':
description: BadRequest
content:
application/json:
schema:
$ref: '#/components/schemas/RestApiErrorResult'
text/json:
schema:
$ref: '#/components/schemas/RestApiErrorResult'
application/xml:
schema:
$ref: '#/components/schemas/RestApiErrorResult'
text/xml:
schema:
$ref: '#/components/schemas/RestApiErrorResult'
'401':
description: Authentication has been denied for this request.
content:
application/json:
schema:
$ref: '#/components/schemas/RestApiUnauthorizedResult'
text/json:
schema:
$ref: '#/components/schemas/RestApiUnauthorizedResult'
application/xml:
schema:
$ref: '#/components/schemas/RestApiUnauthorizedResult'
text/xml:
schema:
$ref: '#/components/schemas/RestApiUnauthorizedResult'
'403':
description: Successful authentication, but authorization has been denied for this request.
content:
application/json:
schema:
$ref: '#/components/schemas/RestApiForbiddenResult'
text/json:
schema:
$ref: '#/components/schemas/RestApiForbiddenResult'
application/xml:
schema:
$ref: '#/components/schemas/RestApiForbiddenResult'
text/xml:
schema:
$ref: '#/components/schemas/RestApiForbiddenResult'
'404':
description: NotFound
security:
- oauth2:
- api
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PublishMenuChanges'
text/json:
schema:
$ref: '#/components/schemas/PublishMenuChanges'
application/xml:
schema:
$ref: '#/components/schemas/PublishMenuChanges'
text/xml:
schema:
$ref: '#/components/schemas/PublishMenuChanges'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PublishMenuChanges'
required: true
components:
schemas:
PendingMenuChanges:
description: Pending Menu Changes
type: object
properties:
CatalogItemId:
description: Unique catalog item id
maxLength: 30
minLength: 0
type: string
MenuId:
format: int32
description: Unique menu id
type: integer
RestApiForbiddenResult:
description: Rest Api Forbidden Result
required:
- Message
type: object
properties:
Message:
description: Message
type: string
readOnly: true
PendingMenuChangesSummaries:
description: Pending menu changes summaries
type: object
properties:
MenuId:
format: int32
description: Menu id
type: integer
TotalPendingChanges:
format: int32
description: Sum of pending changes per menu id
type: integer
PublishMenuChanges:
description: Publish Menu Changes
type: object
properties:
CatalogItemId:
description: Optional Catalog item id
maxLength: 30
minLength: 0
type: string
MenuIds:
description: Optional Collection of Menu id
type: array
items:
format: int32
type: integer
RestApiUnauthorizedResult:
description: Rest api unauthorized result
required:
- Message
type: object
properties:
Message:
description: Message
type: string
readOnly: true
ValidationErrorResult:
description: Validation error result
type: object
properties:
FieldName:
description: Field name
type: string
Errors:
description: List of errors relates to field
type: array
items:
type: string
RestApiPaginationResult_PendingMenuChanges:
description: Rest api pagination result
required:
- Page
- Limit
- TotalRecordCount
- Data
type: object
properties:
Page:
format: int32
description: Current page index
type: integer
Limit:
format: int32
description: Current page size
type: integer
TotalRecordCount:
format: int32
description: Total record count
type: integer
Data:
description: Generic data object.
type: array
items:
$ref: '#/components/schemas/PendingMenuChanges'
RestApiErrorResult:
description: Rest api error result
required:
- Message
type: object
properties:
Message:
description: Error message
type: string
ErrorCode:
format: int32
description: Error code
type: integer
StackTrace:
description: Stack trace
type: string
Errors:
description: List of errors grouped by field name
type: array
items:
$ref: '#/components/schemas/ValidationErrorResult'
RestApiArrayResult_PendingMenuChangesSummaries:
description: Rest api array result
required:
- Data
type: object
properties:
Data:
description: Generic data object.
type: array
items:
$ref: '#/components/schemas/PendingMenuChangesSummaries'
securitySchemes:
oauth2:
type: oauth2
flows:
implicit:
scopes:
api: Access to Flipdish API
authorizationUrl: https://api.flipdish.co/identity/connect/authorize
description: OAuth2 Implicit Grant
x-samples-languages:
- curl
- node
- csharp
- ruby
- javascript
- python
- swift
x-send-defaults: true
x-flipdish-signalr:
- hubName: AnalyticsHub
events:
- eventName: analytics.website
eventType: AnalyticsClientEvent
- hubName: AppHub
events:
- eventName: app.created
eventType: AppCreatedEvent
- eventName: app.updated
eventType: AppUpdatedEvent
- hubName: AuthorizationHub
events: []
- hubName: BankAccountHub
events:
- eventName: bankaccount.created
eventType: BankAccountCreatedEvent
- eventName: bankaccount.updated
eventType: BankAccountUpdatedEvent
- eventName: bankaccount.deleted
eventType: BankAccountDeletedEvent
- hubName: CampaignHub
events: []
- hubName: CardReaderHub
events:
- eventName: cardreaders.kiosk.bluetooth.initiatepairingmode
eventType: KioskBluetoothPairingModeEvent
- eventName: cardreaders.kiosk.bluetooth.unpaired
eventType: KioskBluetoothTerminalUnpairedEvent
- eventName: cardreaders.kiosk.bluetooth.updated
eventType: KioskBluetoothTerminalUpdatedEvent
- eventName: cardreaders.kiosk.bluetooth.checkforupdates
eventType: KioskBluetoothTerminalInitiateUpdateCheckEvent
- eventName: cardreaders.kiosk.bluetooth.initiateinstallupdatemode
eventType: KioskBluetoothInstallUpdateInitiateEvent
- eventName: cardreaders.kiosk.bluetooth.cancelupdateinstall
eventType: KioskBluetoothTerminalCancelUpdateEvent
- eventName: cardreaders.kiosk.bluetooth.installationstatus
eventType: KioskBluetoothTerminalInstallationStatusEvent
- eventName: cardreaders.kiosk.bluetooth.firmwareupdateversion
eventType: KioskBluetoothTerminalFirmwareVersionStatusEvent
- eventName: cardreaders.kiosk.bluetooth.terminalactionstatechanged
eventType: KioskTerminalActionStateChangedEvent
- hubName: ChannelHub
events: []
- hubName: CustomerHub
events:
- eventName: customer.created
eventType: CustomerCreatedEvent
- eventName: customer.updated
eventType: CustomerUpdatedEvent
- eventName: customer.consent.updated
eventType: CustomerConsentUpdatedEvent
- hubName: HydraHub
events:
- eventName: hydra.assigned
eventType: HydraAssignedEvent
- eventName: hydra.request_reset
eventType: HydraRequestResetEvent
- eventName: hydra.setting_changed
eventType: HydraSettingChangedEvent
- eventName: hydra.conection_status_changed
eventType: HydraConnectionStatusChangedEvent
- eventName: hydra.unassigned
eventType: HydraUnAssignedEvent
- eventName: hydra.store.assigned
eventType: HydraStoreAssignedEvent
- eventName: hydra.store.unassigned
eventType: HydraStoreUnassignedEvent
- hubName: MenuCheckpointHub
events: []
- hubName: MenuHub
events: []
- hubName: OrderHub
events:
- eventName: order.created
eventType: OrderCreatedEvent
- eventName: order.rejected
eventType: OrderRejectedEvent
- eventName: order.accepted
eventType: OrderAcceptedEvent
- eventName: order.refunded
eventType: OrderRefundedEvent
- hubName: PhoneCallHub
events: []
- hubName: PrinterHub
events: []
- hubName: StoreGroupHub
events:
- eventName: store_group.created
eventType: StoreGroupCreatedEvent
- eventName: store_group.updated
eventType: StoreGroupUpdatedEvent
- eventName: store_group.deleted
eventType: StoreGroupDeletedEvent
- hubName: StoreHub
events:
- eventName: store.created
eventType: StoreCreatedEvent
- eventName: store.updated
eventType: StoreUpdatedEvent
- eventName: store.archived
eventType: StoreArchivedEvent
- eventName: store.unarchived
eventType: StoreUnarchivedEvent
- eventName: store.published
eventType: StorePublishedEvent
- eventName: store.unpublished
eventType: StoreUnpublishedEvent
- eventName: store.deleted
eventType: StoreDeletedEvent
- eventName: store.address.updated
eventType: StoreAddressUpdatedEvent
- eventName: store.opening_hours.updated
eventType: StoreOpeningHoursUpdatedEvent
- eventName: store.menu.assigned
eventType: StoreMenuAssignedEvent
- eventName: store.delivery_zone.created
eventType: DeliveryZoneCreatedEvent
- eventName: store.delivery_zone.updated
eventType: DeliveryZoneUpdatedEvent
- eventName: store.delivery_zone.deleted
eventType: DeliveryZoneDeletedEvent
- eventName: store_group.created
eventType: StoreGroupCreatedEvent
- eventName: store_group.updated
eventType: StoreGroupUpdatedEvent
- eventName: store_group.deleted
eventType: StoreGroupDeletedEvent
- eventName: store.business_hours_override.created
eventType: StoreBusinessHoursOverrideCreatedEvent
- eventName: store.business_hours_override.deleted
eventType: StoreBusinessHoursOverrideDeletedEvent
- eventName: store.preorder_config.updated
eventType: StorePreOrderConfigUpdatedEvent
- eventName: store.logo.created
eventType: StoreLogoCreatedEvent
- eventName: store.logo.updated
eventType: StoreLogoUpdatedEvent
- eventName: store.logo.deleted
eventType: StoreLogoDeletedEvent
- eventName: store.kiosk_setting.updated
eventType: StoreKioskSettingUpdatedEvent
- eventName: store.fee_config.updated
eventType: StoreFeeConfigUpdatedEvent
- hubName: TeammateHub
events:
- eventName: teammate.invite.sent
eventType: TeammateInviteSentEvent
- eventName: teammate.invite.accepted
eventType: TeammateInviteAcceptedEvent
- eventName: teammate.updated
eventType: TeammateUpdatedEvent
- eventName: teammate.deleted
eventType: TeammateDeletedEvent
- hubName: TelephonyConfigHub
events: []
- hubName: VoucherHub
events:
- eventName: voucher.created
eventType: VoucherCreatedEvent
- eventName: voucher.deleted
eventType: VoucherDeletedEvent
- eventName: voucher.updated
eventType: VoucherUpdatedEvent
- eventName: voucher.applied
eventType: VoucherAppliedEvent
- hubName: WebhookHub
events: []
- hubName: WebsiteHub
events: []