---
title: "Create an account"
method: POST
path: "/v1/auth/signup"
tags: ["Auth"]
---

# Create an account

`POST /v1/auth/signup`

## Request

- Base URL: `https://api.briefgate.dev`
- URL: `https://api.briefgate.dev/v1/auth/signup`
- Auth: none required

Create a new BriefGate account. Returns a session cookie and the account object. The password must be at least 12 characters. `accept_terms` must be `true` — the caller is asserting that the person has agreed to the Terms of Service. The optional `attribution` object (`source`, `medium`, `campaign`, `content`, `term`, `gclid` — each an optional 1-200 character string) records where the sign-up came from for internal reporting; it is stored once at account creation, never returned by this or any other endpoint, and an empty object is treated the same as omitting it.

## Request body

- Signup
  - `email` string, email, required
  - `password` string, required
  - `name` string, required
  - `account_name` string
  - `accept_terms` boolean, required
  - `attribution` object
    - `source` string
    - `medium` Source (unresolved $ref)
    - `campaign` Source (unresolved $ref)
    - `content` Source (unresolved $ref)
    - `term` Source (unresolved $ref)
    - `gclid` Source (unresolved $ref)

## Response `201`

Account created

- object
  - `id` string
  - `email` string, email
  - `name` string, nullable
  - `account_id` string
  - `account_name` string

## Other responses

- `400`: Invalid request — malformed body or query parameters
- `409`: Email already registered
- `422`: Validation error — the body shape is correct but values are invalid

---

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