Paxos Pricing API

Pricing provides historical data related to charting of asset prices. Note: Some Pricing API markets may be unavailable for trading.

OpenAPI Specification

paxos-pricing-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Paxos Account Members Pricing API
  version: '2.0'
  description: '<p>Welcome to Paxos APIs. At Paxos, our mission is to enable the movement of any asset, any time, in a trustworthy way. These APIs serve that mission by making it easier than ever for you to directly integrate our product capabilities into your application, leveraging the speed, stability, and security of the Paxos platform.</p> <p>The documentation that follows gives you access to our Crypto Brokerage, Trading, and Exchange products. It includes APIs for market data, orders, and the held rate quote flow.</p> <p>To test in our sandbox environment, <a href="https://account.sandbox.paxos.com" target="_blank">sign up</a> for an account. For more information about Paxos and our APIs, visit <a href="https://www.paxos.com/" target="_blank">Paxos.com</a>.</p>

    '
  x-logo:
    url: /docs/paxos.svg
    backgroundColor: '#FFFFFF'
    altText: Paxos logo
servers:
- url: https://api.paxos.com/v2
  description: Production
- url: https://api.sandbox.paxos.com/v2
  description: Sandbox
tags:
- name: Pricing
  description: 'Pricing provides historical data related to charting of asset prices.


    Note: Some Pricing API markets may be unavailable for trading.

    '
