{"openapi":"3.1.0","info":{"title":"Epos Now Floor Setup (BYOK) API","version":"0.1.0","description":"Epos Now Floor Setup (BYOK) lets an AI assistant read your own Epos Now Floor Setup data through the Epos Now Floor Setup API with a key you supply (Epos Now API key). Read-only: 7 tools (list_location_areas, list_table_plans, list_devices, list_discount_reasons, list_refund_reasons, list_stock_transfer_reasons, list_kitchen_display_settings). The BYOK key travels with each request, is used for...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-eposnow-floor-config.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-eposnow-floor-config/docs"},"termsOfService":"https://connectorbay.com/byok-eposnow-floor-config/terms"},"servers":[{"url":"https://byok-eposnow-floor-config.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-eposnow-floor-config/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_location_areas":{"post":{"operationId":"list_location_areas","summary":"List location areas (regions that group your sites) with name, parent area and description. Use for \"What location areas","description":"List location areas (regions that group your sites) with name, parent area and description. Use for \"What location areas are set up in my Epos Now account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. Each page holds up to 200 items.","title":"Page"}},"title":"list_location_areasArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_table_plans":{"post":{"operationId":"list_table_plans","summary":"List table plan seating areas with their tables and seat counts, per location. Use for \"How many tables and seats do my ","description":"List table plan seating areas with their tables and seat counts, per location. Use for \"How many tables and seats do my Epos Now seating areas have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. Each page holds up to 200 items.","title":"Page"}},"title":"list_table_plansArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_devices":{"post":{"operationId":"list_devices","summary":"List the till devices of the token's location (or all locations) with name, description and location. Use for \"Which til","description":"List the till devices of the token's location (or all locations) with name, description and location. Use for \"Which tills are registered in my Epos Now account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"all_locations":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to list devices for all locations instead of only the token's location.","title":"All Locations"},"include_disabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include disabled devices.","title":"Include Disabled"},"page_number":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"}},"title":"list_devicesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_discount_reasons":{"post":{"operationId":"list_discount_reasons","summary":"List the discount reasons staff can pick, with each default percentage. Use for \"What discount reasons does my Epos Now ","description":"List the discount reasons staff can pick, with each default percentage. Use for \"What discount reasons does my Epos Now till offer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. Each page holds up to 200 items.","title":"Page"}},"title":"list_discount_reasonsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_refund_reasons":{"post":{"operationId":"list_refund_reasons","summary":"List the refund reasons staff can pick, with whether items go back into stock. Use for \"What refund reasons are configur","description":"List the refund reasons staff can pick, with whether items go back into stock. Use for \"What refund reasons are configured in Epos Now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. Each page holds up to 200 items.","title":"Page"}},"title":"list_refund_reasonsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_stock_transfer_reasons":{"post":{"operationId":"list_stock_transfer_reasons","summary":"List the reasons available for stock movements and transfers. Use for \"What stock movement reasons exist in Epos Now\".","description":"List the reasons available for stock movements and transfers. Use for \"What stock movement reasons exist in Epos Now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1. Each page holds up to 200 items.","title":"Page"}},"title":"list_stock_transfer_reasonsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_kitchen_display_settings":{"post":{"operationId":"list_kitchen_display_settings","summary":"List the kitchen display (local messaging) configuration per location: whether enabled, host URL and discovery settings.","description":"List the kitchen display (local messaging) configuration per location: whether enabled, host URL and discovery settings. Use for \"Is the kitchen display enabled at my Epos Now locations\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_kitchen_display_settingsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}