Credits & Billing
AI92 meters usage in credits. This page is the source of truth for what every operation costs, how fair-metering protects you from paying for non-results, and how credits enter your account.
How credits work
- Reads are free. Searching, listing, previewing, snapshots, status checks, and metadata cost 0 credits.
- Results cost a fixed, published price. Revealing a contact, sending a message, rendering an image, or running an analysis costs the exact credits listed below — no surprise multipliers.
- You see the cost on every response. Each
/v1 call returns X-Credits-Consumed (what this call cost) and X-Credits-Remaining (your balance after). - Your balance is one call away.
GET /v1/account and GET /v1/account/credits return the live balance.
httpX-Credits-Consumed: 3
X-Credits-Remaining: 4997
Checking your balance
bashcurl https://api.ai92.ai/v1/account \
-H "Authorization: Bearer ai92_live_YOUR_KEY"
json{
"id": "9b1c...",
"tier": "PROFESSIONAL",
"credit_balance": 4997,
"subscription_tier": "pro_sub",
"mass_mail_addon_active": true,
"rank_tracking_addon_tier": null,
"is_active": true,
"read_only_mode": false,
"created_at": "2026-01-04T09:22:00Z"
}
credit_balance is the fast live balance. GET /v1/account/credits returns the same value plus your tier in a slimmer payload.
Fair-metering rules
AI92 charges for value delivered, not for the attempt. These rules are enforced in the gateway, not just policy:
- No charge on zero or unknown results. An email verification that comes back
status: "unknown" (inconclusive) costs 0. A reveal that returns no email is not billed. The response still tells you: "credits_consumed": 0. - No charge on backend failure. If an upstream service returns a
5xx, the credit deduction is skipped — you are never billed for an operation that didn't complete. (You'll get a 503 BACKEND_UNAVAILABLE; retry it.) - Pre-flight check, then atomic deduct. Every paid call first checks your balance (rejecting with
402 INSUFFICIENT_CREDITS if you can't afford it), runs the operation, and only then deducts — atomically, so concurrent calls can never overspend. - Async jobs are counted once, with reserve-and-refund. Long-running operations (creative renders, bulk discovery) reserve credits when you submit and refund automatically if the job fails or times out. You are charged exactly once, on success. See Async jobs.
- Per-key spending caps are independent of balance. A key with a
daily_credit_limit or monthly_credit_limit returns 402 KEY_SPENDING_LIMIT when it hits its cap, even if the account has credits left.
Full credit cost table
Prices are per call unless noted. Everything not listed (search, list, preview, snapshot, status, connection, decision endpoints) is free.
| Operation | Endpoint | Cost |
|---|
| Search contacts | GET /search | Free |
| Reveal — email | POST /reveal (mode: email) | 3 |
| Reveal — email + phone | POST /reveal (mode: email_phone) | 5 |
| Verify email | POST /verify | 1 (free if inconclusive) |
| Full enrichment | POST /enrich | 11 |
| Bulk discovery | POST /bulk | 300 per 100 requested |
| Company lookup | GET /{company_id} | 2 |
Creative (/v1/creative)
| Operation | Endpoint | Cost |
|---|
| Generate image | POST /generate (asset_type: image) | 50 |
| Generate video | POST /generate (asset_type: video) | 50/s, 8 s floor → 8 s = 400 · 12 s = 600 · 16 s = 800 · 20 s = 1000 |
| Newsletter banner (async) | POST /newsletter | 15 |
| Full creative campaign (async) | POST /campaigns | 250 per 7-day week (window ≤ 31 days) |
| List assets | GET /assets | Free |
SEO (/v1/seo)
| Operation | Endpoint | Cost |
|---|
| Snapshot | GET /snapshot | Free |
| Audit / scan | POST /audit | 20 |
| Keyword intelligence | GET /keywords | 5 |
| Backlink profile | GET /backlinks | 10 |
| Competitor benchmark | GET /competitors | 30 |
| Content optimization | POST /content-optimize | 8 per page |
AI-Visibility (/v1/ai-visibility)
| Operation | Endpoint | Cost |
|---|
| Overview | GET /{brand_id} | 27 |
| Competitors | GET /{brand_id}/competitors | 27 |
| Domain authority | GET /{brand_id}/authority | 3 |
| Backlinks | GET /{brand_id}/backlinks | 5 |
| Tracked keywords | GET /{brand_id}/keywords | 3 |
| Keyword research | POST /{brand_id}/keywords/research | 8 |
| Full site scan (async) | POST /{brand_id}/scan | 20 |
Intent (/v1/intent)
| Operation | Endpoint | Cost |
|---|
| Identify visitors | GET /visitors/identify | 45 per 100 |
| Brand intel | GET /intel/brand/{brand_id} | 5 |
| Competitor intel | GET /intel/competitor/{brand_id} | 10 |
| Keyword intel | GET /intel/keywords/{brand_id} | 5 |
| Market intel | GET /intel/market/{brand_id} | 5 |
| Intent signal report | POST /intent/signals | 5 |
| Alert scan | POST /alerts | 3 |
| Intent-based enrichment | POST /intent/enrich | 12 |
Markets (/v1/markets)
| Operation | Endpoint | Cost |
|---|
| Snapshot | GET /snapshot | Free |
| Comprehensive report | POST /analyze | 45 |
| Performance validation | POST /validate | 15 |
| Competitor intelligence | POST /competitor-intel | 25 |
| Predictive model | POST /predictive | 40 |
Campaigns & Outreach (/v1/campaigns, /v1/outreach)
| Operation | Endpoint | Cost |
|---|
| Create / get / preview campaign | POST, GET /{id}, GET /{id}/preview | Free |
| Send campaign | POST /{id}/send | Per-channel pricing (charged per recipient/channel) |
| Upload contact list | POST /upload-list | 2 per 1,000 records (rounded up) |
| AI campaign strategy | POST /build | 25 |
| Campaign optimization | POST /optimize | 10 |
| A/B test config | POST /ab-test | 5 |
| Budget optimization | POST /budget-optimize | 15 |
| Outreach data / decision / send-mode | GET /data, POST /decision/{id} | Free |
| AI reply suggestion | POST /reply/suggest/{id} | 2 |
| Send outreach reply | POST /reply/send/{id} | 1 |
Reviews & GBP (/v1/reviews, /v1/gbp)
| Operation | Endpoint | Cost |
|---|
| List reviews / testimonials / analytics | GET ... | Free |
| AI review reply | POST /reply | 1 |
| Request a review | POST /request | 2 |
| List GBP locations / posts / preview / connection | GET ..., POST /posts/preview | Free |
| Publish GBP post with media | POST /posts/publish-with-media | 50 |
Cloud (/v1/cloud)
| Operation | Endpoint | Cost |
|---|
| Data storage | GET /storage | 5 per GB-month |
| Generate asset | POST /generate | 5 |
| Data cleaning | POST /clean | 10 per 5,000 |
| Sync / import | POST /sync-import | 3 per 1,000 records (rounded up) |
| Export | POST /export | 2 per 10,000 records (rounded up) |
| Custom segment | POST /segments | 5 |
Brands (/v1/brands)
| Operation | Endpoint | Cost |
|---|
| Register first brand | POST /v1/brands | Free |
| Register each extra sub-brand | POST /v1/brands | 500 |
| List / get / readiness / onboarding setters | GET, POST /{id}/icp … | Free |
Costs reflect the 2026-06 pricing revision and may change with notice. Programmatic prices are always reflected in X-Credits-Consumed; treat that header as authoritative for reconciliation.
Packs vs subscriptions vs add-ons
Credits enter your balance three ways:
- Packs — one-off credit purchases. Buy a bundle, draw it down, top up when low. Start a purchase with
POST /v1/billing/checkout (Stripe Checkout). Best for variable or bursty usage. - Subscriptions — recurring hybrid tiers (
pro_sub, business_sub, enterprise_sub) that grant credits each period and raise your rate limit. Manage with POST /v1/billing/subscription. Best for steady baseline usage; your effective rate limit becomes max(pack tier, subscription tier) (see Rate limits). - Add-ons — feature upgrades attached to a subscription, e.g. mass-mail or rank-tracking. Enable with
POST /v1/billing/addons/{kind}.
Check what's active any time via GET /v1/account (subscription_tier, mass_mail_addon_active, rank_tracking_addon_tier) or the richer GET /v1/account/overview.
To never run dry, subscribe to the credits.low webhook and/or enable auto-recharge (see Going live).
Invoices
GET /v1/billing/invoices lists invoices; GET /v1/billing/invoices/{invoice_id}/pdf downloads a PDF.