---
title: "Create a new user"
method: POST
path: "/auth/v1/signup"
tags: ["Auth"]
---

# Create a new user

`POST /auth/v1/signup`

## Request

- Base URL: `https://api.run402.com`
- URL: `https://api.run402.com/auth/v1/signup`
- Auth: API key in header `apikey`

Creates a password user. Public signup is accepted only when project public_signup is open; service keys may create users regardless and can set is_admin=true.

## Request body

- object
  - `email` string, email, required
  - `password` string, required
  - `is_admin` boolean: Only honored when the request uses the project's service key.

## Response `201`

User created

- object
  - `id` string, uuid
  - `email` string, email
  - `created_at` string, date-time
  - `is_admin` boolean

## Other responses

- `401`: Missing or invalid authentication. Run402-originated JSON bodies use the canonical ErrorEnvelope.
- `403`: `R402_AUTH_SIGNUP_CLOSED`: public sign-up is closed on this project (`public_signup` is not `open`). Sign in with an existing account, or have the project invite the email.
- `409`: User already exists
- `429`: Rate limited

---

[API](https://skmtc.dev/run402/apis/run402-api.md) · [All operations](https://skmtc.dev/run402/apis/run402-api/llms.txt) · [OpenAPI document](https://skmtc.dev/run402/apis/run402-api/revisions/893607557f50?raw)
