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

# Retrieve an Order Book

> The order book endpoint provides an order book's bids and asks and can be used in [streaming](https://developers.stellar.org/docs/data/horizon/api-reference/structure/streaming) mode.

When filtering for a specific order book, you must use use all six of these arguments: `base_asset_type`, `base_asset_issuer`, `base_asset_code`, `counter_asset_type`, `counter_asset_issuer`, and `counter_asset_code`. If the base or counter asset is XLM, you only need to indicate the asset type as `native` and do not need to designate the code or the issuer.


This method will use `10` [Compute Units](/nodeapi/about/billing).


## OpenAPI

````yaml nodeapi/openapi/bundled-stellar-horizon-vc-urls.json GET /order_book
openapi: 3.1.0
info:
  title: Horizon
  version: 0.0.1
  summary: >-
    Horizon provides an HTTP API to data in the Stellar network. It ingests and
    re-serves the data produced by the Stellar network in a form that is easier
    to consume by the average application relative to the performance-oriented
    data representations used by Stellar Core. This API serves the bridge
    between apps and Stellar Core. Projects like wallets, decentralized
    exchanges, and asset issuers use Horizon to submit transactions, query an
    account balance, or stream events like transactions to an account.
servers:
  - url: https://{network}.stellar.validationcloud.io/v1/<YOUR_API_KEY_HERE>
    variables:
      network:
        default: mainnet
        enum:
          - mainnet
          - testnet
          - archive
    description: Validation Cloud Stellar Horizon RPC
security: []
tags:
  - name: Accounts
    description: >-
      Users interact with the Stellar network through accounts. Everything else
      in the ledger—assets, offers, trustlines, etc. are owned by accounts, and
      accounts must authorize all changes to the ledger through signed
      transactions.
  - name: Assets
    description: >-
      Assets are representations of value issued on the Stellar network. An
      asset consists of a type, code, and issuer.
  - name: Claimable Balances
    description: >-
      A Claimable Balance represents the transfer of ownership of some amount of
      an asset. Claimable balances provide a mechanism for setting up a payment
      which can be claimed in the future. This allows you to make payments to
      accounts which are currently not able to accept them.
  - name: Effects
    description: >-
      Effects represent specific changes that occur in the ledger as a result of
      successful operations, but are not necessarily directly reflected in the
      ledger or history, as transactions and operations are.
  - name: Fee Stats
    description: >-
      Fee stats are used to predict what fee to set for a transaction before
      submitting it to the network.
  - name: Liquidity Pools
    description: >-
      Liquidity Pools provide a simple, non-interactive way to trade large
      amounts of capital and enable high volumes of trading.
  - name: Ledgers
    description: >-
      Each ledger stores the state of the network at a point in time and
      contains all the changes - transactions, operations, effects, etc. - to
      that state.
  - name: Offers
    description: >-
      Offers are statements about how much of an asset an account wants to buy
      or sell.
  - name: Operations
    description: >-
      Operations are objects that represent a desired change to the ledger:
      payments, offers to exchange currency, changes made to account options,
      etc. Operations are submitted to the Stellar network grouped in a
      Transaction.
  - name: Order Books
    description: An order book is a collections of offers for a specific pair of assets.
  - name: Paths
    description: >-
      Paths provide information about potential path payments. A path can be
      used to populate the necessary fields for a path payment operation.
  - name: Payments
    description: >-
      Payments are objects that represent balance transfer from one address to
      another. Payments are submitted to the Stellar network grouped in a
      Transaction.
  - name: Trade Aggregations
    description: >-
      A trade aggregation represents aggregated statistics on an asset pair
      (base and counter) for a specific time period. Trade aggregations are
      useful to developers of trading clients and provide historical trade data.
  - name: Trades
    description: >-
      When an offer is fully or partially fulfilled, a trade happens. Trades can
      also be caused by successful path payments, because path payments involve
      fulfilling offers. A trade occurs between two parties—base and counter.
      Which is which is either arbitrary or determined by the calling query.
  - name: Transactions
    description: >-
      Transactions are commands that modify the ledger state and consist of one
      or more operations.
