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

# Search merchant spend data

> Search Laso's merchant database for confirmed spend data for a given card type. Returns whether the card was accepted, not accepted, or unknown at each merchant.

Use `card_type` to search by the USA prepaid card (`Non-Reloadable U.S.`, the default) or the international prepaid card (`Non-Reloadable International`). USA searches exclude merchants with non-US country-code TLDs; international searches do not.

**Important:** This database only contains merchants where Laso users have previously attempted a transaction. A merchant not being listed, or being listed as `unknown`, does NOT mean the card won't work there — it just means it hasn't been tried yet. If a merchant is listed as `accepted`, you can confidently use the card there. If listed as `not_accepted`, the card will fail at that merchant.

Requires a Bearer token from `/auth` or `/get-card`.



## OpenAPI

````yaml /api-reference/openapi.json get /search-merchants
openapi: 3.1.0
info:
  title: Laso Finance x402 API
  version: 1.0.0
  description: >-
    Payment-gated API for Laso Finance. All paywalled routes use the x402
    protocol — the caller includes a USDC payment header on Base (eip155:8453)
    or Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp) and the server verifies
    payment before processing. Free routes require no payment header.


    ## Getting started


    To set up a wallet for making x402 payments, choose a provider:


    - **Locus** (default): https://paywithlocus.com/SKILL.md

    - **Sponge**: https://wallet.paysponge.com/skill.md — automatic x402 service
    discovery

    - **Ampersend**: https://www.ampersend.ai/getting-started.md — self-custody
    on Base with dual-approval spending limits. Laso Finance is a default skill,
    so no manual endpoint registration is needed.


    ## How x402 works


    1. Call a paywalled endpoint without a payment header → receive a `402
    Payment Required` response containing payment details (price, recipient
    address, network).

    2. Construct an x402 payment header using the details from the 402 response.

    3. Replay the request with the payment header → the server verifies payment
    and processes the request.


    ## Authentication flow


    `GET /auth` is free: callers prove wallet ownership by sending a
    `SIGN-IN-WITH-X` header (CAIP-122 wallet signature). Paywalled routes
    (`/get-card`, `/order-gift-card`, `/get-push-to-card`, `/order-intl-card`)
    also return fresh auth credentials in their responses, so a payment is never
    required just to obtain a token.


    Most routes return auth credentials (`id_token`, `refresh_token`,
    `expires_in`). Use the `id_token` as a Bearer token to call authenticated
    Laso Finance endpoints like `/get-card-data`. When the `id_token` expires,
    use `POST /auth` with `grant_type: refresh_token` to get a new one.


    ## Important notes


    The `/get-card` USA prepaid card endpoint is U.S. only — issued in USD,
    usable at U.S.-based merchants only, and physical goods must ship to a U.S.
    address. For non-U.S. merchants or non-USD currencies, use `GET
    /order-intl-card` instead (international prepaid card, admin-fulfilled
    within 24 hours). All cards are intended for the caller's own use.


    For step-by-step instructions, read https://laso.finance/SKILL.md
servers:
  - url: https://laso.finance
    description: Production
security: []
paths:
  /search-merchants:
    get:
      summary: Search merchant spend data
      description: >-
        Search Laso's merchant database for confirmed spend data for a given
        card type. Returns whether the card was accepted, not accepted, or
        unknown at each merchant.


        Use `card_type` to search by the USA prepaid card (`Non-Reloadable
        U.S.`, the default) or the international prepaid card (`Non-Reloadable
        International`). USA searches exclude merchants with non-US country-code
        TLDs; international searches do not.


        **Important:** This database only contains merchants where Laso users
        have previously attempted a transaction. A merchant not being listed, or
        being listed as `unknown`, does NOT mean the card won't work there — it
        just means it hasn't been tried yet. If a merchant is listed as
        `accepted`, you can confidently use the card there. If listed as
        `not_accepted`, the card will fail at that merchant.


        Requires a Bearer token from `/auth` or `/get-card`.
      operationId: searchMerchants
      parameters:
        - name: q
          in: query
          required: true
          description: >-
            Search query — the merchant name to search for (e.g. "amazon",
            "netflix")
          schema:
            type: string
        - name: card_type
          in: query
          required: false
          description: >-
            Which card type to search acceptance for. Defaults to
            `Non-Reloadable U.S.` if omitted (preserves existing client
            behavior). Pass `Non-Reloadable International` to search for
            international prepaid card acceptance.
          schema:
            type: string
            enum:
              - Non-Reloadable U.S.
              - Non-Reloadable International
            default: Non-Reloadable U.S.
      responses:
        '200':
          description: Merchant search results
          content:
            application/json:
              schema:
                type: object
                properties:
                  merchants:
                    type: array
                    items:
                      $ref: '#/components/schemas/MerchantResult'
                  query:
                    type: string
                    description: The search query that was used
                  count:
                    type: integer
                    description: Number of merchants returned
                  card_type:
                    type: string
                    description: The card type results are filtered for
                    example: Non-Reloadable U.S.
                  note:
                    type: string
                    description: >-
                      Important caveat about the data — this database only
                      includes merchants where users have previously attempted
                      transactions
        '400':
          description: Missing search query
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: q query parameter is required
        '401':
          description: Missing or invalid Bearer token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: Missing or invalid Authorization header
      security:
        - BearerAuth: []
components:
  schemas:
    MerchantResult:
      type: object
      description: >-
        A merchant from the spend data database with its acceptance status for
        the Non-Reloadable U.S. card.
      properties:
        name:
          type: string
          description: Merchant name
          example: Amazon
        url:
          type: string
          description: Merchant website URL
          example: amazon.com
        status:
          type: string
          enum:
            - accepted
            - not_accepted
            - unknown
          description: >-
            Whether the Non-Reloadable U.S. card is accepted at this merchant.
            `accepted` = confirmed working, `not_accepted` = confirmed failing,
            `unknown` = card type not yet tried at this merchant.
        description:
          type:
            - string
            - 'null'
          description: Brief description of the merchant
        notes:
          type:
            - string
            - 'null'
          description: Additional notes about using the card at this merchant
    Error:
      type: object
      properties:
        error:
          type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: ID token from `/auth` or `/get-card`

````