Corporate events
GET/api/v1/families/us-equities/events
Earnings, dividends, and splits for listed US stocks in one batch call. Pro and Unlimited.
Description
Returns corporate events for the requested listed tickers inside a date window: earnings (with estimates and actuals when known), dividends (amount and key dates), splits, and other actions. Tickers are normalized (BRK.B becomes BRK-B). Unknown symbols are omitted. status is upcoming or past relative to today (US/Eastern). Omit from and to for the default window (~90 days back and ~180 days forward). POST the same path with {"symbols": [...]} for up to 1,000 keys. Every request counts as one API request against the plan quota, however many symbols it returns.
Authentication
v1 is client_id plus client_secret on every protected GET. A browser session is not enough. Google sign-in is for the website only — do not send a session cookie to v1.
- HTTP Basic —
Authorization: Basic base64(client_id:client_secret) - Headers —
X-Client-IdandX-Client-Secret
Create or rotate credentials on Account. Full notes are on Authentication.
Path parameters
This path has no parameters.
Query parameters
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
symbols | query | string | Yes | Comma-separated listed tickers. Repeated symbols= params are merged. Maximum 1,000 unique keys. |
from | query | string | No | First calendar day to include, YYYY-MM-DD. Default ~90 days before today (US/Eastern). |
to | query | string | No | Last calendar day to include, YYYY-MM-DD. Default ~180 days after today (US/Eastern). |
Example request
curl -sS -u "$CLIENT_ID:$CLIENT_SECRET" \
https://barquant.dev/api/v1/families/us-equities/events?symbols=AAPL,KO,JNJResponse attributes
| Field | Type | Description |
|---|---|---|
as_of | string | Day the event store was last published, YYYY-MM-DD. |
events | object[] | Matching events, ordered by date then symbol. |
events[].symbol | string | Normalized ticker. |
events[].type | "earnings" | "dividend" | "split" | "other" | What the row describes. |
events[].date | string | Event calendar day, YYYY-MM-DD. |
events[].time | "bmo" | "amc" | null | Before market open, after market close, or null when unknown. Known for a reported quarter when its quarterly report was filed on the release day (the filing time sets it; data.time_source says so). |
events[].status | "upcoming" | "past" | Relative to today (US/Eastern). Computed at request time. |
events[].title | string | null | Optional short label when present. |
events[].data | object | Type-specific fields. Earnings: fiscal_period (for example Q4 FY2026), fiscal_period_end (null until that quarter is filed), eps_estimate, eps_actual, revenue_estimate, revenue_actual, and time_source when time is known. Dividends: amount, currency (the listing currency), ex_date, record_date, pay_date, declaration_date. Splits: numerator, denominator. |
Sample response
{
"as_of": "2026-09-25",
"events": [
{
"symbol": "AAPL",
"type": "earnings",
"date": "2026-10-30",
"time": null,
"status": "upcoming",
"title": null,
"data": {
"fiscal_period": "Q4 FY2026",
"fiscal_period_end": null,
"eps_estimate": 1.2,
"eps_actual": null,
"revenue_estimate": 90000000000,
"revenue_actual": null
}
},
{
"symbol": "KO",
"type": "dividend",
"date": "2026-09-15",
"time": null,
"status": "past",
"title": null,
"data": {
"amount": 0.51,
"currency": "USD",
"ex_date": "2026-09-15",
"record_date": "2026-09-16",
"pay_date": "2026-10-01",
"declaration_date": "2026-07-24"
}
}
]
}Errors
| Status | When |
|---|---|
| 400 | symbols is missing or over the key limit, or from / to is not YYYY-MM-DD or from is after to. |
| 401 | Missing or wrong client_id / client_secret. |
| 403 | Authenticated, but this plan does not include corporate events. They start on Pro. |
| 429 | Daily quota or per-minute plan quota. Read Retry-After and X-RateLimit-* headers. |
401 body:
{
"error": "Unauthorized"
}403 body:
{
"error": "This plan does not include that family.",
"plan": "basic",
"requiredPlan": "pro"
}429 body (per-minute / daily):
{
"error": "Too many requests."
}Plan access
Pro and Unlimited. Free and Basic receive 403. Every request counts as one API request against the plan quota, however many symbols it returns.
Daily and per-minute quotas live on Plans and limits.
© 2026–2035 Barquant