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

# Register via bot signup

`POST /bot_signup`

## Request

- Base URL: `https://api.telnyx.com/v2`
- URL: `https://api.telnyx.com/v2/bot_signup`
- Auth: none required

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

- **2026-10-27** `bde12fcc62e5`: 1 info
  - endpoint added

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

---

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