getting-started/telnyx-bot-signup/SKILL.md
Automated Telnyx bot account signup via challenge-response
npx skillsauth add team-telnyx/telnyx-toolkit telnyx-bot-signupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create a new Telnyx bot account via the challenge-response signup flow. Walks through challenge solving, account creation, email verification, and API key generation.
Base URL: https://api.telnyx.com
The bot challenge (sometimes called "reverse-CAPTCHA") presents a problem that only an LLM can reliably solve. The response includes a challenge_type field indicating which type was served. The challenge could be a math problem (which may or may not be obfuscated) or a completely different type of challenge. Read the problem text and challenge_type to determine the solving approach.
curl -s -X POST https://api.telnyx.com/v2/bot_challenge
Optional model metadata:
You may self-report your model's metadata by sending a JSON body with any or all of these fields:
curl -s -X POST https://api.telnyx.com/v2/bot_challenge \
-H "Content-Type: application/json" \
-d '{
"llm_model_name": "<your model name>",
"llm_parameter_count": "<parameter count>",
"llm_quantization": "<quantization format>"
}'
These fields are optional and purely for analytics. Only include them if:
If you'd prefer not to share, simply omit them — the request works without a body.
Response (math challenge):
{
"data": {
"nonce": "<uuid>",
"problem": "<may be obfuscated math text> Round to N decimal places. Omit units.",
"challenge_type": "math",
"terms_and_conditions_url": "<url>",
"privacy_policy_url": "<url>"
}
}
Response (non-math challenge):
{
"data": {
"nonce": "<uuid>",
"problem": "<problem text — no rounding instruction>",
"challenge_type": "<challenge_type>",
"terms_and_conditions_url": "<url>",
"privacy_policy_url": "<url>"
}
}
Save all fields. The nonce ties your answer to this specific challenge instance.
Read the problem text and challenge_type field to determine what's being asked. The challenge could be a math problem or a completely different type of challenge.
If it's a math problem (challenge_type: "math"):
Round to N decimal places. Omit units.) is always unobfuscatedFor other challenge types:
No external solver is needed — the LLM agent does this step with reasoning alone.
Ask the user for their email address first.
curl -s -X POST https://api.telnyx.com/v2/bot_signup \
-H "Content-Type: application/json" \
-d '{
"bot_challenge_nonce": "<nonce from step 1>",
"bot_challenge_answer": "<answer from step 2>",
"terms_and_conditions_url": "<from step 1>",
"privacy_policy_url": "<from step 1>",
"email": "<user email>",
"terms_of_service": true
}'
Note: You must accept the terms of service to register with Telnyx. You must indicate this acceptance by supplying
"terms_of_service": trueas a parameter on the request. The API will reject the request with a400 Bad Requestif this field is missing or set to any value other thantrue.
Response: A sign-in link is sent to the provided email.
Wait 10–30 seconds for the verification email.
Search for subject "Your Single Use Telnyx Portal sign-in link", extract the single-use URL:
curl -s -L "<single-use-link>"
The redirect provides a temporary session token.
Ask the user to paste the sign-in link from their email (do not click it — single-use):
curl -s -L "<link-from-user>"
curl -s -X POST https://api.telnyx.com/v2/bot_signup/resend_magic_link \
-H "Content-Type: application/json" \
-d '{"email": "<user email>"}'
Max 3 resends, 60s cooldown. Always returns 200.
curl -s -X POST https://api.telnyx.com/v2/api_keys \
-H "Authorization: Bearer <session-token>" \
-H "Content-Type: application/json" \
-d '{}'
Response:
{
"data": {
"api_key": "KEYxxxxxxxxxxxxx",
...
}
}
data.api_key is the permanent API key. Present to the user.
challenge_type field in the response to determine the solving approach.llm_model_name, llm_parameter_count, llm_quantization) are optional on the challenge request. Include them if you know the values and are comfortable sharing — otherwise omit them entirely.tools
Build cross-platform VoIP calling apps with React Native using Telnyx Voice SDK. High-level reactive API with automatic lifecycle management, CallKit/ConnectionService integration, and push notifications. Use for mobile VoIP apps with minimal setup.
tools
Build browser-based VoIP calling apps using Telnyx WebRTC JavaScript SDK. Covers authentication, voice calls, events, debugging, call quality metrics, and AI Agent integration. Use for web-based real-time communication.
tools
Build VoIP calling apps on iOS using Telnyx WebRTC SDK. Covers authentication, making/receiving calls, CallKit integration, PushKit/APNS push notifications, call quality metrics, and AI Agent integration. Use when implementing real-time voice communication on iOS.
tools
Build cross-platform VoIP calling apps with Flutter using Telnyx WebRTC SDK. Covers authentication, making/receiving calls, push notifications (FCM + APNS), call quality metrics, and AI Agent integration. Works on Android, iOS, and Web.