Stellar Order Books API

An order book is a collections of offers for a specific pair of assets.

OpenAPI Specification

stellar-order-books-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: 3.0.0
  title: Platform Server Accounts Order Books API
  description: 'The platform server is an internal component. It should be hosted in a private network and should not be accessible from the Internet. This server enables the business to fetch and update the state of transactions using its API.

    '
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://platform-server.exampleanchor.com
tags:
- name: Order Books
  description: An order book is a collections of offers for a specific pair of assets.
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/apis/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'
      x-supports-streaming: true
      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://horizon-testnet.stellar.org/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\");\nvar server = new StellarSdk.Horizon.Server(\n  \"https://horizon-testnet.stellar.org\",\n);\n\nserver\n  .orderbook(\n    new StellarSdk.Asset.native(),\n    new StellarSdk.Asset(\n      \"BB1\",\n      \"GD5J6HLF5666X4AZLTFTXLY46J5SW7EXRKBLEYPJP33S33MXZGV6CWFN\",\n    ),\n  )\n  .call()\n  .then(function (resp) {\n    console.log(resp);\n  })\n  .catch(function (err) {\n    console.error(err);\n  });\n"
components:
  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}
  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
    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
    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
    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
    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
    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
  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