> From TickerLayer docs, Perpetuals: https://tickerlayer.com/docs/products/perpetuals#perpetuals-sources-status
> REST base URL https://api.tickerlayer.com, API key in the `x-api-key` header. WebSocket wss://stream.tickerlayer.com?apiKey=YOUR_API_KEY. Full API reference: https://tickerlayer.com/llms-full.txt

## Per-source health

**Endpoint:** `GET /perpetuals/sources/status`

One row per source, for monitoring that runs on the source rows rather than the composite. Needs source-level access. Computed on every request from live state, so poll it as often as your alerting needs; there is no cache to wait out.

### Request

```bash
curl -sS "https://api.tickerlayer.com/perpetuals/sources/status" \
  -H "x-api-key: <YOUR_API_KEY>"
```

```python
import requests

res = requests.get(
    "https://api.tickerlayer.com/perpetuals/sources/status",
    headers={"x-api-key": "<YOUR_API_KEY>"},
)
print(res.json())
```

```javascript
const res = await fetch("https://api.tickerlayer.com/perpetuals/sources/status", {
  headers: { "x-api-key": "<YOUR_API_KEY>" },
});
const data = await res.json();
console.log(data);
```

```go
req, _ := http.NewRequest("GET", "https://api.tickerlayer.com/perpetuals/sources/status", nil)
req.Header.Set("x-api-key", "<YOUR_API_KEY>")
```

### Response

```json
{
  "timestamp": 1789992789776,
  "thresholds": {
    "withdraw_after_lane_loss_ms": 5000,
    "fresh_book_ms": 90000,
    "quiet_book_max_ms": 1800000
  },
  "sources": [
    {
      "source_id": "pv_01",
      "role": "composite",
      "status": "up",
      "symbols_listed": 229,
      "symbols_live": 229,
      "last_update": 1789992789712,
      "oldest_live_update": 1789992731004
    }
  ],
  "fx": {
    "USDT": { "status": "ok", "rate": 0.999605, "fx_sources": ["fx_01", "fx_02"], "fx_timestamp": "2026-09-21T11:33:05.012Z" },
    "USDC": { "status": "ok", "rate": 0.99985, "fx_sources": ["fx_01", "fx_03"], "fx_timestamp": "2026-09-21T11:33:01.230Z" }
  },
  "normalization": {
    "since_process_start": { "since": 1789900000000, "prices": 1520344, "usd": 1520101, "share": 0.99984, "by_source": [] },
    "month_to_date": { "month": "2026-10", "prices": 18403210, "usd": 18399871, "share": 0.999819, "by_source": [] }
  }
}
```
