Ask a research question
Kepler starts a run
Your assistant calls
run_financial_research and gets back a conversation_id. It then calls get_run_result to wait, streaming progress as Kepler reads the 10-K filings.You get a cited answer
A few minutes later the answer arrives, with each margin figure linked to the filing it came from and a sourcing report on coverage.
Build a model and export it
You ask
Use Kepler to build a 3-year annual income statement for Apple, each line cited to its 10-K.
Kepler returns a workbook
The result includes a workbook with a download link and an in-app link. Every cell traces back to a source.

Check coverage before a deep dive
Availability questions don’t need a full run. They return instantly throughlookup_company.
Use Kepler to check whether Nvidia’s latest 10-K and Q3 earnings call are available.Your assistant lists the filings and transcripts Kepler has on file, with forms, dates, and fiscal periods, a quick way to confirm coverage before asking for analysis.
Pick up an earlier run
Find the Netflix model I built yesterday and add a fiscal 2025 column.Your assistant calls
list_recent_runs to locate the conversation, then continue_research to extend it, with no need to start over.
Tips for better results
Name the company and the periods
Name the company and the periods
“Apple’s last three fiscal years” beats “Apple recently.” Specific periods give Kepler a clear target and make citations easier to verify.
Say what structure you want
Say what structure you want
For models, describe the statement type, segments, and formatting up front, since it’s faster than reshaping afterward.
Expect runs to take a few minutes
Expect runs to take a few minutes
Kepler reads primary sources rather than summarizing from memory. The wait is the work; your assistant streams progress while it goes.
Keep the thread going
Keep the thread going
Follow-ups stay in the same conversation, so Kepler remembers prior results. Start a new request only when you switch topics.