---
title: "Idempotent account creation for the Privy-authenticated wallet"
method: POST
path: "/v1/accounts/register"
tags: ["accounts"]
---

# Idempotent account creation for the Privy-authenticated wallet

`POST /v1/accounts/register`

## Request

- Base URL: `https://alive-api.alphakek.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://alive-api.alphakek.ai/v1/accounts/register`
- Auth: none declared

Create the account for the JWT's wallet, or return the existing one.

Idempotent — calling repeatedly is a no-op after the first call.
Returns 200 (not 201) for both create and noop cases since the
caller can't distinguish, and the response body is identical.

## Response `200`

Successful Response

- AccountResponse: Public-facing account snapshot. `verified` derived from `verified_at IS NOT NULL` per #280 PR 3 — no separate status enum so the UI doesn't have to map states.
  - `id` string, required
  - `created_at` string, required
  - `twitter_handle` string, nullable, required
  - `twitter_name` string, nullable, required
  - `twitter_followers` integer, nullable, required
  - `avatar_url` string, nullable, required
  - `verified` boolean, required
  - `verified_at` string, nullable, required
  - `attached_agent_count` integer, required
  - `max_agents` integer

## Changes

- **2026-10-16** `b6d96e7673dc`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/alphakek-ai/apis/aikek-api/changes/v1/accounts/register/post.md)

---

[API](https://skmtc.dev/alphakek-ai/apis/aikek-api.md) - [All operations](https://skmtc.dev/alphakek-ai/apis/aikek-api/llms.txt) - [OpenAPI document](https://skmtc.dev/alphakek-ai/apis/aikek-api/revisions/b6d96e7673dc?raw)