paths:
  /order_book:
    get:
      tags:
        - Order Books
      summary: Retrieve an Order Book
      description: >
        The order book endpoint provides an order book's bids and asks and can
        be used in
        [streaming](https://developers.stellar.org/docs/data/horizon/api-reference/structure/streaming)
        mode.


        When filtering for a specific order book, you must use use all six of
        these arguments: `base_asset_type`, `base_asset_issuer`,
        `base_asset_code`, `counter_asset_type`, `counter_asset_issuer`, and
        `counter_asset_code`. If the base or counter asset is XLM, you only need
        to indicate the asset type as `native` and do not need to designate the
        code or the issuer.
      operationId: RetrieveAnOrderBook
      parameters:
        - $ref: '#/components/parameters/SellingAssetTypeRequiredParam'
        - $ref: '#/components/parameters/SellingAssetIssuerParam'
        - $ref: '#/components/parameters/SellingAssetCodeParam'
        - $ref: '#/components/parameters/BuyingAssetTypeParam'
        - $ref: '#/components/parameters/BuyingAssetIssuerParam'
        - $ref: '#/components/parameters/BuyingAssetCodeParam'
        - $ref: '#/components/parameters/OrderBookLimitParam'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderBook'
              examples:
                RetrieveAnOrderBook:
                  $ref: '#/components/examples/RetrieveAnOrderBook'
      x-codeSamples:
        - lang: Shell
          source: >
            curl
            https://mainnet.stellar.validationcloud.io/v1/<YOUR_API_KEY_HERE>//order_book?\

            selling_asset_type=native&\

            buying_asset_type=credit_alphanum4&\

            buying_asset_code=USDC&\

            buying_asset_issuer=GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN&\

            limit=4
        - lang: JavaScript
          label: '@stellar/stellar-sdk'
          source: |
            var StellarSdk = require("@stellar/stellar-sdk");
            var server = new StellarSdk.Horizon.Server(
              "https://mainnet.stellar.validationcloud.io/v1/<YOUR_API_KEY_HERE>/",
            );

            server
              .orderbook(
                new StellarSdk.Asset.native(),
                new StellarSdk.Asset(
                  "BB1",
                  "GD5J6HLF5666X4AZLTFTXLY46J5SW7EXRKBLEYPJP33S33MXZGV6CWFN",
                ),
              )
              .call()
              .then(function (resp) {
                console.log(resp);
              })
              .catch(function (err) {
                console.error(err);
              });
components:
  parameters:
    SellingAssetTypeRequiredParam:
      name: selling_asset_type
      in: query
      required: true
      description: >-
        The type for the asset being sold (base asset). Either `native`,
        `credit_alphanum4`, or `credit_alphanum12`.
      schema:
        type: string
        enum:
          - native
          - credit_alphanum4
          - credit_alphanum12
    SellingAssetIssuerParam:
      name: selling_asset_issuer
      in: query
      required: false
      description: >-
        The Stellar address of the issuer of the asset being sold (base asset).
        Required if the `selling_asset_type` is not `native`.
      schema:
        type: string
        example: GDUKMGUGDZQK6YHYA5Z6AY2G4XDSZPSZ3SW5UN3ARVMO6QSRDWP5YLEX
    SellingAssetCodeParam:
      name: selling_asset_code
      in: query
      required: false
      description: >-
        The code for the asset being sold (base asset). Required if the
        `selling_asset_type` is not `native`.
      schema:
        type: string
        example: USD
    BuyingAssetTypeParam:
      name: buying_asset_type
      in: query
      required: false
      description: >-
        The type for the asset being bought (counter asset). Either `native`,
        `credit_alphanum4`, or `credit_alphanum12`.
      schema:
        type: string
        enum:
          - native
          - credit_alphanum4
          - credit_alphanum12
    BuyingAssetIssuerParam:
      name: buying_asset_issuer
      in: query
      required: false
      description: >-
        The Stellar address of the issuer of the asset being bought (counter
        asset). Required if the `buying_asset_type` is not `native`.
      schema:
        type: string
        example: GDUKMGUGDZQK6YHYA5Z6AY2G4XDSZPSZ3SW5UN3ARVMO6QSRDWP5YLEX
    BuyingAssetCodeParam:
      name: buying_asset_code
      in: query
      required: false
      description: >-
        The code for the asset being bought (counter asset). Required if the
        `buying_asset_type` is not `native`.
      schema:
        type: string
        example: EUR
    OrderBookLimitParam:
      name: limit
      in: query
      required: false
      description: >-
        The maximum number of records returned. The limit can range from 1 to
        200 — an upper limit that is hardcoded in Horizon for performance
        reasons. If this argument isn’t designated, it defaults to 20 for order
        books.
      schema:
        type: integer
        example: 20
  schemas:
    OrderBook:
      type: object
      properties:
        bids:
          type: array
          items:
            type: object
            properties:
              price_r:
                type: object
                properties:
                  'n':
                    type: integer
                  d:
                    type: integer
              price:
                type: string
              amount:
                type: string
        asks:
          type: array
          items:
            type: object
            properties:
              price_r:
                type: object
                properties:
                  'n':
                    type: integer
                  d:
                    type: integer
              price:
                type: string
              amount:
                type: string
        base:
          type: object
          properties:
            asset_type:
              type: string
        counter:
          type: object
          properties:
            asset_type:
              type: string
            asset_code:
              type: string
            asset_issuer:
              $ref: '#/components/schemas/address'
    address:
      type: string
      pattern: G[A-Z0-9]{55}
  examples:
    RetrieveAnOrderBook:
      value:
        bids:
          - price_r:
              'n': 10000000
              d: 139999999
            price: '0.0714286'
            amount: '24.9999990'
          - price_r:
              'n': 1
              d: 14
            price: '0.0714286'
            amount: '188.0000000'
          - price_r:
              'n': 1
              d: 15
            price: '0.0666667'
            amount: '230.3200000'
          - price_r:
              'n': 1
              d: 16
            price: '0.0625000'
            amount: '50.0000000'
        asks:
          - price_r:
              'n': 5000000
              d: 62500001
            price: '0.0800000'
            amount: '4.9400001'
          - price_r:
              'n': 10000000
              d: 125000001
            price: '0.0800000'
            amount: '2516.5154327'
          - price_r:
              'n': 2
              d: 25
            price: '0.0800000'
            amount: '3125.0000000'
          - price_r:
              'n': 4
              d: 49
            price: '0.0816327'
            amount: '4593.7500000'
        base:
          asset_type: native
        counter:
          asset_type: credit_alphanum4
          asset_code: BB1
          asset_issuer: GD5J6HLF5666X4AZLTFTXLY46J5SW7EXRKBLEYPJP33S33MXZGV6CWFN

````

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