Skip to content
Simple, flat pricing

Pricing

Start free with 1,000 jobs a day. Flat monthly plans raise the limits — they never gate retries, dead-letter queues, or streaming. Self-hosting the open-source core is free, always.

The same enqueue call on every plan

Free

Evaluation and small projects

$0
  • 1,000 jobs/day
  • 2 queues
  • 3-day job retention
  • 5 req/s API rate limit
  • 64 KB max payload
  • No workflows
Get started
Starter

Steady production traffic

$19 /month
  • 10,000 jobs/day
  • 10 queues
  • 14-day job retention
  • 25 req/s API rate limit
  • 256 KB max payload
  • 5 workflows
Upgrade
Recommended
Pro

Production workloads

$49 /month
  • 100,000 jobs/day
  • 50 queues
  • 30-day job retention
  • 100 req/s API rate limit
  • 1 MB max payload
  • 25 workflows
Upgrade
Enterprise

Scale and compliance

Custom
  • Unlimited jobs/day
  • Unlimited queues
  • 90-day job retention
  • 500 req/s API rate limit
  • 1 MB max payload
  • Unlimited workflows
Contact sales

Every plan includes REST + gRPC APIs, bulk operations up to 100 jobs, automatic retries, idempotency keys, dead-letter queues, job tags, real-time streaming (SSE and WebSocket), queue pause/resume, and dashboard access. Full per-plan numbers live on the limits page.

Self-host or cloud

Same code, same API. The difference is who operates the database and keeps the pager.

Self-host — free

  • Apache-2.0 core: backend and SDKs
  • Your PostgreSQL, your hardware
  • No platform limits or quotas
  • You run upgrades and backups

Cloud — from $0

  • We run Postgres, Redis, and upgrades for you
  • Dashboard, metrics, DLQ tooling
  • Per-plan quotas, enforced fairly
  • Start on Free, upgrade when it hurts
FAQ

Pricing questions

Is there a free tier?
Yes. The Free plan includes 1,000 jobs per day, 2 queues, 3-day job retention, and full API access — enough to evaluate Spooled or run a small project. No credit card required.
Can I self-host Spooled instead of paying?
Yes. The core is Apache-2.0: run the Rust backend against your own PostgreSQL and none of the cloud plan limits apply. You pay only for your own infrastructure — see the deployment guide. The cloud exists for teams that don't want to operate it.
What happens when I hit my daily job limit?
Enqueue requests over the limit are rejected with a clear error and your current usage is visible in the API and dashboard. Existing queued jobs keep processing. Limits reset daily.
What counts as a job?
One enqueued unit of work. A bulk enqueue of 100 jobs counts as 100. Retries of a failed job do not count as new jobs.
Do all plans include retries, the DLQ, and real-time streams?
Yes. Every plan — including Free — has automatic retries, dead-letter queues, idempotency keys, job tags, real-time streaming over SSE and WebSocket, queue pause/resume, bulk operations up to 100 jobs, and dashboard access. Paid plans raise limits; they don't unlock core features.
Are workflows available on the Free plan?
No. Workflows start on the Starter plan (5 workflows), with 25 on Pro and unlimited on Enterprise. Everything else in the core feature set is available on Free.
How long are jobs retained?
Job retention is 3 days on Free, 14 on Starter, 30 on Pro, and 90 on Enterprise. Retention covers completed and failed job records, including dead-letter queue entries.
Can I cancel or change plans anytime?
Yes. Billing is monthly through Stripe. Upgrades take effect immediately; you can cancel from the billing page and keep your plan until the end of the period.
What are the API rate limits per plan?
Free allows 5 requests/second (burst 10), Starter 25 (burst 50), Pro 100 (burst 200), and Enterprise 500 (burst 1,000). Rate-limited responses return a clear error with your current limits — details on the limits page.
How large can job payloads be?
64 KB on Free, 256 KB on Starter, and 1 MB on Pro and Enterprise. For larger data, store the object in your own storage and enqueue a reference to it.