---
title: "Create an account (email + password)"
method: POST
path: "/auth/sign-up/email"
---

# Create an account (email + password)

`POST /auth/sign-up/email`

## Request

- Base URL: `https://api.peelaway.io`
- URL: `https://api.peelaway.io/auth/sign-up/email`
- Auth: none required

Self-serve account signup. Creates a user, emails a verification link, and returns a session immediately. The account starts with 1 free image credit and 1 free Moments clip; verification adds no credits. Public (no auth).

## Request body

- SignUpRequest
  - `email` string, email, required
  - `password` string, required: At least 8 characters.
  - `name` string, required

## Response `200`

Account created and signed in

- AuthSessionResponse: Session payload. The session token is ALSO set as a Set-Cookie header — resend that cookie on POST /api/keys.
  - `token` string: Session token (also set as a cookie).
  - `user` object
    - `id` string
    - `email` string
    - `name` string

## Other responses

- `400`: Invalid input
- `422`: Email already registered or validation error
- `429`: Rate limited (per IP) — retry after the Retry-After header

---

[API](https://skmtc.dev/peelaway/apis/peelaway-image-api.md) · [All operations](https://skmtc.dev/peelaway/apis/peelaway-image-api/llms.txt) · [OpenAPI document](https://skmtc.dev/peelaway/apis/peelaway-image-api/revisions/8ce45533c9d0?raw)
