You are helping me integrate the Ticker API.
# API basics
- Base URL: https://api.tickerapp.net/v2
- Auth: pass `x-api-key: <my-api-key>` on every request
- Docs: https://developers.ticker.app/docs
- Full reference: https://developers.ticker.app/api-reference
# Main endpoint
`GET /disclosures/sources/rns/items` returns RNS announcements.
Key query parameters:
- `dateFrom`, `dateTo`: inclusive ISO8601 bounds; partial dates accepted (e.g. `2026`, `2026-03`).
- `isin` / `isins`: filter by ISIN. Singular repeated (`isin=A&isin=B`) or plural comma-separated (`isins=A,B`).
- `symbol` / `symbols`: filter by LSE ticker symbol (e.g. `VOD`, `LLOY`).
- `fcaCategory` / `fcaCategories`: filter by FCA DTR 8 Annex 2 codes.
- `tickerCategory` / `tickerCategories`: filter by one of 11 Ticker categories: AA, BC, CS, CU, DD, DI, HO, ME, RE, TU, XX.
- `q`: substring search over the headline.
- `pageSize`: default 50, capped per plan at 50, 100, or 200.
- Pagination (mutually exclusive): `pageCursor` (walk a result set), `pageNumber` (1-indexed classic), `sinceCursor` (poll for new items).
# Response shape
```json
{
"data": [
{
"rnsId": "1234W",
"timestamp": "2026-03-15T07:00:02Z",
"issuer": {
"name": "Example plc",
"instrument": { "isin": "GB00...", "symbol": { "mnemonic": "EXAM" } }
},
"headline": "Half-year Results",
"category": [{ "kind": "FCA", "code": "IR", "name": "Half-year Report" }],
"publication": [...]
}
],
"meta": {
"paging": { "pageSize": 50, "nextCursor": "...", "latestCursor": "..." }
}
}
```
# Rate limits
- Token-bucket throttle (per-second rate + burst) and a weekly request quota, both plan-tiered.
- `429 Too Many Requests` may be either throttle (back off and retry with exponential delay) or quota (won't clear until the weekly reset).
- See https://developers.ticker.app/docs/core-concepts/rate-limits for per-tier limits.
# Polling for new items
Pass `sinceCursor=<latestCursor from previous response>` to fetch only items newer than the last one you saw. Empty polls return immediately with zero items, so 1-minute polling is cheap. Don't use `pageCursor` or `pageNumber` for polling.
# Fund and IR endpoints
These need the Advanced plan or above. Each takes an `identifier` in the path: an ISIN, or a symbol in bare (`SMT`) or MIC-qualified (`XLON:SMT`) form. The history endpoints accept `dateFrom`/`dateTo` plus `pageSize`/`pageNumber`.
- `GET /nav`: latest NAV across the universe, or the instruments in `isins`. Poll it with `sinceCursor`.
- `GET /nav/{identifier}` and `GET /nav/{identifier}/history`: NAV for one instrument, latest or over time.
- `GET /buybacks/{identifier}`: NAV accretion per share and average discount to NAV over a period.
- `GET /buybacks/{identifier}/history`: every repurchase announced. Read `price.unit`: amounts are in the unit the announcement used and are never converted.
- `GET /dividends/{identifier}`: the latest declared dividend and the next projected dates.
- `GET /dividends/{identifier}/history`: every declared dividend. `dateFrom`/`dateTo` filter on declaration date, not the period the dividend covers. Read `amount.unit` as above.
- `GET /events/{identifier}`: results, AGMs and dividend dates. Resolved to the company, not the share class.
- `GET /performance/{identifier}`: the return figures the issuer states in its own reports. Nothing is computed, so this 404s where an issuer publishes none. Read `periodType` (`cumulative` vs `annualised`) and `basis` before captioning a figure.
Full parameter and response detail: https://developers.ticker.app/openapi.json
---
Now, please [describe what you want to build].