# Jintel Pricing

> Two billing rails for one API surface. Pick whichever fits how your code
> calls Jintel — they share the same GraphQL schema, the same MCP server,
> and the same per-request credit meter.

## Quick comparison

| Plan | Monthly price | Monthly credits | Rate limit | Auth |
|---|---|---|---|---|
| **Free** | $0 | 500,000 | 60 req / min | API key (Bearer) |
| **Pro** | $49 / mo | 10,000,000 | 200 req / min | API key (Bearer) |
| **Business** | $299 / mo | 100,000,000 | 1,000 req / min | API key (Bearer) |
| **x402 pay-per-query** | None — pay per call | Unlimited (per call) | 100 req / min / IP (global) | Wallet signature, no signup |

**Top-up credits** can be added to any plan tier at $10 = 2,000,000 credits via x402 USDC. Top-ups never expire and are burned before the monthly plan allotment.

## Get started in five minutes

1. **Mint an API key** — Google OAuth at https://jintel.ai/auth/google (humans) OR wallet sign-in at https://api.jintel.ai/auth/siwx/verify (agents).
2. **Test a free query** — `curl https://api.jintel.ai/api/graphql -H "authorization: Bearer jk_live_…" -H "content-type: application/json" -d '{ "query": "{ quotes(tickers: [\"AAPL\"]) { price } }" }'`
3. **Wire up your client** — pick `@yojinhq/jintel-client` (TS), `@yojinhq/jintel-cli` (CLI), `@yojinhq/jintel-mcp` (MCP for Claude / Cursor / Continue), or call OpenAPI directly. See https://docs.jintel.ai/integrations.
4. **Pick a plan** — Free works for evaluation; upgrade to Pro ($49/mo) when you exceed 500k credits/month or 60 req/min. Top up any plan with x402 USDC for non-expiring credits.
5. **Monitor usage** — `GET /api/v1/usage` returns aggregated daily counts. The response `extensions.cost` field reports per-query credit cost when `x-jintel-debug: true` is set.

## Plans (API key billing)

### Free — $0 / month
- 500,000 credits per month
- 60 requests per minute
- Full connector access (market, regulatory, sanctions, macro, news, technicals, alt-data)
- Bearer-token auth (`Authorization: Bearer jk_live_…`)
- Issue keys via Google OAuth at https://jintel.ai/auth/google

Best for: hobby projects, copilots in evaluation, single-user research notebooks.

### Pro — $49 / month
- 10,000,000 credits per month (20× Free)
- 200 requests per minute
- All Free features
- Priority connector backstop (multi-source fallback for historical financials, including SEC EDGAR XBRL)

Best for: production fintech apps, daily research workflows, multi-user dashboards under one workspace.

### Business — $299 / month
- 100,000,000 credits per month (10× Pro, 200× Free)
- 1,000 requests per minute
- All Pro features
- Higher concurrency for batch enrichment (`entitiesByTickers`)

Best for: backend services running large fan-out queries, scheduled compliance screens, agent fleets with sustained traffic.

### Custom / Enterprise
Need higher rate limits, dedicated capacity, contractual SLAs, or volume discounts? Email support@jintel.ai.

## Pay-per-query (x402)

No signup. No API key. The wallet signature on the payment proof identifies the caller.

- First call to `POST https://api.jintel.ai/api/graphql` (or any `/tools/<name>`) returns **HTTP 402** with a base64-encoded `PAYMENT-REQUIRED` header carrying the exact USDC quote for that exact query AST.
- Sign an EIP-3009 USDC authorization on Base mainnet, base64-encode the v2 PaymentPayload, and replay with `PAYMENT-SIGNATURE: <base64>`.
- Per-query pricing is computed from the AST cost — simple lookups cost less than deep nested fan-outs.
- Settlement is on-chain on Base mainnet via the configured x402 facilitator. No bridges, no fiat rails.

Best for: autonomous agents, one-off research scripts, agents discovered through the CDP Bazaar / agentic.market without prior contractual relationship.

