Pricing
Simple plans, honest limits
Start free, no card required. Every plan publishes its rate limits up front and uses the same API.
$0/month
Rate limit
5 requests / minute · 1 concurrent
- 50 uploads / month
- 250 screenshot / PDF renders / month
- Links expire after 30 days
- Community support
$9.99/month
Rate limit
40 requests / minute · 3 concurrent
- 500 uploads / month
- 2,000 screenshot / PDF renders / month
- No link expiry while subscribed
- Optional overages
- Email support
$19.99Standard price $29.99/month
Rate limit
80 requests / minute · 6 concurrent
- 5,000 uploads / month
- 10,000 screenshot / PDF renders / month
- No link expiry while subscribed
- Optional overages
- Priority support
$49.99Standard price $79.99/month
Rate limit
150 requests / minute · 12 concurrent
- 25,000 uploads / month
- 50,000 screenshot / PDF renders / month
- No link expiry while subscribed
- Optional overages
- Priority support & SLA
Launch pricing is locked in for accounts created now — Pro and Business move to $29.99 and $79.99 for accounts opened later. Your rate stays put for as long as the subscription does.
Compare
Every limit, side by side
The same numbers the API enforces. Nothing here is negotiated in a sales call.
| Limit | Free$0 | Starter$9.99/mo | Pro$19.99/mo | Business$49.99/mo |
|---|---|---|---|---|
| Uploads / month | 50 | 500 | 5,000 | 25,000 |
| Screenshot / PDF renders | 250 | 2,000 | 10,000 | 50,000 |
| Requests per minute | 5 | 40 | 80 | 150 |
| Concurrent captures | 1 | 3 | 6 | 12 |
| Max file size | 10 MB | 10 MB | 10 MB | 10 MB |
| Link expiry | 30 days max | None while subscribed | None while subscribed | None while subscribed |
| Overages | — | $0.008 each | $0.005 each | $0.003 each |
Each PDF uses one screenshot unit and the same overage rate. Uploads bill at half that rate. Free has no overages — it stops at the quota.
Overages
Running out of quota shouldn’t take your app down
A hard shutoff at the end of the month is a bad way to find out your product got popular. Turn overages on and the API keeps answering.
Quota is a bill, not a kill switch
With overages on, requests past your monthly quota keep succeeding. Every extra upload, screenshot, or PDF is metered at your plan's per-unit rate and settled on your next invoice — no failed jobs, no 402s in production.
You see it coming
Usage warnings fire at 80%, 90%, 100% of quota — on your usage page and as an x-shotwisp-quota-warning header on every metered API response.
Off unless you turn it on
Overages are disabled by default on every paid plan. Leave them off and the API returns 402 quota_exceeded once the quota is spent. Free has no overages at all — it stops at the limit and prompts an upgrade.
Toggle them on or off at any time — the change applies to the next request.
FAQ
Questions, answered
What counts as a screenshot unit?
One successful screenshot or PDF render, whether it came from the dashboard or the API. Failed renders — an unreachable page, a blocked URL, or a timeout — are logged for you to inspect but never metered. Uploads are counted separately, one per stored file.
What happens when I hit my quota?
On a paid plan with overages enabled, nothing stops: requests keep succeeding and each unit past quota is billed at your plan's rate. With overages disabled, the API returns 402 quota_exceeded until the month rolls over or you upgrade. Free has no overages, so it hard-stops at the limit. Quotas reset at 00:00 UTC on the first of each month.
What are the rate limits, and what happens at 429?
Each plan gets a sustained requests-per-minute budget and a cap on concurrent captures, both listed on the card above. Past the budget the API returns 429 rate_limited with a Retry-After header plus x-shotwisp-ratelimit-limit, -remaining, and -reset. Wait out Retry-After and retry with exponential backoff — nothing is charged for a rejected request.
Can links expire?
Yes. Pick an expiry when you upload — one hour, 24 hours, seven days, 30 days, or no automatic expiry while subscribed to a paid plan — or pass expires_in with the API. Once a link expires it stops resolving and the file is deleted. Free links are capped at 30 days, and anonymous uploads always expire within 24 hours.
Can I cancel anytime?
Yes. Downgrade or cancel from your dashboard whenever you like. Your plan stays active until the end of the billing period, then the account moves to Free. Links created without an expiry receive a 30-day grace period; we email you before they are deleted, and upgrading again during grace keeps them active.