# Coins.ph Exchange API
> Live spot market data from Coins.ph (Coins Pro), the Philippines' leading crypto exchange, served straight from its public order books — no key on the data, nothing cached, nothing stored. Look up any market for its last price, best bid/ask and spread, 24h open/high/low, 24h change and base/quote volume; rank every market for a quote currency (Philippine peso PHP, USDT or USDC) by 24h quote volume; list the tradable pairs with their base, quote and status; or pull live order-book depth with the running spread. Markets are addressed as BTCPHP or BTC_PHP. This is the Coins.ph venue specifically — a distinct Philippine-peso price feed, ideal for PHP price discovery and Southeast-Asia-market arbitrage, separate from the USD/USDT-quoted exchange APIs in the catalogue.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/coinsph-api/..."
```

## Pricing
- **Free** (Free) — 23,500 calls/Mo, 3 req/s
- **Starter** ($9/Mo) — 302,000 calls/Mo, 10 req/s
- **Growth** ($26/Mo) — 1,330,000 calls/Mo, 25 req/s
- **Scale** ($61/Mo) — 4,480,000 calls/Mo, 50 req/s

## Endpoints

### Ticker

#### `GET /v1/ticker` — Ticker for one market

**Parameters:**
- `market` (query, optional, string) — Market as BTC_PHP or BTCPHP Example: `BTC_PHP`
- `symbol` (query, optional, string) — Base asset (with quote=) Example: `ETH`
- `quote` (query, optional, string) — Quote asset Example: `PHP`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/coinsph-api/v1/ticker?market=BTC_PHP&symbol=ETH&quote=PHP"
```

**Response:**
```json
{
    "data": {
        "ask": 3854158.1,
        "bid": 3851047.7,
        "base": "BTC",
        "last": 3854158.2,
        "quote": "PHP",
        "market": "BTCPHP",
        "source": "Coins.ph",
        "spread": 3110.4,
        "low_24h": 3729025,
        "high_24h": 3869018.4,
        "open_24h": 3797727,
        "change_24h": 56431.2,
        "change_24h_pct": 1.4859,
        "base_volume_24h": 2.5810414,
        "quote_volume_24h": 9807122.2
    },
    "meta": {
        "timestamp": "2026-06-11T07:48:28.876Z",
        "request_id": "864ea662-9d9b-4660-8bc3-da7559ce7220"
    },
    "status": "ok",
    "message": "Ticker retrieved successfully",
    "success": true
}
```

### Tickers

#### `GET /v1/tickers` — All markets for a quote ranked by 24h quote volume

