curl --request GET \
--url https://astreus.ai/api/v1/companies/{id}/filing-notes \
--header 'X-API-KEY: <api-key>'import requests
url = "https://astreus.ai/api/v1/companies/{id}/filing-notes"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://astreus.ai/api/v1/companies/{id}/filing-notes', 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://astreus.ai/api/v1/companies/{id}/filing-notes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <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://astreus.ai/api/v1/companies/{id}/filing-notes"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<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://astreus.ai/api/v1/companies/{id}/filing-notes")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://astreus.ai/api/v1/companies/{id}/filing-notes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"cik": [
"0001045810"
],
"filings": [
{
"id": 60135,
"accessionNumber": "0001045810-26-000075",
"filingType": "10-Q",
"filingDate": "2026-08-26",
"fiscalYear": 2027,
"fiscalQuarter": 2,
"sections": [
{
"id": 277125,
"sectionType": "item_1",
"itemLabel": "Item 1",
"title": "Financial Statements",
"wordCount": 11172
},
{
"id": 277126,
"sectionType": "item_2",
"itemLabel": "Item 2",
"title": "MD&A",
"wordCount": 6317
}
]
},
{
"id": 35,
"accessionNumber": "0001045810-26-000052",
"filingType": "10-Q",
"filingDate": "2026-05-20",
"fiscalYear": 2027,
"fiscalQuarter": 1,
"sections": [
{
"id": 8838,
"sectionType": "item_1",
"itemLabel": "Item 1",
"title": "Financial Statements",
"wordCount": 8941
},
{
"id": 8839,
"sectionType": "item_2",
"itemLabel": "Item 2",
"title": "MD&A",
"wordCount": 4804
}
]
}
],
"total": 107,
"limit": 2,
"offset": 0,
"hasMore": true,
"nextOffset": 2,
"filingTypes": {
"10-Q": 53,
"DEF 14A": 28,
"10-K": 18,
"S-1/A": 7,
"S-1": 1
},
"sectionTypes": {
"item_1": 71,
"item_2": 71,
"proxy_governance": 24,
"proxy_cdna": 20,
"proxy_summary_comp": 28,
"proxy_director_comp": 22,
"proxy_beneficial_ownership": 27,
"proxy_audit_fees": 24,
"item_1a": 18,
"item_1c": 3,
"item_3": 18,
"item_5": 18,
"item_7": 18,
"item_7a": 18,
"item_8": 18,
"item_9a": 18,
"item_9b": 12,
"item_9c": 5,
"item_10": 18,
"item_11": 18,
"item_12": 18,
"item_13": 18,
"item_14": 18,
"item_15": 18,
"item_16": 6,
"proxy_say_on_pay": 3,
"item_6": 13,
"item_9": 5,
"s1_summary": 8,
"s1_risk_factors": 8,
"s1_use_of_proceeds": 8,
"s1_dilution": 8,
"s1_mdna": 8,
"s1_business": 8,
"s1_management": 8,
"s1_exec_comp": 8,
"s1_principal_stockholders": 8,
"s1_underwriting": 8
}
}{
"error": "<string>",
"code": "unknown_parameter",
"param": "<string>",
"allowed": [
"<string>"
]
}{
"error": "<string>",
"code": "unknown_parameter",
"param": "<string>",
"allowed": [
"<string>"
]
}{
"error": "<string>",
"code": "unknown_parameter",
"param": "<string>",
"allowed": [
"<string>"
]
}{
"error": "<string>",
"code": "unknown_parameter",
"param": "<string>",
"allowed": [
"<string>"
]
}Filing sections
Every parsed filing (10-K, 10-Q, 20-F, DEF 14A, S-1 and exchange-lane reports) with its narrative sections — Business, Risk Factors, MD&A, … — newest filing first, sections in item order; section text at /filing-notes/. Paged by filing: total, limit, offset, hasMore, nextOffset; filingTypes and sectionTypes count what the whole index holds (before filters), and emptyReason says why an empty page is empty. The index lists what has been parsed, not everything filed.
curl --request GET \
--url https://astreus.ai/api/v1/companies/{id}/filing-notes \
--header 'X-API-KEY: <api-key>'import requests
url = "https://astreus.ai/api/v1/companies/{id}/filing-notes"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://astreus.ai/api/v1/companies/{id}/filing-notes', 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://astreus.ai/api/v1/companies/{id}/filing-notes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <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://astreus.ai/api/v1/companies/{id}/filing-notes"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<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://astreus.ai/api/v1/companies/{id}/filing-notes")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://astreus.ai/api/v1/companies/{id}/filing-notes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"cik": [
"0001045810"
],
"filings": [
{
"id": 60135,
"accessionNumber": "0001045810-26-000075",
"filingType": "10-Q",
"filingDate": "2026-08-26",
"fiscalYear": 2027,
"fiscalQuarter": 2,
"sections": [
{
"id": 277125,
"sectionType": "item_1",
"itemLabel": "Item 1",
"title": "Financial Statements",
"wordCount": 11172
},
{
"id": 277126,
"sectionType": "item_2",
"itemLabel": "Item 2",
"title": "MD&A",
"wordCount": 6317
}
]
},
{
"id": 35,
"accessionNumber": "0001045810-26-000052",
"filingType": "10-Q",
"filingDate": "2026-05-20",
"fiscalYear": 2027,
"fiscalQuarter": 1,
"sections": [
{
"id": 8838,
"sectionType": "item_1",
"itemLabel": "Item 1",
"title": "Financial Statements",
"wordCount": 8941
},
{
"id": 8839,
"sectionType": "item_2",
"itemLabel": "Item 2",
"title": "MD&A",
"wordCount": 4804
}
]
}
],
"total": 107,
"limit": 2,
"offset": 0,
"hasMore": true,
"nextOffset": 2,
"filingTypes": {
"10-Q": 53,
"DEF 14A": 28,
"10-K": 18,
"S-1/A": 7,
"S-1": 1
},
"sectionTypes": {
"item_1": 71,
"item_2": 71,
"proxy_governance": 24,
"proxy_cdna": 20,
"proxy_summary_comp": 28,
"proxy_director_comp": 22,
"proxy_beneficial_ownership": 27,
"proxy_audit_fees": 24,
"item_1a": 18,
"item_1c": 3,
"item_3": 18,
"item_5": 18,
"item_7": 18,
"item_7a": 18,
"item_8": 18,
"item_9a": 18,
"item_9b": 12,
"item_9c": 5,
"item_10": 18,
"item_11": 18,
"item_12": 18,
"item_13": 18,
"item_14": 18,
"item_15": 18,
"item_16": 6,
"proxy_say_on_pay": 3,
"item_6": 13,
"item_9": 5,
"s1_summary": 8,
"s1_risk_factors": 8,
"s1_use_of_proceeds": 8,
"s1_dilution": 8,
"s1_mdna": 8,
"s1_business": 8,
"s1_management": 8,
"s1_exec_comp": 8,
"s1_principal_stockholders": 8,
"s1_underwriting": 8
}
}{
"error": "<string>",
"code": "unknown_parameter",
"param": "<string>",
"allowed": [
"<string>"
]
}{
"error": "<string>",
"code": "unknown_parameter",
"param": "<string>",
"allowed": [
"<string>"
]
}{
"error": "<string>",
"code": "unknown_parameter",
"param": "<string>",
"allowed": [
"<string>"
]
}{
"error": "<string>",
"code": "unknown_parameter",
"param": "<string>",
"allowed": [
"<string>"
]
}Authorizations
Astreus API key (pk_live_...), created on the Developers page in the terminal. Also accepted as Authorization: Bearer pk_live_....
Path Parameters
Ticker symbol (e.g. NVDA), numeric SEC CIK (zero-padding optional), or the platform key of a non-SEC issuer (e.g. XSAU000001 — the cik field of the company payload). A bare ticker always resolves to the SEC registrant.
Query Parameters
Filings per page, 1–500 (above 500 is a 400).
1 <= x <= 500Filings to skip: the previous reply's nextOffset.
x >= 0One filing: its accession number (dashed or not) or document reference, as listed.
Comma-separated filing form codes, e.g. 10-K,10-Q or FS-A,AR (case-insensitive).
Comma-separated section types, e.g. item_7,item_1a or fs_note (at most 20); a filing keeps only these sections and drops out when none is left.
Response
OK
Inferred from captured responses: every field shown was returned by a real call; a field may be absent or null on other calls.