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

# List a market's registered maker books

> Every maker book in the market's registry, in registry order — the order a swap attaches them, which is the order the on-chain engine fills them in. Empty when the registry is empty. Only registered books take part in swaps; a maker's unregistered book shows in `GET /v1/makerbook?user=` but not here.



## OpenAPI

````yaml /openapi.json get /v1/makerbook/registry/{market}
openapi: 3.0.3
info:
  description: >-
    REST API for the Archer Exchange — a high-performance Solana-based order
    book exchange.


    All monetary values (prices, sizes, fees) are returned as decimal strings
    for precision.


    ### Rate Limiting

    All endpoints are rate-limited via a token-bucket algorithm. When the limit
    is exceeded, the API returns `429 Too Many Requests`.


    ### Error Format

    All errors follow a consistent JSON format:

    ```json

    {
      "error": "ERROR_CODE",
      "message": "Human-readable description"
    }

    ```


    ### Handling errors

    Every error falls into one of five actions. REST errors come back as
    `{"error": CODE, "message"}`. A transaction that fails on-chain reports
    `{"InstructionError": [index, {"Custom": code}]}`; codes are the `errors`
    list of the program IDL (`archer-sdk/idl/archer_v1.json`). When a build
    endpoint's preflight catches an on-chain error first, it returns `400
    INVALID_PARAMS` with the reason in `message`.


    | Action | REST | On-chain (code) |

    |---|---|---|

    | **Retry as is**, with backoff | `RATE_LIMITED` (429),
    `SERVICE_UNAVAILABLE` (503), `INTERNAL_ERROR` (500); relay `OVERLOADED`,
    `PREFLIGHT_UNAVAILABLE`. Keep backing off on 429: 50 of them within a minute
    from one IP returns `BANNED` (403) for 10 minutes | none |

    | **Refetch, rebuild, retry**: the book or registry changed under you | |
    `LevelSizeMismatch` (527), `StaleSequenceNumber` (509),
    `SequenceNumberTooFarAhead` (522), `RegistryBooksMismatch` (525),
    `IncompleteMakerBooks` (513), `NoMatchingLiquidity` (507); relay status
    `expired` (re-sign with a fresh blockhash) |

    | **Reprice** | `CROSSES_SPREAD`, `SLIPPAGE_EXCEEDED` | `PostOnlyWouldCross`
    (524), `CrossingOrderLevels` (505), `InvalidPrice` (503),
    `SlippageToleranceExceeded` (703) |

    | **Resize** | `INSUFFICIENT_LIQUIDITY` (the body's `availableSize` is what
    fits) | `MakerBookSideFull` (528: cancel a level first),
    `InvalidSizeAtLevel` (506), `InsufficientBalance` (402) and SPL Token `1`
    (fund the account or shrink), `ZeroSwapAmount` (702) |

    | **Stop**: fix the request or the setup; retrying cannot help |
    `INVALID_PARAMS`, `MISSING_API_KEY` / `INVALID_API_KEY` (401), `FORBIDDEN`,
    `NOT_FOUND`, `MARKET_NOT_FOUND`, `METHOD_NOT_ALLOWED`; `MARKET_PAUSED` /
    `MARKET_FROZEN` until the market resumes |
    `UnauthorizedArcherAccountDelegate` (1001), `BuilderFeeExceedsAccountCap`
    (1003), `UnauthorizedMaker` (502), `MakerNotRegistered` (512),
    `PostOnlyRequiresLimitOrderBook` (526), `MarketNotActive` (107),
    `MarketFrozen` (114); any 200–399 code (wrong account wiring, a bug to
    report) |
  title: Archer Exchange API
  version: 1.0.0
servers:
  - description: Production
    url: https://api.archer.exchange
  - description: Staging
    url: https://api-staging.archer.exchange
  - description: Local
    url: http://localhost:8080
security:
  - apiKey: []
tags:
  - description: Discover and inspect available trading markets
    name: Markets
  - description: Token metadata for every mint Archer lists
    name: Tokens
  - description: Get price quotes before placing an order
    name: Quote
  - description: Build unsigned Solana transactions for swaps
    name: Orders
  - description: Build unsigned Solana transactions for limit orders
    name: Limit Orders
  - description: >-
      ArcherAccount — a wallet's delegated trading identity. Collateral sits in
      token accounts owned by the account PDA; an authorized delegate can trade
      and quote as the account but never withdraw.
    name: Account
  - description: Read a maker book — balances and resting levels — by PDA or by owner
    name: Maker Books
  - description: Deposit / withdraw / close — fund movement for a maker book
    name: Maker Funds
  - description: Public protocol-wide aggregate statistics
    name: Stats
  - description: >-
      Submit signed Solana transactions and let Archer land them. Hosted at
      `https://send.archer.exchange`, separate from the REST API, using the same
      API key.
    name: Transaction Relay
