> For the complete documentation index, see [llms.txt](https://docs.statuspal.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.statuspal.io/next/platform/api-reference/signup.md).

# Signup

Create a new account and obtain an API key (public, no key required)

## Sign up for a new account

> Create a new organization and its first admin user, and receive an API key in return.\
> This endpoint is \*\*public\*\* — it does not require an API key — so AI agents can onboard\
> without visiting the web dashboard.\
> \
> The returned API key is \*\*pending activation\*\*: an administrator must activate the new\
> account before it can be used. Until then, every other endpoint returns\
> \`403\` with error \`account\_pending\_activation\`. No email confirmation is required.<br>

```json
{"openapi":"3.1.0","info":{"title":"StatusPal Public API","version":"1"},"tags":[{"name":"Signup","description":"Create a new account and obtain an API key (public, no key required)"}],"servers":[{"url":"https://next.statuspal.io/api/v1","description":"Production"},{"url":"http://spage.test:7070/api/v1","description":"Local development"}],"paths":{"/signup":{"post":{"summary":"Sign up for a new account","description":"Create a new organization and its first admin user, and receive an API key in return.\nThis endpoint is **public** — it does not require an API key — so AI agents can onboard\nwithout visiting the web dashboard.\n\nThe returned API key is **pending activation**: an administrator must activate the new\naccount before it can be used. Until then, every other endpoint returns\n`403` with error `account_pending_activation`. No email confirmation is required.\n","operationId":"signup","tags":["Signup"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupCreate"}}}},"responses":{"201":{"description":"Account created. The API key is returned once and cannot be retrieved again.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Signup"}}}}}},"422":{"$ref":"#/components/responses/UnprocessableEntity"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}}},"components":{"schemas":{"SignupCreate":{"type":"object","required":["email","org_name","first_name","last_name"],"properties":{"email":{"type":"string","format":"email","description":"Admin user's email. Must be a custom-domain address — free providers (gmail.com, yahoo.com, outlook.com, …) are rejected."},"org_name":{"type":"string","description":"Name of the organization to create."},"first_name":{"type":"string"},"last_name":{"type":"string"}}},"Signup":{"type":"object","properties":{"status":{"type":"string","enum":["pending_activation","active"],"description":"`pending_activation` until an administrator activates the account; the `api_key` only works once the account is active."},"api_key":{"type":"string","description":"Bearer token for the new organization. Returned once — store it securely."},"organization":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}}}},"Error":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"details":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}}}},"responses":{"UnprocessableEntity":{"description":"Validation failed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}
```
