Limits & billing
Pricing, rate limits, and what's billed.
Pricing
Monthly NGN subscriptions via Paystack. The full tier table (Starter, Growth, Scale, Enterprise, with caps and overage rates) lives in the product spec.
Annual prepay is available at 15% off (billed yearly). The cap and overage rate are identical to the monthly plan; only the base charge and renewal cadence differ. Pick the interval at checkout.
| Tier | Price | Includes |
|---|---|---|
bsk_test_ | Free up to 25 parses/owner/month, then a canned sample | Full API, integration testing |
bsk_live_ | Subscription (NGN/mo) | Production parses up to your tier cap, then per-parse overage |
| Self-host | Free | Run the AGPL-3.0 stack yourself |
What's billed
Parses count against your monthly tier cap. Parses past the cap meter as overage (₦15 / ₦12 / ₦8 per parse by tier) and bill via Paystack Invoices at the end of the cycle. Only successful parses count. Failures (any 4xx/5xx) are never counted and never billed. If the engine can't read it, you don't pay. CSV and redact requests count the same as a JSON parse (one operation = one parse).
The cap resets on the 1st of each calendar month (UTC), not on your signup or renewal date. Usage is metered per calendar month, so a key created mid-month still gets the full cap for that month.
Overage is billed as a separate Paystack invoice from your monthly subscription charge. Your base subscription renews on its own date (the day you subscribed); the overage invoice for a closed month is raised shortly after that month ends. Expect them on different dates.
An inactive subscription returns 402 with error_class: "subscription_inactive".
Rate limits
The anonymous demo surface is capped at 50 parses/month per IP, and a test key is capped at 25 parses/owner/month. Over either cap the request is not rejected. It returns a 200 with a canned synthetic sample (an additive _sample marker in the JSON and an X-Bankstract-Sample: true header); the engine does not run. There is no 429. Live keys are not hard-rate-limited; they are gated by the subscription tier cap (billing), not a rate limit.
Usage
GET /v1/usage returns the current cycle parse count for the calling key. See the API reference for the exact response shape.