paths:
  /all-markets/prices:
    get:
      summary: List Prices
      description: 'Retrieve current prices, as well as 24 hour prior (yesterday) prices, for the specified markets.

        Any single market that failed to be retrieved is excluded from the response.'
      operationId: ListPrices
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPricesResponse'
              examples:
                response:
                  value:
                    prices:
                    - market: BTCUSD
                      current_price: '16627.62'
                      yesterday_price: '16703.29'
                      snapshot_at: '2023-01-03T18:27:40.294528Z'
                    - market: ETHUSD
                      current_price: '1206.93'
                      yesterday_price: '1216.55'
                      snapshot_at: '2023-01-03T18:27:40.294528Z'
      parameters:
      - name: markets
        description: ''
        in: query
        required: true
        explode: true
        schema:
          type: array
          items:
            type: string
            enum:
            - ETHUSD
            - BTCUSD
            - PAXGUSD
            - BCHUSD
            - LTCUSD
            - USDPUSD
            - LINKUSD
            - AAVEUSD
            - UNIUSD
            - PEPEUSD
            - TRUMPUSD
            - SHIBUSD
            - ARBUSD
            - BONKUSD
            - ENAUSD
            - MNTUSD
            - ONDOUSD
            - PENGUUSD
            - QNTUSD
            - RENDERUSD
            - SKYUSD
            - WIFUSD
            - WLDUSD
            - DOGEUSD
            - AVAXUSD
            - SUIUSD
            - POLUSD
            - XLMUSD
            - BNBUSD
      tags:
      - Pricing
  /markets/{market}/historical-prices:
    get:
      summary: List Historical Prices
      description: "Retrieves a set of average prices at a certain increment of time for the requested market.\nThis endpoint is suitable for retrieving historical average price trends where price precision, execution, and\nother detailed information is not required.\nTo control the count, use either  `increment` or `max_data_points`.\nList Historical Prices returns an error when an unexpected value is given, or when `increment` and\n `max_data_points` are both given or omitted.\n\nWhen `range.begin` is omitted, the first data point shows the mid price, the average of the order book best bid\n and ask price, or the earliest available date. It is possible to set `range.begin` to a future date without error.\n\nWhen `range.end` is omitted, the last data point will display current mid price (average of order book best bid\n and best ask) at the request timestamp. It is possible to set `range.end` to a future date without error.\n\nWhen `pagination.limit` is omitted, the pagination limit will default to return the first 100 items.\nIf the pagination limit is set, the API will return up to the limit in one response. The pagination limit max is 1,000.\n\nTime-series items are returned in chronological (ascending) order. All timestamps are in UTC."
      operationId: ListHistoricalPrices
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListHistoricalPricesResponse'
              examples:
                response:
                  value:
                    market: BTCUSD
                    prices:
                    - average_price: '9245.50'
                      timestamp: '2020-01-17T18:36:00.000Z'
                    - average_price: '9265.50'
                      timestamp: '2020-01-17T18:37:00.000Z'
                    total_count: 50
      parameters:
      - name: market
        description: Market of Order Book.
        in: path
        required: true
        schema:
          type: string
          enum:
          - ETHEUR
          - ETHUSD
          - BTCEUR
          - BTCUSD
          - PAXGUSD
          - BCHUSD
          - LTCUSD
          - ETHGBP
          - BTCGBP
          - LTCGBP
          - BCHGBP
          - USDPUSD
          - ETHBRL
          - BTCBRL
          - LTCBRL
          - BCHBRL
          - USDPGBP
          - USDPBRL
          - LINKUSD
          - AAVEUSD
          - UNIUSD
          - AAVEMXN
          - BCHMXN
          - BTCMXN
          - ETHMXN
          - LTCMXN
          - USDPMXN
          - AAVEEUR
          - BCHEUR
          - LTCEUR
          - LINKEUR
          - PAXGEUR
          - SOLEUR
          - USDPEUR
          - UNIEUR
          - PYUSDEUR
          - PYUSDGBP
          - PEPEUSD
          - TRUMPUSD
          - SHIBUSD
          - ARBUSD
          - BONKUSD
          - ENAUSD
          - MNTUSD
          - ONDOUSD
          - PENGUUSD
          - QNTUSD
          - RENDERUSD
          - SKYUSD
          - WIFUSD
          - WLDUSD
          - DOGEUSD
          - AVAXUSD
          - SUIUSD
          - POLUSD
          - XLMUSD
          - BNBUSD
      - name: max_data_points
        description: 'Maximum number of data points to return.


          The time frame of the increments will be inferred by finding the most granular increment without breaching the `max_data_points` value based on a set of recording data points.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: range.begin
        description: Only return records after this timestamp, inclusive. RFC3339 format, like `2006-01-02T15:04:05Z`.
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: range.end
        description: Only return records before this timestamp, inclusive. RFC3339 format, like `2006-01-02T15:04:05Z`.
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: pagination.limit
        description: Number of results to return
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: pagination.offset
        description: Number of results to skip
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: increment
        description: Time increment between prices. Returns data exclusive from `range.begin` and `range.end`. Do not use with `max_data_points`, as this results in an error.
        in: query
        required: false
        schema:
          type: string
          enum:
          - ONE_MINUTE
          - FIVE_MINUTES
          - FIFTEEN_MINUTES
          - THIRTY_MINUTES
          - ONE_HOUR
          - TWO_HOURS
          - TWELVE_HOURS
          - ONE_DAY
          - ONE_WEEK
          - TWO_WEEKS
          - FOUR_WEEKS
      tags:
      - Pricing
      security:
      - OAuth2:
        - exchange:historical_prices
  /markets/{market}/historical-candles:
    get:
      summary: List Historical Candles
      description: "Returns OHLCV Candlesticks data for the given market.\nTo control the count, use either  `increment` or `max_data_points`.\nList Historical Candles returns an error when an unexpected value is given, or when `increment` and\n `max_data_points` are both given or omitted.\n\nWhen `range.end` is omitted, it will default to the current UTC timestamp.\nIt is possible to set `range.end` to a future date without error.\n\nOmitting `range.begin` defaults it to six months before `range.end`.\n\nWhen `limit` is omitted, it will default to return the first 100 items.\nIf `limit` is set, the API will return up to the limit in one response. The maximum limit is 1,000.\n\nTime-series items are in descending order. All timestamps are in UTC.\n\nMarkets that are not yet available will return a 400 error."
      operationId: ListHistoricalCandles
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/publicListHistoricalCandlesResponse'
              examples:
                List Historical Candles:
                  value:
                    market: BTCUSD
                    increment: ONE_MINUTE
                    items:
                    - timestamp: '2020-01-17T18:37:00.000Z'
                      open: '9245.50'
                      high: '9355.50'
                      low: '9155.50'
                      close: '9345.50'
                      volume: '103200.50'
                    - timestamp: '2020-01-17T18:36:00.000Z'
                      open: '9245.50'
                      high: '9355.50'
                      low: '9155.50'
                      close: '9345.50'
                      volume: '103200.50'
                    - timestamp: '2020-01-17T18:35:00.000Z'
                      open: '9245.50'
                      high: '9355.50'
                      low: '9155.50'
                      close: '9345.50'
                      volume: '103200.50'
                    next_page_cursor: CgwI-Pr1vgYQyLLpswESJDM2NGU2MTgyLTRhZjctNDg4NC1iY2MxLTM0MThmNTA0MWYzYg
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
              examples:
                Using max_data_points without setting range param:
                  value:
                    type: about:blank
                    title: Bad Request
                    status: 400
                    detail: range.begin and range.end are required if max_data_points is set
                Setting both increment and max_data_points:
                  value:
                    type: about:blank
                    title: Bad Request
                    status: 400
                    detail: only one of increment or max_data_points should be set
                Setting neither increment nor max_data_points:
                  value:
                    type: about:blank
                    title: Bad Request
                    status: 400
                    detail: either increment or max_data_points must be set
                Using an invalid market value:
                  value:
                    type: about:blank
                    title: Bad Request
                    status: 400
                    detail: invalid market USBTC
                Using an invalid increment value:
                  value:
                    type: about:blank
                    title: Bad Request
                    status: 400
                    detail: invalid increment provided 'INVALID' not in [ONE_MINUTE,FIVE_MINUTES,FIFTEEN_MINUTES,THIRTY_MINUTES,ONE_HOUR,TWO_HOURS,TWELVE_HOURS,ONE_DAY,ONE_WEEK,TWO_WEEKS,FOUR_WEEKS]
      parameters:
      - name: market
        description: Market of candle.
        in: path
        required: true
        schema:
          type: string
          enum:
          - ETHEUR
          - ETHUSD
          - BTCEUR
          - BTCUSD
          - PAXGUSD
          - BCHUSD
          - LTCUSD
          - ETHGBP
          - BTCGBP
          - LTCGBP
          - BCHGBP
          - USDPUSD
          - ETHBRL
          - BTCBRL
          - LTCBRL
          - BCHBRL
          - USDPGBP
          - USDPBRL
          - LINKUSD
          - AAVEUSD
          - UNIUSD
          - AAVEMXN
          - BCHMXN
          - BTCMXN
          - ETHMXN
          - LTCMXN
          - USDPMXN
          - AAVEEUR
          - BCHEUR
          - LTCEUR
          - LINKEUR
          - PAXGEUR
          - SOLEUR
          - USDPEUR
          - UNIEUR
          - PYUSDEUR
          - PYUSDGBP
          - PEPEUSD
          - TRUMPUSD
          - SHIBUSD
          - ARBUSD
          - BONKUSD
          - ENAUSD
          - MNTUSD
          - ONDOUSD
          - PENGUUSD
          - QNTUSD
          - RENDERUSD
          - SKYUSD
          - WIFUSD
          - WLDUSD
          - DOGEUSD
          - AVAXUSD
          - SUIUSD
          - POLUSD
          - XLMUSD
          - BNBUSD
      - name: max_data_points
        description: 'Maximum number of data points to return.


          The time frame of the increments will be inferred by finding the most granular increment without breaching the `max_data_points` value based on a set of recorded data points.'
        in: query
        required: false
        schema:
          type: integer
          format: int64
      - name: range.begin
        description: Only return records after this timestamp, inclusive. RFC3339 format, like `2006-01-02T15:04:05Z`.
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: range.end
        description: Only return records before this timestamp, inclusive. RFC3339 format, like `2006-01-02T15:04:05Z`.
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: limit
        description: Number of results to return. Defaults to `100` if no limit is provided. Maximum `1000`.
        in: query
        required: false
        schema:
          type: integer
          format: int32
      - name: order
        description: Results are ordered by `timestamp`. Specify the ordering of the results. Defaults to `DESC`.
        in: query
        required: false
        schema:
          type: string
          enum:
          - DESC
          - ASC
      - name: page_cursor
        description: Cursor for pagination
        in: query
        required: false
        schema:
          type: string
      - name: increment
        description: Time increment between prices. Returns data inclusive from `range.begin` and `range.end`. Do not use with `max_data_points`, as this results in an error.
        in: query
        required: false
        schema:
          type: string
          enum:
          - ONE_MINUTE
          - FIVE_MINUTES
          - FIFTEEN_MINUTES
          - THIRTY_MINUTES
          - ONE_HOUR
          - TWO_HOURS
          - TWELVE_HOURS
          - ONE_DAY
          - ONE_WEEK
          - TWO_WEEKS
          - FOUR_WEEKS
      tags:
      - Pricing
      security:
      - OAuth2:
        - exchange:historical_prices
