---
title: "Sign up with a beta access code. No auth, no form, no human step."
method: POST
path: "/v1/accounts"
tags: ["accounts"]
---

# Sign up with a beta access code. No auth, no form, no human step.

`POST /v1/accounts`

## Request

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

Create an account and get an API key with free credits. Needs a beta access code as
`access_code` (403 access_code_required without one, 403 invalid_access_code for one
that does not work; ask at hookdetector.com/access). The key in this response
is the only copy that will ever exist: store it, then send it as
`Authorization: Bearer hd_...` on every other call. Signups are limited per address per
hour (an IPv6 caller per /64), and so are wrong codes; the X-RateLimit headers say
where you stand. Free. MCP: create_account.

## Request body

- SignupIn
  - `label` string, nullable: your own note, to tell accounts apart
  - `access_code` string, nullable: your beta access code, HD-XXXX-XXXX (case and dashes do not matter). Required: without it the answer is 403 access_code_required. Ask for one at hookdetector.com/access.

## Response `201`

Successful Response

- SignupOut
  - `account_id` string, required
  - `api_key` string, required: the only copy there will ever be; store it now
  - `credits` integer, required
  - `created_at` string, required
  - `message` string, required
  - `next` string, required

## Other responses

- `403`: no access code (access_code_required), or one that does not work (invalid_access_code): mistyped, used up, expired or revoked, one answer for all
- `413`: request body over the size cap
- `422`: invalid input
- `429`: rate limited; see Retry-After
- `500`: our fault; names the request id

---

[API](https://skmtc.dev/hookdetector/apis/hook-detector.md) · [All operations](https://skmtc.dev/hookdetector/apis/hook-detector/llms.txt) · [OpenAPI document](https://skmtc.dev/hookdetector/apis/hook-detector/revisions/b136a2804d2b?raw)
