Earnings API & credits

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.

RouteCreditsParametersReturns
/api/earnings/summary2symbol: 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/calendar1from, 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/latest1limit: 1 to 20, default 10.The newest summaries kept, one per company, newest release first, in full.
/api/earnings/todayFreeWhat the website shows: the daily digest, the calendar from 7 days back to 21 ahead, and the numbers.
/api/earnings/reportFreesymbol, quarter (optional).A summary already kept, or 404. Never writes one.
/api/earnings/coverageFreeThe covered companies and their stock tokens, and the funds left out.
/api/credits/infoFreePrices, 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 404Bad input, a fund, or a company not covered. Not charged.
401The key is wrong or revoked.
402You need credits. The body has buy instructions. Not charged.
429The free calls are used up, before launch.
404 not_foundNo release found for that quarter. Charged, then refunded; asked again within 6 hours, answered at once without charging.
502No sources, or the model failed. Charged, then refunded.
503ai_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. freshness says 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

Credits contract
Published at launch
$EARN token
Published at launch

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.