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

# Register via 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.



## OpenAPI

````yaml /openapi/source/external/signup/bot-signup.json post /v2/bot_signup
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_signup:
    post:
      tags:
        - Bot Signup
      summary: Register via bot signup
      description: >-
        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.
      operationId: createBotSignup
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BotSignupRequest'
            example:
              email: agent-owner@example.com
              terms_of_service: true
              terms_and_conditions_url: https://telnyx.com/terms-and-conditions-of-service
              privacy_policy_url: https://telnyx.com/privacy-policy
              bot_challenge_nonce: c6feda4e-6501-4db9-a21f-665e5b4ce2ba
              bot_challenge_answer: '35'
      responses:
        '200':
          description: Registration accepted and a magic link emailed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
              example:
                success: true
                message: A one-time sign-in link has been sent to your email address.
        '400':
          description: >-
            Bot challenge parameters missing or verification failed, terms of
            service not accepted, or terms/privacy URLs missing or not matching
            the expected values.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                errors:
                  - detail: Bot challenge parameters are required
        '403':
          description: >-
            Registration blocked by security policy (for example, registration
            from the caller's country is not accepted).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                errors:
                  - detail: >-
                      Your registration cannot be accepted as it does not comply
                      with our security standards. You may contact support for
                      assistance.
        '404':
          description: >-
            Bot signup is not available (freemium master switch disabled or the
            caller's country is not enabled).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                errors:
                  - code: '10005'
                    title: Resource not found
                    detail: The requested resource or URL could not be found.
                    source:
                      pointer: /
                    meta:
                      url: https://developers.telnyx.com/docs/overview/errors/10005
        '422':
          description: >-
            Validation failed (for example an invalid email address), or the IP
            address has reached its bot signup limit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                errors:
                  - code: '10027'
                    title: Unprocessable Entity
                    detail: Email is invalid
                    source:
                      pointer: /email
                    meta:
                      url: https://developers.telnyx.com/docs/overview/errors/10027
        '429':
          description: Too many registrations from this email domain.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                errors:
                  - code: '10011'
                    title: Too many requests
                    detail: You have exceeded the maximum number of allowed requests.
                    source:
                      pointer: /
                    meta:
                      url: https://developers.telnyx.com/docs/overview/errors/10011
      security: []
components:
  schemas:
    BotSignupRequest:
      type: object
      properties:
        email:
          type: string
          format: email
          description: >-
            Email address for the new account. The magic link is sent here. May
            only be omitted when placeholder-email registration is enabled
            server-side.
          example: agent-owner@example.com
        terms_of_service:
          type: boolean
          enum:
            - true
          description: Must be true to accept the terms of service.
          example: true
        terms_and_conditions_url:
          type: string
          description: >-
            Must exactly match the terms-and-conditions URL returned by the
            challenge endpoint.
          example: https://telnyx.com/terms-and-conditions-of-service
        privacy_policy_url:
          type: string
          description: >-
            Must exactly match the privacy-policy URL returned by the challenge
            endpoint.
          example: https://telnyx.com/privacy-policy
        terms_of_service_eu:
          type: boolean
          enum:
            - true
          description: >-
            EU terms-of-service acceptance. Required when EU consent enforcement
            is enabled.
          example: true
        terms_and_conditions_eu_url:
          type: string
          description: >-
            EU terms-and-conditions URL. Required when EU consent enforcement is
            enabled.
          example: https://telnyx.com/terms-and-conditions-of-service-eu
        bot_challenge_nonce:
          type: string
          format: uuid
          description: Nonce from a previously issued bot challenge.
          example: c6feda4e-6501-4db9-a21f-665e5b4ce2ba
        bot_challenge_answer:
          type: string
          description: Answer to the issued bot challenge.
          example: '35'
      required:
        - terms_of_service
        - terms_and_conditions_url
        - privacy_policy_url
        - bot_challenge_nonce
        - bot_challenge_answer
    SuccessResponse:
      type: object
      description: Status envelope used by the signup and magic-link flows.
      required:
        - success
        - message
      properties:
        success:
          type: boolean
          description: Whether the request was accepted.
          example: true
        message:
          type: string
          description: Human-readable status message.
          example: A one-time sign-in link has been sent to your email address.
    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

````