EarningsLens
Turn a raw earnings call transcript into clean, structured financial signals — beat/miss, guidance, and management tone — in one POST request.
EarningsLens reads an earnings call transcript (give it a URL or paste the raw text) and uses DeepSeek AI to pull out the numbers and narrative that matter: revenue and EPS actuals versus estimates, beat/miss flags, next-quarter revenue guidance, key themes, management tone, and Q&A red flags. You get a single, predictable JSON object instead of paragraphs of prose. No CSV parsing, no regex over transcript HTML, no model prompt engineering on your end.
Endpoints
| Endpoint | What it returns |
|---|---|
POST /extract |
Structured signals extracted from one transcript. Top-level fields: ticker, company, period (e.g. "Q1 FY2026"), date (YYYY-MM-DD), revenue {actual, estimate, unit, currency, beat}, eps {actual, estimate, beat}, guidance {next_quarter_revenue: {midpoint, low, high}, tone}, key_themes (string array, up to 8), management_tone, qa_red_flags (string array), word_count, and source_url. |
GET /health |
Service status — {"status":"ok"}. No auth required. |
POST /extract request body (JSON): supply either url (a transcript page to fetch) or text (raw transcript pasted directly) — at least one is required. Optional ticker is a hint (e.g. "NVDA") used to anchor the extraction.
Why this API
- One request, one structured object. You hand over a transcript; you get back typed JSON with the exact same field shape every time — ready to drop into a database, dashboard, or screener.
- Both numbers and narrative. Beyond revenue/EPS beat-miss math, it captures the soft signals analysts actually trade on:
management_tone, guidancetone,key_themes, andqa_red_flags(analyst questions that revealed friction, deflection, or repeated pressure). - URL or raw text. Point it at a transcript page and it fetches and strips the HTML for you, or paste raw text directly when you already have it.
- Ticker inference built in. If a transcript doesn't state the ticker, the model infers it from the company name (e.g. "NVIDIA Corporation" →
NVDA), so results stay keyed even on messy sources. - Cached for speed and cost. Identical requests are served from cache (24-hour TTL by default), so repeated lookups of the same transcript return instantly.
Typical use cases
- Earnings dashboards & screeners — populate a beat/miss table and guidance column the moment a transcript is available.
- Quant & signal pipelines — feed
management_tone, guidancetone, andqa_red_flagsinto sentiment or event-driven models. - Newsletters & research summaries — auto-generate a tight bullet recap (
key_themes, beat/miss, next-quarter guidance) from a transcript link. - Backfilling historical transcripts — paste archived transcript text to extract a normalized record per quarter.
- Alerting — flag calls where guidance
toneis cautious orqa_red_flagsis non-empty.
Good to know
- You bring the transcript. EarningsLens does not host or search a transcript library — you must supply a
urlto fetch or the rawtext. There is no ticker/date lookup endpoint. - AI extraction, not a filing parser. Signals are extracted by an LLM (DeepSeek) reading the transcript text. It is accurate on well-formed transcripts but is not a substitute for audited SEC filings; verify figures before relying on them for trading or reporting.
- Nullable by design. Any field the model can't determine comes back
null(or an empty list forkey_themes/qa_red_flags). Numbers inrevenue/guidanceare expressed in the statedunit(e.g."B"for billions) andcurrency. - Input is trimmed. Fetched or pasted transcripts are capped (~80,000 characters) before extraction; very long transcripts are truncated, which can drop late-call details.
urlfetching depends on the source. If the target page blocks the fetch or returns an error,/extractresponds with502; pasting thetextdirectly avoids this.word_countreflects the supplied text, andsource_urlechoes theurlyou passed (ornullwhen you posted rawtext).- Auth: access is via the RapidAPI gateway; the
GET /healthcheck is open and unauthenticated.