Coins.ph Coins Pro — Market Data

Coins Pro — Market Data API (TRADING v1.0.0) — part of the Coins.ph developer platform.

OpenAPI Specification

coinsph-markets-openapi.json Raw ↑
{
  "openapi": "3.1.0",
  "info": {
    "title": "TRADING",
    "version": "1.0.0",
    "description": "Market data endpoints for Coins.ph Trading API — real-time prices, order book, klines, ticker statistics, and trade data."
  },
  "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.\n\nNo query parameters are required. Returns all active trading pairs on the exchange.\n\nSymbol format: `{baseToken}{quoteToken}` — e.g., `LTCBTC` means LTC quoted in BTC.\n\n---\n\n## Additional Info\n\n**Rate Limit** [📖 Learn More](https://api.docs.coins.ph/reference/general#api-limit-introduction)\n\nWeight: 1\n\n**Use Cases** [🧩 SDK](https://api.docs.coins.ph/reference/general#sdk)\n\n- **Instrument Discovery** — Enumerate all active trading pairs to know which symbols are available before placing order.\n\n**Best Practices**\n\n- Cache the trading pairs list and refresh periodically (e.g., every 5–10 minutes).\n- Use the `symbol` field when making requests to other market data endpoints.\n- Validate trading pairs before attempting to place orders.\n- Handle empty arrays gracefully in case no trading pairs are available.\n",
        "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'\n"
          }
        ],
        "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).\n\n| Code | Description |\n|---|---|\n| -1121 | Invalid symbol. |\n\nFor the full list of error codes, see [Error Codes](https://api.docs.coins.ph/reference/error-codes).\n"
          }
        }
      }
    },
    "/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.\n\n**Bids** are buy orders sorted by price (highest to lowest — first element is best bid).\n\n**Asks** are sell orders sorted by price (lowest to highest — first element is best ask).\n\nAll numeric values (price and quantity) are returned as **strings** to preserve precision.\n\n---\n\n## Additional Info\n\n**Rate Limit** [📖 Learn More](https://api.docs.coins.ph/reference/general#api-limit-introduction)\n\n| Limit Values | Weight |\n|---|---|\n| 5, 10, 20, 50, 100 | 1 |\n| 200 | 5 |\n\n**Use Cases** [🧩 SDK](https://api.docs.coins.ph/reference/general#sdk)\n\n- **Pre-Trade Liquidity Check** — Inspect available depth before placing a large order to estimate fill size and average execution price.\n- **Spread Assessment** — Compare `bids[0][0]` and `asks[0][0]` to measure market tightness before entering a position.\n- **Market-Making** — Poll top-of-book continuously to set competitive bid/ask prices on both sides.\n- **Slippage Estimation** — Walk through depth levels to predict average fill price for a given order size before submitting.\n\n**Best Practices**\n\n- Use smaller limits (5, 10, 20) for UI display; use larger limits (100, 200) for trading algorithms.\n- Use `lastUpdateId` to track order book changes.\n- Consider using WebSocket streams for real-time updates.\n- Monitor your weight consumption and implement exponential backoff for retries.\n",
        "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.\n"
          },
          {
            "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' \\\n--data-urlencode 'symbol=BTCPHP' \\\n--data-urlencode 'limit=20'\n"
          }
        ],
        "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).\n\n| Code | Description |\n|---|---|\n| -1121 | Invalid symbol. |\n\nFor the full list of error codes, see [Error Codes](https://api.docs.coins.ph/reference/error-codes).\n"
          }
        }
      }
    },
    "/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.\n\nIf `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.\n\n**Interval options:** `1m`, `3m`, `5m`, `15m`, `30m`, `1h`, `2h`, `4h`, `6h`, `8h`, `12h`, `1d`, `3d`, `1w`, `1M`\n\n**Response array index reference:**\n\n| Index | Field | Type | Description |\n|---|---|---|---|\n| 0 | Open Time | LONG | Kline open time in milliseconds |\n| 1 | Open | STRING | Opening price |\n| 2 | High | STRING | Highest price during the interval |\n| 3 | Low | STRING | Lowest price during the interval |\n| 4 | Close | STRING | Closing price |\n| 5 | Volume | STRING | Trading volume (base asset) |\n| 6 | Close Time | LONG | Kline close time in milliseconds |\n| 7 | Quote Asset Volume | STRING | Trading volume (quote asset) |\n| 8 | Number of Trades | INT | Number of trades during the interval |\n| 9 | Taker Buy Base Volume | STRING | Volume of taker buy orders (base asset) |\n| 10 | Taker Buy Quote Volume | STRING | Volume of taker buy orders (quote asset) |\n\n---\n\n## Additional Info\n\n**Rate Limit** [📖 Learn More](https://api.docs.coins.ph/reference/general#api-limit-introduction)\n\nWeight: 1\n\n**Use Cases** [🧩 SDK](https://api.docs.coins.ph/reference/general#sdk)\n\n- **Technical Analysis** — Fetch recent klines to compute indicators (MA, RSI, Bollinger Bands) before an algorithm decides to place an order.\n- **Backtesting** — Download historical klines to simulate strategy performance against real past price action before going live.\n- **Volume Analysis** — Aggregate taker buy volume across intervals to gauge directional pressure and confirm a trend.\n\n**Best Practices**\n\n- Cache historical kline data locally to reduce API calls.\n- Use `startTime` and `endTime` to paginate through historical data.\n- Choose appropriate intervals: short (1m, 5m) for intraday; medium (1h, 4h) for swing trading; long (1d, 1w) for position trading.\n- Don't request more data than needed; use appropriate limit values.\n- All price and volume fields are returned as strings to maintain precision.\n",
        "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' \\\n--data-urlencode 'symbol=BTCUSDT' \\\n--data-urlencode 'interval=1h'\n"
          },
          {
            "lang": "Shell",
            "label": "Historical data with time range",
            "source": "curl --get --location 'https://api.pro.coins.ph/openapi/quote/v1/klines' \\\n--data-urlencode 'symbol=BTCUSDT' \\\n--data-urlencode 'interval=1d' \\\n--data-urlencode 'startTime=1609459200000' \\\n--data-urlencode 'endTime=1612137600000'\n"
          }
        ],
        "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).\n\n| Code | Description |\n|---|---|\n| -1121 | Invalid symbol. |\n| -1100 | Invalid interval parameter. |\n\nFor the full list of error codes, see [Error Codes](https://api.docs.coins.ph/reference/error-codes).\n"
          }
        }
      }
    },
    "/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.\n\n**Careful** when accessing this endpoint with no `symbol` parameter — it returns data for all symbols at a higher weight cost.\n\nUse `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.\n\n**Price change calculations:**\n- `priceChange` = `lastPrice` − `openPrice`\n- `priceChangePercent` = `((lastPrice − openPrice) / openPrice) × 100`\n- `weightedAvgPrice` = `quoteVolume / volume`\n\n---\n\n## Additional Info\n\n**Rate Limit** [📖 Learn More](https://api.docs.coins.ph/reference/general#api-limit-introduction)\n\n| Parameter | Weight |\n|---|---|\n| symbol (1 symbol) | 1 |\n| symbols (1–20 symbols) | 1 |\n| symbols (21–100 symbols) | 20 |\n| symbols (101+ symbols) | 40 |\n| symbol omitted (all symbols) | 40 |\n\n**Use Cases** [🧩 SDK](https://api.docs.coins.ph/reference/general#sdk)\n\n- **Market Overview** — Load 24h stats for all symbols to render a market screener with price change, volume, and high/low per pair.\n- **Price Change Alerts** — Monitor `priceChangePercent` across symbols to detect when a threshold is breached and trigger a notification.\n- **Volume Ranking** — Sort symbols by `quoteVolume` to identify the most actively traded pairs and allocate attention or liquidity accordingly.\n\n**Best Practices**\n\n- Use `symbol` for a single pair; use `symbols` for multiple; omit both only when you truly need all symbols.\n- Cache ticker data when real-time updates aren't critical.\n- Use WebSocket streams for continuous real-time data instead of polling.\n- Requesting all symbols uses 40× more weight than a single symbol.\n",
        "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`.\n"
          },
          {
            "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`.\n"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "Single symbol",
            "source": "curl --get --location 'https://api.pro.coins.ph/openapi/quote/v1/ticker/24hr' \\\n--data-urlencode 'symbol=BTCPHP'\n"
          },
          {
            "lang": "Shell",
            "label": "All symbols",
            "source": "curl --get --location 'https://api.pro.coins.ph/openapi/quote/v1/ticker/24hr'\n"
          }
        ],
        "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).\n\n| Code | Description |\n|---|---|\n| -1121 | Invalid symbol. |\n| -100013 | Parameter symbol and symbols cannot be used in combination. |\n\nFor the full list of error codes, see [Error Codes](https://api.docs.coins.ph/reference/error-codes).\n"
          }
        }
      }
    },
    "/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.\n\nUse `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.\n\n---\n\n## Additional Info\n\n**Rate Limit** [📖 Learn More](https://api.docs.coins.ph/reference/general#api-limit-introduction)\n\n| Parameter | Symbols Provided | Weight |\n|---|---|---|\n| symbol | 1 | 1 |\n| symbol omitted | All symbols | 2 |\n\n**Use Cases** [🧩 SDK](https://api.docs.coins.ph/reference/general#sdk)\n\n- **Pre-Order Price Check** — Fetch the latest price before sizing an order to calculate quantity based on an up-to-date rate.\n- **Multi-Symbol Comparison** — Pass a `symbols` array to compare prices across several pairs in a single lightweight call.\n- **Price Threshold Alerts** — Poll periodically to detect when a symbol's price crosses a target level and trigger the appropriate action.\n- **Portfolio Valuation** — Retrieve current prices for all held assets to compute an up-to-date portfolio value.\n\n**Best Practices**\n\n- Use Symbol Price Ticker for simple price display; use 24HR Ticker when you need historical context.\n- Parse prices to appropriate numeric types — do not use floating-point arithmetic directly.\n- For real-time updates, consider WebSocket streams.\n- Use `symbols` for specific pairs; omit parameters only when you need all symbols.\n",
        "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`.\n"
          },
          {
            "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`.\n"
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "Single symbol price",
            "source": "curl --get --location 'https://api.pro.coins.ph/openapi/quote/v1/ticker/price' \\\n--data-urlencode 'symbol=BTCPHP'\n"
          },
          {
            "lang": "Shell",
            "label": "All symbol prices",
            "source": "curl --get --location 'https://api.pro.coins.ph/openapi/quote/v1/ticker/price'\n"
          }
        ],
        "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

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