{"openapi":"3.1.0","info":{"title":"Unit (BYOK) API","version":"0.1.0","description":"Unit (BYOK) lets an AI assistant read your own Unit data through the Unit API with a key you supply (live API token (needs the accounts, transactions, payments and statements read scopes)). Read-only: 8 tools (list_accounts, get_account, list_account_end_of_day_balances, list_transactions, get_transaction, list_ach_payments, list_received_payments, list_statements). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-unit.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-unit/docs"},"termsOfService":"https://connectorbay.com/byok-unit/terms"},"servers":[{"url":"https://byok-unit.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-unit/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_accounts":{"post":{"operationId":"list_accounts","summary":"List deposit accounts with name, status, product, currency and balance, held and available amounts in cents; account and","description":"List deposit accounts with name, status, product, currency and balance, held and available amounts in cents; account and routing numbers are left out. Use for \"What are the balances of my Unit accounts\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many resources to return (1 to 1000, default 100).","title":"Page Limit"},"page_offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many resources to skip, for paging (default 0).","title":"Page Offset"},"customer_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this customer id.","title":"Customer Id"},"deposit_product_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only accounts of this deposit product id.","title":"Deposit Product Id"},"from_balance":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only accounts with a balance of at least this many cents.","title":"From Balance"},"to_balance":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only accounts with a balance of at most this many cents.","title":"To Balance"}},"title":"list_accountsArguments","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_account":{"post":{"operationId":"get_account","summary":"Get one deposit account by id: status, product, currency, balance, held and available amounts in cents; account numbers ","description":"Get one deposit account by id: status, product, currency, balance, held and available amounts in cents; account numbers are left out. Use for \"What is the available balance on Unit account 10001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Unit deposit account id.","maxLength":200,"title":"Id","type":"string"}},"required":["id"],"title":"get_accountArguments","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_account_end_of_day_balances":{"post":{"operationId":"list_account_end_of_day_balances","summary":"List end-of-day balances (balance, available, hold in cents) of an account or customer's accounts by date; give accountI","description":"List end-of-day balances (balance, available, hold in cents) of an account or customer's accounts by date; give accountId or customerId. Use for \"Show the end-of-day balances of Unit account 30317 for last month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many resources to return (1 to 1000, default 100).","title":"Page Limit"},"page_offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many resources to skip, for paging (default 0).","title":"Page Offset"},"account_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this account id.","title":"Account Id"},"customer_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this customer id.","title":"Customer Id"},"since":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only balances on or after this date, YYYY-MM-DD.","title":"Since"},"until":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only balances on or before this date, YYYY-MM-DD.","title":"Until"}},"title":"list_account_end_of_day_balancesArguments","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_transactions":{"post":{"operationId":"list_transactions","summary":"List transactions with direction, amount and running balance in cents, summary and description; filter by account, custo","description":"List transactions with direction, amount and running balance in cents, summary and description; filter by account, customer, time, amount or text. Use for \"What transactions hit my Unit accounts this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many resources to return (1 to 1000, default 100).","title":"Page Limit"},"page_offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many resources to skip, for paging (default 0).","title":"Page Offset"},"account_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this account id.","title":"Account Id"},"customer_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this customer id.","title":"Customer Id"},"since":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only items after this RFC 3339 time, for example 2026-01-01T00:00:00.000Z.","title":"Since"},"until":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only items before this RFC 3339 time.","title":"Until"},"sort":{"anyOf":[{"enum":["createdAt","-createdAt"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by creation time: createdAt (oldest first) or -createdAt (newest first).","title":"Sort"},"card_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only transactions of this card id.","title":"Card Id"},"query":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Full-text search over transactions.","title":"Query"},"from_amount":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only transactions of at least this many cents.","title":"From Amount"},"to_amount":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only transactions of at most this many cents.","title":"To Amount"},"exclude_fees":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to leave out fee transactions.","title":"Exclude Fees"}},"title":"list_transactionsArguments","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_transaction":{"post":{"operationId":"get_transaction","summary":"Get one transaction by account id and transaction id: direction, amount, running balance, summary and description. Use f","description":"Get one transaction by account id and transaction id: direction, amount, running balance, summary and description. Use for \"Show Unit transaction 337 of account 10001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_id":{"description":"Unit account id.","maxLength":200,"title":"Account Id","type":"string"},"transaction_id":{"description":"Transaction id.","maxLength":200,"title":"Transaction Id","type":"string"}},"required":["account_id","transaction_id"],"title":"get_transactionArguments","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_ach_payments":{"post":{"operationId":"list_ach_payments","summary":"List originated ACH payments with direction, amount in cents, status and description; counterparty account numbers are l","description":"List originated ACH payments with direction, amount in cents, status and description; counterparty account numbers are left out. Use for \"Which Unit ACH payments are still pending\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many resources to return (1 to 1000, default 100).","title":"Page Limit"},"page_offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many resources to skip, for paging (default 0).","title":"Page Offset"},"account_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this account id.","title":"Account Id"},"customer_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this customer id.","title":"Customer Id"},"since":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only items after this RFC 3339 time, for example 2026-01-01T00:00:00.000Z.","title":"Since"},"until":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only items before this RFC 3339 time.","title":"Until"},"sort":{"anyOf":[{"enum":["createdAt","-createdAt"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by creation time: createdAt (oldest first) or -createdAt (newest first).","title":"Sort"},"from_amount":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only payments of at least this many cents.","title":"From Amount"},"to_amount":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only payments of at most this many cents.","title":"To Amount"}},"title":"list_ach_paymentsArguments","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_received_payments":{"post":{"operationId":"list_received_payments","summary":"List received ACH payments with status, direction, amount in cents, sender company, trace number and completion date. Us","description":"List received ACH payments with status, direction, amount in cents, sender company, trace number and completion date. Use for \"What ACH payments did I receive at Unit recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many resources to return (1 to 1000, default 100).","title":"Page Limit"},"page_offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many resources to skip, for paging (default 0).","title":"Page Offset"},"account_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this account id.","title":"Account Id"},"customer_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this customer id.","title":"Customer Id"},"since":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only payments on or after this date, YYYY-MM-DD.","title":"Since"},"until":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only payments on or before this date, YYYY-MM-DD.","title":"Until"},"include_completed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include completed payments (by default only pending ones are listed).","title":"Include Completed"},"from_amount":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only payments of at least this many cents.","title":"From Amount"},"to_amount":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Only payments of at most this many cents.","title":"To Amount"},"sort":{"anyOf":[{"enum":["createdAt","-createdAt"],"type":"string"},{"type":"null"}],"default":null,"description":"Order by creation time: createdAt (oldest first) or -createdAt (newest first).","title":"Sort"}},"title":"list_received_paymentsArguments","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_statements":{"post":{"operationId":"list_statements","summary":"List monthly account statements (period only; the PDF or HTML must be fetched elsewhere). Use for \"Which Unit statements","description":"List monthly account statements (period only; the PDF or HTML must be fetched elsewhere). Use for \"Which Unit statements exist for account 1000\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many resources to return (1 to 1000, default 100).","title":"Page Limit"},"page_offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many resources to skip, for paging (default 0).","title":"Page Offset"},"account_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this account id.","title":"Account Id"},"customer_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only items of this customer id.","title":"Customer Id"},"period":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only statements of this month, YYYY-MM.","title":"Period"}},"title":"list_statementsArguments","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}}}}