**Parameters:**
- `quote` (query, optional, string) — Quote asset Example: `PHP`
- `limit` (query, optional, string) — Max results (1-400) Example: `50`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/coinsph-api/v1/tickers?quote=PHP&limit=50"
```

**Response:**
```json
{
    "data": {
        "count": 50,
        "quote": "PHP",
        "source": "Coins.ph",
        "tickers": [
            {
                "ask": 61.44,
                "bid": 61.43,
                "base": "USDT",
                "last": 61.43,
                "quote": "PHP",
                "market": "USDTPHP",
                "spread": 0.01,
                "low_24h": 61.23,
                "high_24h": 61.51,
                "open_24h": 61.51,
                "change_24h": -0.08,
                "change_24h_pct": -0.1301,
                "base_volume_24h": 32482021.25,
                "quote_volume_24h": 1994027762.25
            },
            {
                "ask": 61.5,
                "bid": 61.48,
                "base": "USDC",
                "last": 61.48,
                "quote": "PHP",
                "market": "USDCPHP",
                "spread": 0.02,
                "low_24h": 61.24,
                "high_24h": 61.54,
                "open_24h": 61.54,
                "change_24h": -0.06,
                "change_24h_pct": -0.0975,
                "base_volume_24h": 25115445.53,
                "quote_volume_24h": 1542669594.77
            },
            {
                "ask": 68.43,
                "bid": 68.34,
                "base": "XRP",
                "last": 68.4,
                "quote": "PHP",
                "market": "XRPPHP",
                "spread": 0.09,
                "low_24h": 66.94,
                "high_24h": 69.89,
               
…(truncated, see openapi.json for full schema)
```

### Markets

#### `GET /v1/markets` — Tradable pairs with base/quote and status

**Parameters:**
- `quote` (query, optional, string) — Filter by quote asset Example: `PHP`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/coinsph-api/v1/markets?quote=PHP"
```

**Response:**
```json
{
    "data": {
        "count": 139,
        "quote": "PHP",
        "source": "Coins.ph",
        "markets": [
            {
                "base": "1000SATS",
                "quote": "PHP",
                "market": "1000SATSPHP",
                "status": "break",
                "base_precision": 0,
                "quote_precision": 6
            },
            {
                "base": "AAVE",
                "quote": "PHP",
                "market": "AAVEPHP",
                "status": "trading",
                "base_precision": 4,
                "quote_precision": 5
            },
            {
                "base": "ADA",
                "quote": "PHP",
                "market": "ADAPHP",
                "status": "trading",
                "base_precision": 1,
                "quote_precision": 3
            },
            {
                "base": "AEVO",
                "quote": "PHP",
                "market": "AEVOPHP",
                "status": "break",
                "base_precision": 2,
                "quote_precision": 5
            },
            {
                "base": "AIR",
                "quote": "PHP",
                "market": "AIRPHP",
                "status": "break",
                "base_precision": 0,
                "quote_precision": 3
            },
            {
                "base": "ALICE",
                "quote": "PHP",
                "market": "ALICEPHP",
                "status": "break",
                "base_precision"
…(truncated, see openapi.json for full schema)
```

### Book

#### `GET /v1/book` — Live order-book depth with running spread

**Parameters:**
- `market` (query, optional, string) — Market as BTC_PHP Example: `BTC_PHP`
- `limit` (query, optional, string) — Depth per side (1-100) Example: `20`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/coinsph-api/v1/book?market=BTC_PHP&limit=20"
```

**Response:**
```json
{
    "data": {
        "asks": [
            {
                "price": 3854158.1,
                "amount": 0.1599904
            },
            {
                "price": 3854158.2,
                "amount": 3.87e-5
            },
            {
                "price": 3857771.5,
                "amount": 0.022
            },
            {
                "price": 3858620,
                "amount": 2.45e-5
            },
            {
                "price": 3861144,
                "amount": 0.0115237
            },
            {
                "price": 3861144.1,
                "amount": 1.94e-5
            },
            {
                "price": 3862423.5,
                "amount": 1.94e-5
            },
            {
                "price": 3864176.3,
                "amount": 1.94e-5
            },
            {
                "price": 3865624.9,
                "amount": 0.3201999
            },
            {
                "price": 3866055.2,
                "amount": 1.94e-5
            },
            {
                "price": 3866175.8,
                "amount": 1.94e-5
            },
            {
                "price": 3867344.8,
                "amount": 1.94e-5
            },
            {
                "price": 3868131.3,
                "amount": 1.94e-5
            },
            {
                "price": 3870000,
                "amount": 0.0002603
            },
            {
                "price": 3870438.1,
                "amount": 0.01
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Service metadata

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/coinsph-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "note": "Pass markets as BTC_PHP or BTCPHP. Symbols are concatenated; base/quote come from exchangeInfo. The default quote is the Philippine peso (PHP). quote_volume_24h is in the quote currency; the 24h change is derived from the day's open.",
        "source": "Coins.ph public API (api.pro.coins.ph, live)",
        "service": "coinsph-api",
        "endpoints": {
            "GET /v1/book": "Live order-book depth — best bid/ask and spread (market=BTC_PHP, limit=20).",
            "GET /v1/meta": "This document.",
            "GET /v1/ticker": "Ticker for one market (market=BTC_PHP or symbol=BTC&quote=PHP).",
            "GET /v1/markets": "Tradable pairs with base/quote and status (quote=PHP optional).",
            "GET /v1/tickers": "All markets for a quote ranked by 24h quote volume (quote=PHP, limit=50)."
        },
        "description": "Live spot market data from Coins.ph (Coins Pro), the Philippines' leading crypto exchange. The ticker endpoint returns a market's last price, best bid/ask, 24h open/high/low, 24h change and base/quote volume; the tickers endpoint ranks every market for a quote currency (PHP, USDT or USDC) by 24h quote volume; the markets endpoint lists tradable pairs with base/quote and status; the book endpoint returns live order-book depth. Live, no key, nothing stored. A distinct Philippine-peso venue for PHP price discovery, separate from the USD/USDT-quoted exchange feeds.",
        "market_count": 181,
        "upstream
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/coinsph-api
OpenAPI spec: https://www.oanor.com/api/coinsph-api/openapi.json
