{"openapi":"3.1.0","info":{"title":"Revel Taxes (BYOK) API","version":"0.1.0","description":"Revel Taxes (BYOK) lets an AI assistant read your own Revel Taxes data through the Revel Taxes API with a key you supply (Revel API key and secret joined with a colon (KEY:SECRET)). Read-only: 6 tools (list_tax_rules, list_tax_rates, list_tax_tables, list_tax_agencies, list_tax_codes, list_tax_product_groups). The BYOK key travels with each request, is used for that one call only and is never...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-revel-tax-config.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-revel-tax-config/docs"},"termsOfService":"https://connectorbay.com/byok-revel-tax-config/terms"},"servers":[{"url":"https://byok-revel-tax-config.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-revel-tax-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_tax_rules":{"post":{"operationId":"list_tax_rules","summary":"List tax rules with name, type (percentage or flat), active flag, thresholds, rounding and the tax rates inside each rul","description":"List tax rules with name, type (percentage or flat), active flag, thresholds, rounding and the tax rates inside each rule. Use for \"What tax rules are set up 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"},"enterprise":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only tax rules configured for this establishment id.","title":"Enterprise"},"tax_rate":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only tax rules containing this TaxRate id.","title":"Tax Rate"},"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_tax_rulesArguments","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_tax_rates":{"post":{"operationId":"list_tax_rates","summary":"List tax rates with the percentage, effective dates and the tax rule they belong to. Use for \"What tax rates and effecti","description":"List tax rates with the percentage, effective dates and the tax rule they belong to. Use for \"What tax rates and effective dates does Revel 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"},"tax_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Only rates with this percentage value.","title":"Tax Rate"},"id":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only the tax rate with this 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_tax_ratesArguments","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_tax_tables":{"post":{"operationId":"list_tax_tables","summary":"List tax tables (bracketed tax rates by order amount) with name, active flag and establishment. Use for \"Which tax table","description":"List tax tables (bracketed tax rates by order amount) with name, active flag and establishment. Use for \"Which tax tables 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"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to return only active objects.","title":"Active"},"establishment":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only objects of this establishment (location) id.","title":"Establishment"},"updated_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only tax tables updated at or after this ISO 8601 time.","title":"Updated Date"},"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_tax_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_tax_agencies":{"post":{"operationId":"list_tax_agencies","summary":"List tax agencies (authorities taxes are reported to) with name and active flag. Use for \"Which tax agencies are set up ","description":"List tax agencies (authorities taxes are reported to) with name and active flag. Use for \"Which tax agencies are set up 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"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to return only active objects.","title":"Active"},"establishment":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only objects of this establishment (location) id.","title":"Establishment"},"name":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only agencies with exactly this name.","title":"Name"},"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_tax_agenciesArguments","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_tax_codes":{"post":{"operationId":"list_tax_codes","summary":"List tax codes used to classify products for tax, with code, name, type and active flag. Use for \"What tax codes does my","description":"List tax codes used to classify products for tax, with code, name, type and active flag. Use for \"What tax codes does my Revel account use\".","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"},"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_tax_codesArguments","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_tax_product_groups":{"post":{"operationId":"list_tax_product_groups","summary":"List product tax groups with the tax rules each group applies. Use for \"Which tax product groups are configured in Revel","description":"List product tax groups with the tax rules each group applies. Use for \"Which tax product groups are 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"},"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_tax_product_groupsArguments","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}}}}