---
title: "Create an agent account with the human owner's email"
method: POST
path: "/credits/agent/signup"
tags: ["Agent-native onboarding"]
---

# Create an agent account with the human owner's email

`POST /credits/agent/signup`

## Request

- Base URL: `https://api.paywithlocus.com/api`
- URL: `https://api.paywithlocus.com/api/credits/agent/signup`
- Auth: none required

Ask the human before using this route. Creates a new zero-balance agent workspace and returns its scoped lcac_ connection credential at once. The named human receives a one-time claim link; opening it makes them an owner of every pending agent account for that address, and "This wasn't me" suspends them. Replaying the same email, name, and registrationToken returns the same workspace and credential. Every new token creates a new workspace; an existing workspace is never joined by email. No free or bonus credits are issued.

## Request body

- AgentEmailSignupRequest
  - `email` string, email, required: The human owner's address. It receives a one-time claim link and is not treated as verified until the link is opened.
  - `name` string, required: Agent and workspace name. Control and bidirectional-formatting characters are rejected.
  - `registrationToken` string, required: Canonical base64url encoding of 24 bytes generated by a cryptographically secure random-number generator.

## Response `200`

Existing signup replayed

- AgentOwnedAccountEnvelope
  - `success` unknown, required
  - `account` AgentOwnedAccount, required
    - `id` string, uuid, required
    - `name` string, required
    - `status` string, required
    - `onboardingState` 'funding_required' | 'ready', required
    - `balance` AgentOwnedBalance, required
      - `usd` string, required: Non-negative exact decimal string with at most six fractional digits. Endpoint-specific positivity and amount limits still apply.
      - `credits` string, required: Non-negative exact decimal string with at most six fractional digits. Endpoint-specific positivity and amount limits still apply.
      - `creditsPerDollar` string, required
    - `connection` object, required
      - `id` string, uuid, required
      - `keyPrefix` string, required
      - `expiresAt` string, date-time, required
      - `credential` string: Returned on registration replay and rotation. Store immediately.
    - `identity` object, required
      - `provider` 'agentid', required
      - `email` string, email, required
    - `mcp` object, required
    - `links` object, required
    - `nextAction` object, required
    - `created` boolean
    - `credentialRenewed` boolean
    - `credentialRecovered` boolean
    - `activated` unknown, required

## Other responses

- `201`: Agent workspace created at a zero balance
- `400`: Invalid email, name, or registration token
- `403`: New accounts are invitation-only in this environment
- `409`: The token is bound to different account details
- `429`: Too many unclaimed accounts for this email, or too many signups from this network

---

[API](https://skmtc.dev/paywithlocus/apis/locus-pro-api.md) - [All operations](https://skmtc.dev/paywithlocus/apis/locus-pro-api/llms.txt) - [OpenAPI document](https://skmtc.dev/paywithlocus/apis/locus-pro-api/revisions/aab8fa5d6cef?raw)
