Pricing
Sly Scanner is available through two channels:- Partner channel (this page) — prepaid credits with a
psk_live_*key. List price 0.007/credit at Enterprise volume. Use this when you’re integrating directly. - Agentic.market / x402 — pay-per-call in USDC, no key, no commitment. $0.05/scan at the marketplace. See the x402 marketplace page for full details. Partners are always at least 50% cheaper than the same call on x402.
Partner per-call rates
List price: $0.025 per credit. Reads cost nothing for partners.| Action | Credits | Price |
|---|---|---|
| Single scan | 1 | $0.025 |
| Batch of 100 domains | 50 | $1.25 |
| Batch of 500 domains | 250 | $6.25 |
| Batch of 5,000 domains | 2,500 | $62.50 |
| Synthetic shopping test | 5 | $0.125 |
| All reads (shared corpus) | 0 | Free |
Credit packs
Buy in bulk for a per-credit discount. Packs don’t expire — unused credits sit on your tenant until consumed.| Pack | Credits | Price | Effective $/credit | vs x402 ($0.05/call) |
|---|---|---|---|---|
| List (no commit) | per-call | $0.025/credit | $0.025 | 50% off |
| Starter | 10,000 | $200 | $0.020 | 60% off |
| Growth | 50,000 | $750 | $0.015 | 70% off |
| Scale | 200,000 | $2,000 | $0.010 | 80% off |
| Enterprise | 500,000+ | Custom | ~$0.007 | 86% off |
Why partners always pay less than x402
The x402 marketplace serves on-demand AI agents that pay per call without an account. That convenience earns a premium price — 0.025/scan list, dropping to $0.007/scan at Enterprise. The savings recover the integration effort within a few hundred scans.Free trial — auto-granted on first key
Every new tenant gets 100 free credits automatically the first time they create a scanner key (no signup, no email, no ops touch). That’s enough to:- Run 100 single scans (
POST /scan) - Or 200 batch domains (at 0.5 credit each)
- Or 20 synthetic agent tests (at 5 credits each)
Design-partner program (free beta)
For partners ready to commit to a relationship, we offer a larger grant in exchange for product feedback and a case study. You get:- 5,000 free credits up front (~3 months of typical usage at a small shop)
- Scale pricing ($0.010/credit) locked in for 12 months after the free credits exhaust
- First-right-of-refusal on new scanner features before public launch
- A logo + 1 case study we can reference on the Sly site and in sales decks.
- A 30-min monthly feedback call with your product lead for 6 months.
- An early-bird testimonial with a 2-week turnaround.
Credit costs
| Endpoint | Cost |
|---|---|
POST /v1/scanner/scan | 1 |
POST /v1/scanner/scan/batch | 0.5 per target (rounded up) |
POST /v1/scanner/tests | 5 |
GET /v1/scanner/scan/:id | 0 |
GET /v1/scanner/scans, scans/stats, scans/protocol-adoption, scans/by-domain/:id | 0 |
GET /v1/scanner/prospects, prospects/heat-map, prospects/export | 0 |
GET /v1/scanner/reports/*, observatory/*, snapshots/* | 0 |
GET /v1/scanner/credits/*, usage | 0 |
Check your balance
X-Credits-Remaining header
Every billed response includes an X-Credits-Remaining header so you can track your balance without an extra round-trip. Available on success responses and on auto-refunded 4xx/5xx responses.
scanner.balance — see the SDK reference.
Insufficient-credit errors
When your balance is below the cost of a requested operation, the endpoint returns:Auto-refund on 4xx and 5xx
The credits middleware debits your balance before the route handler runs (so we can return 402 cleanly when funds are short). If the handler then returns any 4xx or 5xx other than 402 / 429, the debit is automatically reversed:| Status | Refunded? |
|---|---|
| 200–299 | No (you got the work) |
| 400 (Validation) | Yes |
| 401 (Unauthorized) | n/a — auth runs before credits, never debited |
| 402 (Insufficient credits) | n/a — never debited |
| 403 (Forbidden) | Yes |
| 404 (Not found) | Yes |
| 422 (Unprocessable) | Yes |
| 429 (Rate limited) | n/a — rate limit runs before credits, never debited |
| 5xx (Server error) | Yes |
refund row. Net consumedTotal reflects the refund — you can tell what was charged vs returned by inspecting the ledger directly.
Ledger
Every grant, consume, refund, and adjustment is recorded in an append-only ledger. Retrieve history with optional pagination + scan-result join:reason is one of grant, consume, refund, adjustment. With expand=scan (recommended) each consume row joins to the merchant_scans row that paid for it via request_id — perfect for audit trails. Scans created before 2026-05-02 don’t have the join; their rows still appear, just without the scan field.
See Credits & Usage Endpoints for the full param list and other ledger calls (/credits/balance, /credits/activity).
Ledger
Every debit and grant is recorded in an append-only ledger. Retrieve history:reason is one of: grant, consume, refund, adjustment. refund appears when a batch is cancelled before workers process the remaining targets.
Usage reporting
Two flavors:/v1/scanner/credits/activity — day-bucketed billable scan counts sourced from the credit ledger (ground truth, never undercounts). Use this for usage charts and billing reconciliation.
/v1/scanner/usage — aggregated request counts per endpoint or per day (includes free reads, errors, latency). Use this when you also want read-traffic + per-endpoint breakdowns.
Topping up
Partners can top up in two ways:- Invoiced — pay your Sly invoice; credits are granted against your tenant within 1 business day (source tag references the invoice).
- Prepaid bundles — purchase credit packs in the Sly dashboard. Instant grant.
reason: "grant".