drillr.ai
API keys →

Events · US only

Executive changes

GET/api/v2/events-executive-changesUS only
Coverage
US
Billing
20 cr / thousand calls

Returns changes among a company's executives, directors and auditors: who, which role, appointment or departure, and the effective date, one row per change (executive_change / director_change / auditor_change within event_class = governance). Only disclosed facts are restated, with no profiling of individuals. Equity incentive events (equity_incentive) are available only on the /events timeline.

Response enums list only values allowed by this endpoint; each row returns one string for event_class and one for event_type. Nullable fields return null when undisclosed or inapplicable; empty arrays return [].

  • When ticker is omitted, the endpoint scans across companies: event_type=executive_change combined with from / to returns every executive change in a given period, which you then narrow to slices such as CFO departures using the returned role_type / action.
  • The endpoint does not offer cross-company queries by person name (no person= parameter), preventing public filings from being used to build cross-company personal profiles.
  • role_type (ceo cfo coo chair director other) / action (appointment departure role_change) / reason are the flattened form of the envelope's axis, with the same values; all three are response fields only and are not filterable server-side.

The following response is fictional and illustrates field structure and date relationships; names, event IDs and document links do not represent an actual filing.

Query parameters

ParameterTypeRequiredDescription
tickerstringoptionalUp to 10 values, comma-separated; when omitted, the endpoint scans across companies; use it with from / to. The market is carried by the canonical ticker itself, so there is no market parameter. Default: all companies.
fromdateoptionalStart of the event date (event_date) range, inclusive; for a single day, set from = to.
todateoptionalEnd of the event date range, inclusive.
event_typestringenumoptionalexecutive_change | director_change | auditor_change; accepts multiple comma-separated values. Default: all.
limitintoptionalMaximum 500. Default: 50.
pageintoptionalStarts at 1. Default: 1.

Sort order: event_date desc, accession_number desc, event_id asc. Paged with limit and page (pages start at 1); fewer rows than limit means the last page.

Response fields

FieldTypeDescription
event_idstringId of a single event; the same value on the typed endpoints and on the timeline
tickerstringCanonical ticker
marketstringenumFixed value: US
event_classstringenumFixed value: governance
event_typestringenumexecutive_change | director_change | auditor_change
axisobjectPersonnel change classifications, for example {"role_type":"cfo","action":"departure","reason":"resignation"}; values match the top-level fields. Missing keys are omitted; auditor changes may return {}
source_categorystringSEC 8-K item: typically 8-K:5.02 for executive or director changes and 8-K:4.01 for auditor changes
event_datedateEvent date of the personnel or auditor change, falling back to filing_date when absent. The from / to filters use this field; the appointment or departure takes effect on effective_date
titlestringOne-sentence title
stagestringenumLifecycle stage: announced / approved / amended / completed / terminated; describes this event row, not a required sequence for every event type
event_group_idstringThe successive filings of the same deal / financing / executive change share one id
is_currentboolAlways true; historical filing versions are not returned by this endpoint
accession_numberstringSEC accession number
form_typestringSource filing type
filing_urlstringDeep link to the official document
filing_datedateFiling date
person_namestring | nullName of the person involved (for auditor_change, the audit firm name), as filed
rolestring | nullRole title as filed
role_typestring | nullenumNormalized role: ceo cfo coo chair director other; uses the same role_type enum as /executives.
actionstring | nullenumappointment | departure | role_change
reasonstring | nullenumresignation / retirement / termination / death / other; classified only from filing wording, not inferred. Returns null for non-departures or unidentified reasons; matches axis.reason
effective_datedate | nullAppointment or departure effective date; null when undisclosed and may be later than event_date
successor_namestring | nullSuccessor's name; null when not disclosed
is_interimbool | nullWhether the successor is acting or interim; null means undisclosed, not false

No key yet? Create one under API Keys — it is shown once, so store it where your shell can read it. Connecting an agent over MCP instead? That signs in through the browser and needs no key at all.

Authentication, conventions, rate limits and error shapes are the same for every endpoint — they live on REST API.