curl --request POST \
--url https://sacra.com/api/v1/events/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"start_date": "2023-12-25",
"end_date": "2023-12-25",
"created_at_gte": "2023-11-07T05:31:56Z",
"created_at_lte": "2023-11-07T05:31:56Z",
"updated_at_gte": "2023-11-07T05:31:56Z",
"updated_at_lte": "2023-11-07T05:31:56Z",
"company_domain": "<string>",
"company_uid": "<string>",
"company_id": "<string>",
"company_domains": [
"<string>"
],
"company_ids": [
"<string>"
],
"types": "<string>",
"subtypes": "<string>",
"betas": [
"<string>"
],
"include_citations": false,
"page": 123,
"page_size": 123,
"page_after": "<string>",
"page_before": "<string>"
}
'import requests
url = "https://sacra.com/api/v1/events/"
payload = {
"start_date": "2023-12-25",
"end_date": "2023-12-25",
"created_at_gte": "2023-11-07T05:31:56Z",
"created_at_lte": "2023-11-07T05:31:56Z",
"updated_at_gte": "2023-11-07T05:31:56Z",
"updated_at_lte": "2023-11-07T05:31:56Z",
"company_domain": "<string>",
"company_uid": "<string>",
"company_id": "<string>",
"company_domains": ["<string>"],
"company_ids": ["<string>"],
"types": "<string>",
"subtypes": "<string>",
"betas": ["<string>"],
"include_citations": False,
"page": 123,
"page_size": 123,
"page_after": "<string>",
"page_before": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
start_date: '2023-12-25',
end_date: '2023-12-25',
created_at_gte: '2023-11-07T05:31:56Z',
created_at_lte: '2023-11-07T05:31:56Z',
updated_at_gte: '2023-11-07T05:31:56Z',
updated_at_lte: '2023-11-07T05:31:56Z',
company_domain: '<string>',
company_uid: '<string>',
company_id: '<string>',
company_domains: ['<string>'],
company_ids: ['<string>'],
types: '<string>',
subtypes: '<string>',
betas: ['<string>'],
include_citations: false,
page: 123,
page_size: 123,
page_after: '<string>',
page_before: '<string>'
})
};
fetch('https://sacra.com/api/v1/events/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sacra.com/api/v1/events/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'start_date' => '2023-12-25',
'end_date' => '2023-12-25',
'created_at_gte' => '2023-11-07T05:31:56Z',
'created_at_lte' => '2023-11-07T05:31:56Z',
'updated_at_gte' => '2023-11-07T05:31:56Z',
'updated_at_lte' => '2023-11-07T05:31:56Z',
'company_domain' => '<string>',
'company_uid' => '<string>',
'company_id' => '<string>',
'company_domains' => [
'<string>'
],
'company_ids' => [
'<string>'
],
'types' => '<string>',
'subtypes' => '<string>',
'betas' => [
'<string>'
],
'include_citations' => false,
'page' => 123,
'page_size' => 123,
'page_after' => '<string>',
'page_before' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sacra.com/api/v1/events/"
payload := strings.NewReader("{\n \"start_date\": \"2023-12-25\",\n \"end_date\": \"2023-12-25\",\n \"created_at_gte\": \"2023-11-07T05:31:56Z\",\n \"created_at_lte\": \"2023-11-07T05:31:56Z\",\n \"updated_at_gte\": \"2023-11-07T05:31:56Z\",\n \"updated_at_lte\": \"2023-11-07T05:31:56Z\",\n \"company_domain\": \"<string>\",\n \"company_uid\": \"<string>\",\n \"company_id\": \"<string>\",\n \"company_domains\": [\n \"<string>\"\n ],\n \"company_ids\": [\n \"<string>\"\n ],\n \"types\": \"<string>\",\n \"subtypes\": \"<string>\",\n \"betas\": [\n \"<string>\"\n ],\n \"include_citations\": false,\n \"page\": 123,\n \"page_size\": 123,\n \"page_after\": \"<string>\",\n \"page_before\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sacra.com/api/v1/events/")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"start_date\": \"2023-12-25\",\n \"end_date\": \"2023-12-25\",\n \"created_at_gte\": \"2023-11-07T05:31:56Z\",\n \"created_at_lte\": \"2023-11-07T05:31:56Z\",\n \"updated_at_gte\": \"2023-11-07T05:31:56Z\",\n \"updated_at_lte\": \"2023-11-07T05:31:56Z\",\n \"company_domain\": \"<string>\",\n \"company_uid\": \"<string>\",\n \"company_id\": \"<string>\",\n \"company_domains\": [\n \"<string>\"\n ],\n \"company_ids\": [\n \"<string>\"\n ],\n \"types\": \"<string>\",\n \"subtypes\": \"<string>\",\n \"betas\": [\n \"<string>\"\n ],\n \"include_citations\": false,\n \"page\": 123,\n \"page_size\": 123,\n \"page_after\": \"<string>\",\n \"page_before\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sacra.com/api/v1/events/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"start_date\": \"2023-12-25\",\n \"end_date\": \"2023-12-25\",\n \"created_at_gte\": \"2023-11-07T05:31:56Z\",\n \"created_at_lte\": \"2023-11-07T05:31:56Z\",\n \"updated_at_gte\": \"2023-11-07T05:31:56Z\",\n \"updated_at_lte\": \"2023-11-07T05:31:56Z\",\n \"company_domain\": \"<string>\",\n \"company_uid\": \"<string>\",\n \"company_id\": \"<string>\",\n \"company_domains\": [\n \"<string>\"\n ],\n \"company_ids\": [\n \"<string>\"\n ],\n \"types\": \"<string>\",\n \"subtypes\": \"<string>\",\n \"betas\": [\n \"<string>\"\n ],\n \"include_citations\": false,\n \"page\": 123,\n \"page_size\": 123,\n \"page_after\": \"<string>\",\n \"page_before\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"events": [
{
"event_id": "acq_204dcef9-e482-49db-9ab8-8a5c7e8c3b09",
"event_type": "acquisition",
"event_subtype": null,
"event_name": "Acquired by SpaceX",
"event_date": "2026-08-14",
"event_status": "closed",
"event_last_updated_at": "2026-09-03T13:57:09.240247+00:00",
"company": {
"id": "1446",
"slug": "cursor",
"domain": "cursor.com"
},
"data": {
"id": "204dcef9-e482-49db-9ab8-8a5c7e8c3b09",
"updated_at": "2026-09-03T13:57:09.240247+00:00",
"acquired_company": {
"name": "Cursor (Anysphere, Inc.)",
"company": {
"id": "1446",
"slug": "cursor",
"domain": "cursor.com"
}
},
"acquirer_company": {
"name": "SpaceX",
"company": {
"id": "325",
"slug": "spacex",
"domain": "spacex.com"
}
},
"announced_date": "2026-06-16",
"closing_date": "2026-08-14",
"cancelled_date": null,
"enterprise_value": null,
"equity_value": {
"amount": "60000000000.00",
"currency": "USD"
},
"status": "closed",
"created_at": "2026-09-03T13:57:09.204500+00:00"
}
}
],
"pagination": {
"page": 1,
"page_size": 30,
"total_pages": 1,
"total_count": 1,
"has_next": false,
"has_previous": false
},
"meta": {
"query_type": "multi-company",
"companies_count": 1,
"companies": [
{
"id": "1446",
"slug": "cursor",
"domain": "cursor.com"
}
]
}
}Get aggregated events (batch) - Events API
Same as GET but accepts a JSON body. Use for large multi-company queries that exceed URL length limits.
Pagination: Prefer page (default): increment page while pagination.has_next is true. POST cursor responses always have null next_link and prev_link; GET returns navigation URLs.
Global queries (no company filter) require at least one date range spanning 14 days or less.
Acquisitions beta: Send betas: ["acquisitions"] (v1 only), optionally with types: "acquisition". Company filters match the acquired company, not the buyer. Closed deals with unknown closing dates have event_date=null and are excluded by occurrence-date filters; use update-time filters to sync them.
API versioning: Defaults to v1. Pass api_version=v0 for deprecated legacy schema.
curl --request POST \
--url https://sacra.com/api/v1/events/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"start_date": "2023-12-25",
"end_date": "2023-12-25",
"created_at_gte": "2023-11-07T05:31:56Z",
"created_at_lte": "2023-11-07T05:31:56Z",
"updated_at_gte": "2023-11-07T05:31:56Z",
"updated_at_lte": "2023-11-07T05:31:56Z",
"company_domain": "<string>",
"company_uid": "<string>",
"company_id": "<string>",
"company_domains": [
"<string>"
],
"company_ids": [
"<string>"
],
"types": "<string>",
"subtypes": "<string>",
"betas": [
"<string>"
],
"include_citations": false,
"page": 123,
"page_size": 123,
"page_after": "<string>",
"page_before": "<string>"
}
'import requests
url = "https://sacra.com/api/v1/events/"
payload = {
"start_date": "2023-12-25",
"end_date": "2023-12-25",
"created_at_gte": "2023-11-07T05:31:56Z",
"created_at_lte": "2023-11-07T05:31:56Z",
"updated_at_gte": "2023-11-07T05:31:56Z",
"updated_at_lte": "2023-11-07T05:31:56Z",
"company_domain": "<string>",
"company_uid": "<string>",
"company_id": "<string>",
"company_domains": ["<string>"],
"company_ids": ["<string>"],
"types": "<string>",
"subtypes": "<string>",
"betas": ["<string>"],
"include_citations": False,
"page": 123,
"page_size": 123,
"page_after": "<string>",
"page_before": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
start_date: '2023-12-25',
end_date: '2023-12-25',
created_at_gte: '2023-11-07T05:31:56Z',
created_at_lte: '2023-11-07T05:31:56Z',
updated_at_gte: '2023-11-07T05:31:56Z',
updated_at_lte: '2023-11-07T05:31:56Z',
company_domain: '<string>',
company_uid: '<string>',
company_id: '<string>',
company_domains: ['<string>'],
company_ids: ['<string>'],
types: '<string>',
subtypes: '<string>',
betas: ['<string>'],
include_citations: false,
page: 123,
page_size: 123,
page_after: '<string>',
page_before: '<string>'
})
};
fetch('https://sacra.com/api/v1/events/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sacra.com/api/v1/events/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'start_date' => '2023-12-25',
'end_date' => '2023-12-25',
'created_at_gte' => '2023-11-07T05:31:56Z',
'created_at_lte' => '2023-11-07T05:31:56Z',
'updated_at_gte' => '2023-11-07T05:31:56Z',
'updated_at_lte' => '2023-11-07T05:31:56Z',
'company_domain' => '<string>',
'company_uid' => '<string>',
'company_id' => '<string>',
'company_domains' => [
'<string>'
],
'company_ids' => [
'<string>'
],
'types' => '<string>',
'subtypes' => '<string>',
'betas' => [
'<string>'
],
'include_citations' => false,
'page' => 123,
'page_size' => 123,
'page_after' => '<string>',
'page_before' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sacra.com/api/v1/events/"
payload := strings.NewReader("{\n \"start_date\": \"2023-12-25\",\n \"end_date\": \"2023-12-25\",\n \"created_at_gte\": \"2023-11-07T05:31:56Z\",\n \"created_at_lte\": \"2023-11-07T05:31:56Z\",\n \"updated_at_gte\": \"2023-11-07T05:31:56Z\",\n \"updated_at_lte\": \"2023-11-07T05:31:56Z\",\n \"company_domain\": \"<string>\",\n \"company_uid\": \"<string>\",\n \"company_id\": \"<string>\",\n \"company_domains\": [\n \"<string>\"\n ],\n \"company_ids\": [\n \"<string>\"\n ],\n \"types\": \"<string>\",\n \"subtypes\": \"<string>\",\n \"betas\": [\n \"<string>\"\n ],\n \"include_citations\": false,\n \"page\": 123,\n \"page_size\": 123,\n \"page_after\": \"<string>\",\n \"page_before\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sacra.com/api/v1/events/")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"start_date\": \"2023-12-25\",\n \"end_date\": \"2023-12-25\",\n \"created_at_gte\": \"2023-11-07T05:31:56Z\",\n \"created_at_lte\": \"2023-11-07T05:31:56Z\",\n \"updated_at_gte\": \"2023-11-07T05:31:56Z\",\n \"updated_at_lte\": \"2023-11-07T05:31:56Z\",\n \"company_domain\": \"<string>\",\n \"company_uid\": \"<string>\",\n \"company_id\": \"<string>\",\n \"company_domains\": [\n \"<string>\"\n ],\n \"company_ids\": [\n \"<string>\"\n ],\n \"types\": \"<string>\",\n \"subtypes\": \"<string>\",\n \"betas\": [\n \"<string>\"\n ],\n \"include_citations\": false,\n \"page\": 123,\n \"page_size\": 123,\n \"page_after\": \"<string>\",\n \"page_before\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sacra.com/api/v1/events/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"start_date\": \"2023-12-25\",\n \"end_date\": \"2023-12-25\",\n \"created_at_gte\": \"2023-11-07T05:31:56Z\",\n \"created_at_lte\": \"2023-11-07T05:31:56Z\",\n \"updated_at_gte\": \"2023-11-07T05:31:56Z\",\n \"updated_at_lte\": \"2023-11-07T05:31:56Z\",\n \"company_domain\": \"<string>\",\n \"company_uid\": \"<string>\",\n \"company_id\": \"<string>\",\n \"company_domains\": [\n \"<string>\"\n ],\n \"company_ids\": [\n \"<string>\"\n ],\n \"types\": \"<string>\",\n \"subtypes\": \"<string>\",\n \"betas\": [\n \"<string>\"\n ],\n \"include_citations\": false,\n \"page\": 123,\n \"page_size\": 123,\n \"page_after\": \"<string>\",\n \"page_before\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"events": [
{
"event_id": "acq_204dcef9-e482-49db-9ab8-8a5c7e8c3b09",
"event_type": "acquisition",
"event_subtype": null,
"event_name": "Acquired by SpaceX",
"event_date": "2026-08-14",
"event_status": "closed",
"event_last_updated_at": "2026-09-03T13:57:09.240247+00:00",
"company": {
"id": "1446",
"slug": "cursor",
"domain": "cursor.com"
},
"data": {
"id": "204dcef9-e482-49db-9ab8-8a5c7e8c3b09",
"updated_at": "2026-09-03T13:57:09.240247+00:00",
"acquired_company": {
"name": "Cursor (Anysphere, Inc.)",
"company": {
"id": "1446",
"slug": "cursor",
"domain": "cursor.com"
}
},
"acquirer_company": {
"name": "SpaceX",
"company": {
"id": "325",
"slug": "spacex",
"domain": "spacex.com"
}
},
"announced_date": "2026-06-16",
"closing_date": "2026-08-14",
"cancelled_date": null,
"enterprise_value": null,
"equity_value": {
"amount": "60000000000.00",
"currency": "USD"
},
"status": "closed",
"created_at": "2026-09-03T13:57:09.204500+00:00"
}
}
],
"pagination": {
"page": 1,
"page_size": 30,
"total_pages": 1,
"total_count": 1,
"has_next": false,
"has_previous": false
},
"meta": {
"query_type": "multi-company",
"companies_count": 1,
"companies": [
{
"id": "1446",
"slug": "cursor",
"domain": "cursor.com"
}
]
}
}"betas": ["acquisitions"] in the JSON body; optionally add "types": "acquisition" to return only acquisitions. A scalar betas string is invalid for POST. The beta requires API v1. See Events for an overview and the response schema below for the payload.
For batch pagination, use pagination=page (the default) and increment page while pagination.has_next is true. POST cursor responses have null next_link and prev_link; they do not provide the navigation URLs available with GET.Authorizations
Authenticate using one of two formats:
- Organization/user token:
Token <your-token> - Stytch JWT:
Bearer <your-jwt>
Body
Filter events on or after this date (ISO 8601).
Filter events on or before this date (ISO 8601).
Filter events created at or after this datetime.
Filter events created at or before this datetime.
Filter events updated at or after this datetime.
Filter events updated at or before this datetime.
Filter by a single company domain (e.g. spacex.com).
Filter by a single company slug/prismic UID.
Filter by a single company ID.
List of company domains.
List of company IDs.
Comma-separated event types: funding-round, secondary-transaction, company-milestone, corporate-action, and beta-gated acquisition.
Comma-separated event subtypes (e.g. stock_split, ipo).
Beta flags as a JSON string array. Use ["acquisitions"] to include acquisition events.
Attach citation payloads to events.
Pagination mode. Default: page.
page- pagecursor- cursor
page, cursor Page number (offset pagination). Default: 1.
Results per page. Default: 30, max: 100.
Cursor for the next page (cursor pagination only).
Cursor for the previous page (cursor pagination only).
Response schema version. Default: v1.
v1- v1v0- v0legacy- legacy
v1, v0, legacy