> ## Documentation Index
> Fetch the complete documentation index at: https://docs.houdiniswap.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get tokens

> Returns the list of available tokens. Use the returned `id` as the `from` / `to` of a quote.

Without filters this returns every enabled token, 1000 per page and several MB per response. Narrow it with:

- `term` — search by name, symbol, address or cexTokenId
- `hasCex` — tokens available for private and standard swaps
- `hasDex` — tokens available for DEX swaps
- `hasBundler` — tokens the bundler can fund in one transaction
- `chain` — one chain only, e.g. `ethereum`. Use a `shortName` from [Get chains](/api-reference/reference-data/get-chains)

Tokens we have not reviewed are excluded unless you pass `unverified=true`.



## OpenAPI

````yaml https://api-partner.houdiniswap.com/v2/openapi.json get /tokens
openapi: 3.0.0
info:
  title: Houdini Swap Partner API
  version: 2.1.2
  description: >-
    Quote and execute private, standard, and DEX swaps — one at a time or
    batched.
  license:
    name: ISC
  contact: {}
servers:
  - url: https://api-partner.houdiniswap.com/v2
security: []
tags:
  - name: Private and Standard Swaps
    description: >-
      CEX swaps in two modes, sharing the same endpoints — pick one with the
      `types` parameter.


      - `types=standard` — direct single-leg swap. Fastest, no privacy hop.

      - `types=private` — two legs through a privacy bridge, so deposit and
      payout are not linkable on-chain. Adds `anonymous`, `useXmr`,
      `rotatePayoutWallets` and the `inLeg*` / `outLeg*` filters.


      Flow: [Get tokens](/api-reference/private-and-standard-swaps/get-tokens)
      with `hasCex=true` → [Get
      quotes](/api-reference/private-and-standard-swaps/get-quotes) → [Create
      exchange](/api-reference/private-and-standard-swaps/create-exchange) →
      [track the
      order](/api-reference/private-and-standard-swaps/get-order-details).
      `markup` works in both modes.
  - name: Private Send
    description: >-
      Send a token to another wallet privately — same token in and out, with no
      on-chain link between the two addresses.


      - find eligible tokens with [Get
      tokens](/api-reference/private-send/get-tokens) and `hasSelfPrivate=true`

      - quote with Get private send quote, then create with Create private send
      order

      - you can also stay on the main endpoints with a private same-token
      `quoteId`


      See the [Private send](/docs/v2/private-send) guide.
  - name: Multi-Exchange
    description: >-
      Create and track a group of swaps sharing one `multiId`.


      - post the orders straight to Create multi exchange — there is no quote
      step and no `quoteId`

      - Get multi quotes is optional, for showing rates first

      - each order gets its own deposit address; poll [Get batch
      status](/api-reference/multi-exchange/get-batch-status) for every leg

      - CEX standard and private only — no DEX in a batch


      To fund the whole group in one transaction, see Bundler SOL or Bundler
      EVM. See the [multi-swap
      flow](https://docs.houdiniswap.com/developer-hub/swap-flows/multi-swap)
      for the full sequence.
  - name: Bundler SOL
    description: >-
      Fund a whole multi-exchange group with one Solana batch transfer.


      - one call — Get batch transaction returns the transaction to sign and
      broadcast

      - up to 10 deposits per batch; every order must send the same token

      - find batchable tokens with [Get
      tokens](/api-reference/multi-exchange/get-tokens) and `hasBundler=true`

      - nothing to submit back afterwards — retry and recovery are EVM-only


      See the [multi-swap
      flow](https://docs.houdiniswap.com/developer-hub/swap-flows/multi-swap)
      for the full sequence.
  - name: Bundler EVM
    description: >-
      Fund a whole multi-exchange group with one ERC-4337 UserOperation,
      submitted through the bundler.


      - Ethereum, Base and BNB Smart Chain only; other EVM chains are rejected

      - up to 20 legs per batch; every order must send the same source token

      - find batchable tokens with [Get
      tokens](/api-reference/multi-exchange/get-tokens) and `hasBundler=true`

      - build the UserOp, then submit the signed result

      - if a bundle fails: retry within 30 minutes, or recover stuck assets


      See the [multi-swap
      flow](https://docs.houdiniswap.com/developer-hub/swap-flows/multi-swap)
      for the full sequence.
  - name: On-chain DEX or Bridge
    description: >-
      On-chain swaps signed and funded from the user's own wallet.


      Flow: [Get tokens](/api-reference/on-chain-dex-or-bridge/get-tokens) with
      `hasDex=true` → [Get
      quotes](/api-reference/on-chain-dex-or-bridge/get-quotes) with `types=dex`
      → [Get token approval
      data](/api-reference/on-chain-dex-or-bridge/get-token-approval-data) →
      send it and poll [Check token
      allowance](/api-reference/on-chain-dex-or-bridge/check-token-allowance) →
      [Get next chain
      signature](/api-reference/on-chain-dex-or-bridge/get-next-chain-signature)
      → [Create exchange](/api-reference/on-chain-dex-or-bridge/create-exchange)
      → [Confirm DEX
      transaction](/api-reference/on-chain-dex-or-bridge/confirm-dex-transaction)
      → [track the
      order](/api-reference/on-chain-dex-or-bridge/get-order-details).


      - `slippage` applies to DEX only

      - `markup` is not supported
  - name: Reference Data
    description: >-
      Optional lookups: supported chains, liquidity providers, and per-pair
      min/max swap amounts. Responses are cached and change rarely — safe to
      fetch once and reuse. Token ids come from `/tokens`, listed in each swap
      section above.
  - name: Partner Account
    description: >-
      Your orders, profile, earned commissions, withdrawals, volume analytics,
      and the rate-limit budget attached to your API key. Every endpoint is
      scoped to the partner that owns the key making the request.
  - name: System
    description: >-
      Service health. [Get system
      health](/api-reference/system/get-system-health) is unauthenticated and
      exempt from x402 payment — use it for uptime monitoring.
paths:
  /tokens:
    get:
      tags:
        - Private and Standard Swaps
        - Private Send
        - On-chain DEX or Bridge
        - Multi-Exchange
      summary: Get tokens
      description: >-
        Returns the list of available tokens. Use the returned `id` as the
        `from` / `to` of a quote.


        Without filters this returns every enabled token, 1000 per page and
        several MB per response. Narrow it with:


        - `term` — search by name, symbol, address or cexTokenId

        - `hasCex` — tokens available for private and standard swaps

        - `hasDex` — tokens available for DEX swaps

        - `hasBundler` — tokens the bundler can fund in one transaction

        - `chain` — one chain only, e.g. `ethereum`. Use a `shortName` from [Get
        chains](/api-reference/reference-data/get-chains)


        Tokens we have not reviewed are excluded unless you pass
        `unverified=true`.
      operationId: GetTokens
      parameters:
        - description: >-
            Search term that matches against name, symbol, address, keyword,
            cexTokenId fields
          in: query
          name: term
          required: false
          schema:
            type: string
            maxLength: 100
          example: SOL
        - description: >-
            Filter by chain, e.g. "ethereum". Use a shortName from [Get
            chains](/api-reference/reference-data/get-chains)
          in: query
          name: chain
          required: false
          schema:
            type: string
          example: solana
        - description: Filter by exact token symbol, e.g. "USDT"
          in: query
          name: symbol
          required: false
          schema:
            type: string
            maxLength: 20
          example: SOL
        - description: Filter tokens by contract address
          in: query
          name: address
          required: false
          schema:
            type: string
            maxLength: 200
          example: ''
        - description: Filter tokens available for private and standard swaps.
          in: query
          name: hasCex
          required: false
          schema:
            type: boolean
          example: true
        - description: Filter tokens available for DEX swaps.
          in: query
          name: hasDex
          required: false
          schema:
            type: boolean
          example: true
        - description: >-
            Filter tokens that support self-to-self private swaps — send a token
            and receive the same token at another address, with no on-chain link
            between them.
          in: query
          name: hasSelfPrivate
          required: false
          schema:
            type: boolean
          example: true
        - description: >-
            Filter tokens the bundler can fund — paying for a whole
            multi-exchange group with one transaction instead of a deposit per
            order.
          in: query
          name: hasBundler
          required: false
          schema:
            type: boolean
          example: true
        - description: >-
            Filter by token type. true returns each chain's native coin (e.g.
            ETH on Ethereum, BNB on BSC); false returns issued tokens (e.g.
            USDT). Omit to return both.
          in: query
          name: mainnet
          required: false
          schema:
            type: boolean
          example: true
        - description: >-
            Include tokens we have not reviewed. Defaults to false. Any contract
            address quoted through the API is added automatically, so this list
            contains arbitrary tokens — check `securityScan` before offering one
            to users.
          in: query
          name: unverified
          required: false
          schema:
            default: false
            type: boolean
          example: false
        - in: query
          name: page
          required: false
          schema:
            default: 1
            format: int32
            type: integer
            minimum: 1
            maximum: 10000
          example: 20
        - description: Number of results to return per page
          in: query
          name: pageSize
          required: false
          schema:
            default: 1000
            format: int32
            type: integer
            maximum: 1000
            minimum: 1
          example: 20
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenSearchResult'
              examples:
                Example 1:
                  value:
                    tokens:
                      - address: null
                        chain: ethereum
                        decimals: 18
                        symbol: ETH
                        name: Ethereum
                        created: '2024-07-06T21:29:34.823Z'
                        modified: '2026-09-16T07:06:46.700Z'
                        chainData:
                          created: '2024-07-06T21:02:11.672Z'
                          modified: '2026-09-14T10:01:00.292Z'
                          name: Ethereum Mainnet
                          shortName: ethereum
                          addressValidation: ^(0x)[0-9A-Za-z]{40}$
                          tokenAddressValidation: ^(0x)[0-9A-Za-z]{40}$
                          memoNeeded: false
                          explorerUrl: https://etherscan.io/tx/{txHash}
                          addressUrl: https://etherscan.io/address/{address}
                          priority: 2
                          kind: evm
                          chainId: 1
                          enabled: true
                          shortNameV1: ETH
                          id: 6689b0d3c52f263938c44844
                          icon: https://api.houdiniswap.com/assets/networks/ETH.png
                        description: "Ethereum is a global, open-source platform for decentralized applications. In other words, the vision is to create a world computer that anyone can build applications in a decentralized manner; while all states and data are distributed and publicly accessible. Ethereum supports smart contracts in which developers can write code in order to program digital value. Examples of decentralized apps (dapps) that are built on Ethereum includes tokens, non-fungible tokens, decentralized finance apps, lending protocol, decentralized exchanges, and much more.\r\n\r\nOn Ethereum, all transactions and smart contract executions require a small fee to be paid. This fee is called Gas. In technical terms, Gas refers to the unit of measure on the amount of computational effort required to execute an operation or a smart contract. The more complex the execution operation is, the more gas is required to fulfill that operation. Gas fees are paid entirely in Ether (ETH), which is the native coin of the blockchain. The price of gas can fluctuate from time to time depending on the network demand."
                        mainnet: true
                        enabled: true
                        unverified: false
                        hasDex: true
                        hasCex: true
                        hasSelfPrivate: true
                        cexTokenId: ETH
                        rank: 2
                        cgId: ethereum
                        marketCapChange24h: -3.15312
                        circulatingSupply: 122053082.69974948
                        price: 2401.7
                        marketCap: 293069408497
                        volume: 18775255556
                        fdv: 293069408497
                        change: -3.1168
                        priority: 2
                        securityScan:
                          provider: blockaid
                          resultType: Unscanned
                          features: []
                          unscannedReason: NATIVE_TOKEN
                          unscannedDetail: ETH has no contract address to scan
                          scannedAt: '2026-09-15T08:25:54.920Z'
                          expiresAt: '2026-09-16T08:25:54.920Z'
                        id: 6689b73ec90e45f3b3e51566
                        icon: >-
                          https://api.houdiniswap.com/assets/tokens/ETH-ETH-lejbdy.png
                    total: 1
                    totalPages: 1
        '401':
          description: >-
            Credentials missing, malformed, or rejected — all return
            `INVALID_API_CREDENTIALS`. Sending only `partner-id` returns
            `PARTNER_ID_NOT_SUPPORTED`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: >-
            Payment required — x402 protocol. The body is empty; what to pay is
            in the `payment-required` header. Not returned when you send an
            `Authorization` header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/X402PaymentRequired'
          headers:
            payment-required:
              schema:
                type: string
              required: true
        '422':
          description: Validation Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '429':
          description: Rate limit exceeded — back off and retry
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - apiKey: []
components:
  schemas:
    TokenSearchResult:
      properties:
        tokens:
          items:
            $ref: '#/components/schemas/Token'
          type: array
        total:
          type: number
          format: double
        totalPages:
          type: number
          format: double
      required:
        - tokens
        - total
        - totalPages
      type: object
      additionalProperties: false
    ErrorResponse:
      properties:
        message:
          type: string
        code:
          type: string
          description: >-
            Machine-readable reason for the failure. Branch on this, not on
            `message` — messages are free to change.


            The value depends on the HTTP status. The common ones:


            - `400` — `BAD_REQUEST`

            - `401` — `INVALID_API_CREDENTIALS`, `PARTNER_ID_NOT_SUPPORTED`

            - `403` — `ACCESS_DENIED`, `FIXED_RATE_NOT_ALLOWED`

            - `404` — `NOT_FOUND`, `TOKEN_NOT_FOUND`, `TOKEN_DISABLED`

            - `409` — `ALREADY_SUBMITTED`, `STATIC_DEPOSIT_IN_USE`

            - `422` — `VALIDATION_ERROR`, `AMOUNT_TOO_LOW`, `INVALID_SWAP`,
            `FIXED_RATE_QUOTE_EXPIRED`, and most other request problems

            - `429` — `RATE_LIMIT_EXCEEDED`

            - `5xx` — `INTERNAL_SERVER_ERROR`, `PROVIDER_EXCHANGE_FAILED`,
            `SERVICE_UNAVAILABLE`


            New codes are added over time, so treat this as an open set: match
            the ones you handle and fall back to the HTTP status for the rest.
        requestId:
          type: string
          description: >-
            Unique id for this request. Quote it when contacting support — it is
            how we find the failure in our logs.
      required:
        - message
        - code
      type: object
      additionalProperties: false
    X402PaymentRequired:
      description: >-
        Body of a `402 Payment required`. Empty — `{}` — for API clients; a
        request that looks like a browser gets an HTML paywall page instead.


        This is the x402 payment protocol, not the normal error format, so there
        is no `code` or `message` to branch on. What to pay is always in the
        `payment-required` response header, in both cases: base64-encoded JSON
        whose `accepts[]` entries each carry the `network`, the `asset` to pay
        in, the `amount`, and the `payTo` address, alongside `maxTimeoutSeconds`
        and the x402 `scheme`.


        Sending `Authorization` skips the payment flow, so a 402 only reaches
        callers paying per request. An `apiKey` query param also skips it but is
        not a credential — those requests fail with `401
        INVALID_API_CREDENTIALS`.
      properties: {}
      type: object
      additionalProperties: false
    ValidationError:
      properties:
        message:
          type: string
        code:
          type: string
          description: >-
            Machine-readable reason for the failure. Branch on this, not on
            `message` — messages are free to change.


            The value depends on the HTTP status. The common ones:


            - `400` — `BAD_REQUEST`

            - `401` — `INVALID_API_CREDENTIALS`, `PARTNER_ID_NOT_SUPPORTED`

            - `403` — `ACCESS_DENIED`, `FIXED_RATE_NOT_ALLOWED`

            - `404` — `NOT_FOUND`, `TOKEN_NOT_FOUND`, `TOKEN_DISABLED`

            - `409` — `ALREADY_SUBMITTED`, `STATIC_DEPOSIT_IN_USE`

            - `422` — `VALIDATION_ERROR`, `AMOUNT_TOO_LOW`, `INVALID_SWAP`,
            `FIXED_RATE_QUOTE_EXPIRED`, and most other request problems

            - `429` — `RATE_LIMIT_EXCEEDED`

            - `5xx` — `INTERNAL_SERVER_ERROR`, `PROVIDER_EXCHANGE_FAILED`,
            `SERVICE_UNAVAILABLE`


            New codes are added over time, so treat this as an open set: match
            the ones you handle and fall back to the HTTP status for the rest.
        requestId:
          type: string
          description: >-
            Unique id for this request. Quote it when contacting support — it is
            how we find the failure in our logs.
        fields:
          $ref: '#/components/schemas/FieldErrors'
      required:
        - message
        - code
        - fields
      type: object
      additionalProperties: false
    Token:
      properties:
        icon:
          type: string
          description: Token icon URL.
        id:
          type: string
          description: The token id. Pass this as `from` / `to` when quoting.
        address:
          type: string
          nullable: true
          description: Contract address. Null for a chain's native coin — see `mainnet`.
        chain:
          type: string
          description: >-
            Chain short name, e.g. `ethereum`. Matches `shortName` on
            `chainData`.
        decimals:
          type: number
          format: double
          description: >-
            On-chain decimals. Amounts in this API are decimals in the token's
            own units, so you only need this for on-chain work.
          default: 0
        symbol:
          type: string
          default: ''
        name:
          type: string
          default: ''
        created:
          type: string
          format: date-time
        modified:
          type: string
          format: date-time
        chainData:
          $ref: '#/components/schemas/Chain'
          description: The chain this token lives on.
        description:
          type: string
          nullable: true
          description: Token description from CoinGecko.
        mainnet:
          type: boolean
          description: >-
            True for the chain's native coin (e.g. ETH on Ethereum), false for
            an issued token (e.g. USDT). Not related to mainnet vs testnet.
        enabled:
          type: boolean
          description: False when the token is temporarily not swappable.
        unverified:
          type: boolean
          description: >-
            True when we have not reviewed this token yet — check `securityScan`
            before using it.
        hasDex:
          type: boolean
          description: True when the token can be swapped on DEX routes.
        hasCex:
          type: boolean
          description: True when the token can be swapped on private and standard routes.
        hasBundler:
          type: boolean
          description: >-
            True when the bundler can fund this token — paying for a whole
            multi-exchange group with one transaction instead of a deposit per
            order. Available on Solana, and on supported EVM chains.
        hasSelfPrivate:
          type: boolean
          description: >-
            True when the token supports self-to-self private swaps — send it
            and receive the same token at another address, with no on-chain
            link.
        cexTokenId:
          type: string
          description: The token's identifier on centralized exchanges.
          default: ''
        rank:
          type: number
          format: double
          nullable: true
          description: CoinGecko market-cap rank. Null when unranked.
        cgId:
          type: string
          nullable: true
          description: CoinGecko id for this token.
        marketCapChange24h:
          type: number
          format: double
          description: 24h market cap change percentage from CoinGecko.
        circulatingSupply:
          type: number
          format: double
          description: Token circulating supply from CoinGecko.
        price:
          type: number
          format: double
          nullable: true
          description: Current price in USD, from CoinGecko.
        marketCap:
          type: number
          format: double
          nullable: true
          description: Market cap in USD, from CoinGecko.
        volume:
          type: number
          format: double
          nullable: true
          description: 24h trading volume in USD, from CoinGecko.
        fdv:
          type: number
          format: double
          nullable: true
          description: Fully diluted valuation in USD, from CoinGecko.
        change:
          type: number
          format: double
          nullable: true
          description: 24h price change, as a percentage.
        priority:
          type: number
          format: double
          nullable: true
          description: Display order — lower sorts first. Unrelated to `rank`.
        warningMessage:
          type: string
          description: Warning to show the user before swapping this token.
        securityScan:
          $ref: '#/components/schemas/TokenSecurityScan'
          description: >-
            Latest security verdict for this token. Absent until the token has
            been used in a swap at least once.
      required:
        - icon
        - id
        - chain
        - created
        - chainData
      type: object
      additionalProperties: false
    FieldErrors:
      properties: {}
      type: object
      additionalProperties:
        properties:
          value: {}
          message:
            type: string
        required:
          - message
        type: object
    Chain:
      properties:
        icon:
          type: string
          description: Chain icon URL.
        addressValidation:
          type: string
          description: >-
            Regex a wallet address on this chain must match. Use it to validate
            `addressTo` before creating an exchange.
        tokenAddressValidation:
          type: string
          description: Regex a token contract address on this chain must match.
        id:
          type: string
        created:
          type: string
          format: date-time
        modified:
          type: string
          format: date-time
        name:
          type: string
          description: Readable chain name, e.g. `Bitcoin`.
        shortName:
          type: string
          description: >-
            The chain's identifier. Pass this wherever an endpoint takes a
            chain, e.g. `ethereum`.
        memoNeeded:
          type: boolean
          nullable: true
          description: >-
            True when an address on this chain needs a memo or destination tag,
            e.g. XRP or TON. Send it as `destinationTag` for the payout address,
            or `refundExtraId` for the refund address.
        hashUrl:
          type: string
          description: >-
            Explorer link for a transaction hash, when it differs from
            `explorerUrl`.
        explorerUrl:
          type: string
          description: >-
            Template for a transaction link — substitute `{txHash}`, e.g.
            `https://blockchair.com/bitcoin/transaction/{txHash}`.
        addressUrl:
          type: string
          description: >-
            Template for an address link — substitute `{address}`, e.g.
            `https://blockchair.com/bitcoin/address/{address}`.
        priority:
          type: number
          format: double
          description: Display order — lower sorts first.
        kind:
          type: string
          description: >-
            Chain family, e.g. `evm`, `sol`, `bitcoin`, `xmr`, `ltc`. Determines
            the address format and which on-chain steps a DEX swap needs.
        chainId:
          type: number
          format: double
          nullable: true
          description: EVM chain id, e.g. `1` for Ethereum. Null on non-EVM chains.
        enabled:
          type: boolean
          description: False when the chain is temporarily not routing swaps.
        shortNameV1:
          type: string
          description: The chain's name in the v1 API. Use `shortName` instead.
      required:
        - icon
        - addressValidation
        - tokenAddressValidation
        - id
        - created
        - name
        - shortName
        - explorerUrl
        - addressUrl
        - kind
        - enabled
        - shortNameV1
      type: object
      additionalProperties: false
    TokenSecurityScan:
      properties:
        provider:
          type: string
          description: Screening provider that produced this verdict.
        resultType:
          $ref: '#/components/schemas/TokenScanResult'
        providerResultType:
          type: string
          description: >-
            The provider's own `result_type` string, kept unmapped so a verdict
            we don't model yet is still visible to support instead of being
            erased.
        maliciousScore:
          type: number
          format: double
          description: >-
            Provider `malicious_score`, 0..1. Arrives as a string; stored as a
            number.
        features:
          items:
            $ref: '#/components/schemas/TokenScanFeature'
          type: array
          default: []
        unscannedReason:
          $ref: '#/components/schemas/TokenScanUnscannedReason'
        unscannedDetail:
          type: string
          description: >-
            Free-text detail behind `unscannedReason` (provider message,
            status…).
        scannedAt:
          type: string
          format: date-time
        expiresAt:
          type: string
          format: date-time
          description: When this verdict goes stale and the token should be re-scanned.
      required:
        - scannedAt
        - expiresAt
      type: object
      additionalProperties: false
    TokenScanResult:
      description: >-
        Security verdict for a token. Branch on this rather than on `features`.


        - `Benign` — no issues found

        - `Warning` — show a warning before swapping

        - `Malicious` — do not swap

        - `Unscanned` — could not be screened. Screening is fail-open, so this
        never blocks a swap on its own.
      enum:
        - Benign
        - Warning
        - Malicious
        - Unscanned
      type: string
    TokenScanFeature:
      description: >-
        One finding from the security scan, for display only. The list of
        possible findings changes over time, so branch on `resultType` instead.
      properties:
        featureId:
          type: string
        type:
          type: string
          description: >-
            Provider severity for this feature: Malicious | Warning | Benign |
            Info.
        description:
          type: string
      type: object
      additionalProperties: false
    TokenScanUnscannedReason:
      description: >-
        Why a token ended up `UNSCANNED`. Diagnostic only — never a branching
        input.
      enum:
        - NOT_CONFIGURED
        - UNSUPPORTED_CHAIN
        - NATIVE_TOKEN
        - RATE_LIMITED
        - TIMEOUT
        - PROVIDER_ERROR
        - NO_RESULT
        - SCAN_PENDING
        - NOT_A_TOKEN
        - UNKNOWN_RESULT_TYPE
      type: string
  securitySchemes:
    apiKey:
      type: apiKey
      name: Authorization
      in: header
      description: >-
        Send `Authorization: <ApiKey>:<ApiSecret>` — joined by a colon, raw. No
        `Bearer` prefix, no base64.


        [Get your
        credentials](https://docs.houdiniswap.com/developer-hub/getting-started/authentication)

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.