Bu sayfanın Türkçesi de var. Türkçe oku →
Plans and limits
Every organization is on a plan, and the limits apply to the whole organization: the event quota, the number of monitors and the number of users cover all projects. Current prices are on the pricing page. You change the plan in the dashboard under Plan & billing.
What changes by plan
| Hobby | Pro | Business | Agency | Enterprise | |
|---|---|---|---|---|---|
| Monitors | 10 | 20 | 75 | 300 | unlimited |
| Events / month | 10,000 | 250,000 | 2,000,000 | 10,000,000 | unlimited |
| Retention | 7 days | 15 days | 30 days | 90 days | 90 days |
| Fastest check interval (except heartbeats) | 5 min | 1 min | 30 s | 30 s | 30 s |
| Users (including the owner) | 1 | unlimited | unlimited | unlimited | unlimited |
| Status pages | 1 | 3 | 20 | unlimited | unlimited |
| Email, Slack, Discord, Telegram, mobile push | ✔ | ✔ | ✔ | ✔ | ✔ |
| Teams, webhook, PagerDuty, Opsgenie, on-call channel | — | ✔ | ✔ | ✔ | ✔ |
| On-call schedules and escalation | — | ✔ | ✔ | ✔ | ✔ |
| Multi-step API checks | — | ✔ | ✔ | ✔ | ✔ |
| Browser checks | — | 2 | 5 | 15 | 50 |
| Client workspaces, white-label, agency console | — | — | — | ✔ | ✔ |
| Enterprise SSO | — | — | — | — | ✔ |
Error tracking, logs, uptime / SSL / domain monitoring, the read API, issue tracker integrations, PII scrubbing and the audit trail are on every plan.
Reading the plan's limits from the API
The organization list returns each organization's limits; null means unlimited:
curl https://api.errorbird.com/api/v1/organizations -H "Authorization: Bearer <token>"
# [ { "planTier": "Pro", …,
# "limits": { "maxMonitors": 20, "monthlyEventQuota": 250000, "retentionDays": 15,
# "allowsClientWorkspaces": false, "maxBrowserChecks": 2,
# "minimumCheckIntervalSeconds": 60, "maxMembers": null,
# "maxStatusPages": 3, "allowsAdvancedAlerting": true,
# "allowsMultiStepChecks": true } } ]
All plans and their prices can be read without authentication from
GET /api/v1/billing/plans.
When you hit a limit
There is no overage invoice: the request is refused and the response says which limit
it hit. The body always has the same shape; message is in Turkish or English
depending on the request's language:
{ "error": "interval_below_plan", "message": "On the Hobby plan checks can run at most every 5 minutes. …" }
| Situation | Response | error |
|---|---|---|
| Monitor limit reached | 409 |
monitor_quota_exceeded |
| Browser check limit reached | 409 |
browser_check_quota_exceeded |
| Check interval shorter than the plan allows | 409 |
interval_below_plan |
| Feature not on the plan (advanced channels, escalation, on-call schedules, multi-step checks, client workspaces) | 409 |
plan_feature_unavailable |
| User limit (when inviting and when accepting an invitation; pending invitations count) | 409 |
member_limit_reached |
| Status page limit reached | 409 |
status_page_quota_exceeded |
| SSO connection (outside Enterprise) | 409 |
sso_requires_enterprise |
| Monthly event quota used up | 429 |
quota_exceeded |
The event quota resets at the start of the month; see Ingest formats.
Moving to a smaller plan
Everything that exceeds the new plan's limits is listed in one response
(409 plan_limits_exceeded): monitors, browser checks, multi-step checks, users,
status pages, advanced channels, escalation policies, on-call schedules and client
workspaces. Once you remove them, the change goes through; no data is deleted behind
your back.
The check interval does not block the change: monitors that run more often than the new plan allows are raised to its floor (a 30-second check becomes 5 minutes on the free plan, for example).