SKILL.md
<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->
Telnyx Messaging Profiles - 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 $TELNYXAPIKEY 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:
# Check HTTP status code in response
response=$(curl -s -w "\n%{http_code}" \
-X POST "https://api.telnyx.com/v2/messages" \
-H "Authorization: Bearer $TELNYX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"to": "+13125550001", "from": "+13125550002", "text": "Hello"}')
http_code=$(echo "$response" | tail -1)
body=$(echo "$response" | sed '$d')
case $http_code in
2*) echo "Success: $body" ;;
422) echo "Validation error — check required fields and formats" ;;
429) echo "Rate limited — retry after delay"; sleep 1 ;;
401) echo "Authentication failed — check TELNYX_API_KEY" ;;
*) echo "Error $http_code: $body" ;;
esac
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
- Pagination: List endpoints return paginated results. Use
page[number]andpage[size]query parameters to navigate pages. Checkmeta.total_pagesin the response.
List messaging profiles
GET /messaging_profiles
curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/messaging_profiles"
Returns: aiassistantid (string | null), alphasender (string | null), createdat (date-time), dailyspendlimit (string), dailyspendlimitenabled (boolean), enabled (boolean), healthwebhookurl (url), id (uuid), mmsfallbacktosms (boolean), mmstranscoding (boolean), mobileonly (boolean), name (string), numberpoolsettings (object | null), organizationid (string), recordtype (enum: messagingprofile), redactionenabled (boolean), redactionlevel (integer), resourcegroupid (string | null), smartencoding (boolean), updatedat (date-time), urlshortenersettings (object | null), v1secret (string), webhookapiversion (enum: 1, 2, 2010-04-01), webhookfailoverurl (url), webhookurl (url), whitelisted_destinations (array[string])
Create a messaging profile
POST /messagingprofiles — Required: name, whitelisteddestinations
Optional: aiassistantid (string | null), alphasender (string | null), dailyspendlimit (string), dailyspendlimitenabled (boolean), enabled (boolean), healthwebhookurl (url), mmsfallbacktosms (boolean), mmstranscoding (boolean), mobileonly (boolean), numberpoolsettings (object | null), resourcegroupid (string | null), smartencoding (boolean), urlshortenersettings (object | null), webhookapiversion (enum: 1, 2, 2010-04-01), webhookfailoverurl (url), webhookurl (url)
curl \
-X POST \
-H "Authorization: Bearer $TELNYX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "my-resource",
"whitelisted_destinations": [
"US"
]
}' \
"https://api.telnyx.com/v2/messaging_profiles"
Returns: aiassistantid (string | null), alphasender (string | null), createdat (date-time), dailyspendlimit (string), dailyspendlimitenabled (boolean), enabled (boolean), healthwebhookurl (url), id (uuid), mmsfallbacktosms (boolean), mmstranscoding (boolean), mobileonly (boolean), name (string), numberpoolsettings (object | null), organizationid (string), recordtype (enum: messagingprofile), redactionenabled (boolean), redactionlevel (integer), resourcegroupid (string | null), smartencoding (boolean), updatedat (date-time), urlshortenersettings (object | null), v1secret (string), webhookapiversion (enum: 1, 2, 2010-04-01), webhookfailoverurl (url), webhookurl (url), whitelisted_destinations (array[string])
Retrieve a messaging profile
GET /messaging_profiles/{id}
curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/messaging_profiles/550e8400-e29b-41d4-a716-446655440000"
Returns: aiassistantid (string | null), alphasender (string | null), createdat (date-time), dailyspendlimit (string), dailyspendlimitenabled (boolean), enabled (boolean), healthwebhookurl (url), id (uuid), mmsfallbacktosms (boolean), mmstranscoding (boolean), mobileonly (boolean), name (string), numberpoolsettings (object | null), organizationid (string), recordtype (enum: messagingprofile), redactionenabled (boolean), redactionlevel (integer), resourcegroupid (string | null), smartencoding (boolean), updatedat (date-time), urlshortenersettings (object | null), v1secret (string), webhookapiversion (enum: 1, 2, 2010-04-01), webhookfailoverurl (url), webhookurl (url), whitelisted_destinations (array[string])
Update a messaging profile
PATCH /messaging_profiles/{id}
Optional: aiassistantid (string | null), alphasender (string | null), createdat (date-time), dailyspendlimit (string), dailyspendlimitenabled (boolean), enabled (boolean), id (uuid), mmsfallbacktosms (boolean), mmstranscoding (boolean), mobileonly (boolean), name (string), numberpoolsettings (object | null), recordtype (enum: messagingprofile), smartencoding (boolean), updatedat (date-time), urlshortenersettings (object | null), v1secret (string), webhookapiversion (enum: 1, 2, 2010-04-01), webhookfailoverurl (url), webhookurl (url), whitelisteddestinations (array[string])
curl \
-X PATCH \
-H "Authorization: Bearer $TELNYX_API_KEY" \
-H "Content-Type: application/json" \
"https://api.telnyx.com/v2/messaging_profiles/550e8400-e29b-41d4-a716-446655440000"
Returns: aiassistantid (string | null), alphasender (string | null), createdat (date-time), dailyspendlimit (string), dailyspendlimitenabled (boolean), enabled (boolean), healthwebhookurl (url), id (uuid), mmsfallbacktosms (boolean), mmstranscoding (boolean), mobileonly (boolean), name (string), numberpoolsettings (object | null), organizationid (string), recordtype (enum: messagingprofile), redactionenabled (boolean), redactionlevel (integer), resourcegroupid (string | null), smartencoding (boolean), updatedat (date-time), urlshortenersettings (object | null), v1secret (string), webhookapiversion (enum: 1, 2, 2010-04-01), webhookfailoverurl (url), webhookurl (url), whitelisted_destinations (array[string])
Delete a messaging profile
DELETE /messaging_profiles/{id}
curl \
-X DELETE \
-H "Authorization: Bearer $TELNYX_API_KEY" \
"https://api.telnyx.com/v2/messaging_profiles/550e8400-e29b-41d4-a716-446655440000"
Returns: aiassistantid (string | null), alphasender (string | null), createdat (date-time), dailyspendlimit (string), dailyspendlimitenabled (boolean), enabled (boolean), healthwebhookurl (url), id (uuid), mmsfallbacktosms (boolean), mmstranscoding (boolean), mobileonly (boolean), name (string), numberpoolsettings (object | null), organizationid (string), recordtype (enum: messagingprofile), redactionenabled (boolean), redactionlevel (integer), resourcegroupid (string | null), smartencoding (boolean), updatedat (date-time), urlshortenersettings (object | null), v1secret (string), webhookapiversion (enum: 1, 2, 2010-04-01), webhookfailoverurl (url), webhookurl (url), whitelisted_destinations (array[string])
List phone numbers associated with a messaging profile
GET /messagingprofiles/{id}/phonenumbers
curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/messaging_profiles/550e8400-e29b-41d4-a716-446655440000/phone_numbers"
Returns: countrycode (string), createdat (date-time), eligiblemessagingproducts (array[string]), features (object), health (object), id (string), messagingproduct (string), messagingprofileid (string | null), organizationid (string), phonenumber (string), recordtype (enum: messagingphonenumber, messagingsettings), tags (array[string]), traffictype (string), type (enum: long-code, toll-free, short-code, longcode, tollfree, shortcode), updated_at (date-time)
List short codes associated with a messaging profile
GET /messagingprofiles/{id}/shortcodes
curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/messaging_profiles/550e8400-e29b-41d4-a716-446655440000/short_codes"
Returns: countrycode (string), createdat (date-time), id (uuid), messagingprofileid (string | null), recordtype (enum: shortcode), shortcode (string), tags (array), updatedat (date-time)
List short codes
GET /short_codes
curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/short_codes"
Returns: countrycode (string), createdat (date-time), id (uuid), messagingprofileid (string | null), recordtype (enum: shortcode), shortcode (string), tags (array), updatedat (date-time)
Retrieve a short code
GET /short_codes/{id}
curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/short_codes/550e8400-e29b-41d4-a716-446655440000"
Returns: countrycode (string), createdat (date-time), id (uuid), messagingprofileid (string | null), recordtype (enum: shortcode), shortcode (string), tags (array), updatedat (date-time)
Update short code
Update the settings for a specific short code. To unbind a short code from a profile, set the messagingprofileid to null or an empty string. To add or update tags, include the tags field as an array of strings.
PATCH /shortcodes/{id} — Required: messagingprofile_id
Optional: tags (array)
curl \
-X PATCH \
-H "Authorization: Bearer $TELNYX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"messaging_profile_id": "550e8400-e29b-41d4-a716-446655440000"
}' \
"https://api.telnyx.com/v2/short_codes/550e8400-e29b-41d4-a716-446655440000"
Returns: countrycode (string), createdat (date-time), id (uuid), messagingprofileid (string | null), recordtype (enum: shortcode), shortcode (string), tags (array), updatedat (date-time)