> From TickerLayer docs, Bonds: https://tickerlayer.com/docs/products/bonds#bond-snapshot
> 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

## Snapshot

**Endpoint:** `GET /bond/snapshot/:symbol`

Latest yield plus the previous published observation and the change between them.

### Path parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `symbol` | string | Yes | Bond yield symbol in CC:TENOR format. US tenors support 1M, 3M, 6M, 1Y, 2Y, 3Y, 5Y, 7Y, 10Y, 20Y, and 30Y. DE, ES, FR, IT, and UK support 1Y, 2Y, 3Y, 5Y, 10Y, and 30Y. |

### Request

```bash
curl -sS "https://api.tickerlayer.com/bond/snapshot/US:30Y" \
  -H "x-api-key: <YOUR_API_KEY>"
```

```python
import requests

res = requests.get(
    "https://api.tickerlayer.com/bond/snapshot/US:30Y",
    headers={"x-api-key": "<YOUR_API_KEY>"},
)
print(res.json())
```

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

```go
req, _ := http.NewRequest("GET", "https://api.tickerlayer.com/bond/snapshot/US:30Y", nil)
req.Header.Set("x-api-key", "<YOUR_API_KEY>")
```

### Response

```json
{
  "symbol": "US:30Y",
  "rate": 4.86,
  "unit": "percent",
  "date": "2026-06-25",
  "timestamp": 1782345600000,
  "prev_rate": 4.83,
  "prev_date": "2026-06-24",
  "prev_timestamp": 1782259200000,
  "change": 0.03,
  "change_bps": 3,
  "change_percent": 0.6211
}
```

### Notes

`change` is the move in percentage points versus the previous observation, `change_bps` is the same move in basis points, and `change_percent` is the relative move versus `prev_rate`. Both observations are dated, so `prev_date` tells you the interval the change covers: consecutive business days for most curves, and the previous auction for the short-term Italy tenors, which publish monthly. The `prev_*` and change fields are `null` when only a single observation is available yet. Errors match the latest rate endpoint.
