curl --request GET \
--url https://sacra.com/api/v1/news/company/ \
--header 'Authorization: <api-key>'import requests
url = "https://sacra.com/api/v1/news/company/"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
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 => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sacra.com/api/v1/news/company/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sacra.com/api/v1/news/company/")
.header("Authorization", "<api-key>")
.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::Get.new(url)
request["Authorization"] = '<api-key>'
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": "https://sacra.com/api/v1/news/company/?company_domain=stripe.com&page_after=abc124",
"prev_link": null,
"next_cursor": "abc124",
"prev_cursor": null,
"after_cursor": null,
"before_cursor": null
}
}Get company news - News API
Returns news items for one or more companies with cursor-based pagination.
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 200 company domains.
curl --request GET \
--url https://sacra.com/api/v1/news/company/ \
--header 'Authorization: <api-key>'import requests
url = "https://sacra.com/api/v1/news/company/"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
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 => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sacra.com/api/v1/news/company/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sacra.com/api/v1/news/company/")
.header("Authorization", "<api-key>")
.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::Get.new(url)
request["Authorization"] = '<api-key>'
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": "https://sacra.com/api/v1/news/company/?company_domain=stripe.com&page_after=abc124",
"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>
Query Parameters
Fetch news for a single company by domain (e.g. openai.com).
Comma-separated list of company domains (e.g. openai.com,anthropic.com). Max 200.
Fetch news for a single company by internal ID. Takes highest precedence.
Filter news created on or before this datetime (ISO 8601). Alias: created_at_lte.
Alias for created_at_start.
Alias for created_at_end.
Filter news created on or after this datetime (ISO 8601). Alias: created_at_gte.
Filter by news importance. Default: major.
all, major Cursor for forward pagination. Cannot combine with page_before.
Cursor for backward pagination. Cannot combine with page_after.
Number of results per page. Default: 10, max: 50.
Filter news released on or before this datetime (ISO 8601).
Filter news released on or after this datetime (ISO 8601).
When true, articles without thumbnails fall back to the company logo. Default: false.
Filter news updated on or after this datetime (ISO 8601). Recommended for daily polling.
Filter news updated on or before this datetime (ISO 8601). Recommended for daily polling.