---
title: Register (Removed)
api: POST /auth/register
description: "Self-serve free registration was removed. All accounts are now created via Stripe checkout."
---

> **For AI agents:** the complete documentation index is at [llms.txt](https://docs.boringmarketing.com/llms.txt). Append `.md` to any page URL for its markdown version.

<Warning>
  **This endpoint returns `410 Gone`.** Self-serve free registration was removed when the free tier was retired. All accounts are now created via Stripe checkout. Use [`POST /auth/checkout`](https://docs.boringmarketing.com/api-reference/auth/checkout) instead.
</Warning>

## Response

```json
{
  "error": "endpoint_deprecated",
  "message": "Self-serve free registration was removed. All accounts are now created via Stripe checkout. POST to /auth/checkout with your email and the tier you want.",
  "actions": [
    {
      "rel": "checkout",
      "href": "https://api.boringmarketing.com/auth/checkout",
      "method": "POST",
      "description": "Start a Stripe-gated registration flow.",
      "fields": [
        { "name": "email", "type": "email", "required": true },
        { "name": "name", "type": "string", "required": false },
        { "name": "tier", "type": "enum", "required": true, "options": ["solo", "studio", "agency"] }
      ]
    }
  ]
}
```

The `actions` array is machine-readable — AI agents hitting the legacy URL can self-recover by following the `checkout` action.

## Migration

```bash
# Old (returns 410)
curl -X POST https://api.boringmarketing.com/auth/register \
  -H "Content-Type: application/json" \
  -d '{"email": "dev@example.com", "name": "Dev User"}'

# New
curl -X POST https://api.boringmarketing.com/auth/checkout \
  -H "Content-Type: application/json" \
  -d '{"email": "dev@example.com", "name": "Dev User", "tier": "solo"}'
```

See the [Quickstart](https://docs.boringmarketing.com/quickstart) for the full signup flow.
