{"openapi":"3.1.0","info":{"title":"Routable (BYOK) API","version":"0.1.0","description":"Routable (BYOK) lets an AI assistant read your own Routable data through the Routable API with a key you supply (Routable API token). Read-only: 5 tools (list_payables, list_receivables, list_companies, get_balance, get_workspace_settings). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to api.routable.com....\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-routable.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-routable/docs"},"termsOfService":"https://connectorbay.com/byok-routable/terms"},"servers":[{"url":"https://byok-routable.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-routable/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_payables":{"post":{"operationId":"list_payables","summary":"List payables (bills and vendor payments) with amount, amount due and paid, status, due date, delivery method and the ve","description":"List payables (bills and vendor payments) with amount, amount due and paid, status, due date, delivery method and the vendor. Bank account details are not returned. Use for \"Which Routable payables are due this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Status to filter by, for example created, completed, canceled, externally_paid or compliance_hold.","title":"Status"},"company":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only payables made to this company id.","title":"Company"},"sort":{"anyOf":[{"enum":["amount_due","-amount_due","amount_paid","-amount_paid","created_at","-created_at","due_on","-due_on","issued_on","-issued_on"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by amount_due, amount_paid, created_at, due_on or issued_on; prefix with '-' for descending.","title":"Sort"},"due_on_gte":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only payables due on or after this date (YYYY-MM-DD).","title":"Due On Gte"},"due_on_lte":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only payables due on or before this date (YYYY-MM-DD).","title":"Due On Lte"},"bill_number":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only the payable with this bill number.","title":"Bill Number"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100).","title":"Page Size"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_payablesArguments","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_receivables":{"post":{"operationId":"list_receivables","summary":"List receivables (invoices you send) with amount, amount due and paid, currency, status, issue and due dates. Bank accou","description":"List receivables (invoices you send) with amount, amount due and paid, currency, status, issue and due dates. Bank account details are not returned. Use for \"Which Routable receivables are still unpaid\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Status to filter by, for example created, completed, canceled, externally_paid or compliance_hold.","title":"Status"},"company":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only receivables due from this company id.","title":"Company"},"sort":{"anyOf":[{"enum":["amount_due","-amount_due","amount_paid","-amount_paid","created_at","-created_at","due_on","-due_on","issued_on","-issued_on"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by amount_due, amount_paid, created_at, due_on or issued_on; prefix with '-' for descending.","title":"Sort"},"due_on_lte":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only receivables due on or before this date (YYYY-MM-DD).","title":"Due On Lte"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100).","title":"Page Size"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_receivablesArguments","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_companies":{"post":{"operationId":"list_companies","summary":"List vendor and customer companies with display name, type, country, vendor and customer flags, status and tax form stat","description":"List vendor and customer companies with display name, type, country, vendor and customer flags, status and tax form status. Contacts are not returned. Use for \"Which vendors do I have set up in Routable\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Search across display name and business name.","title":"Search"},"status":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Company status to filter by, for example accepted.","title":"Status"},"external_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only the company with this external id.","title":"External Id"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results per page (1 to 100).","title":"Page Size"},"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_companiesArguments","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/get_balance":{"post":{"operationId":"get_balance","summary":"Show the Routable balance account: name, available amount, pending amount and whether it is usable for payables and rece","description":"Show the Routable balance account: name, available amount, pending amount and whether it is usable for payables and receivables. Use for \"How much is in my Routable balance\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_balanceArguments","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/get_workspace_settings":{"post":{"operationId":"get_workspace_settings","summary":"Show the Routable workspace: company name, workspace name and the connected accounting software. Use for \"Which accounti","description":"Show the Routable workspace: company name, workspace name and the connected accounting software. Use for \"Which accounting software is my Routable workspace connected to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_workspace_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}}}}