SKILL.md
<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->
Telnyx Numbers - 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:
curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/available_phone_numbers"
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]andpage[size]query parameters to navigate pages. Checkmeta.total_pagesin the response.
Reference Use Rules
Do not invent Telnyx parameters, enums, response fields, or webhook fields.
- If the parameter, enum, or response field you need is not shown inline in this skill, read [references/api-details.md](references/api-details.md) before writing code.
- Before using any operation in
## Additional Operations, read [the optional-parameters section](references/api-details.md#optional-parameters) and [the response-schemas section](references/api-details.md#response-schemas).
Core Tasks
Search available phone numbers
Number search is the entrypoint for provisioning. Agents need the search method, key query filters, and the fields returned for candidate numbers.
GET /availablephonenumbers
| Parameter | Type | Required | Description |
|---|---|---|---|
filter |
object | No | Consolidated filter parameter (deepObject style). |
curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/available_phone_numbers"
Response wrapper:
- items:
.data - pagination:
.meta
Primary item fields:
phone_numberrecord_typequickshipreservablebest_effortcost_information
Create a number order
Number ordering is the production provisioning step after number selection.
POST /number_orders
| Parameter | Type | Required | Description |
|---|---|---|---|
phone_numbers |
array[object] | Yes | |
connection_id |
string (UUID) | No | Identifies the connection associated with this phone number. |
messagingprofileid |
string (UUID) | No | Identifies the messaging profile associated with the phone n... |
billinggroupid |
string (UUID) | No | Identifies the billing group associated with the phone numbe... |
| ... | +1 optional params in [references/api-details.md](references/api-details.md) |
curl \
-X POST \
-H "Authorization: Bearer $TELNYX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone_numbers": [
{
"phone_number": "+18005550101"
}
]
}' \
"https://api.telnyx.com/v2/number_orders"
Primary response fields:
.data.id.data.status.data.phonenumberscount.data.requirements_met.data.messagingprofileid.data.connection_id
Check number order status
Order status determines whether provisioning completed or additional requirements are still blocking fulfillment.
GET /numberorders/{numberorder_id}
| Parameter | Type | Required | Description |
|---|---|---|---|
numberorderid |
string (UUID) | Yes | The number order ID. |
curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/number_orders/550e8400-e29b-41d4-a716-446655440000"
Primary response fields:
.data.id.data.status.data.requirements_met.data.phonenumberscount.data.phone_numbers.data.connection_id
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.
Create a number reservation
Create or provision an additional resource when the core tasks do not cover this flow.
POST /number_reservations
| Parameter | Type | Required | Description |
|---|---|---|---|
phone_numbers |
array[object] | Yes | |
status |
enum (pending, success, failure) | No | The status of the entire reservation. |
id |
string (UUID) | No | |
record_type |
string | No | |
| ... | +3 optional params in [references/api-details.md](references/api-details.md) |
curl \
-X POST \
-H "Authorization: Bearer $TELNYX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone_numbers": [
{
"phone_number": "+18005550101"
}
]
}' \
"https://api.telnyx.com/v2/number_reservations"
Primary response fields:
.data.id.data.status.data.created_at.data.updated_at.data.customer_reference.data.errors
Retrieve a number reservation
Fetch the current state before updating, deleting, or making control-flow decisions.
GET /numberreservations/{numberreservation_id}
| Parameter | Type | Required | Description |
|---|---|---|---|
numberreservationid |
string (UUID) | Yes | The number reservation ID. |
curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/number_reservations/550e8400-e29b-41d4-a716-446655440000"
Primary response fields:
.data.id.data.status.data.created_at.data.updated_at.data.customer_reference.data.errors
List Advanced Orders
Inspect available resources or choose an existing resource before mutating it.
GET /advanced_orders
curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/advanced_orders"
Response wrapper:
- items:
.data
Primary item fields:
idstatusarea_codecommentscountry_codecustomer_reference
Create Advanced Order
Create or provision an additional resource when the core tasks do not cover this flow.
POST /advanced_orders
| Parameter | Type | Required | Description |
|---|---|---|---|
phonenumbertype |
enum (local, mobile, tollfree, sharedcost, national, ...) | No | |
requirementgroupid |
string (UUID) | No | The ID of the requirement group to associate with this advan... |
country_code |
string (ISO 3166-1 alpha-2) | No | |
| ... | +5 optional params in [references/api-details.md](references/api-details.md) |
curl \
-X POST \
-H "Authorization: Bearer $TELNYX_API_KEY" \
-H "Content-Type: application/json" \
"https://api.telnyx.com/v2/advanced_orders"
Primary response fields:
.data.id.data.status.data.area_code.data.comments.data.country_code.data.customer_reference
Update Advanced Order
Modify an existing resource without recreating it.
PATCH /advancedorders/{advanced-order-id}/requirementgroup
| Parameter | Type | Required | Description |
|---|---|---|---|
advanced-order-id |
string (UUID) | Yes | Unique identifier of the advanced order. |
phonenumbertype |
enum (local, mobile, tollfree, sharedcost, national, ...) | No | |
requirementgroupid |
string (UUID) | No | The ID of the requirement group to associate with this advan... |
country_code |
string (ISO 3166-1 alpha-2) | No | |
| ... | +5 optional params in [references/api-details.md](references/api-details.md) |
curl \
-X PATCH \
-H "Authorization: Bearer $TELNYX_API_KEY" \
-H "Content-Type: application/json" \
"https://api.telnyx.com/v2/advanced_orders/{advanced-order-id}/requirement_group"
Primary response fields:
.data.id.data.status.data.area_code.data.comments.data.country_code.data.customer_reference
Get Advanced Order
Fetch the current state before updating, deleting, or making control-flow decisions.
GET /advancedorders/{orderid}
| Parameter | Type | Required | Description |
|---|---|---|---|
order_id |
string (UUID) | Yes | Unique identifier of the order. |
curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/advanced_orders/{order_id}"
Primary response fields:
.data.id.data.status.data.area_code.data.comments.data.country_code.data.customer_reference
List available phone number blocks
Inspect available resources or choose an existing resource before mutating it.
GET /availablephonenumber_blocks
| Parameter | Type | Required | Description |
|---|---|---|---|
filter |
object | No | Consolidated filter parameter (deepObject style). |
curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/available_phone_number_blocks"
Response wrapper:
- items:
.data - pagination:
.meta
Primary item fields:
phone_numbercost_informationfeaturesrangerecord_typeregion_information
Retrieve all comments
Inspect available resources or choose an existing resource before mutating it.
GET /comments
| Parameter | Type | Required | Description |
|---|---|---|---|
filter |
object | No | Consolidated filter parameter (deepObject style). |
curl -H "Authorization: Bearer $TELNYX_API_KEY" "https://api.telnyx.com/v2/comments"
Response wrapper:
- items:
.data - pagination:
.meta
Primary item fields:
idbodycreated_atupdated_atcommentrecordidcommentrecordtype
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](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](references/api-details.md#optional-parameters) and [the response-schemas section](references/api-details.md#response-schemas) so you do not guess missing fields.
| Operation | SDK method | Endpoint | Use when | Required params |
|---|---|---|---|---|
| Create a comment | HTTP only | POST /comments |
Create or provision an additional resource when the core tasks do not cover this flow. | None |
| Retrieve a comment | HTTP only | GET /comments/{id} |
Fetch the current state before updating, deleting, or making control-flow decisions. | id |
| Mark a comment as read | HTTP only | PATCH /comments/{id}/read |
Modify an existing resource without recreating it. | id |
| Get country coverage | HTTP only | GET /country_coverage |
Inspect available resources or choose an existing resource before mutating it. | None |
| Get coverage for a specific country | HTTP only | GET /countrycoverage/countries/{countrycode} |
Fetch the current state before updating, deleting, or making control-flow decisions. | country_code |
| List customer service records | HTTP only | GET /customerservicerecords |
Inspect available resources or choose an existing resource before mutating it. | None |
| Create a customer service record | HTTP only | POST /customerservicerecords |
Create or provision an additional resource when the core tasks do not cover this flow. | None |
| Verify CSR phone number coverage | HTTP only | POST /customerservicerecords/phonenumbercoverages |
Create or provision an additional resource when the core tasks do not cover this flow. | None |
| Get a customer service record | HTTP only | GET /customerservicerecords/{customerservicerecord_id} |
Fetch the current state before updating, deleting, or making control-flow decisions. | customerservicerecord_id |
| List inexplicit number orders | HTTP only | GET /inexplicitnumberorders |
Inspect available resources or choose an existing resource before mutating it. | None |
| Create an inexplicit number order | HTTP only | POST /inexplicitnumberorders |
Create or provision an additional resource when the core tasks do not cover this flow. | ordering_groups |
| Retrieve an inexplicit number order | HTTP only | GET /inexplicitnumberorders/{id} |
Fetch the current state before updating, deleting, or making control-flow decisions. | id |
| Create an inventory coverage request | HTTP only | GET /inventory_coverage |
Inspect available resources or choose an existing resource before mutating it. | None |
| List mobile network operators | HTTP only | GET /mobilenetworkoperators |
Inspect available resources or choose an existing resource before mutating it. | None |
| List network coverage locations | HTTP only | GET /network_coverage |
Inspect available resources or choose an existing resource before mutating it. | None |
| List number block orders | HTTP only | GET /numberblockorders |
Inspect available resources or choose an existing resource before mutating it. | None |
| Create a number block order | HTTP only | POST /numberblockorders |
Create or provision an additional resource when the core tasks do not cover this flow. | starting_number, range |
| Retrieve a number block order | HTTP only | GET /numberblockorders/{numberblockorder_id} |
Fetch the current state before updating, deleting, or making control-flow decisions. | numberblockorder_id |
| Retrieve a list of phone numbers associated to orders | HTTP only | GET /numberorderphone_numbers |
Inspect available resources or choose an existing resource before mutating it. | None |
| Retrieve a single phone number within a number order. | HTTP only | GET /numberorderphonenumbers/{numberorderphonenumber_id} |
Fetch the current state before updating, deleting, or making control-flow decisions. | numberorderphonenumberid |
| Update requirements for a single phone number within a number order. | HTTP only | PATCH /numberorderphonenumbers/{numberorderphonenumber_id} |
Modify an existing resource without recreating it. | numberorderphonenumberid |
| List number orders | HTTP only | GET /number_orders |
Create or inspect provisioning orders for number purchases. | None |
| Update a number order | HTTP only | PATCH /numberorders/{numberorder_id} |
Modify an existing resource without recreating it. | numberorderid |
| List number reservations | HTTP only | GET /number_reservations |
Inspect available resources or choose an existing resource before mutating it. | None |
| Extend a number reservation | HTTP only | POST /numberreservations/{numberreservation_id}/actions/extend |
Trigger a follow-up action in an existing workflow rather than creating a new top-level resource. | numberreservationid |
| Retrieve the features for a list of numbers | HTTP only | POST /numbers_features |
Create or provision an additional resource when the core tasks do not cover this flow. | phone_numbers |
| Lists the phone number blocks jobs | HTTP only | GET /phonenumberblocks/jobs |
Inspect available resources or choose an existing resource before mutating it. | None |
| Deletes all numbers associated with a phone number block | HTTP only | POST /phonenumberblocks/jobs/deletephonenumber_block |
Create or provision an additional resource when the core tasks do not cover this flow. | phonenumberblock_id |
| Retrieves a phone number blocks job | HTTP only | GET /phonenumberblocks/jobs/{id} |
Fetch the current state before updating, deleting, or making control-flow decisions. | id |
| List sub number orders | HTTP only | GET /subnumberorders |
Inspect available resources or choose an existing resource before mutating it. | None |
| Retrieve a sub number order | HTTP only | GET /subnumberorders/{subnumberorder_id} |
Fetch the current state before updating, deleting, or making control-flow decisions. | subnumberorder_id |
| Update a sub number order's requirements | HTTP only | PATCH /subnumberorders/{subnumberorder_id} |
Modify an existing resource without recreating it. | subnumberorder_id |
| Cancel a sub number order | HTTP only | PATCH /subnumberorders/{subnumberorder_id}/cancel |
Modify an existing resource without recreating it. | subnumberorder_id |
| Create a sub number orders report | HTTP only | POST /subnumberorders_report |
Create or provision an additional resource when the core tasks do not cover this flow. | None |
| Retrieve a sub number orders report | HTTP only | GET /subnumberordersreport/{reportid} |
Fetch the current state before updating, deleting, or making control-flow decisions. | report_id |
| Download a sub number orders report | HTTP only | GET /subnumberordersreport/{reportid}/download |
Fetch the current state before updating, deleting, or making control-flow decisions. | report_id |
Other Webhook Events
| Event | data.event_type |
Description |
|---|---|---|
numberOrderStatusUpdate |
number.order.status.update |
Number Order Status Update |
For exhaustive optional parameters, full response schemas, and complete webhook payloads, see [references/api-details.md](references/api-details.md).