## /v1/stocks/{ticker}/analyst-estimates

Reads stored, independently verified analyst consensus from the company's investor-relations website and explicitly linked publications. Coverage varies by issuer. Management guidance and historical actuals are excluded. An empty result does not mean analysts have no estimates.

`data` preserves each source metric, forecast period, product or segment dimension, statistic, analyst, value, unit, accounting basis, publication label and footnote. Source URLs and verification evidence are retained internally. Values are strings in their original units and precision; workbook values retain their cached cell values and format context. Mean and median remain distinct. No missing value is converted to zero.

| Parameter | Meaning |
|---|---|
| `ticker` | Stock symbol |
| `metric`, `period`, `dimensions` | Optional exact source-label filters |
| `snapshotId` | Optional verified snapshot ID returned in `snapshots` |
| `asOf` | Optional ISO-8601 cutoff; the snapshot must have been verified by that instant |
| `limit` | Observation count, default 100, range 1–100 |
| `offset` | Zero-based observation offset, range 0–100000 |
| `snapshotOffset` | Independent snapshot-history offset, range 0–100000; pages contain up to 10 snapshots |

`meta` and `snapshotsMeta` independently report counted totals and continuation flags. Advance each offset by the returned count until its `hasMore` is false. Keep `snapshotId` fixed while paging observations so a newly published capture cannot change the dataset mid-read.

`status`, `coverageNote`, `stale`, `newerSnapshotPending`, `capturedAt`, `verifiedAt` and `lastCheckedAt` describe coverage and processing. `stale` means source refresh is overdue; it does not certify that a source's forecasts are recent. Source publication labels remain separate from capture dates. Archived forecasts retain their original publication labels. Failed or partial new extractions do not replace the last verified snapshot.

```bash
curl 'https://api.equibles.com/v1/stocks/SAP/analyst-estimates?limit=25' \
  -H 'Authorization: Bearer eq_your_api_key'
```

Requests use the shared API/MCP daily quota. Reads never start a scrape. A response example will be added after production verification.