Instalar en Claude Code
Copiargit clone --depth 1 https://github.com/team-telnyx/ai /tmp/telnyx-account-access-python && cp -r /tmp/telnyx-account-access-python/providers/claude/plugin/skills/telnyx-account-access-python ~/.claude/skills/telnyx-account-access-pythonDespués abre una sesión nueva de Claude Code; el skill carga automáticamente.
Definición
SKILL.md
<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->
# Telnyx Account Access - Python
## Installation
```bash
pip install telnyx
```
## Setup
```python
import os
from telnyx import Telnyx
client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)
```
All examples below assume `client` is already initialized as shown above.
## 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:
```python
import telnyx
try:
result = client.messages.send(to="+13125550001", from_="+13125550002", text="Hello")
except telnyx.APIConnectionError:
print("Network error — check connectivity and retry")
except telnyx.RateLimitError:
# 429: rate limited — wait and retry with exponential backoff
import time
time.sleep(1) # Check Retry-After header for actual delay
except telnyx.APIStatusError as e:
print(f"API error {e.status_code}: {e.message}")
if e.status_code == 422:
print("Validation error — check required fields and formats")
```
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 methods return an auto-paginating iterator. Use `for item in page_result:` to iterate through all pages automatically.
## List all Access IP Addresses
`GET /access_ip_address`
```python
page = client.access_ip_address.list()
page = page.data[0]
print(page.id)
```
Returns: `created_at` (date-time), `description` (string), `id` (string), `ip_address` (string), `source` (string), `status` (enum: pending, added), `updated_at` (date-time), `user_id` (string)
## Create new Access IP Address
`POST /access_ip_address` — Required: `ip_address`
Optional: `description` (string)
```python
access_ip_address_response = client.access_ip_address.create(
ip_address="203.0.113.10",
)
print(access_ip_address_response.id)
```
Returns: `created_at` (date-time), `description` (string), `id` (string), `ip_address` (string), `source` (string), `status` (enum: pending, added), `updated_at` (date-time), `user_id` (string)
## Retrieve an access IP address
`GET /access_ip_address/{access_ip_address_id}`
```python
access_ip_address_response = client.access_ip_address.retrieve(
"access_ip_address_id",
)
print(access_ip_address_response.id)
```
Returns: `created_at` (date-time), `description` (string), `id` (string), `ip_address` (string), `source` (string), `status` (enum: pending, added), `updated_at` (date-time), `user_id` (string)
## Delete access IP address
`DELETE /access_ip_address/{access_ip_address_id}`
```python
access_ip_address_response = client.access_ip_address.delete(
"access_ip_address_id",
)
print(access_ip_address_response.id)
```
Returns: `created_at` (date-time), `description` (string), `id` (string), `ip_address` (string), `source` (string), `status` (enum: pending, added), `updated_at` (date-time), `user_id` (string)
## List all addresses
Returns a list of your addresses.
`GET /addresses`
```python
page = client.addresses.list()
page = page.data[0]
print(page.id)
```
Returns: `address_book` (boolean), `administrative_area` (string), `borough` (string), `business_name` (string), `country_code` (string), `created_at` (string), `customer_reference` (string), `extended_address` (string), `first_name` (string), `id` (string), `last_name` (string), `locality` (string), `neighborhood` (string), `phone_number` (string), `postal_code` (string), `record_type` (string), `street_address` (string), `updated_at` (string), `validate_address` (boolean)
## Creates an address
Creates an address.
`POST /addresses` — Required: `first_name`, `last_name`, `business_name`, `street_address`, `locality`, `country_code`
Optional: `address_book` (boolean), `administrative_area` (string), `borough` (string), `customer_reference` (string), `extended_address` (string), `neighborhood` (string), `phone_number` (string), `postal_code` (string), `validate_address` (boolean)
```python
address = client.addresses.create(
business_name="Toy-O'Kon",
country_code="US",
first_name="Alfred",
last_name="Foster",
locality="Austin",
street_address="600 Congress Avenue",
)
print(address.data)
```
Returns: `address_book` (boolean), `administrative_area` (string), `borough` (string), `business_name` (string), `country_code` (string), `created_at` (string), `customer_reference` (string), `extended_address` (string), `first_name` (string), `id` (string), `last_name` (string), `locality` (string), `neighborhood` (string), `phone_number` (string), `postal_code` (string), `record_type` (string), `street_address` (string), `updated_at` (string), `validate_address` (boolean)
## Validate an address
Validates an address for emergency services.
`POST /addresses/actions/validate` — Required: `country_code`, `street_address`, `postal_code`
Optional: `administrative_area` (string), `extended_address` (string), `locality` (string)
```python
response = client.addresses.actions.validate(
country_code="US",
postal_code="78701",
street_address="600 Congress Avenue",
)
print(response.data)
```
Returns: `errors` (array[object]), `record_type` (string), `result` (enum: valid, invalid), `suggested` (object)
## Retrieve an address
Retrieves the details of an existing address.
`GET /addresses/{id}`
```python
address = client.addresses.retrieve(
"id",
)
print(address.data)
```
Returns: `address_book` (boolean), `administrative_area` (string), `borough` (string), `business_name` (string), `country_code` (string), `created_at` (string), `customer_reference` (string), `extended_address` (string), `first_name` (string), `id` (string), `last_name` (string), `locality` (string), `neighborhood` (string), `phone_numbe