Skip to main content
V1 ships with one paid plan. We’ll add more once usage patterns are clear — see the v1.5 roadmap below.

Plans

PlanPriceCached callsCold callsWhen you hit the capFreshness window
Sandbox$0255 (sandbox only)Subscribe to Standard7 days
Standard**149/mo(or149/mo** (or 1,490/yr · ~17% off)2,000100Contact for Enterprise24 hours
EnterpriseCustomCustomCustomNegotiatedNegotiated (typically same-day)
v1.0 is flat-only. When you exhaust your monthly cold-call budget, the API returns 429 cold_budget_exhausted until the next monthly reset. Metered overage is on the v1.5 roadmap once we have stable cold-call cost telemetry — see Economics.
Sandbox is free and indefinite, but it doesn’t run live cold paths — ki_live_… keys on Sandbox are restricted to cached reads + canned sandbox responses. It exists so you can integrate, test rate-limit handling, and validate response shapes before paying anything. Subscribe to Standard whenever you’re ready to score real domains.

Freshness windows

When you call POST /v1/score and a recent record exists within your tier’s freshness window, you get it back instantly as cache_status: "cached" — no cold-call usage incremented. Only if the record is missing or stale (or you set force_fresh: true on Enterprise) do we run a fresh cold pipeline.
PlanWindow
Standard24 hours
EnterpriseNegotiated
Why 24 hours? It’s an honest floor given how the underlying data behaves. Firmographic providers (employee count, funding, revenue) refresh weekly at best; LinkedIn-derived signals update irregularly; press coverage is the only near-realtime input. Advertising “1-hour freshness” would imply a refresh velocity our data sources don’t actually deliver. Enterprise contracts can negotiate shorter windows + per-key force_fresh=true overrides for use cases where the marginal staleness matters.

Async cold scoring

Cold scoring is always async. When POST /v1/score needs to run the cold pipeline, it returns 202 with a job_id and a poll_url — you then poll GET /v1/jobs/{job_id} until status flips to complete. The wait body field is accepted for backwards-compatibility but has no effect. The Python and TypeScript SDKs handle the polling automatically. See Async scoring for the loop, and GET /v1/jobs/{job_id} for the poll response shape. Sandbox accounts cannot run live cold paths — ki_live_… keys on Sandbox are restricted to cached reads + sandbox responses.

Circuit breakers

Two automatic safety nets cap cold spend on top of the monthly cap:
  1. Per-key cold ceiling — 200 cold calls per hour, per key. Trips 429 { error: "rate limited", reason: "per_key_cold_1h" }. Rotates back open after the hour rolls.
  2. Per-account 24-hour cold ceiling — 2× your tier’s monthly cold-call budget within any 24-hour window. Catches runaway scripts on a fresh key. Returns 429 { reason: "account_cold_24h" }. Email support if you’ve hit this legitimately and we’ll lift the cap by hand.
Both checks happen before the scoring pipeline starts, so a tripped breaker costs zero.

Watermarks

Every response includes an x_kepler block:
"x_kepler": {
  "tier": "standard",
  "cache_status": "cached",
  "freshness_window_hours": 24
}
cache_status: "cached" means a stored record within your freshness window was returned. The cold pipeline doesn’t return inline scores — it returns a 202 with a job_id. Once the job completes and you GET /v1/score/{domain}, the response again carries cache_status: "cached" since the fresh score is now in cache.

What’s on the v1.5 roadmap

We deliberately launched narrow. Once we have 60–90 days of real usage data:
  • Metered overage — opt-in burst capacity beyond your monthly cold-call budget, priced per-call from observed cost.
  • Higher-volume plans — if there’s demand, a tier above Standard for customers running thousands of cold calls per month.
  • Tighter freshness windows — gated on improved upstream data refresh and our own fetcher cache investments, not just on price.
  • Webhooks — async completion notifications instead of polling.
If you need anything on this list before it ships, go Enterprise — we can wire bespoke arrangements there immediately.