{"openapi":"3.1.0","info":{"title":"Bridge (BYOK) API","version":"0.1.0","description":"Bridge (BYOK) lets an AI assistant read your own Bridge data through the Bridge API with a key you supply (Bridge API key). Read-only: 10 tools (get_exchange_rate, list_transfers, get_transfer, list_wallets, get_wallet_total_balances, list_prefunded_accounts, get_prefunded_account_history, list_virtual_account_activity, list_liquidation_drains, get_api_key_info). 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-bridgexyz.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-bridgexyz/docs"},"termsOfService":"https://connectorbay.com/byok-bridgexyz/terms"},"servers":[{"url":"https://byok-bridgexyz.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-bridgexyz/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/get_exchange_rate":{"post":{"operationId":"get_exchange_rate","summary":"Get the current mid-market, buy and sell exchange rate between two supported currencies (BRL, COP, EUR, GBP, MXN, USD, U","description":"Get the current mid-market, buy and sell exchange rate between two supported currencies (BRL, COP, EUR, GBP, MXN, USD, USDT). Use for \"What is the current USD to MXN rate at Bridge\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_currency":{"description":"Currency to convert from.","enum":["brl","cop","eur","gbp","mxn","usd","usdt"],"title":"From Currency","type":"string"},"to":{"description":"Currency to convert to.","enum":["brl","cop","eur","gbp","mxn","usd","usdt"],"title":"To","type":"string"}},"required":["from_currency","to"],"title":"get_exchange_rateArguments","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_transfers":{"post":{"operationId":"list_transfers","summary":"List transfers (fiat and stablecoin) newest first with state, amount, currency, fees, source and destination rails and d","description":"List transfers (fiat and stablecoin) newest first with state, amount, currency, fees, source and destination rails and dates. Use for \"Which Bridge transfers are still awaiting funds\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"state":{"anyOf":[{"enum":["awaiting_funds","funds_received","payment_submitted","payment_processed","in_review","kyc_required","kyc_in_review","developer_kyb_required","canceled","error","returned","refund_in_flight","refund_failed","refunded","undeliverable"],"type":"string"},{"type":"null"}],"default":null,"description":"Only transfers in this state.","title":"State"},"tx_hash":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Only transfers with this blockchain transaction hash.","title":"Tx Hash"},"updated_after_ms":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only objects updated after this UNIX timestamp in milliseconds.","title":"Updated After Ms"},"updated_before_ms":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only objects updated before this UNIX timestamp in milliseconds.","title":"Updated Before Ms"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the id of the last item of the current page; returns the next (older) items. Use only one of starting_after or ending_before.","title":"Starting After"},"ending_before":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the id of the first item of a known page; returns newer items. Use only one of starting_after or ending_before.","title":"Ending Before"}},"title":"list_transfersArguments","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_transfer":{"post":{"operationId":"get_transfer","summary":"Get one transfer by ID with state, amount, currency, fees, source and destination rails and dates. Use for \"What is the ","description":"Get one transfer by ID with state, amount, currency, fees, source and destination rails and dates. Use for \"What is the status of Bridge transfer 0000-1111\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"transfer_id":{"description":"Bridge transfer ID (UUID).","maxLength":200,"title":"Transfer Id","type":"string"}},"required":["transfer_id"],"title":"get_transferArguments","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_wallets":{"post":{"operationId":"list_wallets","summary":"List Bridge custodial wallets with chain, address and creation date. Use for \"Which Bridge wallets do I have and on whic","description":"List Bridge custodial wallets with chain, address and creation date. Use for \"Which Bridge wallets do I have and on which chains\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the id of the last item of the current page; returns the next (older) items. Use only one of starting_after or ending_before.","title":"Starting After"},"ending_before":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the id of the first item of a known page; returns newer items. Use only one of starting_after or ending_before.","title":"Ending Before"}},"title":"list_walletsArguments","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_wallet_total_balances":{"post":{"operationId":"get_wallet_total_balances","summary":"Get the total balance across all Bridge wallets per currency and chain. Use for \"What is the total USDC balance across m","description":"Get the total balance across all Bridge wallets per currency and chain. Use for \"What is the total USDC balance across my Bridge wallets\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_wallet_total_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_prefunded_accounts":{"post":{"operationId":"list_prefunded_accounts","summary":"List prefunded accounts with name, currency and available balance. Use for \"How much is left in my Bridge prefunded acco","description":"List prefunded accounts with name, currency and available balance. Use for \"How much is left in my Bridge prefunded accounts\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_prefunded_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_prefunded_account_history":{"post":{"operationId":"get_prefunded_account_history","summary":"List the funding history of one prefunded account: deposits and withdrawals with amount, balance after and time. Use for","description":"List the funding history of one prefunded account: deposits and withdrawals with amount, balance after and time. Use for \"Show the funding history of my Bridge prefunded account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"prefunded_account_id":{"description":"Prefunded account ID.","maxLength":200,"title":"Prefunded Account Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the id of the last item of the current page; returns the next (older) items. Use only one of starting_after or ending_before.","title":"Starting After"},"ending_before":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the id of the first item of a known page; returns newer items. Use only one of starting_after or ending_before.","title":"Ending Before"}},"required":["prefunded_account_id"],"title":"get_prefunded_account_historyArguments","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_virtual_account_activity":{"post":{"operationId":"list_virtual_account_activity","summary":"List activity across all virtual accounts (deposits received, payments submitted and processed, refunds) with amounts, f","description":"List activity across all virtual accounts (deposits received, payments submitted and processed, refunds) with amounts, fees and dates. Use for \"What deposits arrived on Bridge virtual accounts today\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"event_type":{"anyOf":[{"enum":["funds_received","payment_submitted","payment_processed","in_review","refund","refund_in_flight","refund_failed","microdeposit","account_update","deactivation","activation"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this event type.","title":"Event Type"},"tx_hash":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Only events with this blockchain transaction hash.","title":"Tx Hash"},"updated_after_ms":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only objects updated after this UNIX timestamp in milliseconds.","title":"Updated After Ms"},"updated_before_ms":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only objects updated before this UNIX timestamp in milliseconds.","title":"Updated Before Ms"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the id of the last item of the current page; returns the next (older) items. Use only one of starting_after or ending_before.","title":"Starting After"},"ending_before":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the id of the first item of a known page; returns newer items. Use only one of starting_after or ending_before.","title":"Ending Before"}},"title":"list_virtual_account_activityArguments","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_liquidation_drains":{"post":{"operationId":"list_liquidation_drains","summary":"List liquidation address drains (incoming crypto converted and sent out) across all customers with amount, state and dat","description":"List liquidation address drains (incoming crypto converted and sent out) across all customers with amount, state and dates. Use for \"Which liquidation address drains completed this week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"drain_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only this drain ID.","title":"Drain Id"},"tx_hash":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Only drains with this deposit transaction hash.","title":"Tx Hash"},"updated_after_ms":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only objects updated after this UNIX timestamp in milliseconds.","title":"Updated After Ms"},"updated_before_ms":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only objects updated before this UNIX timestamp in milliseconds.","title":"Updated Before Ms"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the id of the last item of the current page; returns the next (older) items. Use only one of starting_after or ending_before.","title":"Starting After"},"ending_before":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the id of the first item of a known page; returns newer items. Use only one of starting_after or ending_before.","title":"Ending Before"}},"title":"list_liquidation_drainsArguments","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_api_key_info":{"post":{"operationId":"get_api_key_info","summary":"Describe the API key in use: type, owner, state, scopes, name and creation time (the key itself is not shown). Use for \"","description":"Describe the API key in use: type, owner, state, scopes, name and creation time (the key itself is not shown). Use for \"Which Bridge key am I using and what can it do\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_api_key_infoArguments","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}}}}