Get earnings results and upcoming dates
Returns earnings reports for one company (`ticker`), one calendar date (`date`), or a date range (`date_start`/`date_end`). At least one of these is required, and `date` cannot be combined with a range. Covers 50,000+ tickers on US and international exchanges with history back to 2000. Results are sorted by date (newest first) and returned 50 per request; use `offset` to page. Past reports only by default; set `show_upcoming=true` to include scheduled future reports. EPS and revenue are in the company's reporting currency. `actual_eps`/`estimated_eps` are on the adjusted (non-GAAP) basis analysts use; `actual_eps_gaap` is GAAP diluted EPS from the SEC 10-Q/10-K (US SEC filers). For upcoming dates filtered by exchange use /upcomingearnings. On this listing the enrichment fields (date_confirmed, report_date_status, sec_8k_url, eps_beat_miss, revenue_beat_miss, surprise streaks/history, year-ago and growth figures, earnings price moves, price_reaction, next_earnings_date, days_to_next_earnings, has_transcript) are returned as an upgrade-notice string rather than data.
Example code
// Using @orth/sdk - The simplest way to call APIs
// Install: npm install @orth/sdk
import Orthogonal from "@orth/sdk";
const orthogonal = new Orthogonal({
apiKey: process.env.ORTHOGONAL_API_KEY,
});
const output = await orthogonal.run({
api: "api-ninjas",
path: "/v1/earningscalendar"
});
console.log(output);Query parameters
Company ticker symbol (e.g. MSFT, 7203.T). Returns that company's earnings reports, newest first.
Single report date in YYYY-MM-DD format (e.g. 2026-07-30). Returns every company reporting on that date. Cannot be combined with date_start or date_end.
Start of a report-date range (YYYY-MM-DD, inclusive). If date_end is omitted, the range ends 7 days after date_start.
End of a report-date range (YYYY-MM-DD, inclusive). Must be on or after date_start. If date_start is omitted, the range starts 7 days before date_end.
Include scheduled future reports (dates after today). Without it only past and same-day reports are returned. (Default: False)
Number of results to skip, for pagination. Each request returns up to 50 results, so use offset=50, 100, ... to page. (Default: 0)