{"openapi":"3.1.0","info":{"title":"Revel Floor Setup (BYOK) API","version":"0.1.0","description":"Revel Floor Setup (BYOK) lets an AI assistant read your own Revel Floor Setup data through the Revel Floor Setup API with a key you supply (Revel API key and secret joined with a colon (KEY:SECRET)). Read-only: 6 tools (list_tables, list_table_sections, list_table_tags, list_devices, list_store_hours, list_currencies). The BYOK key travels with each request, is used for that one call only and is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-revel-floor-config.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-revel-floor-config/docs"},"termsOfService":"https://connectorbay.com/byok-revel-floor-config/terms"},"servers":[{"url":"https://byok-revel-floor-config.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-revel-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_tables":{"post":{"operationId":"list_tables","summary":"List dining tables with name, section, capacity, active flag and position on the floor plan. Use for \"How many tables an","description":"List dining tables with name, section, capacity, active flag and position on the floor plan. Use for \"How many tables and seats does my Revel restaurant have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"subdomain":{"description":"Your Revel account subdomain, the part before .revelup.com (for example 'mybistro'). Lowercase letters, digits and hyphens.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Subdomain","type":"string"},"establishment":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only objects of this establishment (location) id.","title":"Establishment"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to return only active objects.","title":"Active"},"limit":{"anyOf":[{"maximum":99,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many objects to return (Revel asks for fewer than 100; default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of objects to skip, to page through results.","title":"Offset"},"order_by":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Field to order by, for example id or -id (newest first).","title":"Order By"}},"required":["subdomain"],"title":"list_tablesArguments","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_sections":{"post":{"operationId":"list_table_sections","summary":"List table sections (dining areas such as Patio or Bar) with their tables and active flag. Use for \"What dining sections","description":"List table sections (dining areas such as Patio or Bar) with their tables and active flag. Use for \"What dining sections does my Revel restaurant have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"subdomain":{"description":"Your Revel account subdomain, the part before .revelup.com (for example 'mybistro'). Lowercase letters, digits and hyphens.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Subdomain","type":"string"},"establishment":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only objects of this establishment (location) id.","title":"Establishment"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to return only active objects.","title":"Active"},"limit":{"anyOf":[{"maximum":99,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many objects to return (Revel asks for fewer than 100; default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of objects to skip, to page through results.","title":"Offset"},"order_by":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Field to order by, for example id or -id (newest first).","title":"Order By"}},"required":["subdomain"],"title":"list_table_sectionsArguments","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_tags":{"post":{"operationId":"list_table_tags","summary":"List table tags (labels such as Window or Booth) with sorting and active flag. Use for \"What table tags exist in my Reve","description":"List table tags (labels such as Window or Booth) with sorting and active flag. Use for \"What table tags exist in my Revel account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"subdomain":{"description":"Your Revel account subdomain, the part before .revelup.com (for example 'mybistro'). Lowercase letters, digits and hyphens.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Subdomain","type":"string"},"establishment":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only objects of this establishment (location) id.","title":"Establishment"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to return only active objects.","title":"Active"},"deleted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to return deleted tags.","title":"Deleted"},"limit":{"anyOf":[{"maximum":99,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many objects to return (Revel asks for fewer than 100; default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of objects to skip, to page through results.","title":"Offset"},"order_by":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Field to order by, for example id or -id (newest first).","title":"Order By"}},"required":["subdomain"],"title":"list_table_tagsArguments","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 POS devices and printers with name, type, platform, model, software version and active flag. Credentials and networ","description":"List POS devices and printers with name, type, platform, model, software version and active flag. Credentials and network details are left out. Use for \"Which devices and printers are registered in my Revel account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"subdomain":{"description":"Your Revel account subdomain, the part before .revelup.com (for example 'mybistro'). Lowercase letters, digits and hyphens.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Subdomain","type":"string"},"establishment":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only objects of this establishment (location) id.","title":"Establishment"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to return only active objects.","title":"Active"},"device_type":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only devices of this Revel device type number.","title":"Device Type"},"printer_pos_or_items":{"anyOf":[{"maximum":2,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Printer role filter: 0 POS, 1 items, 2 other.","title":"Printer Pos Or Items"},"limit":{"anyOf":[{"maximum":99,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many objects to return (Revel asks for fewer than 100; default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of objects to skip, to page through results.","title":"Offset"},"order_by":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Field to order by, for example id or -id (newest first).","title":"Order By"}},"required":["subdomain"],"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_store_hours":{"post":{"operationId":"list_store_hours","summary":"List store hours schedules (and other timetables) with type, date range, active flag and the weekday open and close time","description":"List store hours schedules (and other timetables) with type, date range, active flag and the weekday open and close times. Use for \"What are the opening hours configured in Revel\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"subdomain":{"description":"Your Revel account subdomain, the part before .revelup.com (for example 'mybistro'). Lowercase letters, digits and hyphens.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Subdomain","type":"string"},"establishment":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only objects of this establishment (location) id.","title":"Establishment"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to return only active objects.","title":"Active"},"type":{"anyOf":[{"maximum":1,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Timetable type: 0 store hours, 1 other.","title":"Type"},"id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only this timetable id.","title":"Id"},"limit":{"anyOf":[{"maximum":99,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many objects to return (Revel asks for fewer than 100; default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of objects to skip, to page through results.","title":"Offset"},"order_by":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Field to order by, for example id or -id (newest first).","title":"Order By"}},"required":["subdomain"],"title":"list_store_hoursArguments","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_currencies":{"post":{"operationId":"list_currencies","summary":"List currencies available in the account with name, symbol and active flag. Use for \"Which currencies does my Revel acco","description":"List currencies available in the account with name, symbol and active flag. Use for \"Which currencies does my Revel account support\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"subdomain":{"description":"Your Revel account subdomain, the part before .revelup.com (for example 'mybistro'). Lowercase letters, digits and hyphens.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Subdomain","type":"string"},"limit":{"anyOf":[{"maximum":99,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many objects to return (Revel asks for fewer than 100; default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of objects to skip, to page through results.","title":"Offset"},"order_by":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Field to order by, for example id or -id (newest first).","title":"Order By"}},"required":["subdomain"],"title":"list_currenciesArguments","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}}}}