# Pricing

Every plan includes time zones, request, transform and built-in steps, templated headers and bodies, encrypted credentials, and the REST API. A run is one scheduled firing of a job, however many steps its pipeline has.

| | Hobby | Pro | Team |
| --- | --- | --- | --- |
| Price (monthly) | $0/mo | $12/mo | $49/mo |
| Price (yearly) | $0/yr | $120/yr | $490/yr |
| Jobs | 3 | 50 | 500 |
| Fastest schedule | Every 15 min | Every minute | Every minute |
| Runs per month | 1,000 | 50,000 | 500,000 |
| Run history | 24 hours | 30 days | 90 days |
| Pipelines and transforms | Included | Included | Included |
| REST API and agent tools | Included | Included | Included |
| Failure email alerts | — | Included | Included |

## Hobby: $0/month

For side projects and trying things out.

- 3 jobs
- Runs every 15 min at most
- 1,000 runs / month
- 24-hour run history

## Pro: $12/month

For production workloads.

- 50 jobs
- Every-minute schedules
- 50,000 runs / month
- 30-day run history
- Failure email alerts

## Team: $49/month

For teams running critical automation.

- 500 jobs
- Every-minute schedules
- 500,000 runs / month
- 90-day run history
- Up to 10 seats
- Priority support

## What happens at a limit

- Creating a job beyond your plan's job count returns `402 plan_limit`.
- A schedule faster than your plan allows returns `422 validation_failed` on `alarm.cron.expression`.
- Downgrading pauses jobs that are too frequent for the new plan, then the newest jobs beyond its job count. Nothing is deleted.
- A one-time job (`run_at`) counts toward the job limit until it has fired.