### Anon orgs (wallet-keyed)
Wallets that have never been associated with a Google identity behave as **anon orgs** (`identityTier: 'anon'`):
- 0 monthly plan credits — top up at least $1 USD via x402 before any request succeeds.
- Rate limited to `min(20, plan.rateLimitPerMinute)` per minute.
- OFAC sanctions screening is denied (compliance carve-out) — every other connector remains available.

Upgrading anon → identified is intentionally out of scope today; bind a Google identity at sign-up if you need OFAC.

## Credit costs

Every GraphQL query costs credits based on which sub-graphs are resolved. Indicative ranges:

| Query shape | Credits |
|---|---|
| `quotes(tickers)` for 1 ticker | 1 |
| `entitiesByTickers` with market + technicals + news | 4–8 |
| Full counterparty due-diligence query (sanctions + litigation + filings + holdings) | 12–20 |
| Schema introspection / `__typename` / `tools/list` | 0 (free) |

Exact AST-driven cost is returned in the GraphQL response `extensions.cost` field when `x-jintel-debug: true` is set, and on every x402 quote.

## Burn order

When credits are deducted, the meter drains in this order:

1. **Top-up credits** (purchased via x402, never expire) — drained first.
2. **Plan credits** (monthly Free / Pro / Business allotment) — drained next, reset on each plan-month boundary.

When both pools are exhausted, requests return GraphQL error `CREDITS_EXHAUSTED` (HTTP 402). Top up via `POST /api/v1/credits/topup` or wait for the next plan month.

## Top-ups

- $10 USDC → 2,000,000 credits (rate `200,000 credits / USD`)
- Settled on-chain on Base mainnet
- Top-up credits never expire — they persist across plan-month boundaries and across plan tier changes.
- Available to every plan tier (Free, Pro, Business, anon).

## What's free forever

- GraphQL schema introspection at https://api.jintel.ai/graphiql (no auth)
- OpenAPI spec at https://api.jintel.ai/openapi.json
- MCP `initialize` and `tools/list` at https://api.jintel.ai/mcp (browse the catalog before binding a key)
- All `.well-known/*` discovery files (x402, mcp.json, mcp/server-card.json, agent-card.json, api-catalog, oauth-protected-resource)

## FAQ

**Do credits roll over?**
Top-up credits, yes. Plan credits, no — they reset every plan month.

**What happens at the rate limit?**
Requests beyond the per-minute cap return GraphQL error `RATE_LIMITED` with HTTP 429. Back off and retry; no credits are burned for rate-limited calls.

**Can I switch plans mid-month?**
Yes. Plan upgrade takes effect immediately; the new monthly limit replaces the prior one and resets at the next plan-month boundary.

**Refunds?**
Plan subscriptions are billed monthly via Polar. x402 settlements are on-chain and final — quotes are tight by design so you only pay for what you successfully called.

**Compliance-grade sanctions?**
`sanctionsScreen` is a public-data convenience lookup against OFAC SDN. It is **not** a registered KYC vendor and not a substitute for a compliance program. Anon orgs are gated out of OFAC entirely.

## Resources

- [Documentation](https://docs.jintel.ai)
- [Authentication](https://docs.jintel.ai/authentication)
- [Agents & x402](https://docs.jintel.ai/agents)
- [Rate limits](https://docs.jintel.ai/reference/rate-limits)
- [Errors](https://docs.jintel.ai/reference/errors)
- [Status page](https://status.jintel.ai/)
- support@jintel.ai

## Why Jintel vs. other vendors

Most market-data APIs were designed for human dashboards. Jintel is shaped for agent calls — typed GraphQL sub-graphs, batched fan-out, MCP server, and per-query x402 pricing. See [Best financial data API for AI agents](https://docs.jintel.ai/use-cases/best-financial-data-api-for-ai-agents) for a capability comparison vs Finnhub, FMP, Alpha Vantage, and Polygon, including migration recipes.
