Barquant

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-Id and X-Client-Secret

Create or rotate credentials on Account. Full notes are on Authentication.

Path parameters

This path has no parameters.

Query parameters

ParameterInTypeRequiredDescription
symbolsquerystringYesComma-separated listed tickers. Repeated symbols= params are merged. Maximum 1,000 unique keys.
fromquerystringNoFirst calendar day to include, YYYY-MM-DD. Default ~90 days before today (US/Eastern).
toquerystringNoLast 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,JNJ

Response attributes

FieldTypeDescription
as_ofstringDay the event store was last published, YYYY-MM-DD.
eventsobject[]Matching events, ordered by date then symbol.
events[].symbolstringNormalized ticker.
events[].type"earnings" | "dividend" | "split" | "other"What the row describes.
events[].datestringEvent calendar day, YYYY-MM-DD.
events[].time"bmo" | "amc" | nullBefore 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[].titlestring | nullOptional short label when present.
events[].dataobjectType-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

StatusWhen
400symbols is missing or over the key limit, or from / to is not YYYY-MM-DD or from is after to.
401Missing or wrong client_id / client_secret.
403Authenticated, but this plan does not include corporate events. They start on Pro.
429Daily 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

Corporate events · Barquant