Stellar Trade Aggregations API

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.

OpenAPI Specification

stellar-trade-aggregations-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: 3.0.0
  title: Platform Server Accounts Trade Aggregations 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: 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.
paths:
  /trade_aggregations:
    get:
      tags:
      - Trade Aggregations
      summary: List Trade Aggregations
      description: 'This endpoint displays trade data based on filters set in the arguments.


        This is done by dividing a given time range into segments and aggregating statistics, for a given asset pair (base, counter) over each of these segments.


        The duration of the segments is specified with the `resolution` parameter. The start and end of the time range are given by `startTime` and `endTime` respectively, which are both rounded to the nearest multiple of `resolution` since epoch.


        The individual segments are also aligned with multiples of `resolution` since epoch. If you want to change this alignment, the segments can be `offset` by specifying the offset parameter.

        '
      operationId: ListTradeAggregations
      parameters:
      - $ref: '#/components/parameters/StartTimeParam'
      - $ref: '#/components/parameters/EndTimeParam'
      - $ref: '#/components/parameters/ResolutionParam'
      - $ref: '#/components/parameters/OffsetParam'
      - $ref: '#/components/parameters/BaseAssetTypeRequiredParam'
      - $ref: '#/components/parameters/BaseAssetIssuerParam'
      - $ref: '#/components/parameters/BaseAssetCodeParam'
      - $ref: '#/components/parameters/CounterAssetTypeRequiredParam'
      - $ref: '#/components/parameters/CounterAssetIssuerParam'
      - $ref: '#/components/parameters/CounterAssetCodeParam'
      - $ref: '#/components/parameters/OrderParam'
      - $ref: '#/components/parameters/LimitParam'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TradeAggregation'
              examples:
                ListTradeAggregations:
                  $ref: '#/components/examples/ListTradeAggregations'
      x-codeSamples:
      - lang: Shell
        source: 'curl https://horizon.stellar.org/trade_aggregations?\

          base_asset_type=native&\

          counter_asset_code=EURT&\

          counter_asset_issuer=GAP5LETOV6YIE62YAM56STDANPRDO7ZFDBGSNHJQIYGGKSMOZAHOOS2S&\

          counter_asset_type=credit_alphanum4&\

          resolution=3600000&\

          start_time=1582156800000&\

          end_time=1582178400000

          '
      - 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\nvar base = new StellarSdk.Asset.native();\nvar counter = new StellarSdk.Asset(\n  \"EURT\",\n  \"GAP5LETOV6YIE62YAM56STDANPRDO7ZFDBGSNHJQIYGGKSMOZAHOOS2S\",\n);\nvar startTime = 1582156800000;\nvar endTime = 1582178400000;\nvar resolution = 3600000;\nvar offset = 0;\n\nserver\n  .tradeAggregation(base, counter, startTime, endTime, resolution, offset)\n  .call()\n  .then(function (resp) {\n    console.log(resp);\n  })\n  .catch(function (err) {\n    console.error(err);\n  });\n"
components:
  examples:
    ListTradeAggregations:
      value:
        _links:
          self:
            href: https://horizon-testnet.stellar.org/trade_aggregations?base_asset_type=native&counter_asset_code=EURT&counter_asset_issuer=GAP5LETOV6YIE62YAM56STDANPRDO7ZFDBGSNHJQIYGGKSMOZAHOOS2S&counter_asset_type=credit_alphanum4&resolution=3600000&start_time=1582156800000&end_time=1582178400001
          next:
            href: https://horizon-testnet.stellar.org/trade_aggregations?base_asset_type=native&counter_asset_code=EURT&counter_asset_issuer=GAP5LETOV6YIE62YAM56STDANPRDO7ZFDBGSNHJQIYGGKSMOZAHOOS2S&counter_asset_type=credit_alphanum4&end_time=1582178400001&resolution=3600000&start_time=1582171200000
          prev:
            href: ''
        _embedded:
          records:
          - timestamp: 1582164000000
            trade_count: 3
            base_volume: '399.3873200'
            counter_volume: '25.5368082'
            avg: '0.0639400'
            high: '0.0652169'
            high_r:
              N: 652169
              D: 10000000
            low: '0.0638338'
            low_r:
              N: 8107550
              D: 127010393
            open: '0.0652169'
            open_r:
              N: 652169
              D: 10000000
            close: '0.0638338'
            close_r:
              N: 8107550
              D: 127010393
          - timestamp: 1582167600000
            trade_count: 1
            base_volume: '149.8415320'
            counter_volume: '9.7149804'
            avg: '0.0648350'
            high: '0.0648350'
            high_r:
              N: 5000000
              D: 77118803
            low: '0.0648350'
            low_r:
              N: 5000000
              D: 77118803
            open: '0.0648350'
            open_r:
              N: 5000000
              D: 77118803
            close: '0.0648350'
            close_r:
              N: 5000000
              D: 77118803
  parameters:
    CounterAssetCodeParam:
      name: counter_asset_code
      in: query
      required: false
      description: The code for the counter asset. Required if the `counter_asset_type` is not `native`.
      schema:
        type: string
        example: USD
    OrderParam:
      name: order
      in: query
      required: false
      description: A designation of the order in which records should appear. Options include `asc` (ascending) or `desc` (descending). If this argument isn’t set, it defaults to `asc`.
      schema:
        type: string
        enum:
        - asc
        - desc
    ResolutionParam:
      name: resolution
      in: query
      required: false
      description: The segment duration represented as milliseconds. Supported values are 1 minute (60000), 5 minutes (300000), 15 minutes (900000), 1 hour (3600000), 1 day (86400000) and 1 week (604800000).
      schema:
        type: integer
        format: long
        oneOf:
        - const: 60000
          description: 1 minute
        - const: 300000
          description: 5 minutes
        - const: 900000
          description: 15 minutes
        - const: 3600000
          description: 1 hour
        - const: 86400000
          description: 1 day
        - const: 604800000
          description: 1 week
    OffsetParam:
      name: offset
      in: query
      required: false
      description: Segments can be offset using this parameter. Expressed in milliseconds. Can only be used if the resolution is greater than 1 hour. Value must be in whole hours, less than the provided resolution, and less than 24 hours.
      schema:
        type: number
        format: long
    StartTimeParam:
      name: start_time
      in: query
      required: false
      description: The lower time boundary represented as milliseconds since epoch.
      schema:
        type: integer
        format: long
    CounterAssetIssuerParam:
      name: counter_asset_issuer
      in: query
      required: false
      description: The Stellar address of the counter asset’s issuer. Required if the `counter_asset_type` is not `native`.
      schema:
        type: string
        example: GDUKMGUGDZQK6YHYA5Z6AY2G4XDSZPSZ3SW5UN3ARVMO6QSRDWP5YLEX
    CounterAssetTypeRequiredParam:
      name: counter_asset_type
      in: query
      required: true
      description: The type for the counter asset. Either `native`, `credit_alphanum4`, or `credit_alphanum12`.
      schema:
        type: string
        enum:
        - native
        - credit_alphanum4
        - credit_alphanum12
    LimitParam:
      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 10.
      schema:
        type: integer
        example: 10
    BaseAssetIssuerParam:
      name: base_asset_issuer
      in: query
      required: false
      description: The Stellar address of the base asset’s issuer. Required if the `base_asset_type` is not `native`.
      schema:
        type: string
        example: GDUKMGUGDZQK6YHYA5Z6AY2G4XDSZPSZ3SW5UN3ARVMO6QSRDWP5YLEX
    BaseAssetTypeRequiredParam:
      name: base_asset_type
      in: query
      required: true
      description: The type for the base asset. Either `native`, `credit_alphanum4`, or `credit_alphanum12`.
      schema:
        type: string
        enum:
        - native
        - credit_alphanum4
        - credit_alphanum12
    BaseAssetCodeParam:
      name: base_asset_code
      in: query
      required: false
      description: The code for the base asset. Required if the `base_asset_type` is not `native`.
      schema:
        type: string
        example: USD
    EndTimeParam:
      name: end_time
      in: query
      required: false
      description: The upper time boundary represented as milliseconds since epoch.
      schema:
        type: integer
        format: long
  schemas:
    tradePrice:
      type: object
      properties:
        n:
          type: string
        d:
          type: string
    TradeAggregation:
      type: object
      properties:
        _embedded:
          type: object
          properties:
            records:
              type: array
              items:
                type: object
                properties:
                  timestamp:
                    type: string
                  trade_count:
                    type: string
                  base_volume:
                    type: string
                  counter_volume:
                    type: string
                  avg:
                    type: string
                  high:
                    type: string
                  high_r:
                    $ref: '#/components/schemas/tradePrice'
                  low:
                    type: string
                  low_r:
                    $ref: '#/components/schemas/tradePrice'
                  open:
                    type: string
                  open_r:
                    $ref: '#/components/schemas/tradePrice'
                  close:
                    type: string
                  close_r:
                    $ref: '#/components/schemas/tradePrice'