Events · US only
Deals and agreements
- Coverage
- US
- Billing
- 20 cr / thousand calls
Returns a company's deals and agreements with counterparties: M&A, divestitures, joint ventures, licensing, material contracts and settlements, one row per deal (event_class = transaction or agreement), with the filing company as the subject: direction / filer_role state whether it is buyer or seller, licensor or licensee, and the counterparty is in counterparty_names / counterparty_tickers.
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 [].
- This endpoint spans two classes:
transaction(M&A, divestitures, joint ventures, restructurings and other changes to assets and control) andagreement(licensing, supply, partnerships, material contracts and settlements). Filter a whole domain withevent_class, a single type withevent_type; theevent_typevalues of the two domains do not overlap, and giving both parameters intersects them.deal_domainhas the same value asevent_class. - Direction, counterparty and amount are response fields only, with no server-side filtering; reverse lookup by counterparty ticker is not offered.
- The successive filings of one deal, from signing to closing / termination, share one
event_group_id, and only the latest version is returned; earlier versions are not exposed, andevent_group_idis used to group the rows of one deal within a window.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| ticker | string | optional | Up 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. |
| from | date | optional | Start of the event date (event_date) range, inclusive; for a single day, set from = to. |
| to | date | optional | End of the event date range, inclusive. |
| event_class | stringenum | optional | transaction | agreement, comma-separated multi-select; filters a whole domain, shorter than listing each event_type. Default: all. |
| event_type | stringenum | optional | The enums for the two domains, transaction / agreement (acquisition disposal merger spin_off joint_venture strategic_investment restructuring / license supply partnership major_contract settlement); multiple values allowed, comma-separated. Default: all. |
| limit | int | optional | Maximum 500. Default: 50. |
| page | int | optional | Starts 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
| Field | Type | Description |
|---|---|---|
| event_id | string | Id of a single event; the same value on the typed endpoints and on the timeline |
| ticker | string | Canonical ticker |
| market | stringenum | Fixed value: US |
| event_class | stringenum | transaction | agreement |
| event_type | stringenum | acquisition | disposal | merger | spin_off | joint_venture | strategic_investment | restructuring | license | supply | partnership | major_contract | settlement |
| axis | object | Deal or agreement classifications: consideration_type, structure or subtype, depending on the type; returns {} when none apply. Identified consideration_type / structure values match the top-level fields |
| source_category | string | SEC 8-K item, preserved as filed; multiple triggering items are comma-separated, for example 8-K:1.01,2.03 |
| event_date | date | Event date for the current deal stage, such as signing or closing. The from / to filters use this field, not expected_close_date |
| title | string | One-sentence title |
| stage | stringenum | Lifecycle stage: announced / approved / amended / completed / terminated; describes this event row, not a required sequence for every event type |
| event_group_id | string | The successive filings of the same deal / financing / executive change share one id |
| is_current | bool | Always true; historical filing versions are not returned by this endpoint |
| accession_number | string | SEC accession number |
| form_type | string | Source filing type |
| filing_url | string | Deep link to the official document |
| filing_date | date | Filing date |
| deal_domain | stringenum | transaction (asset boundaries and control) | agreement (operating commitments to outside parties); same value as event_class |
| direction | string | nullenum | inbound (the filer is the buyer / licensee) | outbound | bilateral |
| filer_role | string | nullenum | The filer's role in the deal; closed vocabulary: acquirer target seller merging_party jv_partner investor investee licensor licensee supplier customer partner guarantor beneficiary |
| counterparty_names | string[] | Counterparty names; may be an empty array |
| counterparty_tickers | string[] | Identified counterparty canonical tickers; returns [] when no valid codes are available. Positions are not guaranteed to align with counterparty_names |
| deal_name | string | null | Deal name (project code name or the title as filed) |
| deal_value | number | null | Deal consideration, denominated in currency |
| currency | string | null | ISO 4217 |
| consideration_type | string | nullenum | all_cash / all_stock / mixed / debt_assumption / nil (no consideration: transfers, succession, etc.) |
| structure | string | nullenum | share_deal / asset_deal / tender_offer / scheme_of_arrangement |
| stake_pct | number | null | Stake in the target acquired / disposed of / invested in (%) |
| price_per_share | number | null | Consideration per share |
| premium_pct | number | null | Premium to the market price (%) |
| termination_fee | number | null | Break-up fee |
| expected_close_date | date | null | Expected closing date |
| conditions | string[] | Closing conditions (including prefixed forms such as regulatory:HSR); may be an empty array |
| termination_reason | string | null | Populated only when stage=terminated |
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.