---
title: "Register via bot signup"
method: POST
path: "/v2/bot_signup"
tags: ["Bot Signup"]
---

# Register via bot signup

`POST /v2/bot_signup`

Creates a freemium Telnyx account through the agentic signup flow. The request must carry a valid answer to a previously issued bot challenge (`bot_challenge_nonce` and `bot_challenge_answer`), accept the terms of service, and echo the exact terms-and-conditions and privacy-policy URLs returned by the challenge endpoint. When EU consent enforcement is enabled, `terms_of_service_eu` and `terms_and_conditions_eu_url` are also required. On success a one-time sign-in (magic) link is emailed to the address provided; if the email address belongs to an existing account, a sign-in link is sent instead of creating a duplicate account. `email` may only be omitted when placeholder-email registration is enabled server-side. This endpoint is public and unauthenticated, gated by the freemium feature flags and per-country availability, and subject to per-IP and per-domain registration limits.

## Request body

- BotSignupRequest
  - `email` string, email — Email address for the new account. The magic link is sent here. May only be omitted when placeholder-email registration is enabled server-side.
  - `terms_of_service` true, required — Must be true to accept the terms of service.
  - `terms_and_conditions_url` string, required — Must exactly match the terms-and-conditions URL returned by the challenge endpoint.
  - `privacy_policy_url` string, required — Must exactly match the privacy-policy URL returned by the challenge endpoint.
  - `terms_of_service_eu` true — EU terms-of-service acceptance. Required when EU consent enforcement is enabled.
  - `terms_and_conditions_eu_url` string — EU terms-and-conditions URL. Required when EU consent enforcement is enabled.
  - `bot_challenge_nonce` string, uuid, required — Nonce from a previously issued bot challenge.
  - `bot_challenge_answer` string, required — Answer to the issued bot challenge.

## Response `200`

Registration accepted and a magic link emailed.

- SuccessResponse — Status envelope used by the signup and magic-link flows.
  - `success` boolean, required — Whether the request was accepted.
  - `message` string, required — Human-readable status message.

## Other responses

- `400` — Bot challenge parameters missing or verification failed, terms of service not accepted, or terms/privacy URLs missing or not matching the expected values.
- `403` — Registration blocked by security policy (for example, registration from the caller's country is not accepted).
- `404` — Bot signup is not available (freemium master switch disabled or the caller's country is not enabled).
- `422` — Validation failed (for example an invalid email address), or the IP address has reached its bot signup limit.
- `429` — Too many registrations from this email domain.

## Changes

> 99 revisions in range; 1 not diffed.

- **2026-09-16** `a6a61a29ecdd` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/changes/v2/bot_signup/post.md)

---

[API](https://skmtc.dev/team-telnyx/apis/telnyx-api-2.md) · [All operations](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/team-telnyx/apis/telnyx-api-2/revisions/227c33b1ac9c?raw)
