FOR AI AGENTS — NO HUMAN NEEDED
No account, no dashboard, no browser. The same steps, machine-readable: /llms.txt, /.well-known/agent.json, OpenAPI.
19 read endpoints answer without any Authorization header, up to 25 calls per IP per day (ai-context: 1/day). Watch X-RateLimit-Remaining; the Link: …; rel="register" header points at step 2.
Keyless endpoints: ai-context, intrinsic-value, smart-money-holdings, smart-money-changes, guru-moves, verdict, mirror-brief, gurus, guru, guru-portfolio, theses, indicators-buffett, indicators-shiller-pe, sentiment, news, companies-search, company-overview, fundamentals, filings. /research is never keyless.
curl -s "https://app.deepvalues.ai/api/v1/fundamentals/AAPL"One unauthenticated POST. No account, no browser, no human.
{} → a dv_sk_test_ sandbox key: real data, never billed, 100 metadata calls/day per address, no /research.
email carries 1 starter credit ($1at most 3 starter grants and 10 keys per IP per day.
The raw key is shown once and is the only credential — the email is a contact label, not a login. POST again WITH the key as bearer to mint a sibling (rotation); GET https://app.deepvalues.ai/api/v1/keys/me for balance + quota; DELETE it to revoke.
curl -s -X POST "https://app.deepvalues.ai/api/v1/keys" \
-H "Content-Type: application/json" \
-d '{"email":"agent@example.com"}'1 credit = $1.00. Prices are per successful call and often fractional — parse them as decimals: 0.001 credits ($0.001) × 8 endpoints; 0.005 credits ($0.005) × 11 endpoints; 3 credits ($3) × 1 endpoint. Everything else is free.
A call is charged only after it returns 2xx; errors are never billed. The per-endpoint price is price_credits in https://app.deepvalues.ai/.well-known/agent.json and in the list below. Human-readable: https://app.deepvalues.ai/en/pricing. The call below returns your exact balanceMicro.
curl -s "https://app.deepvalues.ai/api/v1/keys/me" -H "Authorization: Bearer $DV_API_KEY"When the balance cannot cover a call you get HTTP 402 (RFC 7807 problem+json) with price_credits, balance_micro and a topUp object. Nothing was charged.
topUp.checkoutUrl is a ready-to-pay Stripe Checkout link for the smallest pack (null if Stripe could not be reached — then POST topUp.checkoutEndpoint). Packs: "1000" = 10 credits, "5000" = 50 credits, "20000" = 200 credits. The POST below returns { "checkoutUrl": "https://checkout.stripe.com/…" }. Credits land on the key’s balance when Stripe confirms; poll keys/me, then retry.
x402 (USDC, pay-in-the-retry) is not switched on yet: the 402 body says so and carries no accepts.
curl -s -X POST "https://app.deepvalues.ai/api/v1/credits/checkout" \
-H "Authorization: Bearer $DV_API_KEY" -H "Content-Type: application/json" \
-d '{"pack":"1000"}'Daily buckets per live key, reset 00:00 UTC: metadata 10,000, ai_research 50, webhook_events 1,000. Over quota → HTTP 429 (RFC 7807) with retry_after_seconds.
Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Bucket.
| Endpoint | What it returns | USD |
|---|---|---|
| GET /ai-context/{ticker} | Drop-in AI grounding context (DIFFERENTIATED) | $0.005 |
| GET /research/{ticker} | AI multi-analyst research briefing (HEADLINE) | $3 |
| GET /intrinsic-value/{ticker} | DCF + Owner Earnings + Damodaran intrinsic value | $0.005 |
| GET /smart-money/holdings | Which curated gurus hold this ticker | $0.005 |
| GET /smart-money/changes | Material guru moves in a time window | $0.005 |
| GET /gurus/moves | Material guru moves, newest filing first, each with its verdict | $0.005 |
| GET /verdict/{ticker} | The verdict line for one filed move | $0.005 |
| GET /mirror-brief/{ticker} | An impersonal brief on one filed move, for an agent to act on | $0.005 |
| GET /gurus | Curated guru roster | $0.005 |
| GET /gurus/{slug} | One guru: bio + top holdings | $0.005 |
| GET /gurus/{slug}/portfolio | One guru's full portfolio at a quarter | $0.005 |
| GET /theses | Structured human investment theses | $0.005 |
| GET /indicators/buffett | Buffett Indicator with zone classification | $0.001 |
| GET /indicators/shiller-pe | Shiller PE with historical percentile | $0.001 |
| GET /sentiment/{ticker} | Value-investor sentiment rollup (not WSB noise) | $0.001 |
| GET /news/{ticker} | Sentiment-scored news | $0.001 |
| GET /companies | Company search | $0.001 |
| GET /companies/{ticker}/overview | Company overview | $0.001 |
| GET /fundamentals/{ticker} | Income + balance + cashflow | $0.001 |
| GET /filings/{ticker} | SEC filings (10-K, 10-Q, 8-K, etc) | $0.001 |
1 credit = $1.00. Key management, webhooks and checkout are free. Errors are never billed.