> ## Documentation Index
> Fetch the complete documentation index at: https://developers.telnyx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Issue a 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.



## OpenAPI

````yaml /openapi/source/external/signup/bot-signup.json post /v2/bot_challenge
openapi: 3.0.0
info:
  version: 1.0.0
  title: Bot Signup API
  contact:
    email: mission.control.squad@telnyx.com
servers:
  - url: https://api.telnyx.com
security: []
tags:
  - name: Bot Signup
    description: >-
      Agentic (bot) signup for Telnyx accounts. An AI agent solves a
      reverse-CAPTCHA challenge designed to be easy for LLMs and hard for
      humans, registers an account, and signs in by consuming a magic link
      emailed to the account owner. All endpoints are public and
      unauthenticated; signup endpoints are additionally gated by the freemium
      feature flags and per-country availability.
paths:
  /v2/bot_challenge:
    post:
      tags:
        - Bot Signup
      summary: Issue a bot challenge
      description: >-
        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.
      operationId: createBotChallenge
      requestBody:
        required: false
        description: >-
          Optional self-reported metadata about the LLM solving the challenge.
          Used for analytics only; it does not influence which problem is
          served.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BotChallengeRequest'
            example:
              llm_model_name: claude-opus-4
              llm_parameter_count: 175B
              llm_quantization: int8
      responses:
        '201':
          description: Challenge issued.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BotChallengeResponse'
              example:
                data:
                  nonce: c6feda4e-6501-4db9-a21f-665e5b4ce2ba
                  problem: >-
                    W#hAt iS f!Ve tImEs sEvEn? Round to 0 decimal places. Omit
                    units.
                  challenge_type: math
                  precision: 0
                  terms_and_conditions_url: https://telnyx.com/terms-and-conditions-of-service
                  privacy_policy_url: https://telnyx.com/privacy-policy
        '400':
          description: The JSON request body could not be parsed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                errors:
                  - detail: >-
                      There was a problem in the JSON you submitted. Please
                      check your formatting and try again.
        '503':
          description: No bot challenge problems are currently available.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                errors:
                  - detail: No bot challenge problems available
      security: []
components:
  schemas:
    BotChallengeRequest:
      type: object
      description: >-
        Optional self-reported metadata about the LLM solving the challenge.
        Analytics only; values are truncated to 50 characters.
      properties:
        llm_model_name:
          type: string
          description: Name of the LLM the client is using.
          example: claude-opus-4
        llm_parameter_count:
          type: string
          description: Parameter count of the client LLM.
          example: 175B
        llm_quantization:
          type: string
          description: Quantization of the client LLM.
          example: int8
    BotChallengeResponse:
      type: object
      required:
        - data
      properties:
        data:
          type: object
          required:
            - nonce
            - problem
            - challenge_type
            - terms_and_conditions_url
            - privacy_policy_url
          properties:
            nonce:
              type: string
              format: uuid
              description: >-
                Single-use challenge identifier. Submit it as
                `bot_challenge_nonce` on the signup request.
              example: c6feda4e-6501-4db9-a21f-665e5b4ce2ba
            problem:
              type: string
              description: >-
                Problem text to solve. Math problems are obfuscated and end with
                an unobfuscated rounding instruction; string and binary problems
                are returned as-is.
              example: >-
                W#hAt iS f!Ve tImEs sEvEn? Round to 0 decimal places. Omit
                units.
            challenge_type:
              type: string
              description: Type of challenge.
              enum:
                - math
                - string
                - binary
              example: math
            precision:
              type: integer
              description: >-
                Decimal places expected in the answer. Present only for math
                challenges.
              example: 0
            terms_and_conditions_url:
              type: string
              description: >-
                Current terms-and-conditions URL. Echo this back on the signup
                request.
              example: https://telnyx.com/terms-and-conditions-of-service
            privacy_policy_url:
              type: string
              description: >-
                Current privacy-policy URL. Echo this back on the signup
                request.
              example: https://telnyx.com/privacy-policy
    ErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
      required:
        - errors
    Error:
      type: object
      description: >-
        API error. General errors carry only `detail`; structured errors also
        include `code`, `title`, `source`, and `meta`.
      properties:
        code:
          type: string
          description: Machine-readable Telnyx error code.
          example: '10005'
        title:
          type: string
          description: Short human-readable summary.
          example: Resource not found
        detail:
          type: string
          description: Human-readable explanation of the error.
          example: The requested resource or URL could not be found.
        source:
          type: object
          properties:
            pointer:
              type: string
              description: JSON pointer to the offending attribute.
              example: /
        meta:
          type: object
          properties:
            url:
              type: string
              description: Link to the error documentation.
              example: https://developers.telnyx.com/docs/overview/errors/10005
      required:
        - detail

````