# Prices

`GET https://api.rarebl.com/open/market/price`

Reference prices aggregated from public exchange feeds: the median of fresh sources, outliers more than 2% from the median excluded. Not Rarebl trading rates.

**Rate class:** read (5 requests per second, burst 20, per IP). **Available since:** Open API v2.

## Request

Send the parameters as query parameters (GET) or as a JSON object (POST with `Content-Type: application/json`). They are identical either way. No API key is needed: `X-API-KEY` is reserved and ignored.

Example: `curl "https://api.rarebl.com/open/market/price?assets=btc%2Ceth&quote=usd"`

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `assets` | string | Yes | Comma-separated asset symbols. |
| `quote` | string | No | Quote currency. Besides usd, eur, gbp, ghs and ngn are derived through FX. Default usd. One of: usd, eur, gbp, ghs, ngn. |

## Responses

### API200 (HTTP 200): OK

Prices (a real reply, shortened).

```json
{
  "status": 1,
  "code": "API200",
  "message": "success",
  "data": {
    "prices": [
      {
        "asset": "BTC",
        "quote": "USD",
        "price": "63421.45",
        "change24h": "-7.1155",
        "sources": [
          {
            "id": "binance",
            "pair": "BTC/USD",
            "price": 63449.83,
            "volume": 11.75039
          },
          {
            "id": "kraken",
            "pair": "BTC/USD",
            "price": 63426.4,
            "volume": 5752.38744852
          },
          {
            "id": "coinbase",
            "pair": "BTC/USD",
            "price": 63421.45,
            "volume": 16529.56926348
          }
        ],
        "stale": false,
        "updatedAt": "2026-11-15T01:00:51.309Z"
      },
      {
        "asset": "ETH",
        "quote": "USD",
        "price": "1741.94",
        "change24h": "-9.7052",
        "sources": [
          {
            "id": "binance",
            "pair": "ETH/USD",
            "price": 1742.98,
            "volume": 122.249
          },
          {
            "id": "kraken",
            "pair": "ETH/USD",
            "price": 1740.61,
            "volume": 63575.06022326
          },
          {
            "id": "coinbase",
            "pair": "ETH/USD",
            "price": 1740.96,
            "volume": 265726.23468535
          }
        ],
        "stale": false,
        "updatedAt": "2026-11-15T01:00:51.437Z"
      }
    ]
  },
  "go": null,
  "meta": {
    "requestid": "0123456789abcdef",
    "notices": []
  }
}
```

| Field | Type | Description |
| --- | --- | --- |
| `data.prices[]` | object[] | `{asset, quote, price, change24h, sources[], stale, updatedAt}`. |
| `prices[].stale` | boolean | true when fresh sources are missing. |

### API400 (HTTP 400): Bad Request

A parameter is missing or malformed. `data.param` names it (here `assets`).

```json
{
  "status": 0,
  "code": "API400",
  "message": "Missing parameter: assets.",
  "data": {
    "param": "assets"
  },
  "go": null,
  "meta": {
    "requestid": "0123456789abcdef",
    "notices": []
  }
}
```

### API429 (HTTP 429): Too Many Requests

Rate limited (read class: 5 requests per second, burst 20, per IP). A `Retry-After` header says how long to wait, in seconds.

```json
{
  "status": 0,
  "code": "API429",
  "message": "Too many requests. Please retry shortly.",
  "data": null,
  "go": null,
  "meta": {
    "requestid": "0123456789abcdef",
    "notices": []
  }
}
```

## Notes

- **Reference prices, not trading rates.** Rarebl does not guarantee that you can trade at these prices. See [Market data and fees](https://docs.rarebl.com/guides/market-data).
- Sources are attributed in `sources`. Check `stale` before you display a price.
