For AI agents and developers
The Earnings API
JSON over HTTPS, CORS open. Summaries of earnings releases and calls for the companies with stock tokens on Robinhood Chain, a calendar of release dates, and the latest summaries, each line linked to its source. Pay per call with credits, bought by burning $EARN. Facts only: no ratings, targets or predictions.
The full guide, with the key message to sign and cast commands, is at /llms.txt. Earnings' agent is an ERC-8004 agent on Robinhood Chain: registration file, Identity Registry.
Endpoints
Routes and costs
All GET. Send your key as Authorization: Bearer ck_… or x-api-key. Each paid response carries x-credits-mode, x-credits-left and x-credits-cost.
| Route | Credits | Parameters | Returns |
|---|---|---|---|
/api/earnings/summary | 2 | symbol: a ticker or the stock token's 0x address. quarter (optional): the fiscal quarter as the company labels it, such as 2026Q3; leave it out for the latest. | The quarter, the release date, revenue, EPS, guidance, up to 3 remarks from management, a summary of at most 90 words, every source, the checks, freshness and Google's Search suggestions. |
/api/earnings/calendar | 1 | from, to (YYYY-MM-DD), symbol: all optional. | Every covered company's last and next release dates, each with its quarter, time, sources and when it was checked, plus the dates in order. |
/api/earnings/latest | 1 | limit: 1 to 20, default 10. | The newest summaries kept, one per company, newest release first, in full. |
/api/earnings/today | Free | What the website shows: the daily digest, the calendar from 7 days back to 21 ahead, and the numbers. | |
/api/earnings/report | Free | symbol, quarter (optional). | A summary already kept, or 404. Never writes one. |
/api/earnings/coverage | Free | The covered companies and their stock tokens, and the funds left out. | |
/api/credits/info | Free | Prices, costs, the free tier and the totals from the Credits contract. |
Example
A summary call
# The latest quarter, then one fiscal quarter curl "https://earningsdigest.xyz/api/earnings/summary?symbol=NVDA" \ -H "Authorization: Bearer ck_…" curl "https://earningsdigest.xyz/api/earnings/summary?symbol=AAPL&quarter=2025Q4" \ -H "Authorization: Bearer ck_…" # The shape (values shortened) { "company": { "symbol": "NVDA", "name": "NVIDIA", "token": "0x…" }, "quarter": { "key": "2027Q3", "label": "Q3 fiscal 2027" }, "reported": { "date": "…", "sources": [ … ] }, "figures": { "revenue": { "text": "…as stated…", "sources": [ … ] }, "eps": { "text": "…GAAP or adjusted…", "sources": [ … ] }, "guidance": { "text": null, "note": "No source found" } }, "remarks": [ { "text": "…paraphrased…", "sources": [ … ] } ], "summary": "…at most 90 words…", "status": "summarised", "sources": [ { "n": 1, "title": "…", "url": "…", "domain": "…" } ], "freshness": { "writtenAt": "…", "settled": true, "note": "…" }, "searchSuggestions": "<Google's Search suggestions HTML>", "cached": true }
When a call can't go through
Errors and refunds
400 404 | Bad input, a fund, or a company not covered. Not charged. |
401 | The key is wrong or revoked. |
402 | You need credits. The body has buy instructions. Not charged. |
429 | The free calls are used up, before launch. |
404 not_found | No release found for that quarter. Charged, then refunded; asked again within 6 hours, answered at once without charging. |
502 | No sources, or the model failed. Charged, then refunded. |
503 | ai_off or paused (the model's account can't take calls): refused before charging, or refunded if it happened mid-call. Kept summaries stay readable. |
Every refund is listed publicly at /api/credits/refunds and below.
Caching and freshness
What is kept, and for how long
Kept answers still cost their credits: you pay for the answer, not for the model call.
- One summary per company and fiscal quarter. The first call makes one grounded model call; later calls by anyone get the kept summary.
- A summary written within 3 days of the release is rewritten at most once a day until then, because early reporting is thin.
freshnesssays when it was written and whether it is settled. - "Latest" follows the newest release the agent found, checked again after a day or when the calendar shows a newer release.
- The calendar is checked once per UTC day, 15 companies per grounded search. Each date says when it was checked.
- A search with no sources rests 30 minutes; a quarter with no release found rests 6 hours.
Credits
Buy credits, get a key
Buy credits by burning $EARN through the Credits contract: the tokens go from your wallet to the dead address and are gone for good. Credits buy API calls and nothing else, and can't be sold back. buyFor tops up another wallet, such as your agent's.
Buy credits
Your API key
Your credits
The contract
The owner can only change the price per credit between 0.001 and 10,000,000 $EARN and pause buying. No withdrawals, no minting credits, no editing balances.
Refunds
Every call that failed after it was charged, newest first.