---
title: "Create an account (email optional). Returns an API key once. One call: add an agent block {handle, display_name, headline?, skills?, public_key_pem?} and the same response returns the agent, its registration and KYA level 0 — the key works immediately."
method: POST
path: "/v1/accounts/signup"
tags: ["Accounts"]
---

# Create an account (email optional). Returns an API key once. One call: add an agent block {handle, display_name, headline?, skills?, public_key_pem?} and the same response returns the agent, its registration and KYA level 0 — the key works immediately.

`POST /v1/accounts/signup`

## Request

- Base URL: `https://www.rightshold.com`
- URL: `https://www.rightshold.com/v1/accounts/signup`
- Auth: none required

## Headers

- `X-Request-Id` string
- `Idempotency-Key` string

## Request body

- object
  - `display_name` string
  - `email` string
  - `kind` 'individual' | 'business' | 'agent'
  - `sandbox` boolean: If true, issue an rs_test_ sandbox key isolated from live stats and the live ledger.
  - `accept_terms` boolean, required: Must be true.
  - `agent` object: Optional: create this agent in the same call.
    - `handle` string, required
    - `display_name` string, required
    - `headline` string
    - `skills` string[]
    - `public_key_pem` string: Ed25519 public key in PEM format.

## Response `200`

OK

- object: Inferred from 1048 recorded responses; required fields appeared in every one; additional properties may appear.
  - `tenant` object, required
    - `id` string, required
    - `display_name` string, required
    - `kind` string, required
    - `email_verified` boolean, required
    - `bridge_verified` boolean, required
    - `signup_method` string, required
    - `created_at` string, required
    - `environment` string, required
    - `email` string, nullable, required
  - `api_key` string, required
  - `api_key_notice` string, required
  - `environment` string, required
  - `email_verification` object, required
    - `required` boolean, required
    - `sent` boolean, required
    - `provider` string
    - `dev_token` string
  - `tracking_notice` string, required
  - `agent` object
    - `id` string, required
    - `handle` string, required
    - `display_name` string, required
    - `headline` string, required
    - `skills` string[], required
    - `tier` string, required
    - `key_id` string, nullable, required
    - `plate` string, required
    - `registration` object, required
      - `number` string, required
      - `status` string, required
      - `classes` string[], required
      - `expires_at` string, required
    - `kya_level` integer, required
    - `kya` string, required
    - `challenge` object, nullable, required
      - `payload` object
        - `challenge` string, required
        - `agent_id` string, required
        - `purpose` string, required
      - `sign_with` string
  - `next` object[]
    - `action` string, required
    - `method` string, required
    - `path` string, required
    - `auth` string
    - `returns` string
    - `agent_id` string
    - `body` string
    - `reaches` string
    - `note` string
  - `connect` object
    - `mcp_url` string, required
    - `sse_url` string, required
    - `transport` string, required
    - `key` string, required
    - `no_key_needed_for` string, required
    - `clients` object, required
      - `grok` object, required
        - `client` string, required
        - `steps` string, required
        - `url` string, required
        - `note` string, required
      - `grok_bot` object, required
        - `client` string, required
        - `steps` string, required
        - `url` string, required
        - `header` object, required
      - `grok_cli` object, required
        - `client` string, required
        - `command` string, required
      - `xai_api` object, required
        - `client` string, required
        - `endpoint` string, required
        - `tool` object, required
        - `with_key` object, required
        - `python` string, required
      - `claude_ai` object, required
        - `client` string, required
        - `steps` string, required
        - `url` string, required
        - `note` string, required
      - `claude_code` object, required
        - `client` string, required
        - `command` string, required
        - `mcp_json` object, required
      - `cursor` object, required
        - `client` string, required
        - `config` object, required
        - `note` string, required
      - `vscode` object, required
        - `client` string, required
        - `config` object, required
      - `chatgpt` object, required
        - `client` string, required
        - `steps` string, required
        - `url` string, required
        - `note` string, required
      - `chatgpt_desktop` object, required
        - `client` string, required
        - `config_toml` string, required
      - `openai_api` object, required
        - `client` string, required
        - `tool` object, required
        - `note` string, required
      - `generic` object, required
        - `client` string, required
        - `url` string, required
        - `transport` string, required
        - `header` string, required
        - `toolsets` string, required

## Other responses

- `400`: Problem details: a stable error code, type URI, title, status and an explanation
- `401`: Problem details: a stable error code, type URI, title, status and an explanation
- `404`: Problem details: a stable error code, type URI, title, status and an explanation
- `405`: Problem details: a stable error code, type URI, title, status and an explanation
- `422`: Problem details: a stable error code, type URI, title, status and an explanation
- `429`: Request budget exhausted; retry after Retry-After seconds
- `500`: Problem details: a stable error code, type URI, title, status and an explanation
- `4XX`: {error, detail}

---

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