# Agent Signup

Source: https://recoupable.dev/docs/api-reference/agents/signup

Register an agent. For new agent+ emails, returns an API key immediately. For all other cases, sends a verification code to the email — call [POST /api/agents/verify](/api-reference/agents/verify) with the code to get your API key.

## POST /api/agents/signup

Full OpenAPI specification: https://recoupable.dev/docs/spec/accounts.json

## Authentication

This operation's specification permits a request without authentication.

[Authentication guide](https://recoupable.dev/docs/authentication)

## Operation and referenced schemas

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Recoup API - Accounts",
    "description": "API documentation for the Recoup platform - an AI agent platform for the music industry",
    "license": {
      "name": "MIT"
    },
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.recoupable.dev"
    }
  ],
  "paths": {
    "/api/agents/signup": {
      "post": {
        "description": "Register an agent. For new agent+ emails, returns an API key immediately. For all other cases, sends a verification code to the email — call [POST /api/agents/verify](/api-reference/agents/verify) with the code to get your API key.\n\n**Tip:** If you're unsure what email to register, generate a unique `agent+{suffix}@recoupable.com` address (e.g. `agent+1744410896-28439@recoupable.com`, combining a Unix timestamp with a random integer). This guarantees a fresh `agent+` address on every call — including multiple signups within the same second — and returns an API key instantly with no email verification required.",
        "security": [],
        "requestBody": {
          "description": "Agent email to register",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentSignupRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Signup processed successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentSignupResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AgentSignupRequest": {
        "type": "object",
        "required": [
          "email"
        ],
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "description": "The agent email address. Emails with the agent+ prefix (e.g. agent+mybot@example.com) get an API key immediately on first signup.",
            "example": "agent+mybot@example.com"
          }
        }
      },
      "AgentSignupResponse": {
        "type": "object",
        "required": [
          "account_id",
          "message"
        ],
        "properties": {
          "account_id": {
            "type": "string",
            "format": "uuid",
            "description": "The account ID for the registered agent.",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "api_key": {
            "type": [
              "string",
              "null"
            ],
            "description": "API key returned immediately for new agent+ prefix emails. Null for all other cases — check your email for a verification code.",
            "example": "recoup_sk_abc123..."
          },
          "message": {
            "type": "string",
            "description": "Human-readable status message.",
            "example": "If this is a new agent+ email, your API key is included. Otherwise, check your email for a verification code."
          }
        }
      }
    }
  }
}
```
