curl --request POST \
--url https://sacra.com/api/v1/news/company/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"company_id": 123,
"company_domain": "<string>",
"company_domains": [
"<string>"
],
"page_size": 123,
"page_after": "<string>",
"page_before": "<string>",
"created_at_start": "2023-11-07T05:31:56Z",
"created_at_end": "2023-11-07T05:31:56Z",
"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",
"release_date_start": "2023-11-07T05:31:56Z",
"release_date_end": "2023-11-07T05:31:56Z",
"require_thumbnails": false
}
'import requests
url = "https://sacra.com/api/v1/news/company/"
payload = {
"company_id": 123,
"company_domain": "<string>",
"company_domains": ["<string>"],
"page_size": 123,
"page_after": "<string>",
"page_before": "<string>",
"created_at_start": "2023-11-07T05:31:56Z",
"created_at_end": "2023-11-07T05:31:56Z",
"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",
"release_date_start": "2023-11-07T05:31:56Z",
"release_date_end": "2023-11-07T05:31:56Z",
"require_thumbnails": False
}
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({
company_id: 123,
company_domain: '<string>',
company_domains: ['<string>'],
page_size: 123,
page_after: '<string>',
page_before: '<string>',
created_at_start: '2023-11-07T05:31:56Z',
created_at_end: '2023-11-07T05:31:56Z',
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',
release_date_start: '2023-11-07T05:31:56Z',
release_date_end: '2023-11-07T05:31:56Z',
require_thumbnails: false
})
};
fetch('https://sacra.com/api/v1/news/company/', 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/news/company/",
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([
'company_id' => 123,
'company_domain' => '<string>',
'company_domains' => [
'<string>'
],
'page_size' => 123,
'page_after' => '<string>',
'page_before' => '<string>',
'created_at_start' => '2023-11-07T05:31:56Z',
'created_at_end' => '2023-11-07T05:31:56Z',
'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',
'release_date_start' => '2023-11-07T05:31:56Z',
'release_date_end' => '2023-11-07T05:31:56Z',
'require_thumbnails' => false
]),
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/news/company/"
payload := strings.NewReader("{\n \"company_id\": 123,\n \"company_domain\": \"<string>\",\n \"company_domains\": [\n \"<string>\"\n ],\n \"page_size\": 123,\n \"page_after\": \"<string>\",\n \"page_before\": \"<string>\",\n \"created_at_start\": \"2023-11-07T05:31:56Z\",\n \"created_at_end\": \"2023-11-07T05:31:56Z\",\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 \"release_date_start\": \"2023-11-07T05:31:56Z\",\n \"release_date_end\": \"2023-11-07T05:31:56Z\",\n \"require_thumbnails\": false\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/news/company/")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"company_id\": 123,\n \"company_domain\": \"<string>\",\n \"company_domains\": [\n \"<string>\"\n ],\n \"page_size\": 123,\n \"page_after\": \"<string>\",\n \"page_before\": \"<string>\",\n \"created_at_start\": \"2023-11-07T05:31:56Z\",\n \"created_at_end\": \"2023-11-07T05:31:56Z\",\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 \"release_date_start\": \"2023-11-07T05:31:56Z\",\n \"release_date_end\": \"2023-11-07T05:31:56Z\",\n \"require_thumbnails\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sacra.com/api/v1/news/company/")
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 \"company_id\": 123,\n \"company_domain\": \"<string>\",\n \"company_domains\": [\n \"<string>\"\n ],\n \"page_size\": 123,\n \"page_after\": \"<string>\",\n \"page_before\": \"<string>\",\n \"created_at_start\": \"2023-11-07T05:31:56Z\",\n \"created_at_end\": \"2023-11-07T05:31:56Z\",\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 \"release_date_start\": \"2023-11-07T05:31:56Z\",\n \"release_date_end\": \"2023-11-07T05:31:56Z\",\n \"require_thumbnails\": false\n}"
response = http.request(request)
puts response.read_body{
"company_news": [
{
"id": "440d9f52-275a-4d39-973f-e780a76a9bf6",
"release_date": "2026-03-02T23:18:27Z",
"headline": "Stripe Releases 1 Preview to Monetize AI Model Costs",
"short_headline": "Stripe Preview",
"description": "Stripe's preview lets AI companies track, pass through and mark up underlying model usage fees.",
"created_at": "2026-03-03T15:17:46.635681Z",
"updated_at": "2026-03-03T15:17:46.635689Z",
"articles": [
{
"id": "66348676-99ee-4f5b-8d5a-61b1ae64af6e",
"link": "https://techcrunch.com/2026/03/02/stripe-wants-to-turn-your-ai-costs-into-a-profit-center",
"headline": "Stripe wants to turn your AI costs into a profit center",
"short_summary": "Stripe launched a preview tool for monetizing AI model costs.",
"date_published": "2026-03-02",
"thumbnail": "https://techcrunch.com/wp-content/uploads/example.jpg",
"publication": "TechCrunch",
"publication_score": 500
}
],
"company": {
"id": 42,
"domain": "stripe.com"
}
}
],
"meta": {
"query_type": "single-company",
"companies_count": 1,
"companies": [
{
"id": 42,
"domain": "stripe.com"
}
]
},
"pagination": {
"page_size": 10,
"current_page_items": 1,
"total_items": 25,
"next_link": null,
"prev_link": null,
"next_cursor": "abc124",
"prev_cursor": null,
"after_cursor": null,
"before_cursor": null
}
}Get company news (batch)
Same as GET but accepts a JSON body. Use for large company_domains lists that exceed URL length limits.
Company filter precedence: company_id > company_domains > company_domain. If none are provided (domain-less query), at least one date range spanning 14 days or less is required.
Limits: Up to 1,000 company domains.
curl --request POST \
--url https://sacra.com/api/v1/news/company/ \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"company_id": 123,
"company_domain": "<string>",
"company_domains": [
"<string>"
],
"page_size": 123,
"page_after": "<string>",
"page_before": "<string>",
"created_at_start": "2023-11-07T05:31:56Z",
"created_at_end": "2023-11-07T05:31:56Z",
"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",
"release_date_start": "2023-11-07T05:31:56Z",
"release_date_end": "2023-11-07T05:31:56Z",
"require_thumbnails": false
}
'import requests
url = "https://sacra.com/api/v1/news/company/"
payload = {
"company_id": 123,
"company_domain": "<string>",
"company_domains": ["<string>"],
"page_size": 123,
"page_after": "<string>",
"page_before": "<string>",
"created_at_start": "2023-11-07T05:31:56Z",
"created_at_end": "2023-11-07T05:31:56Z",
"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",
"release_date_start": "2023-11-07T05:31:56Z",
"release_date_end": "2023-11-07T05:31:56Z",
"require_thumbnails": False
}
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({
company_id: 123,
company_domain: '<string>',
company_domains: ['<string>'],
page_size: 123,
page_after: '<string>',
page_before: '<string>',
created_at_start: '2023-11-07T05:31:56Z',
created_at_end: '2023-11-07T05:31:56Z',
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',
release_date_start: '2023-11-07T05:31:56Z',
release_date_end: '2023-11-07T05:31:56Z',
require_thumbnails: false
})
};
fetch('https://sacra.com/api/v1/news/company/', 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/news/company/",
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([
'company_id' => 123,
'company_domain' => '<string>',
'company_domains' => [
'<string>'
],
'page_size' => 123,
'page_after' => '<string>',
'page_before' => '<string>',
'created_at_start' => '2023-11-07T05:31:56Z',
'created_at_end' => '2023-11-07T05:31:56Z',
'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',
'release_date_start' => '2023-11-07T05:31:56Z',
'release_date_end' => '2023-11-07T05:31:56Z',
'require_thumbnails' => false
]),
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/news/company/"
payload := strings.NewReader("{\n \"company_id\": 123,\n \"company_domain\": \"<string>\",\n \"company_domains\": [\n \"<string>\"\n ],\n \"page_size\": 123,\n \"page_after\": \"<string>\",\n \"page_before\": \"<string>\",\n \"created_at_start\": \"2023-11-07T05:31:56Z\",\n \"created_at_end\": \"2023-11-07T05:31:56Z\",\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 \"release_date_start\": \"2023-11-07T05:31:56Z\",\n \"release_date_end\": \"2023-11-07T05:31:56Z\",\n \"require_thumbnails\": false\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/news/company/")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"company_id\": 123,\n \"company_domain\": \"<string>\",\n \"company_domains\": [\n \"<string>\"\n ],\n \"page_size\": 123,\n \"page_after\": \"<string>\",\n \"page_before\": \"<string>\",\n \"created_at_start\": \"2023-11-07T05:31:56Z\",\n \"created_at_end\": \"2023-11-07T05:31:56Z\",\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 \"release_date_start\": \"2023-11-07T05:31:56Z\",\n \"release_date_end\": \"2023-11-07T05:31:56Z\",\n \"require_thumbnails\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sacra.com/api/v1/news/company/")
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 \"company_id\": 123,\n \"company_domain\": \"<string>\",\n \"company_domains\": [\n \"<string>\"\n ],\n \"page_size\": 123,\n \"page_after\": \"<string>\",\n \"page_before\": \"<string>\",\n \"created_at_start\": \"2023-11-07T05:31:56Z\",\n \"created_at_end\": \"2023-11-07T05:31:56Z\",\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 \"release_date_start\": \"2023-11-07T05:31:56Z\",\n \"release_date_end\": \"2023-11-07T05:31:56Z\",\n \"require_thumbnails\": false\n}"
response = http.request(request)
puts response.read_body{
"company_news": [
{
"id": "440d9f52-275a-4d39-973f-e780a76a9bf6",
"release_date": "2026-03-02T23:18:27Z",
"headline": "Stripe Releases 1 Preview to Monetize AI Model Costs",
"short_headline": "Stripe Preview",
"description": "Stripe's preview lets AI companies track, pass through and mark up underlying model usage fees.",
"created_at": "2026-03-03T15:17:46.635681Z",
"updated_at": "2026-03-03T15:17:46.635689Z",
"articles": [
{
"id": "66348676-99ee-4f5b-8d5a-61b1ae64af6e",
"link": "https://techcrunch.com/2026/03/02/stripe-wants-to-turn-your-ai-costs-into-a-profit-center",
"headline": "Stripe wants to turn your AI costs into a profit center",
"short_summary": "Stripe launched a preview tool for monetizing AI model costs.",
"date_published": "2026-03-02",
"thumbnail": "https://techcrunch.com/wp-content/uploads/example.jpg",
"publication": "TechCrunch",
"publication_score": 500
}
],
"company": {
"id": 42,
"domain": "stripe.com"
}
}
],
"meta": {
"query_type": "single-company",
"companies_count": 1,
"companies": [
{
"id": 42,
"domain": "stripe.com"
}
]
},
"pagination": {
"page_size": 10,
"current_page_items": 1,
"total_items": 25,
"next_link": null,
"prev_link": null,
"next_cursor": "abc124",
"prev_cursor": null,
"after_cursor": null,
"before_cursor": null
}
}Authorizations
Authenticate using one of two formats:
- Organization/user token:
Token <your-token> - Stytch JWT:
Bearer <your-jwt>
Body
Fetch news for a single company by internal ID. Takes highest precedence.
Fetch news for a single company by domain (e.g. openai.com).
List of company domains (up to 1,000).
Filter by news importance. Default: major.
major- majorall- all
major, all Number of results per page. Default: 10, max: 50.
Cursor for forward pagination.
Cursor for backward pagination.
Filter news created on or after this datetime (ISO 8601).
Filter news created on or before this datetime (ISO 8601).
Alias for created_at_start.
Alias for created_at_end.
Filter news updated on or after this datetime (ISO 8601).
Filter news updated on or before this datetime (ISO 8601).
Filter news released on or after this datetime (ISO 8601).
Filter news released on or before this datetime (ISO 8601).
When true, articles without thumbnails fall back to the company logo.