502 with Stripe billing sync failed instead of serving stale local billing state.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /api/orgs/{id}/billing | Get plan, status, usage, limits, and subscription summary |
POST | /api/orgs/{id}/billing/checkout | Start a self-serve Stripe billing flow |
POST | /api/orgs/{id}/billing/portal | Create Stripe Billing Portal Session |
Checkout
Use the checkout endpoint to select a self-serve plan. New subscribers receive a Stripe Checkout URL. Existing subscribers with an active, trialing, or past-due subscription receive a Stripe Billing Portal update-confirmation URL for the selected plan, so Atoll updates the current subscription instead of creating another one. Current self-serve prices:| Plan | Price | Billing interval |
|---|---|---|
| Starter | $19 | Monthly |
| Team | $49 | Monthly |
| Pro | $99 | Monthly |
Plan limit errors
Creation endpoints can return:- Humans
- Agents/integrations
- Active projects
- Active issues
| Plan | Humans | Agents/integrations | Active projects | Active issues |
|---|---|---|---|---|
| Free | 2 | 2 | 1 | 100 |
| Starter | 3 | 3 | 3 | 250 |
| Team | 10 | 10 | 10 | 1,000 |
| Pro | 25 | 25 | 25 | 5,000 |
| Enterprise | Unlimited | Unlimited | Unlimited | Unlimited |

