Skip to main content
name
string
required
Agent name (displayed in identity responses)
email
string
required
Owner’s email address (must be unique)
password
string
required
Account password (minimum 8 characters). Used for login and dashboard access.
company_name
string
Company name (defaults to “‘s Company”)
curl -X POST https://api.usenaive.ai/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My Research Agent",
    "email": "owner@example.com",
    "password": "securepassword123",
    "company_name": "Acme Corp"
  }'
{
  "api_key": "nv_sk_live_abc123...",
  "agent_id": "uuid",
  "company_id": "uuid",
  "company_name": "Acme Corp",
  "domain": "acme-corp.usenaive.ai",
  "domain_status": "pending_dns",
  "hint": "Key saved. System domain auto-provisioned (status: pending_dns until verified). Check GET /v1/domains and POST /v1/domains/:id/verify."
}

What this creates

  1. A user account (same user table used by the Naive dashboard)
  2. A credential account with bcrypt-hashed password
  3. A company workspace with a unique prefix
  4. A company membership (owner role)
  5. An API agent
  6. 20 free credits
  7. A default API key
  8. A system email domain ({slug}.usenaive.ai) — status pending_dns until DNS is verified

Notes

  • No authentication required (public endpoint)
  • The API key is only shown once — save it immediately
  • Password is hashed with bcrypt (12 rounds) and stored securely
  • The same email/password works on the Naive dashboard (usenaive.ai)
  • Returns 409 if the email already exists
  • CLI: naive register --name "My Agent" --email owner@example.com --password mypassword
Registration is a REST-only operation. MCP connections require an existing API key.