Coins.ph Markets API

Market data APIs.

OpenAPI Specification

coinsph-markets-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: TRADING Account Markets API
  version: 1.0.0
  description: API reference for Account management β€” Coins.ph
servers:
- url: https://api.pro.coins.ph
  description: Production
- url: https://api.9001.pl-qa.coinsxyz.me
  description: Sandbox
tags:
- name: Markets
  description: Market data APIs.
paths:
  /openapi/v1/pairs:
    get:
      tags:
      - Markets
      summary: Cryptoasset Trading Pairs
      description: 'Returns a summary of all cryptoasset trading pairs available on the exchange.


        No query parameters are required. Returns all active trading pairs on the exchange.


        Symbol format: `{baseToken}{quoteToken}` β€” e.g., `LTCBTC` means LTC quoted in BTC.


        ---


        ## Additional Info


        **Rate Limit** [πŸ“– Learn More](https://api.docs.coins.ph/reference/general#api-limit-introduction)


        Weight: 1


        **Use Cases** [🧩 SDK](https://api.docs.coins.ph/reference/general#sdk)


        - **Instrument Discovery** β€” Enumerate all active trading pairs to know which symbols are available before placing order.


        **Best Practices**


        - Cache the trading pairs list and refresh periodically (e.g., every 5–10 minutes).

        - Use the `symbol` field when making requests to other market data endpoints.

        - Validate trading pairs before attempting to place orders.

        - Handle empty arrays gracefully in case no trading pairs are available.

        '
      operationId: get_cryptoasset_trading_pairs
      x-codeSamples:
      - lang: Shell
        label: Get all trading pairs
        source: 'curl --location ''https://api.pro.coins.ph/openapi/v1/pairs''

          '
      responses:
        '200':
          description: List of all available cryptoasset trading pairs.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    symbol:
                      type: string
                      description: The combined identifier for the trading pair.
                      example: BTCUSDT
                    quoteToken:
                      type: string
                      description: The asset used as the pricing reference.
                      example: USDT
                    baseToken:
                      type: string
                      description: The asset being traded.
                      example: BTC
              examples:
                success:
                  summary: Successful response
                  value:
                  - symbol: LTCBTC
                    quoteToken: BTC
                    baseToken: LTC
                  - symbol: BTCUSDT
                    quoteToken: USDT
                    baseToken: BTC
        default:
          description: 'API error response. The `code` field contains the internal API error code (not an HTTP status code).


            | Code | Description |

            |---|---|

            | -1121 | Invalid symbol. |


            For the full list of error codes, see [Error Codes](https://api.docs.coins.ph/reference/error-codes).

            '
  /openapi/quote/v1/depth:
    get:
      tags:
      - Markets
      summary: Order Book
      description: 'Retrieves the order book (market depth) for a specified trading symbol. Returns bid and ask orders with their respective prices and quantities.


        **Bids** are buy orders sorted by price (highest to lowest β€” first element is best bid).


        **Asks** are sell orders sorted by price (lowest to highest β€” first element is best ask).


        All numeric values (price and quantity) are returned as **strings** to preserve precision.


        ---


        ## Additional Info


        **Rate Limit** [πŸ“– Learn More](https://api.docs.coins.ph/reference/general#api-limit-introduction)


        | Limit Values | Weight |

        |---|---|

        | 5, 10, 20, 50, 100 | 1 |

        | 200 | 5 |


        **Use Cases** [🧩 SDK](https://api.docs.coins.ph/reference/general#sdk)


        - **Pre-Trade Liquidity Check** β€” Inspect available depth before placing a large order to estimate fill size and average execution price.

        - **Spread Assessment** β€” Compare `bids[0][0]` and `asks[0][0]` to measure market tightness before entering a position.

        - **Market-Making** β€” Poll top-of-book continuously to set competitive bid/ask prices on both sides.

        - **Slippage Estimation** β€” Walk through depth levels to predict average fill price for a given order size before submitting.


        **Best Practices**


        - Use smaller limits (5, 10, 20) for UI display; use larger limits (100, 200) for trading algorithms.

        - Use `lastUpdateId` to track order book changes.

        - Consider using WebSocket streams for real-time updates.

        - Monitor your weight consumption and implement exponential backoff for retries.

        '
      operationId: get_order_book
      parameters:
      - in: query
        name: symbol
        required: true
        schema:
          type: string
          example: BTCPHP
        description: 'Trading pair symbol (e.g., BTCPHP, ETHPHP). The symbol must be in uppercase and represents Base Asset + Quote Asset.

          '
      - in: query
        name: limit
        required: false
        schema:
          type: integer
          example: 20
        description: 'Number of order book entries to return for both bids and asks. Valid values: 5, 10, 20, 50, 100, 200. Default: 100.'
      x-codeSamples:
      - lang: Shell
        label: Get order book depth
        source: 'curl --get --location ''https://api.pro.coins.ph/openapi/quote/v1/depth'' \

          --data-urlencode ''symbol=BTCPHP'' \

          --data-urlencode ''limit=20''

          '
      responses:
        '200':
          description: Order book with bids and asks.
          content:
            application/json:
              schema:
                type: object
                properties:
                  lastUpdateId:
                    type: integer
                    description: Last update ID for tracking order book changes.
                    example: 1027024
                  bids:
                    type: array
                    description: Buy orders as `[price, quantity]` pairs, sorted highest to lowest.
                  asks:
                    type: array
                    description: Sell orders as `[price, quantity]` pairs, sorted lowest to highest.
              examples:
                success:
                  summary: Successful response
                  value:
                    lastUpdateId: 1027024
                    bids:
                    - - '4.90000000'
                      - '331.00000000'
                    - - '4.00000000'
                      - '431.00000000'
                    asks:
                    - - '4.00000200'
                      - '12.00000000'
                    - - '5.10000000'
                      - '28.00000000'
        default:
          description: 'API error response. The `code` field contains the internal API error code (not an HTTP status code).


            | Code | Description |

            |---|---|

            | -1121 | Invalid symbol. |


            For the full list of error codes, see [Error Codes](https://api.docs.coins.ph/reference/error-codes).

            '
  /openapi/quote/v1/klines:
    get:
      tags:
      - Markets
      summary: Kline/Candlestick Data
      description: 'Returns Kline/candlestick bars for a symbol. Klines are uniquely identified by their open time.


        If `startTime` and `endTime` are not sent, the most recent klines are returned. Each kline array contains 11 elements. Timestamps are in milliseconds since Unix epoch. Maximum limit is 1000 klines per request.


        **Interval options:** `1m`, `3m`, `5m`, `15m`, `30m`, `1h`, `2h`, `4h`, `6h`, `8h`, `12h`, `1d`, `3d`, `1w`, `1M`


        **Response array index reference:**


        | Index | Field | Type | Description |

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

        | 0 | Open Time | LONG | Kline open time in milliseconds |

        | 1 | Open | STRING | Opening price |

        | 2 | High | STRING | Highest price during the interval |

        | 3 | Low | STRING | Lowest price during the interval |

        | 4 | Close | STRING | Closing price |

        | 5 | Volume | STRING | Trading volume (base asset) |

        | 6 | Close Time | LONG | Kline close time in milliseconds |

        | 7 | Quote Asset Volume | STRING | Trading volume (quote asset) |

        | 8 | Number of Trades | INT | Number of trades during the interval |

        | 9 | Taker Buy Base Volume | STRING | Volume of taker buy orders (base asset) |

        | 10 | Taker Buy Quote Volume | STRING | Volume of taker buy orders (quote asset) |


        ---


        ## Additional Info


        **Rate Limit** [πŸ“– Learn More](https://api.docs.coins.ph/reference/general#api-limit-introduction)


        Weight: 1


        **Use Cases** [🧩 SDK](https://api.docs.coins.ph/reference/general#sdk)


        - **Technical Analysis** β€” Fetch recent klines to compute indicators (MA, RSI, Bollinger Bands) before an algorithm decides to place an order.

        - **Backtesting** β€” Download historical klines to simulate strategy performance against real past price action before going live.

        - **Volume Analysis** β€” Aggregate taker buy volume across intervals to gauge directional pressure and confirm a trend.


        **Best Practices**


        - Cache historical kline data locally to reduce API calls.

        - Use `startTime` and `endTime` to paginate through historical data.

        - Choose appropriate intervals: short (1m, 5m) for intraday; medium (1h, 4h) for swing trading; long (1d, 1w) for position trading.

        - Don''t request more data than needed; use appropriate limit values.

        - All price and volume fields are returned as strings to maintain precision.

        '
      operationId: get_kline_candlestick_data
      parameters:
      - in: query
        name: symbol
        required: true
        schema:
          type: string
          example: BTCUSDT
        description: Trading pair symbol.
      - in: query
        name: interval
        required: true
        schema:
          type: string
          enum:
          - 1m
          - 3m
          - 5m
          - 15m
          - 30m
          - 1h
          - 2h
          - 4h
          - 6h
          - 8h
          - 12h
          - 1d
          - 3d
          - 1w
          - 1M
          example: 1h
        description: Kline interval.
      - in: query
        name: startTime
        required: false
        schema:
          type: integer
          format: int64
          example: 1499040000000
        description: Start time in milliseconds.
      - in: query
        name: endTime
        required: false
        schema:
          type: integer
          format: int64
          example: 1499644799000
        description: End time in milliseconds.
      - in: query
        name: limit
        required: false
        schema:
          type: integer
          example: 500
        description: 'Number of results to return. Default: 500. Maximum: 1000.'
      x-codeSamples:
      - lang: Shell
        label: Get klines (1h interval)
        source: 'curl --get --location ''https://api.pro.coins.ph/openapi/quote/v1/klines'' \

          --data-urlencode ''symbol=BTCUSDT'' \

          --data-urlencode ''interval=1h''

          '
      - lang: Shell
        label: Historical data with time range
        source: 'curl --get --location ''https://api.pro.coins.ph/openapi/quote/v1/klines'' \

          --data-urlencode ''symbol=BTCUSDT'' \

          --data-urlencode ''interval=1d'' \

          --data-urlencode ''startTime=1609459200000'' \

          --data-urlencode ''endTime=1612137600000''

          '
      responses:
        '200':
          description: Array of kline/candlestick data arrays.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    openTime:
                      type: integer
                      format: int64
                      description: Kline open time in milliseconds.
                      example: 1499040000000
                    open:
                      type: string
                      description: Opening price.
                      example: '0.01634790'
                    high:
                      type: string
                      description: Highest price during the interval.
                      example: '0.80000000'
                    low:
                      type: string
                      description: Lowest price during the interval.
                      example: '0.01575800'
                    close:
                      type: string
                      description: Closing price.
                      example: '0.01577100'
                    volume:
                      type: string
                      description: Trading volume (base asset).
                      example: '148976.11427815'
                    closeTime:
                      type: integer
                      format: int64
                      description: Kline close time in milliseconds.
                      example: 1499644799999
                    quoteAssetVolume:
                      type: string
                      description: Trading volume (quote asset).
                      example: '2434.19055334'
                    numberOfTrades:
                      type: integer
                      description: Number of trades during the interval.
                      example: 308
                    takerBuyBaseVolume:
                      type: string
                      description: Volume of taker buy orders (base asset).
                      example: '1756.87402397'
                    takerBuyQuoteVolume:
                      type: string
                      description: Volume of taker buy orders (quote asset).
                      example: '28.46694368'
              examples:
                success:
                  summary: Successful response
                  value:
                  - - 1499040000000
                    - '0.01634790'
                    - '0.80000000'
                    - '0.01575800'
                    - '0.01577100'
                    - '148976.11427815'
                    - 1499644799999
                    - '2434.19055334'
                    - 308
                    - '1756.87402397'
                    - '28.46694368'
        default:
          description: 'API error response. The `code` field contains the internal API error code (not an HTTP status code).


            | Code | Description |

            |---|---|

            | -1121 | Invalid symbol. |

            | -1100 | Invalid interval parameter. |


            For the full list of error codes, see [Error Codes](https://api.docs.coins.ph/reference/error-codes).

            '
  /openapi/quote/v1/ticker/24hr:
    get:
      tags:
      - Markets
      summary: 24hr Ticker Price Change Statistics
      description: 'Retrieves 24-hour rolling window price change statistics for one or multiple trading symbols. Returns comprehensive market data including price changes, volumes, and trading counts.


        **Careful** when accessing this endpoint with no `symbol` parameter β€” it returns data for all symbols at a higher weight cost.


        Use `symbol` for a single pair, `symbols` for multiple specific pairs (JSON array format, e.g., `["BTCUSDT","BNBUSDT"]`). `symbol` and `symbols` cannot be used in combination.


        **Price change calculations:**

        - `priceChange` = `lastPrice` βˆ’ `openPrice`

        - `priceChangePercent` = `((lastPrice βˆ’ openPrice) / openPrice) Γ— 100`

        - `weightedAvgPrice` = `quoteVolume / volume`


        ---


        ## Additional Info


        **Rate Limit** [πŸ“– Learn More](https://api.docs.coins.ph/reference/general#api-limit-introduction)


        | Parameter | Weight |

        |---|---|

        | symbol (1 symbol) | 1 |

        | symbols (1–20 symbols) | 1 |

        | symbols (21–100 symbols) | 20 |

        | symbols (101+ symbols) | 40 |

        | symbol omitted (all symbols) | 40 |


        **Use Cases** [🧩 SDK](https://api.docs.coins.ph/reference/general#sdk)


        - **Market Overview** β€” Load 24h stats for all symbols to render a market screener with price change, volume, and high/low per pair.

        - **Price Change Alerts** β€” Monitor `priceChangePercent` across symbols to detect when a threshold is breached and trigger a notification.

        - **Volume Ranking** β€” Sort symbols by `quoteVolume` to identify the most actively traded pairs and allocate attention or liquidity accordingly.


        **Best Practices**


        - Use `symbol` for a single pair; use `symbols` for multiple; omit both only when you truly need all symbols.

        - Cache ticker data when real-time updates aren''t critical.

        - Use WebSocket streams for continuous real-time data instead of polling.

        - Requesting all symbols uses 40Γ— more weight than a single symbol.

        '
      operationId: get_24hr_ticker_price_change_statistics
      parameters:
      - in: query
        name: symbol
        required: false
        schema:
          type: string
          example: BTCPHP
        description: 'Trading pair symbol. If omitted, tickers for all symbols are returned in an array. Not case sensitive. Cannot be used with `symbols`.

          '
      - in: query
        name: symbols
        required: false
        schema:
          type: string
          example: '["BTCUSDT","BNBUSDT"]'
        description: 'Alternative to symbol. Provide multiple symbols as a JSON array string. Cannot be used with `symbol`.

          '
      x-codeSamples:
      - lang: Shell
        label: Single symbol
        source: 'curl --get --location ''https://api.pro.coins.ph/openapi/quote/v1/ticker/24hr'' \

          --data-urlencode ''symbol=BTCPHP''

          '
      - lang: Shell
        label: All symbols
        source: 'curl --get --location ''https://api.pro.coins.ph/openapi/quote/v1/ticker/24hr''

          '
      responses:
        '200':
          description: 24-hour ticker statistics. Returns a single object for one symbol, or an array for multiple/all symbols.
          content:
            application/json:
              schema:
                oneOf:
                - type: object
                  properties:
                    symbol:
                      type: string
                      description: Trading pair symbol.
                      example: BTCPHP
                    priceChange:
                      type: string
                      description: Absolute price change in the last 24 hours.
                      example: '-1500.00000000'
                    priceChangePercent:
                      type: string
                      description: Relative price change in percent in the last 24 hours.
                      example: '-2.450'
                    weightedAvgPrice:
                      type: string
                      description: Weighted average price over the last 24 hours.
                      example: '62350.50000000'
                    prevClosePrice:
                      type: string
                      description: Previous close price (from 24 hours ago).
                      example: '61250.00000000'
                    lastPrice:
                      type: string
                      description: Latest price.
                      example: '59750.00000000'
                    lastQty:
                      type: string
                      description: Quantity of the latest trade.
                      example: '0.05000000'
                    bidPrice:
                      type: string
                      description: Current best bid price.
                      example: '59745.00000000'
                    bidQty:
                      type: string
                      description: Quantity of the current best bid.
                      example: '1.25000000'
                    askPrice:
                      type: string
                      description: Current best ask price.
                      example: '59755.00000000'
                    askQty:
                      type: string
                      description: Quantity of the current best ask.
                      example: '0.85000000'
                    openPrice:
                      type: string
                      description: Opening price 24 hours ago.
                      example: '61250.00000000'
                    highPrice:
                      type: string
                      description: Highest price in the last 24 hours.
                      example: '63500.00000000'
                    lowPrice:
                      type: string
                      description: Lowest price in the last 24 hours.
                      example: '58900.00000000'
                    volume:
                      type: string
                      description: Total trading volume in base asset over the last 24 hours.
                      example: '125.50000000'
                    quoteVolume:
                      type: string
                      description: Total trading volume in quote asset over the last 24 hours.
                      example: '7825000.00000000'
                    openTime:
                      type: integer
                      format: int64
                      description: Statistics open time (timestamp in milliseconds).
                      example: 1499783499040
                    closeTime:
                      type: integer
                      format: int64
                      description: Statistics close time (timestamp in milliseconds).
                      example: 1499869899040
                    firstId:
                      type: integer
                      format: int64
                      description: First trade ID in the 24-hour period.
                      example: 10001
                    lastId:
                      type: integer
                      format: int64
                      description: Last trade ID in the 24-hour period.
                      example: 10250
                    count:
                      type: integer
                      description: Total number of trades in the last 24 hours.
                      example: 250
              examples:
                single_symbol:
                  summary: Single symbol response
                  value:
                    symbol: BTCPHP
                    priceChange: '-1500.00000000'
                    priceChangePercent: '-2.450'
                    weightedAvgPrice: '62350.50000000'
                    prevClosePrice: '61250.00000000'
                    lastPrice: '59750.00000000'
                    lastQty: '0.05000000'
                    bidPrice: '59745.00000000'
                    bidQty: '1.25000000'
                    askPrice: '59755.00000000'
                    askQty: '0.85000000'
                    openPrice: '61250.00000000'
                    highPrice: '63500.00000000'
                    lowPrice: '58900.00000000'
                    volume: '125.50000000'
                    quoteVolume: '7825000.00000000'
                    openTime: 1499783499040
                    closeTime: 1499869899040
                    firstId: 10001
                    lastId: 10250
                    count: 250
        default:
          description: 'API error response. The `code` field contains the internal API error code (not an HTTP status code).


            | Code | Description |

            |---|---|

            | -1121 | Invalid symbol. |

            | -100013 | Parameter symbol and symbols cannot be used in combination. |


            For the full list of error codes, see [Error Codes](https://api.docs.coins.ph/reference/error-codes).

            '
  /openapi/quote/v1/ticker/price:
    get:
      tags:
      - Markets
      summary: Latest Price for a Symbol or Symbols
      description: 'Retrieves the latest price for a symbol or symbols. Lightweight endpoint returning only the current price.


        Use `symbol` for a single pair, `symbols` for multiple pairs. Cannot use both simultaneously. Omit both to get all symbols. Prices are returned as **strings** to preserve full precision.


        ---


        ## Additional Info


        **Rate Limit** [πŸ“– Learn More](https://api.docs.coins.ph/reference/general#api-limit-introduction)


        | Parameter | Symbols Provided | Weight |

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

        | symbol | 1 | 1 |

        | symbol omitted | All symbols | 2 |


        **Use Cases** [🧩 SDK](https://api.docs.coins.ph/reference/general#sdk)


        - **Pre-Order Price Check** β€” Fetch the latest price before sizing an order to calculate quantity based on an up-to-date rate.

        - **Multi-Symbol Comparison** β€” Pass a `symbols` array to compare prices across several pairs in a single lightweight call.

        - **Price Threshold Alerts** β€” Poll periodically to detect when a symbol''s price crosses a target level and trigger the appropriate action.

        - **Portfolio Valuation** β€” Retrieve current prices for all held assets to compute an up-to-date portfolio value.


        **Best Practices**


        - Use Symbol Price Ticker for simple price display; use 24HR Ticker when you need historical context.

        - Parse prices to appropriate numeric types β€” do not use floating-point arithmetic directly.

        - For real-time updates, consider WebSocket streams.

        - Use `symbols` for specific pairs; omit parameters only when you need all symbols.

        '
      operationId: get_latest_price_for_symbol
      parameters:
      - in: query
        name: symbol
        required: false
        schema:
          type: string
          example: BTCPHP
        description: 'Trading pair symbol. If omitted, prices for all symbols are returned in an array. Cannot be used with `symbols`.

          '
      - in: query
        name: symbols
        required: false
        schema:
          type: string
          example: '["BTCUSDT","BNBUSDT"]'
        description: 'Alternative to symbol. Provide multiple symbols as a JSON array string. Cannot be used with `symbol`.

          '
      x-codeSamples:
      - lang: Shell
        label: Single symbol price
        source: 'curl --get --location ''https://api.pro.coins.ph/openapi/quote/v1/ticker/price'' \

          --data-urlencode ''symbol=BTCPHP''

          '
      - lang: Shell
        label: All symbol prices
        source: 'curl --get --location ''https://api.pro.coins.ph/openapi/quote/v1/ticker/price''

          '
      responses:
        '200':
          description: Latest price. Returns a single object for one symbol, or an array for multiple/all symbols.
          content:
            application/json:
              schema:
                oneOf:
                - type: object
                  properties:
                    symbol:
                      type: string
                      description: Trading pair symbol.
                      example: BTCPHP
                    price:
                      type: string
                      description: Current market price.
                      example: '59750.00000000'
              examples:
                single_symbol:
                  summary: Single symbol
                  value:
                    symbol: BTCPHP
                    price: '59750.00000000'
                all_symbols:
                  summary: All symbols
                  value:
                  - symbol: BTCPHP
                    price: '59750.00000000'
                  - symbol: ETHPHP
                    price: '4050.00000000'
        default:
          description: 'API error response. The `code` field contains the internal API error code (not an HTTP status code).


            | Code | Description |

            |---|---|

            | -1121 | Invalid symbol. |

            | -100013 | Parameter symbol and symbols cannot be used in combination. |


            For the full list of error codes, see [Error Codes](https://api.docs.coins.ph/reference/error-codes).

            '
  /openapi/quote/v1/ticker/bookTicker:
    get:
      tags:
      - Markets
      summary: Best Price and Quantity on Order Book
      description: 'Retrieves the best price and quantity on the order book for a specified symbol or multiple symbols. Provides a snapshot of the top-of-book market data (Level 1).


        - **bidPrice:** Highest price someone is willing to buy at (best bid).

        - **bidQty:** Total quantity available at the best bid price.

        - **askPrice:** Lowest price someone is willing to sell at (best ask).

        - **askQty:** Total quantity available at the best ask price.

        - **Spread:** `askPrice βˆ’ bidPrice`


        Use `symbol` for a single pair, `symbols` for multiple pairs. Cannot use both simultaneously. Omit both to get all symbols.


        ---


        ## Additional Info


        **Rate Limit** [πŸ“– Learn More](https://api.docs.coins.ph/reference/general#api-limit-introduction)


        | Parameter | Symbols Provided | Weight |

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

        | symbol | 1 | 1 |

        | symbol omitted | All symbols | 2 |

        | symbols | Any | 2 |


        **Use Cases** [🧩 SDK](https://api.docs.coins.ph/reference/general#sdk)


        - **Limit Order Pricing** β€” Read the best bid and ask before submitting a limit order to set a competitive price without crossing the spread unnecessarily.

        - **Spread Monitoring** β€” Subtract `bidPrice` from `askPrice` to assess current market liquidity before entering a position.

        - **Lightweight Level-1 Check** β€” Use this instead of the full order book when only the best price is needed, to reduce latency.


        **Best Practices**


        - Use this endpoint for top-of-book data; use the full Order Book endpoint when you need market depth.

        - All prices and quantities are returned as **strings** to preserve precision.

        - Calculate spread as `askPrice βˆ’ bidPrice`; tight spreads indicate liquid markets.

        - For continuous updates, consider WebSocket streams (`<symbol>@bookTicker`).

        '
      operationId: get_best_price_quantity_on_order_book
      parameters:
      - in: query
        name: symbol
        required: false
        schema:
          type: string
          example: BTCPHP
        description: 'Trading pair symbol. If omitted, book tickers for all symbols are returned. Not case sensitive. Cannot be used with `symbols`.

          '
      - in: query
        name: symbols
        required: false
        schema:
          type: string
          example: '["BTCUSDT","BNBUSDT"]'
        description: 'Alternative to symbol. Provide multiple symbols as a JSON array string. Cannot be used with `symbol`.

          '
      x-codeSamples:
      - lang: Shell
        label: Single symbol book ticker
        source: 'curl --get --location ''https://api.pro.coins.ph/openapi/quote/v1/ticker/bookTicker'' \

          --data-urlencode ''symbol=BTCPHP''

          '
      - lang: Shell
        label: All symbols book ticker
        source: 'curl --get --location ''https://api.pro.coins.ph/openapi/quote/v1/ticker/bookTicker''

          '
      responses:
        '200':
          description: Best bid/ask price and quantity. Returns a single object for one symbol, or an array for multiple/all symbols.
          content:
            application/json:
              schema:
                oneOf:
                - type: object
                  properties:
                    symbol:
                      type: string
                      description: Trading pair symbol.
                      example: BTCPHP
                    bidPrice:
                      type: string
                      description: Best bid (buy) price currently available.
                      example: '59745.00000000'
                    bidQty:
                      type: string
                      description: Quantity available at the best bid price.
                      example: '1.2500

# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/coinsph/refs/heads/main/openapi/coinsph-markets-api-openapi.yml