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-device-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 Device API
servers:
- url: https://api.flipdish.co
tags:
- name: Device
paths:
/api/v1.0/{appId}/devices/device/{deviceModel}/{deviceId}:
get:
tags:
- Device
operationId: GetDeviceDetails
parameters:
- name: appId
in: path
required: true
schema:
type: string
- name: deviceModel
in: path
required: true
schema:
type: string
- name: deviceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RestApiResult_ClientDevice'
text/json:
schema:
$ref: '#/components/schemas/RestApiResult_ClientDevice'
application/xml:
schema:
$ref: '#/components/schemas/RestApiResult_ClientDevice'
text/xml:
schema:
$ref: '#/components/schemas/RestApiResult_ClientDevice'
'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
summary: Get device details
x-summary-source: derived
/api/v1.0/{appId}/devices/search:
get:
tags:
- Device
operationId: SearchDevices
parameters:
- name: appId
in: path
required: true
schema:
type: string
- name: storeId
in: query
required: false
schema:
type: integer
format: int32
- name: deviceModel
in: query
required: false
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RestApiArrayResult_ClientDeviceSummary'
text/json:
schema:
$ref: '#/components/schemas/RestApiArrayResult_ClientDeviceSummary'
application/xml:
schema:
$ref: '#/components/schemas/RestApiArrayResult_ClientDeviceSummary'
text/xml:
schema:
$ref: '#/components/schemas/RestApiArrayResult_ClientDeviceSummary'
'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
summary: Search devices
x-summary-source: derived
/api/v1.0/{appId}/devices/assign:
post:
tags:
- Device
operationId: AssignDevice
parameters:
- name: appId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RestApiResult_ClientDeviceEnrollmentResult'
text/json:
schema:
$ref: '#/components/schemas/RestApiResult_ClientDeviceEnrollmentResult'
application/xml:
schema:
$ref: '#/components/schemas/RestApiResult_ClientDeviceEnrollmentResult'
text/xml:
schema:
$ref: '#/components/schemas/RestApiResult_ClientDeviceEnrollmentResult'
'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
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ClientDeviceAssignEnrolledDevice'
text/json:
schema:
$ref: '#/components/schemas/ClientDeviceAssignEnrolledDevice'
application/xml:
schema:
$ref: '#/components/schemas/ClientDeviceAssignEnrolledDevice'
text/xml:
schema:
$ref: '#/components/schemas/ClientDeviceAssignEnrolledDevice'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ClientDeviceAssignEnrolledDevice'
required: true
summary: Assign device
x-summary-source: derived
/api/v1.0/{appId}/devices/enroll:
post:
tags:
- Device
operationId: EnrollDevice
parameters:
- name: appId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/RestApiResult_ClientDeviceEnrollmentResult'
text/json:
schema:
$ref: '#/components/schemas/RestApiResult_ClientDeviceEnrollmentResult'
application/xml:
schema:
$ref: '#/components/schemas/RestApiResult_ClientDeviceEnrollmentResult'
text/xml:
schema:
$ref: '#/components/schemas/RestApiResult_ClientDeviceEnrollmentResult'
'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
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ClientDeviceEnroll'
text/json:
schema:
$ref: '#/components/schemas/ClientDeviceEnroll'
application/xml:
schema:
$ref: '#/components/schemas/ClientDeviceEnroll'
text/xml:
schema:
$ref: '#/components/schemas/ClientDeviceEnroll'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ClientDeviceEnroll'
required: true
summary: Enroll device
x-summary-source: derived
components:
schemas:
RestApiForbiddenResult:
description: Rest Api Forbidden Result
required:
- Message
type: object
properties:
Message:
description: Message
type: string
readOnly: true
RestApiArrayResult_ClientDeviceSummary:
description: Rest api array result
required:
- Data
type: object
properties:
Data:
description: Generic data object.
type: array
items:
$ref: '#/components/schemas/ClientDeviceSummary'
ClientDeviceAssignEnrolledDevice:
description: Assign enrolled device to AppId
type: object
properties:
DeviceModel:
description: Device Model
type: string
PinCode:
description: Pin Code
type: string
ClientDeviceSummary:
description: Client Device summary (header fields)
type: object
properties:
DeviceModel:
description: Device Model
type: string
DeviceId:
description: Device Id
type: string
DeviceName:
description: Device Name
type: string
RestApiResult_ClientDevice:
description: Rest api result
required:
- Data
type: object
properties:
Data:
$ref: '#/components/schemas/ClientDevice'
description: Generic data object.
RestApiResult_ClientDeviceEnrollmentResult:
description: Rest api result
required:
- Data
type: object
properties:
Data:
$ref: '#/components/schemas/ClientDeviceEnrollmentResult'
description: Generic data object.
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
ClientDeviceEnroll:
description: Enroll a client device
type: object
properties:
DeviceModel:
description: Device model
type: string
DeviceId:
description: Device Id
type: string
DeviceName:
description: Device Name
type: string
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'
ClientDevice:
description: Client Device
type: object
properties:
DeviceModel:
description: Device Model
type: string
DeviceId:
description: Device Id
type: string
DeviceName:
description: Device Name
type: string
ClientDeviceEnrollmentResult:
description: Device enrollment result
type: object
properties:
PinCode:
description: PIN Code for assigning
type: string
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: []