openapi: 3.1.0 info: title: Endpoints Accounts Routes API version: 1.0.0 servers: - url: https://api.agora.finance description: Production tags: - name: Routes paths: /v0/routes: get: operationId: get summary: List Routes description: "\n The endpoints exposed here are currently in **Beta**! As we continue to build our initial offering, these endpoints may implement breaking changes. Be sure to check back for our change log regularly as a precaution.\n\n\nReturn every route on the authenticated organization. Each route includes the full `instructions` block so callers can resolve memos and mint/redeem addresses without an additional retrieve.\n" tags: - Routes parameters: - name: cursor in: query required: false schema: type: string - name: limit in: query required: false schema: type: integer default: 50 - name: Authorization in: header description: 'Session JWT from POST /v0/auth/token, sent as `Authorization: Bearer `.' required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/routes_get_Response_200' '400': description: One or more request parameters are invalid. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_400_parameter_invalid' '401': description: Authentication is required. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_401_unauthorized' '403': description: The account is not eligible for the requested route direction. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_403_account_not_eligible_forbidden' '404': description: Resource not found. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_404_not_found' '429': description: Too many requests. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_429_rate_limit_exceeded' '500': description: An unexpected error occurred. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_500_internal_error' post: operationId: create summary: Create a Route description: "\n The endpoints exposed here are currently in **Beta**! As we continue to build our initial offering, these endpoints may implement breaking changes. Be sure to check back for our change log regularly as a precaution.\n\n\nCreate a persistent source → destination route. The response includes reusable settlement instructions — a wire memo for fiat sources, or one mint or redeem address per supported chain for blockchain sources — that the caller uses to initiate transfers. A single set of instructions is valid indefinitely; every inbound transfer matching them triggers a separate settlement to the route's destination.\n\nThe route topology is determined by `from.currency`, `to.currency`, and the destination `to.chain`. `to.accountId` references a registered account from `GET /v0/accounts`.\n\n\n **Fiat routes need the bank account on file first.** Add the bank account you'll *send from* (mint from `usd`) or *receive into* (redeem to `usd`) before you transact. If a wire arrives from — or a payout is owed to — a bank account Agora hasn't added and verified, settlement is held and processing is delayed until it's on file.\n\n\n### Supported topologies\n\n| `from.currency` | `to.currency` (+ `to.chain`) | Behavior |\n|---|---|---|\n| `usd` | `ausd` on a chain | Mint: wire USD with the memo, receive AUSD at the destination |\n| `ausd` | `usd` (bank account) | Redeem: send AUSD to the redeem address, receive a USD payout |\n| `stablecoin` (wildcard) | `ausd` on a chain | Mint with stablecoins: send any in-scope stablecoin to the mint address, receive AUSD at the destination. See the `stablecoin` section below for the in-scope asset list. |\n| `ausd` | `usdc` on a chain | Redeem to tokens: send AUSD to the redeem address, receive `usdc`. |\n\n### What `stablecoin` means\n\n`stablecoin` is a wildcard source currency standing in for any stablecoin Agora currently accepts — **today, only `usdc`**. The mint address a mint-from-stablecoin route returns is currency-agnostic, settling AUSD regardless of which in-scope stablecoin is sent. If you have questions about which currencies can be accepted, reach out to the [operations team](mailto:support@agora.finance).\n" tags: - Routes parameters: - name: Authorization in: header description: 'Session JWT from POST /v0/auth/token, sent as `Authorization: Bearer `.' required: true schema: type: string responses: '201': description: OK content: application/json: schema: $ref: '#/components/schemas/routes_create_Response_201' '400': description: The requested chain is not supported. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_400_chain_unsupported_currency_unsupported_direction_unsupported_parameter_invalid' '401': description: Authentication is required. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_401_unauthorized' '403': description: The account is not eligible for the requested route direction. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_403_account_not_eligible_forbidden' '404': description: Account not found. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_404_account_not_found_not_found' '409': description: A route with these parameters already exists. Use GET /routes to look it up. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_409_route_already_exists' '429': description: Too many requests. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_429_rate_limit_exceeded' '500': description: An unexpected error occurred. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_500_internal_error' '503': description: Route creation temporarily unavailable. Please retry shortly. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_503_route_creation_unavailable' requestBody: content: application/json: schema: type: object properties: name: type: string from: $ref: '#/components/schemas/V0RoutesPostRequestBodyContentApplicationJsonSchemaFrom' to: $ref: '#/components/schemas/V0RoutesPostRequestBodyContentApplicationJsonSchemaTo' required: - from - to /v0/routes/{routeId}: get: operationId: getbyid summary: Get a Route by ID description: "\n The endpoints exposed here are currently in **Beta**! As we continue to build our initial offering, these endpoints may implement breaking changes. Be sure to check back for our change log regularly as a precaution.\n\n\nRetrieve a single route by its id, including the full reusable `instructions` block. Route ids are deterministic — the same canonical inputs always derive the same id — so a `404` means no route with those parameters has been created for your organization.\n" tags: - Routes parameters: - name: routeId in: path required: true schema: type: string format: uuid - name: Authorization in: header description: 'Session JWT from POST /v0/auth/token, sent as `Authorization: Bearer `.' required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/routes_getbyid_Response_200' '400': description: One or more request parameters are invalid. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_400_parameter_invalid' '401': description: Authentication is required. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_401_unauthorized' '403': description: The account is not eligible for the requested route direction. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_403_account_not_eligible_forbidden' '404': description: Resource not found. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_404_not_found_route_not_found' '429': description: Too many requests. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_429_rate_limit_exceeded' '500': description: An unexpected error occurred. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_500_internal_error' components: schemas: ErrorResponse400ParameterInvalidContext: type: object properties: issues: type: array items: $ref: '#/components/schemas/ErrorResponse400ParameterInvalidContextIssuesItems' required: - issues title: ErrorResponse400ParameterInvalidContext V0RoutesPostResponsesContentApplicationJsonSchemaToChain: type: string enum: - arbitrum - avalanche - base - binance-smart-chain - core - ethereum - immutable - katana - mantle - monad - plume - polygon-pos - solana description: Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana). title: V0RoutesPostResponsesContentApplicationJsonSchemaToChain V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItems0: type: object properties: memo: type: string description: Memo / reference field that uniquely identifies the route on the inbound wire. beneficiaryName: type: string beneficiaryAddress: type: string accountNumber: type: string bankName: type: string bankAddress: type: string swiftCode: type: string routingNumber: type: string supportedCurrencies: type: array items: $ref: '#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItemsOneOf0SupportedCurrenciesItems' required: - memo - beneficiaryName - beneficiaryAddress - accountNumber - bankName - bankAddress - routingNumber - supportedCurrencies title: V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItems0 ErrorResponse_401_unauthorized: type: object properties: code: $ref: '#/components/schemas/ErrorResponse401UnauthorizedCode' docs_url: type: string message: type: string context: $ref: '#/components/schemas/ErrorResponse401UnauthorizedContext' required: - code - docs_url - message title: ErrorResponse_401_unauthorized ErrorResponse_409_route_already_exists: type: object properties: code: $ref: '#/components/schemas/ErrorResponse409RouteAlreadyExistsCode' docs_url: type: string message: type: string context: $ref: '#/components/schemas/ErrorResponse409RouteAlreadyExistsContext' required: - code - docs_url - message title: ErrorResponse_409_route_already_exists ErrorResponse400ParameterInvalidContextIssuesItems: type: object properties: field: type: string message: type: string required: - field - message title: ErrorResponse400ParameterInvalidContextIssuesItems ErrorResponse401UnauthorizedCode: type: string enum: - unauthorized title: ErrorResponse401UnauthorizedCode V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItems0: type: object properties: memo: type: string description: Memo / reference field that uniquely identifies the route on the inbound wire. beneficiaryName: type: string beneficiaryAddress: type: string accountNumber: type: string bankName: type: string bankAddress: type: string swiftCode: type: string routingNumber: type: string supportedCurrencies: type: array items: $ref: '#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItemsOneOf0SupportedCurrenciesItems' required: - memo - beneficiaryName - beneficiaryAddress - accountNumber - bankName - bankAddress - routingNumber - supportedCurrencies title: V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItems0 V0RoutesPostRequestBodyContentApplicationJsonSchemaToChain: type: string enum: - arbitrum - avalanche - base - binance-smart-chain - core - ethereum - immutable - katana - mantle - monad - plume - polygon-pos - solana description: Destination chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana). title: V0RoutesPostRequestBodyContentApplicationJsonSchemaToChain V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItems: oneOf: - $ref: '#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItems0' - $ref: '#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItems1' title: V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItems ErrorResponse404AccountNotFoundNotFoundCode: type: string enum: - account_not_found - not_found title: ErrorResponse404AccountNotFoundNotFoundCode V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItems1: type: object properties: chain: $ref: '#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1Chain' description: Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana). depositAddress: type: string supportedCurrencies: type: array items: $ref: '#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1SupportedCurrenciesItems' required: - chain - depositAddress - supportedCurrencies title: V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItems1 V0RoutesPostRequestBodyContentApplicationJsonSchemaTo: type: object properties: currency: $ref: '#/components/schemas/V0RoutesPostRequestBodyContentApplicationJsonSchemaToCurrency' description: Destination currency. `ausd`, `usd`, or a specific stablecoin (e.g. `usdc`). Never the wildcard. accountId: type: string format: uuid chain: $ref: '#/components/schemas/V0RoutesPostRequestBodyContentApplicationJsonSchemaToChain' description: Destination chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana). required: - currency - accountId title: V0RoutesPostRequestBodyContentApplicationJsonSchemaTo V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItems: oneOf: - $ref: '#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItems0' - $ref: '#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItems1' title: V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItems V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaFromCurrency: type: string enum: - ausd - stablecoin - usd - usdc description: Currency identifier. title: V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaFromCurrency V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItemsOneOf0SupportedCurrenciesItems: type: string enum: - ausd - stablecoin - usd - usdc description: Currency identifier. title: V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItemsOneOf0SupportedCurrenciesItems ErrorResponse400ChainUnsupportedCurrencyUnsupportedDirectionUnsupportedParameterInvalidContextIssuesItems: type: object properties: field: type: string message: type: string required: - field - message title: ErrorResponse400ChainUnsupportedCurrencyUnsupportedDirectionUnsupportedParameterInvalidContextIssuesItems V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaTo: type: object properties: currency: $ref: '#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaToCurrency' description: Currency identifier. accountId: type: string format: uuid chain: $ref: '#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaToChain' description: Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana). required: - currency - accountId title: V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaTo V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItems1: type: object properties: chain: $ref: '#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItemsOneOf1Chain' description: Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana). depositAddress: type: string supportedCurrencies: type: array items: $ref: '#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItemsOneOf1SupportedCurrenciesItems' required: - chain - depositAddress - supportedCurrencies title: V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItems1 ErrorResponse_404_not_found_route_not_found: type: object properties: code: $ref: '#/components/schemas/ErrorResponse404NotFoundRouteNotFoundCode' docs_url: type: string message: type: string required: - code - docs_url - message title: ErrorResponse_404_not_found_route_not_found V0RoutesPostRequestBodyContentApplicationJsonSchemaFrom: type: object properties: currency: $ref: '#/components/schemas/V0RoutesPostRequestBodyContentApplicationJsonSchemaFromCurrency' description: Source currency. `usd` (wire), `ausd`, or the `stablecoin` wildcard (any stablecoin deposit). required: - currency title: V0RoutesPostRequestBodyContentApplicationJsonSchemaFrom V0RoutesPostResponsesContentApplicationJsonSchemaFromCurrency: type: string enum: - ausd - stablecoin - usd - usdc description: Currency identifier. title: V0RoutesPostResponsesContentApplicationJsonSchemaFromCurrency V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsFrom: type: object properties: currency: $ref: '#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsFromCurrency' description: Currency identifier. required: - currency title: V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsFrom V0RoutesPostRequestBodyContentApplicationJsonSchemaFromCurrency: type: string enum: - ausd - stablecoin - usd description: Source currency. `usd` (wire), `ausd`, or the `stablecoin` wildcard (any stablecoin deposit). title: V0RoutesPostRequestBodyContentApplicationJsonSchemaFromCurrency ErrorResponse400ChainUnsupportedCurrencyUnsupportedDirectionUnsupportedParameterInvalidContext: type: object properties: issues: type: array items: $ref: '#/components/schemas/ErrorResponse400ChainUnsupportedCurrencyUnsupportedDirectionUnsupportedParameterInvalidContextIssuesItems' required: - issues title: ErrorResponse400ChainUnsupportedCurrencyUnsupportedDirectionUnsupportedParameterInvalidContext V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsToChain: type: string enum: - arbitrum - avalanche - base - binance-smart-chain - core - ethereum - immutable - katana - mantle - monad - plume - polygon-pos - solana description: Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana). title: V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsToChain V0RoutesPostResponsesContentApplicationJsonSchemaTo: type: object properties: currency: $ref: '#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaToCurrency' description: Currency identifier. accountId: type: string format: uuid chain: $ref: '#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaToChain' description: Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana). required: - currency - accountId title: V0RoutesPostResponsesContentApplicationJsonSchemaTo routes_getbyid_Response_200: type: object properties: id: type: string format: uuid description: Deterministic route UUID; same canonical inputs always derive the same id. name: type: - string - 'null' description: User-set label, or null when unset. createdAt: type: string format: date-time from: $ref: '#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaFrom' to: $ref: '#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaTo' instructions: type: array items: $ref: '#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItems' description: 'Next-step instructions. Mint-fiat: one wire instruction with memo + beneficiary. On-chain directions: one deposit address per supported chain, alphabetical by chain.' required: - id - createdAt - from - to - instructions title: routes_getbyid_Response_200 ErrorResponse_404_account_not_found_not_found: type: object properties: code: $ref: '#/components/schemas/ErrorResponse404AccountNotFoundNotFoundCode' docs_url: type: string message: type: string required: - code - docs_url - message title: ErrorResponse_404_account_not_found_not_found V0RoutesPostResponsesContentApplicationJsonSchemaFrom: type: object properties: currency: $ref: '#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaFromCurrency' description: Currency identifier. required: - currency title: V0RoutesPostResponsesContentApplicationJsonSchemaFrom ErrorResponse401UnauthorizedContextReason: type: string enum: - invalid_token - missing_claim - missing_header - token_expired - token_revoked - unknown_tenant title: ErrorResponse401UnauthorizedContextReason V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaToCurrency: type: string enum: - ausd - stablecoin - usd - usdc description: Currency identifier. title: V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaToCurrency V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItems1: type: object properties: chain: $ref: '#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1Chain' description: Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana). depositAddress: type: string supportedCurrencies: type: array items: $ref: '#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1SupportedCurrenciesItems' required: - chain - depositAddress - supportedCurrencies title: V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItems1 V0RoutesPostRequestBodyContentApplicationJsonSchemaToCurrency: type: string enum: - ausd - usd - usdc description: Destination currency. `ausd`, `usd`, or a specific stablecoin (e.g. `usdc`). Never the wildcard. title: V0RoutesPostRequestBodyContentApplicationJsonSchemaToCurrency ErrorResponse409RouteAlreadyExistsContext: type: object properties: routeId: type: string format: uuid required: - routeId title: ErrorResponse409RouteAlreadyExistsContext ErrorResponse404NotFoundCode: type: string enum: - not_found title: ErrorResponse404NotFoundCode V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItems0: type: object properties: memo: type: string description: Memo / reference field that uniquely identifies the route on the inbound wire. beneficiaryName: type: string beneficiaryAddress: type: string accountNumber: type: string bankName: type: string bankAddress: type: string swiftCode: type: string routingNumber: type: string supportedCurrencies: type: array items: $ref: '#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItemsOneOf0SupportedCurrenciesItems' required: - memo - beneficiaryName - beneficiaryAddress - accountNumber - bankName - bankAddress - routingNumber - supportedCurrencies title: V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItems0 ErrorResponse_400_parameter_invalid: type: object properties: code: $ref: '#/components/schemas/ErrorResponse400ParameterInvalidCode' docs_url: type: string message: type: string context: $ref: '#/components/schemas/ErrorResponse400ParameterInvalidContext' required: - code - docs_url - message title: ErrorResponse_400_parameter_invalid ErrorResponse404NotFoundRouteNotFoundCode: type: string enum: - not_found - route_not_found title: ErrorResponse404NotFoundRouteNotFoundCode ErrorResponse_404_not_found: type: object properties: code: $ref: '#/components/schemas/ErrorResponse404NotFoundCode' docs_url: type: string message: type: string required: - code - docs_url - message title: ErrorResponse_404_not_found ErrorResponse403AccountNotEligibleForbiddenCode: type: string enum: - account_not_eligible - forbidden title: ErrorResponse403AccountNotEligibleForbiddenCode routes_create_Response_201: type: object properties: id: type: string format: uuid description: Deterministic route UUID; same canonical inputs always derive the same id. name: type: - string - 'null' description: User-set label, or null when unset. createdAt: type: string format: date-time from: $ref: '#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaFrom' to: $ref: '#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaTo' instructions: type: array items: $ref: '#/components/schemas/V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItems' description: 'Next-step instructions. Mint-fiat: one wire instruction with memo + beneficiary. On-chain directions: one deposit address per supported chain, alphabetical by chain.' required: - id - createdAt - from - to - instructions title: routes_create_Response_201 ErrorResponse_503_route_creation_unavailable: type: object properties: code: $ref: '#/components/schemas/ErrorResponse503RouteCreationUnavailableCode' docs_url: type: string message: type: string required: - code - docs_url - message title: ErrorResponse_503_route_creation_unavailable ErrorResponse401UnauthorizedContext: type: object properties: reason: $ref: '#/components/schemas/ErrorResponse401UnauthorizedContextReason' required: - reason title: ErrorResponse401UnauthorizedContext ErrorResponse_429_rate_limit_exceeded: type: object properties: code: $ref: '#/components/schemas/ErrorResponse429RateLimitExceededCode' docs_url: type: string message: type: string required: - code - docs_url - message title: ErrorResponse_429_rate_limit_exceeded ErrorResponse_400_chain_unsupported_currency_unsupported_direction_unsupported_parameter_invalid: type: object properties: code: $ref: '#/components/schemas/ErrorResponse400ChainUnsupportedCurrencyUnsupportedDirectionUnsupportedParameterInvalidCode' docs_url: type: string message: type: string context: $ref: '#/components/schemas/ErrorResponse400ChainUnsupportedCurrencyUnsupportedDirectionUnsupportedParameterInvalidContext' required: - code - docs_url - message title: ErrorResponse_400_chain_unsupported_currency_unsupported_direction_unsupported_parameter_invalid V0RoutesPostResponsesContentApplicationJsonSchemaToCurrency: type: string enum: - ausd - stablecoin - usd - usdc description: Currency identifier. title: V0RoutesPostResponsesContentApplicationJsonSchemaToCurrency ErrorResponse400ParameterInvalidCode: type: string enum: - parameter_invalid title: ErrorResponse400ParameterInvalidCode V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsTo: type: object properties: currency: $ref: '#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsToCurrency' description: Currency identifier. accountId: type: string format: uuid chain: $ref: '#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsToChain' description: Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana). required: - currency - accountId title: V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsTo ErrorResponse400ChainUnsupportedCurrencyUnsupportedDirectionUnsupportedParameterInvalidCode: type: string enum: - chain_unsupported - currency_unsupported - direction_unsupported - parameter_invalid title: ErrorResponse400ChainUnsupportedCurrencyUnsupportedDirectionUnsupportedParameterInvalidCode V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1Chain: type: string enum: - arbitrum - avalanche - base - binance-smart-chain - core - ethereum - immutable - katana - mantle - monad - plume - polygon-pos - solana description: Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana). title: V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1Chain ErrorResponse429RateLimitExceededCode: type: string enum: - rate_limit_exceeded title: ErrorResponse429RateLimitExceededCode V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1Chain: type: string enum: - arbitrum - avalanche - base - binance-smart-chain - core - ethereum - immutable - katana - mantle - monad - plume - polygon-pos - solana description: Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana). title: V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1Chain ErrorResponse_403_account_not_eligible_forbidden: type: object properties: code: $ref: '#/components/schemas/ErrorResponse403AccountNotEligibleForbiddenCode' docs_url: type: string message: type: string required: - code - docs_url - message title: ErrorResponse_403_account_not_eligible_forbidden ErrorResponse409RouteAlreadyExistsCode: type: string enum: - route_already_exists title: ErrorResponse409RouteAlreadyExistsCode V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1SupportedCurrenciesItems: type: string enum: - ausd - stablecoin - usd - usdc description: Currency identifier. title: V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1SupportedCurrenciesItems V0RoutesGetResponsesContentApplicationJsonSchemaDataItems: type: object properties: id: type: string format: uuid description: Deterministic route UUID; same canonical inputs always derive the same id. name: type: - string - 'null' description: User-set label, or null when unset. createdAt: type: string format: date-time from: $ref: '#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsFrom' to: $ref: '#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsTo' instructions: type: array items: $ref: '#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItems' description: 'Next-step instructions. Mint-fiat: one wire instruction with memo + beneficiary. On-chain directions: one deposit address per supported chain, alphabetical by chain.' required: - id - createdAt - from - to - instructions title: V0RoutesGetResponsesContentApplicationJsonSchemaDataItems V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1SupportedCurrenciesItems: type: string enum: - ausd - stablecoin - usd - usdc description: Currency identifier. title: V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaInstructionsItemsOneOf1SupportedCurrenciesItems V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsToCurrency: type: string enum: - ausd - stablecoin - usd - usdc description: Currency identifier. title: V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsToCurrency V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItemsOneOf0SupportedCurrenciesItems: type: string enum: - ausd - stablecoin - usd - usdc description: Currency identifier. title: V0RoutesPostResponsesContentApplicationJsonSchemaInstructionsItemsOneOf0SupportedCurrenciesItems ErrorResponse500InternalErrorCode: type: string enum: - internal_error title: ErrorResponse500InternalErrorCode V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItems: oneOf: - $ref: '#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItems0' - $ref: '#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItems1' title: V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItems ErrorResponse503RouteCreationUnavailableCode: type: string enum: - route_creation_unavailable title: ErrorResponse503RouteCreationUnavailableCode V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaFrom: type: object properties: currency: $ref: '#/components/schemas/V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaFromCurrency' description: Currency identifier. required: - currency title: V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaFrom V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaToChain: type: string enum: - arbitrum - avalanche - base - binance-smart-chain - core - ethereum - immutable - katana - mantle - monad - plume - polygon-pos - solana description: Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana). title: V0RoutesRouteIdGetResponsesContentApplicationJsonSchemaToChain V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItemsOneOf1Chain: type: string enum: - arbitrum - avalanche - base - binance-smart-chain - core - ethereum - immutable - katana - mantle - monad - plume - polygon-pos - solana description: Route chain (kebab-case). Restricted to chains Agora supports for routes (EVM + Solana). title: V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItemsOneOf1Chain V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsFromCurrency: type: string enum: - ausd - stablecoin - usd - usdc description: Currency identifier. title: V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsFromCurrency routes_get_Response_200: type: object properties: data: type: array items: $ref: '#/components/schemas/V0RoutesGetResponsesContentApplicationJsonSchemaDataItems' description: Page of routes, newest first, tie-broken by id. nextCursor: type: - string - 'null' description: Opaque cursor for the next page. Pass back verbatim as the `cursor` query param to fetch the next page; null when no more results. required: - data - nextCursor title: routes_get_Response_200 V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItemsOneOf0SupportedCurrenciesItems: type: string enum: - ausd - stablecoin - usd - usdc description: Currency identifier. title: V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItemsOneOf0SupportedCurrenciesItems V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItemsOneOf1SupportedCurrenciesItems: type: string enum: - ausd - stablecoin - usd - usdc description: Currency identifier. title: V0RoutesGetResponsesContentApplicationJsonSchemaDataItemsInstructionsItemsOneOf1SupportedCurrenciesItems ErrorResponse_500_internal_error: type: object properties: code: $ref: '#/components/schemas/ErrorResponse500InternalErrorCode' docs_url: type: string message: type: string required: - code - docs_url - message title: ErrorResponse_500_internal_error securitySchemes: accessKey: type: http scheme: bearer description: 'Agora access key (cleartext), sent as `Authorization: Bearer `. Used only by POST /v0/auth/token to mint a session JWT.' sessionJwt: type: http scheme: bearer description: 'Session JWT from POST /v0/auth/token, sent as `Authorization: Bearer `.'