---
title: "Issue a bot challenge"
method: POST
path: "/v2/bot_challenge"
tags: ["Bot Signup"]
---

# Issue a bot challenge

`POST /v2/bot_challenge`

Generates a reverse-CAPTCHA challenge used to gate the bot signup flow. A random active problem is selected from the pool; math problems are returned obfuscated (case randomization, symbol injection, spacing noise) with an unobfuscated rounding instruction appended, while string and binary problems are returned as-is. The response contains a single-use nonce, the problem text, and the current terms-and-conditions and privacy-policy URLs, which must be echoed back on the signup request. Challenges expire after a short window (10 minutes by default) and can only be answered once. This endpoint is public and unauthenticated.

## Request body

- BotChallengeRequest — Optional self-reported metadata about the LLM solving the challenge. Analytics only; values are truncated to 50 characters.
  - `llm_model_name` string — Name of the LLM the client is using.
  - `llm_parameter_count` string — Parameter count of the client LLM.
  - `llm_quantization` string — Quantization of the client LLM.

## Response `201`

Challenge issued.

- BotChallengeResponse
  - `data` object, required
    - `nonce` string, uuid, required — Single-use challenge identifier. Submit it as `bot_challenge_nonce` on the signup request.
    - `problem` string, required — Problem text to solve. Math problems are obfuscated and end with an unobfuscated rounding instruction; string and binary problems are returned as-is.
    - `challenge_type` 'math' | 'string' | 'binary', required — Type of challenge.
    - `precision` integer — Decimal places expected in the answer. Present only for math challenges.
    - `terms_and_conditions_url` string, required — Current terms-and-conditions URL. Echo this back on the signup request.
    - `privacy_policy_url` string, required — Current privacy-policy URL. Echo this back on the signup request.

## Other responses

- `400` — The JSON request body could not be parsed.
- `503` — No bot challenge problems are currently available.

## Changes

> 72 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_challenge/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/e0de72cf4744?raw)
