---
title: "Create an account (pending email verification)"
method: POST
path: "/api/v1/signups"
tags: ["Signups"]
---

# Create an account (pending email verification)

`POST /api/v1/signups`

## Request

- Base URL: `https://volunteerreminder.com`
- URL: `https://volunteerreminder.com/api/v1/signups`
- Auth: none required

Public, unauthenticated. Creates an inert trial account for the supplied email and sends the owner a verification link — no API key is returned. The human must click the link to activate; agent-created accounts start with reminders in the safe test posture and can never reach real volunteers until a human turns live sending on from the dashboard. Idempotent on a repeat email (same response, no second account) and heavily rate-limited.

## Request body

- SignupRequest
  - `email` string, email, required: The account owner's email address. The verification/sign-in link is sent here; only the person who controls this inbox can activate the account. Required.
  - `organization_name` string: Display name for the organization (becomes the account name). Optional — defaults to a placeholder the owner can rename after verifying. The account timezone defaults to America/Chicago and is editable later.

## Response `200`

The account exists (created now, or already present) and a verification email was sent. No credential is returned.

- SignupResponse
  - `account_id` integer, required: The id of the account for this email — the one just created, or the existing account if the email was already registered (the response is identical either way). The account is INERT until a human verifies via the emailed link: no reminders send and no API key exists yet.
  - `verification` 'email_sent', required: Always "email_sent". A single-use link was emailed to the address; the account owner must click it to activate the account. Nothing further can happen through the API until they do.
  - `api_key` unknown, required

## Other responses

- `400`: The request failed schema validation (`validation_error`). On the import endpoints, also when the text is UTF-16 (Excel "Unicode Text"; `unsupported_encoding`): resend it as CSV UTF-8.
- `429`: Too many signup attempts from this client. Back off and retry after a short wait.

---

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