---
title: "Create an account (public, invite-gated)"
method: POST
path: "/v1/accounts/signup"
tags: ["account"]
---

# Create an account (public, invite-gated)

`POST /v1/accounts/signup`

## Request

- Base URL: `https://api.replylayer.ai`
- URL: `https://api.replylayer.ai/v1/accounts/signup`
- Auth: none required

## Request body

- object
  - `accept_terms` true, required: Records the single signup legal-assent action: agreement to the Terms of Service (which incorporate the Acceptable Use Policy and, where applicable, the Data Processing Agreement) and acknowledgement of the Privacy Policy. The field name is retained for API compatibility.
  - `accept_web_risk_version` string
  - `cli_signup_code` string
  - `email` string, email, required
  - `invite_code` string
  - `phone_number` string, required

## Response `201`

Created

- object
  - `account_id` string, required
  - `api_key` string, required
  - `email_verification_required` boolean
  - `message` string
  - `phone_number_masked` string, nullable
  - `phone_verification_required` boolean
  - `sms_delivery_status` 'sent' | 'pending' | 'failed' | 'not_required' | 'after_email_verification'
  - `verification_required` boolean

## Other responses

- `400`: Validation error
- `403`: Forbidden
- `409`: Conflict
- `429`: Rate limited
- `500`: Internal error (code: INTERNAL_ERROR)
- `503`: Temporarily unavailable

---

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