components:
  schemas:
    PricePriceMarket:
      type: string
      enum:
      - ETHUSD
      - BTCUSD
      - PAXGUSD
      - BCHUSD
      - LTCUSD
      - USDPUSD
      - LINKUSD
      - AAVEUSD
      - UNIUSD
      - PEPEUSD
      - TRUMPUSD
      - SHIBUSD
      - ARBUSD
      - BONKUSD
      - ENAUSD
      - MNTUSD
      - ONDOUSD
      - PENGUUSD
      - QNTUSD
      - RENDERUSD
      - SKYUSD
      - WIFUSD
      - WLDUSD
      - DOGEUSD
      - AVAXUSD
      - SUIUSD
      - POLUSD
      - XLMUSD
      - BNBUSD
      description: ''
      title: Market
    Increment:
      type: string
      enum:
      - ONE_MINUTE
      - FIVE_MINUTES
      - FIFTEEN_MINUTES
      - THIRTY_MINUTES
      - ONE_HOUR
      - TWO_HOURS
      - TWELVE_HOURS
      - ONE_DAY
      - ONE_WEEK
      - TWO_WEEKS
      - FOUR_WEEKS
    publicListHistoricalCandlesResponse:
      type: object
      properties:
        market:
          $ref: '#/components/schemas/PricePriceMarket'
        increment:
          $ref: '#/components/schemas/Increment'
        items:
          type: array
          items:
            $ref: '#/components/schemas/publicCandlestickPrice'
          description: List of historical candles.
        next_page_cursor:
          type: string
          description: Cursor token required for fetching the next page.
    ListPricesResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/Pricing'
    publicCandlestickPrice:
      type: object
      properties:
        timestamp:
          type: string
          format: date-time
          title: Timestamp at the beginning of an increment
        open:
          type: string
          format: decimal
          title: Opening price of the period
        high:
          type: string
          format: decimal
          title: Highest price during the period
        low:
          type: string
          format: decimal
          title: Lowest price during the period
        close:
          type: string
          title: Closing price of the period
        volume:
          type: string
          format: decimal
          title: Volume traded during the period
    Pricing:
      type: object
      properties:
        market:
          $ref: '#/components/schemas/PricePriceMarket'
        current_price:
          type: string
          format: decimal
          description: The current price for the given market.
        yesterday_price:
          type: string
          format: decimal
          description: The one-minute average price from 24 hours ago. Updates once per minute.
        snapshot_at:
          type: string
          format: date-time
          description: The time when the price was generated. RFC3339 format, like `2023-01-03T18:27:40.294528Z`.
    HistoricalPrice:
      type: object
      properties:
        average_price:
          type: string
          format: decimal
          description: 'Time-weighted average price over the specified time period, beginning at the defined timestamp.

            For example, if `increment` is set to `ONE_HOUR`, then `average_price` is the time-weighted average for an hour.

            The entire time period must be completed to display results.'
        timestamp:
          type: string
          format: date-time
          description: Timestamp at the beginning of an increment.
    Problem:
      type: object
      properties:
        type:
          type: string
          format: uri
          description: 'An absolute URI that identifies the problem type.  When dereferenced,

            it SHOULD provide human-readable documentation for the problem type

            (e.g., using HTML).

            '
          default: about:blank
          example: https://api.paxos.com/v2/problems/insufficient_funds
        title:
          type: string
          description: 'A short, summary of the problem type. Written in english and readable

            for engineers (usually not suited for non technical stakeholders and

            not localized); example: Service Unavailable

            '
          example: Insufficient Funds
        status:
          type: integer
          format: int32
          description: 'The HTTP status code generated by the origin server for this occurrence

            of the problem.

            '
          minimum: 100
          maximum: 600
          exclusiveMaximum: true
          example: 403
        detail:
          type: string
          description: 'A human readable explanation specific to this occurrence of the

            problem.

            '
          example: Not enough funds in account.
        meta:
          type: object
          description: 'Additional structured metadata about the error.

            '
    ListHistoricalPricesResponse:
      type: object
      properties:
        total_count:
          type: integer
          format: int32
        items:
          type: array
          items:
            $ref: '#/components/schemas/HistoricalPrice'
          description: List of historical prices.
  securitySchemes:
    OAuth2:
      type: oauth2
      description: 'Paxos APIs use [OAuth 2](https://tools.ietf.org/html/rfc6749) with the [client credentials](https://tools.ietf.org/html/rfc6749#section-4.4) grant flow.


        **Token URLs:**

        - Production: https://oauth.paxos.com/oauth2/token

        - Sandbox: https://oauth.sandbox.paxos.com/oauth2/token


        Learn more in the [API credentials guide →](https://docs.paxos.com/developer/credentials)

        '
      flows:
        clientCredentials:
          tokenUrl: https://oauth.paxos.com/oauth2/token
          scopes:
            conversion:read_conversion_stablecoin: Retrieve stablecoin conversion details
            conversion:write_conversion_stablecoin: Create or cancel a stablecoin conversion
            exchange:historical_prices: Retrieve marketnaverage prices at a certain time increment
            exchange:read_order: Retrieve order or order execution details
            exchange:read_quote: Retrieve quote details for buying or selling an asset
            exchange:read_quote_execution: Retrieve quote execution details
            exchange:write_quote_execution: Create a quote execution for buying or selling an asset
            exchange:write_order: Create or cancel an order for buying or selling an asset
            fee:write_crypto_withdrawal_fee: Create a guaranteed fee for crypto withdrawal
            funding:read_bank_balance: Retrieve Paxos dedicated bank account balance
            funding:read_profile: Retrieve Profile details and deposit funds in Sandbox
            funding:write_profile: Create a Profile
            identity:read_account: Retrieve Account details
            identity:read_identity: Retrieve Identity details or documents
            identity:write_account: Create or update Account and Account Members
            identity:write_identity: Create or update Identity details and set Sandbox Identify Status
            settlement:read_transaction: Retrieve settlement transaction details
            settlement:write_transaction: Create, affirm or cancel a settlement transaction
            tax:read_tax_form: Retrieve tax details
            tax:read_tax_lot: Retrieve tax lot details
            tax:write_tax_lot: Update the given tax-lot ID
            transfer:read_deposit_address: Retrieve deposit address details
            transfer:read_fiat_account: Retrieve Fiat Account details
            transfer:read_fiat_deposit_instructions: Retrieve fiat deposit instruction details
            transfer:read_transfer: Retrieve transfer details
            transfer:read_transfer_limit: Retrieve limits for the given transaction type
            transfer:reject_crypto_deposit: Reject a crypto deposit (travel rule)
            transfer:update_crypto_deposit: Provide required travel-rule details
            transfer:write_crypto_withdrawal: Withdraw asset to a specified destination address
            transfer:write_deposit_address: Create an deposit address on a blockchain network
            transfer:write_fiat_account: Create, update or delete a Fiat Account
            transfer:write_fiat_deposit_instructions: Create, update or delete fiat deposit instructions
            transfer:write_internal_transfer: Transfer assets between two Profiles
            transfer:write_sandbox_fiat_deposit: Initiate a test fiat deposit in the Sandbox environment
            transfer:write_fiat_withdrawal: Withdraw fiat to the given destination
            events:read_event: Retrieve events
x-tagGroups:
- name: Deposits and Withdrawals
  tags:
  - Transfers
  - Fiat Transfers
  - Deposit Addresses
  - Crypto Deposits
  - Crypto Withdrawals
  - Fees
  - Internal Transfers
  - Paxos Transfers
  - Limits
- name: Identity
  tags:
  - Identity
  - Institution Members
  - Accounts
  - Account Members
  - Identity Documents
- name: API Credentials
  tags:
  - API Credentials
- name: Profiles
  tags:
  - Profiles
- name: Sandbox
  tags:
  - Sandbox Deposits
  - Sandbox Identity
  - Sandbox Fiat Transfers
- name: Settlements
  tags:
  - Settlement
- name: Stablecoin Conversion
  tags:
  - Stablecoin Conversion
- name: Taxes
  tags:
  - Tax Forms
- name: Trading
  tags:
  - Market Data
  - Orders
  - Quotes
  - Quote Executions
  - Pricing
  - Issuer Quotes
- name: Rewards
  tags:
  - Monitoring Addresses
  - Statements
  - Payments
- name: Rewards (Alpha)
  tags:
  - Reward Addresses
  - Claims
  - Payout Groups
  - Rewards
- name: Events
  tags:
  - Events
  - Event Types
  - Event Objects