---
title: "Create Account"
method: POST
path: "/v1/accounts"
tags: ["accounts"]
---

# Create Account

`POST /v1/accounts`

## Request

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

Create a pending account and signing key. Returns EIP-712 payloads for wallet signing.

The body runs inside the account-flow boundary (Q-1601,
services/account_flow_events.py): every refusal is recorded once, there.

## Headers

- `Authorization` string, nullable
- `X-Org-Id` string, nullable

## Request body

- CreateAccountRequest
  - `wallet_address` string, required
  - `label` string, nullable

## Response `201`

Successful Response

- CreateAccountResponse
  - `account_id` string, required
  - `agent_address` string, required
  - `eip712_approve_agent` object, required
  - `eip712_approve_builder_fee` object, required
  - `displacement_warning` DisplacementWarning: Informed-evict nudge (Q-0324): approving this wallet's agent will displace the wallet's existing Keel agent. Cross-org rows never carry the other org's data — scope + live impact only; strategy_name is same-org only.
    - `scope` 'other_org' | 'same_org', required
    - `live_strategy_affected` boolean, required
    - `strategy_name` string, nullable

## Other responses

- `422`: Validation Error

---

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