Fruit Stand publishes the Earnings Call Transcripts listing, one of the
options below. Counts were checked in Snowflake on November 8, 2026.
The short answer
Option 1: Subscribe to a Marketplace listing
A Marketplace listing is shared into your account, not copied. The provider’s tables appear as a read-only database, each refresh shows up without you doing anything, and you don’t pay storage for it.1
Find the listing
Open the Earnings Call Transcripts listing on the Snowflake Marketplace.
2
Get it
Click Get, name the database it will mount as (for example
EARNINGS_CALLS), and choose which roles can use it.3
Query it
Select that database and its schema in a worksheet and query the views.
To check coverage for the companies you care about:
Keeping your own copy in sync
You don’t need a copy to query the listing. If you want one, for example to add embeddings or join to tables in another database,src_updated_at tells
you which calls are new or changed:
src_updated_at, not on the call date. A MERGE keyed on
the company and fiscal period keeps the copy current (this one targets a
table of your own, so adjust the names):
Option 2: Use Snowflake’s free public data share
Snowflake’s own Snowflake Public Data (Free) listing includes event transcripts incompany_event_transcript_attributes. It’s free, and it
covers more than earnings calls: conferences, annual meetings, investor
days and M&A calls too.
Three things to handle:
- It’s about three months behind. On November 8, 2026 its latest earnings call was from August 9.
- Each call appears more than once. There’s a
RAWand aSPEAKERS_ANNOTATEDversion, and sometimes several of each. Pick one type and the latest row per event. - The transcript is one JSON document. Paragraphs and speakers are arrays inside it, so you flatten them before filtering on text.
Option 3: Load transcripts from an API yourself
If your transcripts come from an API or as files, load the raw JSON first and parse it in SQL. Keeping the raw payload means you can re-parse without calling the API again. 1. Land the raw JSON. One row per call:COPY INTO with a JSON file format:
Operator: Good afternoon.... Financial Modeling Prep’s
transcript endpoint, for example, returns its text in a content field
like that. Split the text on line breaks, take the speaker from the start
of each line, and carry it forward to lines that continue the same
speaker:
symbol, year, period, date, content) depend on
your vendor, so rename them to match. We tested the parsing on a sample
call with a continuation paragraph and a colon inside the text, and it
returned one row per paragraph with the right speakers.
3. Plan for what breaks.
- Speaker detection is a heuristic. A paragraph that starts with
something like
Revenue: up 12%looks like a speaker label. Check each call’s speaker list against a known list, or flag labels that appear only once. - Corrections arrive later. Vendors re-deliver transcripts after the call. Keep the newest payload per call and rebuild that call’s paragraphs, rather than appending.
- Fiscal periods aren’t calendar quarters. Keep the call date next to the fiscal period, and compare companies by date.
- Rate limits and plans. Transcript endpoints are usually on higher tiers: FMP includes them on its $139/month Ultimate plan. A full backfill is one request per company per quarter.
- The license. Check that your plan allows storing the text in a shared warehouse. Where to Get Earnings Call Transcripts in Bulk compares the providers’ terms.
Check your load
Whichever option you use, run these on your paragraph table before trusting it. Each call should have a sensible number of paragraphs and speakers:Which should you choose?
- You want every company’s calls in SQL with nothing to build: the Earnings Call Transcripts listing.
- You need other company events, or speaker roles, and can wait three months: Snowflake Public Data (Free).
- You already license transcripts from a vendor with no Snowflake delivery: load the raw JSON and parse it in SQL as above.
F.A.Q.
Are there free earnings call transcripts in Snowflake?
Are there free earnings call transcripts in Snowflake?
Yes. Snowflake Public Data (Free) has over 150,000 earnings calls since 2009, about three months behind. Fruit Stand’s listing has a 30-day free trial that covers Apple’s calls.
Do I pay storage for a Marketplace listing?
Do I pay storage for a Marketplace listing?
No. Shared data stays in the provider’s account. You pay for the compute your queries use, plus the listing’s price. Copies you make into your own tables are stored and billed like any other table.
How often are new calls added?
How often are new calls added?
Fruit Stand’s listing refreshes weekly, with new calls and corrected transcripts. The free Snowflake share runs about three months behind.
Can I load transcripts from an API directly inside Snowflake?
Can I load transcripts from an API directly inside Snowflake?
Yes, with an external access integration and a Python stored procedure, so no outside scheduler is needed. The parsing SQL above works the same way on what it loads.
Which companies are covered?
Which companies are covered?
Fruit Stand’s listing has 6,601 companies with calls since October 2005. Query
earning_call_transcripts_cnt_vw for each company’s call count and date range.