---
title: "Create an account via email and password (headless)"
method: POST
path: "/api/oauth/signup"
tags: ["Account"]
---

# Create an account via email and password (headless)

`POST /api/oauth/signup`

Step 1 of headless account creation. Registers a new user with email and password, sends a verification code via email, and returns a signup_session_token. Use POST /api/oauth/signup/verify with the token and code to get OAuth tokens. Returns identical responses for new and existing users to prevent account enumeration.

## Request body

- object
  - `email` string, email, required — Email address for the new account
  - `password` string, required — Password with at least 8 characters, one uppercase, one lowercase, one digit, and one special character

## Response `200`

Signup session created

- object
  - `signup_session_token` string — Token to use with /api/oauth/signup/verify
  - `expires_in` number — Session TTL in seconds (900)

## Other responses

- `400` — Invalid email, password, or disposable email
- `429` — Rate limit exceeded

---

[API](https://skmtc.net/unstoppabledomains/apis/user-api.md) · [All operations](https://skmtc.net/unstoppabledomains/apis/user-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/unstoppabledomains/user-api/revisions/c1def8e34b41/schema)
