# Crypto

## GET /api/quantis/v3/rates/crypto/

Returns USD prices for nine major cryptocurrencies, sourced from CoinMarketCap.

| | |
|---|---|
| **Method** | `GET` |
| **URL** | `https://app.vzla.io/api/quantis/v3/rates/crypto/` |
| **Authentication** | `Authorization: Bearer qapi_...` |
| **Parameters** | None |

### Request

```bash
curl --request GET \
  --url 'https://app.vzla.io/api/quantis/v3/rates/crypto/' \
  --header 'Authorization: Bearer qapi_YOUR_KEY_HERE'
```

---

### Response

#### `data`

| Field | Type | Description |
|---|---|---|
| `timestamp` | string (ISO 8601 datetime) | When this snapshot was last fetched from CoinMarketCap |
| `rates` | object | Map of ticker symbol → USD price string |

**`data.rates`**

Supported symbols: `BTC`, `ETH`, `USDT`, `XRP`, `BNB`, `SOL`, `USDC`, `DOGE`, `TRX`.

Each value is a string representing the current USD price for that cryptocurrency.

#### `meta`

| Field | Type | Description |
|---|---|---|
| `source` | string | Always `"CoinMarketCap"` |
| `currency_quote` | string | Always `"USD"` |

---

### Example response

```json
{
  "data": {
    "timestamp": "2026-05-06T20:00:02.045590+00:00",
    "rates": {
      "BTC": "81466.183799",
      "XRP": "1.42773",
      "DOGE": "0.112865",
      "USDT": "0.999785",
      "ETH": "2348.375715",
      "BNB": "650.482695",
      "TRX": "0.346772",
      "USDC": "0.99971",
      "SOL": "89.198836"
    }
  },
  "meta": {
    "source": "CoinMarketCap",
    "currency_quote": "USD"
  }
}
```

---

### HTTP status codes

| Code | Meaning |
|---|---|
| `200 OK` | Success. |
| `401 Unauthorized` | Missing, invalid or revoked key. |
| `405 Method Not Allowed` | Only GET is supported. |
| `429 Too Many Requests` | Monthly quota spent (`quota_exceeded`) or rate limit hit (`throttled`). See [Tiers and limits](/quantis/v3/tiers-and-limits/). |
| `500 Internal Server Error` | Server error. Retry after a short delay. |

#### 401: no Authorization header

```json
{
  "error": {
    "code": "auth_missing",
    "message": "Authentication credentials were not provided"
  }
}
```

#### 401: invalid key

```json
{
  "error": {
    "code": "auth_token_unknown",
    "message": "Invalid token format"
  }
}
```

#### 429: monthly quota spent

```json
{
  "error": {
    "code": "quota_exceeded",
    "message": "Monthly quota exceeded. It resets on the 1st of next month."
  }
}
```

#### 429: rate limit hit

```json
{
  "error": {
    "code": "throttled",
    "message": "Rate limit exceeded",
    "details": {
      "retry_after": 1
    }
  }
}
```
**Note:** This endpoint is cached for **5 minutes**, matching CoinMarketCap's update cadence.