Source profileQuality 83/100

team-telnyx/ai/skills/telnyx-ai-assistants-curl/SKILL.md

telnyx-ai-assistants-curl

AI voice assistants with custom instructions, knowledge bases, and tool integrations.

Source repository stars
201
Declared platforms
0
Static risk flags
1
Last source update
2026-08-04
Source checked
2026-08-04

Decision brief

What it does—and where it fits

AI voice assistants with custom instructions, knowledge bases, and tool integrations.

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/team-telnyx/ai --skill "skills/telnyx-ai-assistants-curl"
    Safe inspection promptEditorial

    Inspect the Agent Skill "telnyx-ai-assistants-curl" from https://github.com/team-telnyx/ai/blob/50f446de5b77867ff751d1a2e65e4c54ba692278/skills/telnyx-ai-assistants-curl/SKILL.md at commit 50f446de5b77867ff751d1a2e65e4c54ba692278. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Setup

      All examples below use $TELNYXAPIKEY for authentication.

      All examples below use $TELNYXAPIKEY for authentication.
    2. 02

      Installation

      Review the “Installation” section in the pinned source before continuing.

      Review and apply the “Installation” source section.
    3. 03

      curl is pre-installed on macOS, Linux, and Windows 10+

      bash export TELNYXAPIKEY="YOURAPIKEYHERE" bash curl \ -X POST \ -H "Authorization: Bearer $TELNYXAPIKEY" \ -H "Content-Type: application/json" \ -d '{ "name": "my-resource", "instructions": "You are a helpful assistant.", "model": "openai/gpt-4o" }' \ "https://api.telnyx.com/v2/…

      items: .datapagination: .metastatus
    4. 04

      Error Handling

      All API calls can fail with network errors, rate limits (429), validation errors (422), or authentication errors (401). Always handle errors in production code:

      All API calls can fail with network errors, rate limits (429), validation errors (422), or authentication errors (401). Always handle errors in production code:Common error codes: 401 invalid API key, 403 insufficient permissions, 404 resource not found, 422 validation error (check field formats), 429 rate limited (retry with exponential backoff).
    5. 05

      Important Notes

      Phone numbers must be in E.164 format (e.g., +13125550001). Include the + prefix and country code. No spaces, dashes, or parentheses.

      Phone numbers must be in E.164 format (e.g., +13125550001). Include the + prefix and country code. No spaces, dashes, or parentheses.Pagination: List endpoints return paginated results. Use page[number] and page[size] query parameters to navigate pages. Check meta.totalpages in the response.- Phone numbers must be in E.164 format (e.g., +13125550001). Include the + prefix and country code. No spaces, dashes, or parentheses. - Pagination: List endpoints return paginated results. Use page[number] and page[si…

    Permission review

    Static risk signals and limitations

    Network access

    medium · line 9

    The documentation includes network, browsing, or remote request actions.

    # curl is pre-installed on macOS, Linux, and Windows 10+

    Network access

    medium · line 26

    The documentation includes network, browsing, or remote request actions.

    curl \

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score83/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars201SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    team-telnyx/ai
    Skill path
    skills/telnyx-ai-assistants-curl/SKILL.md
    Commit
    50f446de5b77867ff751d1a2e65e4c54ba692278
    License
    MIT
    Collected
    2026-08-04
    Default branch
    main
    View the original SKILL.md

    Telnyx AI Assistants - curl

    Installation

    # curl is pre-installed on macOS, Linux, and Windows 10+
    

    Setup

    export TELNYX_API_KEY="YOUR_API_KEY_HERE"
    

    All examples below use $TELNYX_API_KEY for authentication.

    Error Handling

    All API calls can fail with network errors, rate limits (429), validation errors (422), or authentication errors (401). Always handle errors in production code:

    curl \
      -X POST \
      -H "Authorization: Bearer $TELNYX_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
          "name": "my-resource",
          "instructions": "You are a helpful assistant.",
          "model": "openai/gpt-4o"
      }' \
      "https://api.telnyx.com/v2/ai/assistants"
    

    Common error codes: 401 invalid API key, 403 insufficient permissions, 404 resource not found, 422 validation error (check field formats), 429 rate limited (retry with exponential backoff).

    Important Notes

    • Phone numbers must be in E.164 format (e.g., +13125550001). Include the + prefix and country code. No spaces, dashes, or parentheses.
    • Pagination: List endpoints return paginated results. Use page[number] and page[size] query parameters to navigate pages. Check meta.total_pages in the response.

    Reference Use Rules

    Do not invent Telnyx parameters, enums, response fields, or webhook fields.

    Core Tasks

    Create an assistant

    Assistant creation is the entrypoint for any AI assistant integration. Agents need the exact creation method and the top-level fields returned by the SDK.

    POST /ai/assistants

    ParameterTypeRequiredDescription
    namestringYes
    instructionsstringYesSystem instructions for the assistant.
    tagsarray[string]NoTags associated with the assistant.
    modelstringNoID of the model to use when external_llm is not set.
    toolsarray[object]NoDeprecated for new integrations.
    ...+23 optional params in references/api-details.md
    curl \
      -X POST \
      -H "Authorization: Bearer $TELNYX_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
          "name": "my-resource",
          "instructions": "You are a helpful assistant.",
          "model": "openai/gpt-4o"
      }' \
      "https://api.telnyx.com/v2/ai/assistants"
    

    Primary response fields:

    • .data.id
    • .data.name
    • .data.model
    • .data.instructions
    • .data.created_at
    • .data.conversation_flow

    Chat with an assistant

    Chat is the primary runtime path. Agents need the exact assistant method and the response content field.

    POST /ai/assistants/{assistant_id}/chat

    ParameterTypeRequiredDescription
    contentstringYesThe message content sent by the client to the assistant
    conversation_idstring (UUID)YesA unique identifier for the conversation thread, used to mai...
    assistant_idstring (UUID)YesUnique identifier of the assistant.
    namestringNoThe optional display name of the user sending the message
    curl \
      -X POST \
      -H "Authorization: Bearer $TELNYX_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
      "content": "Tell me a joke about cats",
      "conversation_id": "42b20469-1215-4a9a-8964-c36f66b406f4"
    }' \
      "https://api.telnyx.com/v2/ai/assistants/550e8400-e29b-41d4-a716-446655440000/chat"
    

    Primary response fields:

    • .data.content

    Create an assistant test

    Test creation is the main validation path for production assistant behavior before deployment.

    POST /ai/assistants/tests

    ParameterTypeRequiredDescription
    namestringYesA descriptive name for the assistant test.
    destinationstringYesThe target destination for the test conversation.
    instructionsstringYesDetailed instructions that define the test scenario and what...
    rubricarray[object]YesEvaluation criteria used to assess the assistant's performan...
    descriptionstringNoOptional detailed description of what this test evaluates an...
    telnyx_conversation_channelobjectNoThe communication channel through which the test will be con...
    max_duration_secondsintegerNoMaximum duration in seconds that the test conversation shoul...
    ...+1 optional params in references/api-details.md
    curl \
      -X POST \
      -H "Authorization: Bearer $TELNYX_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
      "name": "Customer Support Bot Test",
      "destination": "+15551234567",
      "instructions": "Act as a frustrated customer who received a damaged product. Ask for a refund and escalate if not satisfied with the initial response.",
      "rubric": [
        {
          "criteria": "Assistant responds within 30 seconds",
          "name": "Response Time"
        },
        {
          "criteria": "Provides correct product information",
          "name": "Accuracy"
        }
      ]
    }' \
      "https://api.telnyx.com/v2/ai/assistants/tests"
    

    Primary response fields:

    • .data.test_id
    • .data.name
    • .data.destination
    • .data.created_at
    • .data.instructions
    • .data.description

    Important Supporting Operations

    Use these when the core tasks above are close to your flow, but you need a common variation or follow-up step.

    Get an assistant

    Fetch the current state before updating, deleting, or making control-flow decisions.

    GET /ai/assistants/{assistant_id}

    ParameterTypeRequiredDescription
    assistant_idstring (UUID)YesUnique identifier of the assistant.
    call_control_idstring (UUID)NoFilter results by call control id.
    fetch_dynamic_variables_from_webhookbooleanNoWhether to fetch dynamic variables from the configured webho...
    fromstring (E.164)NoStart of the filter range.
    ...+1 optional params in references/api-details.md
    curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/ai/assistants/550e8400-e29b-41d4-a716-446655440000"
    

    Primary response fields:

    • .data.id
    • .data.name
    • .data.created_at
    • .data.conversation_flow
    • .data.description
    • .data.dynamic_variables

    Update an assistant

    Create or provision an additional resource when the core tasks do not cover this flow.

    POST /ai/assistants/{assistant_id}

    ParameterTypeRequiredDescription
    assistant_idstring (UUID)YesUnique identifier of the assistant.
    tagsarray[string]NoTags associated with the assistant.
    namestringNo
    modelstringNoID of the model to use when external_llm is not set.
    ...+27 optional params in references/api-details.md
    curl \
      -X POST \
      -H "Authorization: Bearer $TELNYX_API_KEY" \
      -H "Content-Type: application/json" \
      "https://api.telnyx.com/v2/ai/assistants/550e8400-e29b-41d4-a716-446655440000"
    

    Primary response fields:

    • .data.id
    • .data.name
    • .data.created_at
    • .data.conversation_flow
    • .data.description
    • .data.dynamic_variables

    List assistants

    Inspect available resources or choose an existing resource before mutating it.

    GET /ai/assistants

    curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/ai/assistants"
    

    Response wrapper:

    • items: .data

    Primary item fields:

    • id
    • name
    • created_at
    • conversation_flow
    • description
    • dynamic_variables

    Import assistants from external provider

    Import existing assistants from an external provider instead of creating from scratch.

    POST /ai/assistants/import

    ParameterTypeRequiredDescription
    providerenum (elevenlabs, vapi, retell)YesThe external provider to import assistants from.
    api_key_refstringYesIntegration secret pointer that refers to the API key for th...
    import_idsarray[string]NoOptional list of assistant IDs to import from the external p...
    curl \
      -X POST \
      -H "Authorization: Bearer $TELNYX_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
      "provider": "elevenlabs",
      "api_key_ref": "my-openai-key"
    }' \
      "https://api.telnyx.com/v2/ai/assistants/import"
    

    Response wrapper:

    • items: .data

    Primary item fields:

    • id
    • name
    • created_at
    • conversation_flow
    • description
    • dynamic_variables

    Get All Tags

    Inspect available resources or choose an existing resource before mutating it.

    GET /ai/assistants/tags

    curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/ai/assistants/tags"
    

    Primary response fields:

    • .data.tags

    List assistant tests with pagination

    Inspect available resources or choose an existing resource before mutating it.

    GET /ai/assistants/tests

    ParameterTypeRequiredDescription
    test_suitestringNoFilter tests by test suite name
    telnyx_conversation_channelstringNoFilter tests by communication channel (e.g., 'web_chat', 'sm...
    destinationstringNoFilter tests by destination (phone number, webhook URL, etc....
    ...+1 optional params in references/api-details.md
    curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/ai/assistants/tests"
    

    Response wrapper:

    • items: .data
    • pagination: .meta

    Primary item fields:

    • name
    • created_at
    • description
    • destination
    • instructions
    • max_duration_seconds

    Get all test suite names

    Inspect available resources or choose an existing resource before mutating it.

    GET /ai/assistants/tests/test-suites

    curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/ai/assistants/tests/test-suites"
    

    Response wrapper:

    • items: .data

    Primary item fields:

    • data

    Get test suite run history

    Fetch the current state before updating, deleting, or making control-flow decisions.

    GET /ai/assistants/tests/test-suites/{suite_name}/runs

    ParameterTypeRequiredDescription
    suite_namestringYesName of the suite.
    test_suite_run_idstring (UUID)NoFilter runs by specific suite execution batch ID
    statusstringNoFilter runs by execution status (pending, running, completed...
    pageobjectNoConsolidated page parameter (deepObject style).
    curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/ai/assistants/tests/test-suites/{suite_name}/runs"
    

    Response wrapper:

    • items: .data
    • pagination: .meta

    Primary item fields:

    • status
    • created_at
    • updated_at
    • completed_at
    • conversation_id
    • conversation_insights_id

    Additional Operations

    Use the core tasks above first. The operations below are indexed here with exact SDK methods and required params; use references/api-details.md for full optional params, response schemas, and lower-frequency webhook payloads. Before using any operation below, read the optional-parameters section and the response-schemas section so you do not guess missing fields.

    OperationSDK methodEndpointUse whenRequired params
    Trigger test suite executionHTTP onlyPOST /ai/assistants/tests/test-suites/{suite_name}/runsTrigger a follow-up action in an existing workflow rather than creating a new top-level resource.suite_name
    Get assistant test by IDHTTP onlyGET /ai/assistants/tests/{test_id}Fetch the current state before updating, deleting, or making control-flow decisions.test_id
    Update an assistant testHTTP onlyPUT /ai/assistants/tests/{test_id}Modify an existing resource without recreating it.test_id
    Delete an assistant testHTTP onlyDELETE /ai/assistants/tests/{test_id}Remove, detach, or clean up an existing resource.test_id
    Get test run history for a specific testHTTP onlyGET /ai/assistants/tests/{test_id}/runsFetch the current state before updating, deleting, or making control-flow decisions.test_id
    Trigger a manual test runHTTP onlyPOST /ai/assistants/tests/{test_id}/runsTrigger a follow-up action in an existing workflow rather than creating a new top-level resource.test_id
    Get specific test run detailsHTTP onlyGET /ai/assistants/tests/{test_id}/runs/{run_id}Fetch the current state before updating, deleting, or making control-flow decisions.test_id, run_id
    Delete an assistantHTTP onlyDELETE /ai/assistants/{assistant_id}Remove, detach, or clean up an existing resource.assistant_id
    Get Canary DeployHTTP onlyGET /ai/assistants/{assistant_id}/canary-deploysFetch the current state before updating, deleting, or making control-flow decisions.assistant_id
    Create Canary DeployHTTP onlyPOST /ai/assistants/{assistant_id}/canary-deploysCreate or provision an additional resource when the core tasks do not cover this flow.assistant_id
    Update Canary DeployHTTP onlyPUT /ai/assistants/{assistant_id}/canary-deploysModify an existing resource without recreating it.assistant_id
    Delete Canary DeployHTTP onlyDELETE /ai/assistants/{assistant_id}/canary-deploysRemove, detach, or clean up an existing resource.assistant_id
    Assistant Sms ChatHTTP onlyPOST /ai/assistants/{assistant_id}/chat/smsRun assistant chat over SMS instead of direct API chat.from, to, assistant_id
    Clone AssistantHTTP onlyPOST /ai/assistants/{assistant_id}/cloneTrigger a follow-up action in an existing workflow rather than creating a new top-level resource.assistant_id
    Enhance Assistant InstructionsHTTP onlyPOST /ai/assistants/{assistant_id}/instructions/enhanceCreate or provision an additional resource when the core tasks do not cover this flow.assistant_id
    List scheduled eventsHTTP onlyGET /ai/assistants/{assistant_id}/scheduled_eventsFetch the current state before updating, deleting, or making control-flow decisions.assistant_id
    Create a scheduled eventHTTP onlyPOST /ai/assistants/{assistant_id}/scheduled_eventsCreate or provision an additional resource when the core tasks do not cover this flow.telnyx_conversation_channel, telnyx_end_user_target, telnyx_agent_target, scheduled_at_fixed_datetime, +1 more
    Get a scheduled eventHTTP onlyGET /ai/assistants/{assistant_id}/scheduled_events/{event_id}Fetch the current state before updating, deleting, or making control-flow decisions.assistant_id, event_id
    Delete a scheduled eventHTTP onlyDELETE /ai/assistants/{assistant_id}/scheduled_events/{event_id}Remove, detach, or clean up an existing resource.assistant_id, event_id
    Add Assistant TagHTTP onlyPOST /ai/assistants/{assistant_id}/tagsCreate or provision an additional resource when the core tasks do not cover this flow.tag, assistant_id
    Remove Assistant TagHTTP onlyDELETE /ai/assistants/{assistant_id}/tags/{tag}Remove, detach, or clean up an existing resource.assistant_id, tag
    Get assistant texmlHTTP onlyGET /ai/assistants/{assistant_id}/texmlFetch the current state before updating, deleting, or making control-flow decisions.assistant_id
    Add Assistant ToolHTTP onlyPUT /ai/assistants/{assistant_id}/tools/{tool_id}Modify an existing resource without recreating it.assistant_id, tool_id
    Remove Assistant ToolHTTP onlyDELETE /ai/assistants/{assistant_id}/tools/{tool_id}Remove, detach, or clean up an existing resource.assistant_id, tool_id
    Test Assistant ToolHTTP onlyPOST /ai/assistants/{assistant_id}/tools/{tool_id}/testTrigger a follow-up action in an existing workflow rather than creating a new top-level resource.assistant_id, tool_id
    Get all versions of an assistantHTTP onlyGET /ai/assistants/{assistant_id}/versionsFetch the current state before updating, deleting, or making control-flow decisions.assistant_id
    Get a specific assistant versionHTTP onlyGET /ai/assistants/{assistant_id}/versions/{version_id}Fetch the current state before updating, deleting, or making control-flow decisions.assistant_id, version_id
    Update a specific assistant versionHTTP onlyPOST /ai/assistants/{assistant_id}/versions/{version_id}Create or provision an additional resource when the core tasks do not cover this flow.assistant_id, version_id
    Delete a specific assistant versionHTTP onlyDELETE /ai/assistants/{assistant_id}/versions/{version_id}Remove, detach, or clean up an existing resource.assistant_id, version_id
    Promote an assistant version to mainHTTP onlyPOST /ai/assistants/{assistant_id}/versions/{version_id}/promoteTrigger a follow-up action in an existing workflow rather than creating a new top-level resource.assistant_id, version_id
    List MCP ServersHTTP onlyGET /ai/mcp_serversInspect available resources or choose an existing resource before mutating it.None
    Create MCP ServerHTTP onlyPOST /ai/mcp_serversCreate or provision an additional resource when the core tasks do not cover this flow.name, type, url
    Get MCP ServerHTTP onlyGET /ai/mcp_servers/{mcp_server_id}Fetch the current state before updating, deleting, or making control-flow decisions.mcp_server_id
    Update MCP ServerHTTP onlyPUT /ai/mcp_servers/{mcp_server_id}Modify an existing resource without recreating it.mcp_server_id
    Delete MCP ServerHTTP onlyDELETE /ai/mcp_servers/{mcp_server_id}Remove, detach, or clean up an existing resource.mcp_server_id
    List ToolsHTTP onlyGET /ai/toolsInspect available resources or choose an existing resource before mutating it.None
    Create ToolHTTP onlyPOST /ai/toolsCreate or provision an additional resource when the core tasks do not cover this flow.type, display_name
    Get ToolHTTP onlyGET /ai/tools/{tool_id}Fetch the current state before updating, deleting, or making control-flow decisions.tool_id
    Update ToolHTTP onlyPATCH /ai/tools/{tool_id}Modify an existing resource without recreating it.tool_id
    Delete ToolHTTP onlyDELETE /ai/tools/{tool_id}Remove, detach, or clean up an existing resource.tool_id

    For exhaustive optional parameters, full response schemas, and complete webhook payloads, see references/api-details.md.

    Alternatives

    Compare before choosing

    Computed 10023,781

    alirezarezvani/claude-skills

    app-store-optimization

    App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

    Computed 1004,922

    dotnet/skills

    migrate-vstest-to-mtp

    Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing

    Computed 984,922

    dotnet/skills

    maui-dependency-injection

    Guidance for configuring dependency injection in .NET MAUI apps — service registration in MauiProgram.cs, lifetime selection (Singleton / Transient / Scoped), constructor injection, Shell navigation auto-resolution, platform-specific registrations, and testability patterns. USE FOR: "dependency injection", "DI setup", "AddSingleton", "AddTransient", "AddScoped", "service registration", "constructor injection", "IServiceProvider", "MauiProgram DI", "register services", "BindingContext injection".

    Computed 983,251

    davepoon/buildwithclaude

    circleci-automation

    Automate CircleCI tasks via Rube MCP (Composio): trigger pipelines, monitor workflows/jobs, retrieve artifacts and test metadata. Always search tools first for current schemas.