paths:
  /v1/makerbook/registry/{market}:
    get:
      tags:
        - Maker Books
      summary: List a market's registered maker books
      description: >-
        Every maker book in the market's registry, in registry order — the order
        a swap attaches them, which is the order the on-chain engine fills them
        in. Empty when the registry is empty. Only registered books take part in
        swaps; a maker's unregistered book shows in `GET /v1/makerbook?user=`
        but not here.
      operationId: listRegistryMakerBooks
      parameters:
        - description: Base58 market address.
          example: u8tnfCb1JSSghuNFquQ2beStYgAN1kmd1f1Lhxbaec4
          in: path
          name: market
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              example:
                - asks:
                    - price: '150.050000'
                      size: '10.000000000'
                  baseMint: So11111111111111111111111111111111111111112
                  baseQty: '125.000000000'
                  bids:
                    - price: '149.950000'
                      size: '10.000000000'
                    - price: '149.500000'
                      size: '25.000000000'
                  makerBook: DC9gaZyxgJtGyhH8V6nPDd71VB7aE3E7puCZRNqC3iWj
                  market: u8tnfCb1JSSghuNFquQ2beStYgAN1kmd1f1Lhxbaec4
                  quoteMint: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                  quoteQty: '18750.000000'
                  user: GLKCuotKSjPtQhxHmf6q8GUkw6tUZnzs8W5vEbxdaBdK
              schema:
                items:
                  $ref: '#/components/schemas/MakerBookResponse'
                type: array
          description: The registered maker books, in registry order.
        '400':
          $ref: '#/components/responses/InvalidParams'
        '404':
          $ref: '#/components/responses/MarketNotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    MakerBookResponse:
      description: >-
        A maker book: balances (total deposits, free + locked) and resting
        levels, in human units.
      properties:
        asks:
          description: Resting asks, lowest price first.
          items:
            $ref: '#/components/schemas/MakerBookLevel'
          type: array
        baseMint:
          example: So11111111111111111111111111111111111111112
          type: string
        baseQty:
          description: Base tokens deposited, free + locked (decimal string).
          example: '125.000000000'
          type: string
        bids:
          description: Resting bids, highest price first.
          items:
            $ref: '#/components/schemas/MakerBookLevel'
          type: array
        makerBook:
          description: The maker book account (PDA).
          type: string
        market:
          example: u8tnfCb1JSSghuNFquQ2beStYgAN1kmd1f1Lhxbaec4
          type: string
        quoteMint:
          example: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
          type: string
        quoteQty:
          description: Quote tokens deposited, free + locked (decimal string).
          example: '18750.000000'
          type: string
        user:
          description: The maker wallet that owns it.
          type: string
      required:
        - makerBook
        - user
        - market
        - baseMint
        - quoteMint
        - baseQty
        - quoteQty
        - bids
        - asks
      type: object
    MakerBookLevel:
      properties:
        price:
          description: Quote per base (decimal string).
          example: '149.950000'
          type: string
        size:
          description: Base tokens resting at this price (decimal string).
          example: '10.000000000'
          type: string
      required:
        - price
        - size
      type: object
    ErrorResponse:
      properties:
        error:
          description: Machine-readable error code.
          enum:
            - INVALID_PARAMS
            - MARKET_NOT_FOUND
            - MARKET_PAUSED
            - INSUFFICIENT_LIQUIDITY
            - SLIPPAGE_EXCEEDED
            - NOT_FOUND
            - FORBIDDEN
            - RATE_LIMITED
            - INTERNAL_ERROR
            - SERVICE_UNAVAILABLE
            - MARKET_FROZEN
            - CROSSES_SPREAD
            - MISSING_API_KEY
            - INVALID_API_KEY
            - BANNED
            - METHOD_NOT_ALLOWED
          type: string
        message:
          description: Human-readable error description.
          type: string
      required:
        - error
        - message
      type: object
  responses:
    InvalidParams:
      content:
        application/json:
          example:
            error: INVALID_PARAMS
            message: 'Invalid market address: xyz'
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Invalid request parameters.
    MarketNotFound:
      content:
        application/json:
          example:
            error: MARKET_NOT_FOUND
            message: 'Market not found: 5Ggx...abc'
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Market not found.
    RateLimited:
      content:
        application/json:
          example:
            error: RATE_LIMITED
            message: Too many requests. Please slow down.
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Too many requests.
    InternalError:
      content:
        application/json:
          example:
            error: INTERNAL_ERROR
            message: 'Internal error: ...'
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Internal server error.
  securitySchemes:
    apiKey:
      in: header
      name: X-API-Key
      type: apiKey

````

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