curl --request GET \
--url https://astreus.ai/api/v1/earnings/calendar \
--header 'X-API-KEY: <api-key>'import requests
url = "https://astreus.ai/api/v1/earnings/calendar"
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/earnings/calendar', 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/earnings/calendar",
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/earnings/calendar"
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/earnings/calendar")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://astreus.ai/api/v1/earnings/calendar")
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{
"from": "2026-11-01",
"to": "2026-11-01",
"events": [
{
"id": "43656",
"cik": "XSAU000040",
"company": "Al Majed Oud Co.",
"ticker": "4165",
"country": "SA",
"periodEnd": "2026-09-30",
"kind": "results",
"date": "2026-11-01",
"status": "estimated",
"session": null,
"timeText": null,
"windowStart": "2026-10-24",
"windowEnd": "2026-11-10",
"sampleSize": 9,
"explanation": "Based on 9 prior releases, including 2 for fiscal Q3. Recent reporting dates carry more weight. This range is an estimate, not an issuer schedule.",
"docRef": null,
"sourceUrl": null,
"quote": null,
"sourcePublishedAt": null,
"updatedAt": "2026-11-01T00:16:05.759Z",
"revision": "376933",
"reason": "model_refresh",
"marketCap": 778792932,
"exchange": "TADAWUL",
"website": "http://www.almajed4oud.com",
"brandMark": "https://cdn.brandfetch.io/almajed4oud.com/icon?c=1idQJ_8ukVnXwK_PLYs&fallback=404",
"brandMarkChecked": true,
"broadcast": null
},
{
"id": "109082",
"cik": "XSAU000262",
"company": "Al-Rajhi Company for Cooperative Insurance",
"ticker": "8230",
"country": "SA",
"periodEnd": "2026-09-30",
"kind": "results",
"date": "2026-11-01",
"status": "estimated",
"session": null,
"timeText": null,
"windowStart": "2026-10-26",
"windowEnd": "2026-11-25",
"sampleSize": 59,
"explanation": "Based on 59 prior releases, including 14 for fiscal Q3. Recent reporting dates carry more weight. This range is an estimate, not an issuer schedule.",
"docRef": null,
"sourceUrl": null,
"quote": null,
"sourcePublishedAt": null,
"updatedAt": "2026-11-01T00:16:18.165Z",
"revision": "377882",
"reason": "model_refresh",
"marketCap": 2556877753,
"exchange": "TADAWUL",
"website": "https://www.alrajhitakaful.com/ar",
"brandMark": "https://cdn.brandfetch.io/alrajhitakaful.com/icon?c=1idQJ_8ukVnXwK_PLYs&fallback=404",
"brandMarkChecked": true,
"broadcast": null
}
],
"markets": [
"AE",
"AT"
],
"total": 29,
"summary": {
"confirmed": 1,
"estimated": 8,
"reported": 15
},
"offset": 0,
"limit": 2,
"generatedAt": "2026-11-01T12:49:02.816Z"
}{
"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>"
]
}Earnings calendar (all companies)
Results dates in a window, worldwide: issuer-confirmed, issuer-tentative, estimated from reporting history (status estimated, with the basis in explanation), or reported (with the filing). Dates are issuer-local. Up to 93 days, or ten years with cik. view=compact drops logos, websites, the quoted disclosure sentence and revision bookkeeping.
curl --request GET \
--url https://astreus.ai/api/v1/earnings/calendar \
--header 'X-API-KEY: <api-key>'import requests
url = "https://astreus.ai/api/v1/earnings/calendar"
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/earnings/calendar', 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/earnings/calendar",
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/earnings/calendar"
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/earnings/calendar")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://astreus.ai/api/v1/earnings/calendar")
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{
"from": "2026-11-01",
"to": "2026-11-01",
"events": [
{
"id": "43656",
"cik": "XSAU000040",
"company": "Al Majed Oud Co.",
"ticker": "4165",
"country": "SA",
"periodEnd": "2026-09-30",
"kind": "results",
"date": "2026-11-01",
"status": "estimated",
"session": null,
"timeText": null,
"windowStart": "2026-10-24",
"windowEnd": "2026-11-10",
"sampleSize": 9,
"explanation": "Based on 9 prior releases, including 2 for fiscal Q3. Recent reporting dates carry more weight. This range is an estimate, not an issuer schedule.",
"docRef": null,
"sourceUrl": null,
"quote": null,
"sourcePublishedAt": null,
"updatedAt": "2026-11-01T00:16:05.759Z",
"revision": "376933",
"reason": "model_refresh",
"marketCap": 778792932,
"exchange": "TADAWUL",
"website": "http://www.almajed4oud.com",
"brandMark": "https://cdn.brandfetch.io/almajed4oud.com/icon?c=1idQJ_8ukVnXwK_PLYs&fallback=404",
"brandMarkChecked": true,
"broadcast": null
},
{
"id": "109082",
"cik": "XSAU000262",
"company": "Al-Rajhi Company for Cooperative Insurance",
"ticker": "8230",
"country": "SA",
"periodEnd": "2026-09-30",
"kind": "results",
"date": "2026-11-01",
"status": "estimated",
"session": null,
"timeText": null,
"windowStart": "2026-10-26",
"windowEnd": "2026-11-25",
"sampleSize": 59,
"explanation": "Based on 59 prior releases, including 14 for fiscal Q3. Recent reporting dates carry more weight. This range is an estimate, not an issuer schedule.",
"docRef": null,
"sourceUrl": null,
"quote": null,
"sourcePublishedAt": null,
"updatedAt": "2026-11-01T00:16:18.165Z",
"revision": "377882",
"reason": "model_refresh",
"marketCap": 2556877753,
"exchange": "TADAWUL",
"website": "https://www.alrajhitakaful.com/ar",
"brandMark": "https://cdn.brandfetch.io/alrajhitakaful.com/icon?c=1idQJ_8ukVnXwK_PLYs&fallback=404",
"brandMarkChecked": true,
"broadcast": null
}
],
"markets": [
"AE",
"AT"
],
"total": 29,
"summary": {
"confirmed": 1,
"estimated": 8,
"reported": 15
},
"offset": 0,
"limit": 2,
"generatedAt": "2026-11-01T12:49:02.816Z"
}{
"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_....
Query Parameters
First day, YYYY-MM-DD (default today).
Last day, YYYY-MM-DD (default from).
Numeric CIK (1–10 digits) or platform key (letters then digits, at most 10 characters): that company's dates; widens the window limit to ten years.
Uppercase ISO alpha-2 market codes, comma-separated, up to 80 (e.g. AE,SA). Lowercase codes answer 400.
Only this status.
estimated, issuer_tentative, confirmed, elapsed, reported, postponed, cancelled, disputed Company name or ticker contains; max 100 characters.
1–1000, default 500.
1 <= x <= 1000Rows to skip, default 0.
x >= 0compact drops display-only fields (logos, websites).
full, compact 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.