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.