GET /api/v1/search?q=agentic AI&type=speakers&speaker_type=Executive&ticker=NVDA&limit=5
Earnings calls in Python, three lines.
requests.get() and you have structured earnings data: transcripts, speaker segments and search results as JSON that drops straight into pandas. No SDK to install, no scraping to maintain.
-
Plain REST -
requests,httpxor aiohttp, no SDK required - Flat JSON that loads into pandas DataFrames without wrangling
- Cursor pagination for backfills and incremental syncs that resume cleanly
- Copy-paste examples for search, transcripts and the calendar in the docs
import requests
API = "https://earningscalls.dev/api/v1"
headers = {"X-API-Key": "ect_your_key_here"}
# Search across all transcripts
hits = requests.get(f"{API}/search/",
params={"q": '"guidance raised"', "limit": 10},
headers=headers).json()
# Full transcript with speaker segments
call_id = hits["data"][0]["earnings_call_id"]
transcript = requests.get(f"{API}/transcripts/{call_id}",
headers=headers).json()
# Into pandas for analysis
import pandas as pd
segments = pd.DataFrame(transcript["data"]["segments"])
print(segments.groupby("speaker_type").size())
Python-first, like the rest of your stack
Four primitives that turn raw earnings calls into a clean dataset your strategy can consume.
Speaker-segmented
Every segment pre-tagged. Five categories with verified counts: executive (826k), analyst (470k), operator (208k), attendee (33k), shareholder (4k). 93% carry the speaker's name.
GET /api/v1/speakers/:idFull-text archive search
Sweep the live archive for phrases like "margin pressure" in one query. Boolean operators, exact phrases, ticker filters across global markets.
GET /api/v1/search?q=…Cross-company aggregate
Scan up to 500 tickers in a single request. Per-ticker counts, sector breakdown, last-match date — screen a global universe in one call.
GET /api/v1/search/by_tickerCursor-based polling
Incremental sync via since / after_id. Re-runnable, idempotent. New calls land within hours of the wire and flow straight into your pipeline.
GET /api/v1/transcripts/recentRun a real live query.
Change the ticker, click Run, see the actual response.
Honest Pricing. No Surprises.
Read for free. Automate when you're ready. Cancel anytime.
Full access for builders and traders
- ✓ Read earning call transcripts
- ✓ 5,000 requests/month
- ✓ Personal use - up to 50 MAU
- ✓ Full transcript text
- ✓ Speaker segments & roles
- ✓ Full-text search
- ✓ All endpoints unlocked
- ✓ 20 requests/minute
- ✓ Email support
- ✓ Instant API key after checkout
For production apps and teams
- ✓ Read earning call transcripts
- ✓ 25,000 requests/month
- ✓ Commercial use - up to 1,000 MAU
- ✓ Everything in Pro
- ✓ 60 requests/minute
- ✓ Priority support
- ✓ 99.9% SLA
- ✓ Dedicated account manager
- ✓ Bulk data export
- ✓ Custom integrations
High-volume production workloads
- ✓ Read earning call transcripts
- ✓ 100,000 requests/month
- ✓ Commercial use - up to 10,000 MAU
- ✓ Everything in Ultra
- ✓ 120 requests/minute
- ✓ Dedicated support channel
- ✓ Custom integrations
- ✓ Bulk data export
- ✓ Compliance documentation
- ✓ Priority feature requests
Python usage - common questions
Coverage, query semantics, and what the data supports.
Is there an official Python SDK?
You don't need one - the API is plain REST with predictable JSON, so requests or httpx is all it takes. The docs include copy-paste Python examples for every endpoint group.
How do I keep a local dataset in sync?
Poll /transcripts/recent with cursor pagination - it returns transcripts by ingest time, so a cron job picks up exactly what's new. Ideal for vector stores and research databases.
Does the JSON work with pandas?
Yes - responses are flat arrays of records. pd.DataFrame(response["data"]) is usually the whole ETL. Speaker segments, search hits and calendar rows all follow that shape.
What are the rate limits for batch jobs?
Pro: 20 req/min and 5,000/month. Ultra: 60/min, 25,000/month. Enterprise: 120/min, 100,000/month. Details on the earnings call API overview.
Trusted by analysts and research teams.
What research professionals say about the data and the API.
“Excellent service. Comprehensive coverage of the sectors I wanted and the API is very easy to work with. Highly recommend.”
“Transcripts are accurate, and the API is very user friendly.”
“Connecting Claude through MCP to analyze earnings transcripts has never been easier.”
Two more tools for traders and investors
From the team that brought you the Earnings Calls API - same clean data, same fair pricing.
StockMarketScan.com
Stock screeners & email alert systemPre-configured, industry-standard stock screeners - near real-time, refreshed every 5 minutes, no setup required.
- 24 screeners
- 5-minute scans
- Watchlists
- AI chat analysis
- API & MCP
OptionsBell.com
Unusual options activity alertsScans options activity across all US stocks - immediate email alerts the moment institutional-sized trades hit your watchlist.
- All US stocks
- 10 custom alerts
- 5-minute scans
- Email alerts
- API & MCP