{"id":"79f2d256-4460-4cc7-85e6-fc500cf59140","shortId":"8kjLXH","kind":"skill","title":"telnyx-networking-javascript","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Networking - JavaScript\n\n## Installation\n\n```bash\nnpm install telnyx\n```\n\n## Setup\n\n```javascript\nimport Telnyx from 'telnyx';\n\nconst client = new Telnyx({\n  apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted\n});\n```\n\nAll examples below assume `client` is already initialized as shown above.\n\n## Error Handling\n\nAll API calls can fail with network errors, rate limits (429), validation errors (422),\nor authentication errors (401). Always handle errors in production code:\n\n```javascript\ntry {\n  const result = await client.messages.send({ to: '+13125550001', from: '+13125550002', text: 'Hello' });\n} catch (err) {\n  if (err instanceof Telnyx.APIConnectionError) {\n    console.error('Network error — check connectivity and retry');\n  } else if (err instanceof Telnyx.RateLimitError) {\n    // 429: rate limited — wait and retry with exponential backoff\n    const retryAfter = err.headers?.['retry-after'] || 1;\n    await new Promise(r => setTimeout(r, retryAfter * 1000));\n  } else if (err instanceof Telnyx.APIError) {\n    console.error(`API error ${err.status}: ${err.message}`);\n    if (err.status === 422) {\n      console.error('Validation error — check required fields and formats');\n    }\n  }\n}\n```\n\nCommon error codes: `401` invalid API key, `403` insufficient permissions,\n`404` resource not found, `422` validation error (check field formats),\n`429` rate limited (retry with exponential backoff).\n\n## Important Notes\n\n- **Pagination:** List methods return an auto-paginating iterator. Use `for await (const item of result) { ... }` to iterate through all pages automatically.\n\n## List all clusters\n\n`GET /ai/clusters`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const clusterListResponse of client.ai.clusters.list()) {\n  console.log(clusterListResponse.task_id);\n}\n```\n\nReturns: `bucket` (string), `created_at` (date-time), `finished_at` (date-time), `min_cluster_size` (integer), `min_subcluster_size` (integer), `status` (enum: pending, starting, running, completed, failed), `task_id` (string)\n\n## Compute new clusters\n\nStarts a background task to compute how the data in an [embedded storage bucket](https://developers.telnyx.com/api-reference/embeddings/embed-documents) is clustered. This helps identify common themes and patterns in the data.\n\n`POST /ai/clusters` — Required: `bucket`\n\nOptional: `files` (array[string]), `min_cluster_size` (integer), `min_subcluster_size` (integer), `prefix` (string)\n\n```javascript\nconst response = await client.ai.clusters.compute({ bucket: 'my-bucket' });\n\nconsole.log(response.data);\n```\n\nReturns: `task_id` (string)\n\n## Fetch a cluster\n\n`GET /ai/clusters/{task_id}`\n\n```javascript\nconst cluster = await client.ai.clusters.retrieve('task_id');\n\nconsole.log(cluster.data);\n```\n\nReturns: `bucket` (string), `clusters` (array[object]), `status` (enum: pending, starting, running, completed, failed)\n\n## Delete a cluster\n\n`DELETE /ai/clusters/{task_id}`\n\n```javascript\nawait client.ai.clusters.delete('task_id');\n```\n\n## Fetch a cluster visualization\n\n`GET /ai/clusters/{task_id}/graph`\n\n```javascript\nconst response = await client.ai.clusters.fetchGraph('task_id');\n\nconsole.log(response);\n\nconst content = await response.blob();\nconsole.log(content);\n```\n\n## List Integrations\n\nList all available integrations.\n\n`GET /ai/integrations`\n\n```javascript\nconst integrations = await client.ai.integrations.list();\n\nconsole.log(integrations.data);\n```\n\nReturns: `available_tools` (array[string]), `description` (string), `display_name` (string), `id` (string), `logo_url` (string), `name` (string), `status` (enum: disconnected, connected)\n\n## List User Integrations\n\nList user setup integrations\n\n`GET /ai/integrations/connections`\n\n```javascript\nconst connections = await client.ai.integrations.connections.list();\n\nconsole.log(connections.data);\n```\n\nReturns: `allowed_tools` (array[string]), `id` (string), `integration_id` (string)\n\n## Get User Integration connection By Id\n\nGet user setup integrations\n\n`GET /ai/integrations/connections/{user_connection_id}`\n\n```javascript\nconst connection = await client.ai.integrations.connections.retrieve('user_connection_id');\n\nconsole.log(connection.data);\n```\n\nReturns: `allowed_tools` (array[string]), `id` (string), `integration_id` (string)\n\n## Delete Integration Connection\n\nDelete a specific integration connection.\n\n`DELETE /ai/integrations/connections/{user_connection_id}`\n\n```javascript\nawait client.ai.integrations.connections.delete('user_connection_id');\n```\n\n## List Integration By Id\n\nRetrieve integration details\n\n`GET /ai/integrations/{integration_id}`\n\n```javascript\nconst integration = await client.ai.integrations.retrieve('integration_id');\n\nconsole.log(integration.id);\n```\n\nReturns: `available_tools` (array[string]), `description` (string), `display_name` (string), `id` (string), `logo_url` (string), `name` (string), `status` (enum: disconnected, connected)\n\n## List all Global IP Allowed Ports\n\n`GET /global_ip_allowed_ports`\n\n```javascript\nconst globalIPAllowedPorts = await client.globalIPAllowedPorts.list();\n\nconsole.log(globalIPAllowedPorts.data);\n```\n\nReturns: `first_port` (integer), `id` (uuid), `last_port` (integer), `name` (string), `protocol_code` (string), `record_type` (string)\n\n## Global IP Assignment Health Check Metrics\n\n`GET /global_ip_assignment_health`\n\n```javascript\nconst globalIPAssignmentHealth = await client.globalIPAssignmentHealth.retrieve();\n\nconsole.log(globalIPAssignmentHealth.data);\n```\n\nReturns: `global_ip` (object), `global_ip_assignment` (object), `health` (object), `timestamp` (date-time)\n\n## List all Global IP assignments\n\nList all Global IP assignments.\n\n`GET /global_ip_assignments`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const globalIPAssignment of client.globalIPAssignments.list()) {\n  console.log(globalIPAssignment.id);\n}\n```\n\nReturns: `created_at` (string), `global_ip_id` (uuid), `id` (uuid), `is_announced` (boolean), `is_connected` (boolean), `is_in_maintenance` (boolean), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n## Create a Global IP assignment\n\nCreate a Global IP assignment.\n\n`POST /global_ip_assignments`\n\nOptional: `created_at` (string), `global_ip_id` (uuid), `id` (uuid), `is_announced` (boolean), `is_connected` (boolean), `is_in_maintenance` (boolean), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n```javascript\nconst globalIPAssignment = await client.globalIPAssignments.create();\n\nconsole.log(globalIPAssignment.data);\n```\n\nReturns: `created_at` (string), `global_ip_id` (uuid), `id` (uuid), `is_announced` (boolean), `is_connected` (boolean), `is_in_maintenance` (boolean), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n## Retrieve a Global IP\n\nRetrieve a Global IP assignment.\n\n`GET /global_ip_assignments/{id}`\n\n```javascript\nconst globalIPAssignment = await client.globalIPAssignments.retrieve(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n);\n\nconsole.log(globalIPAssignment.data);\n```\n\nReturns: `created_at` (string), `global_ip_id` (uuid), `id` (uuid), `is_announced` (boolean), `is_connected` (boolean), `is_in_maintenance` (boolean), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n## Update a Global IP assignment\n\nUpdate a Global IP assignment.\n\n`PATCH /global_ip_assignments/{id}`\n\nOptional: `created_at` (string), `global_ip_id` (string), `id` (uuid), `is_announced` (boolean), `is_connected` (boolean), `is_in_maintenance` (boolean), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (string)\n\n```javascript\nconst globalIPAssignment = await client.globalIPAssignments.update(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n  { globalIpAssignmentUpdateRequest: {} },\n);\n\nconsole.log(globalIPAssignment.data);\n```\n\nReturns: `created_at` (string), `global_ip_id` (uuid), `id` (uuid), `is_announced` (boolean), `is_connected` (boolean), `is_in_maintenance` (boolean), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n## Delete a Global IP assignment\n\nDelete a Global IP assignment.\n\n`DELETE /global_ip_assignments/{id}`\n\n```javascript\nconst globalIPAssignment = await client.globalIPAssignments.delete(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n);\n\nconsole.log(globalIPAssignment.data);\n```\n\nReturns: `created_at` (string), `global_ip_id` (uuid), `id` (uuid), `is_announced` (boolean), `is_connected` (boolean), `is_in_maintenance` (boolean), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n## Global IP Assignment Usage Metrics\n\n`GET /global_ip_assignments_usage`\n\n```javascript\nconst globalIPAssignmentsUsage = await client.globalIPAssignmentsUsage.retrieve();\n\nconsole.log(globalIPAssignmentsUsage.data);\n```\n\nReturns: `global_ip` (object), `global_ip_assignment` (object), `received` (object), `timestamp` (date-time), `transmitted` (object)\n\n## List all Global IP Health check types\n\nList all Global IP Health check types.\n\n`GET /global_ip_health_check_types`\n\n```javascript\nconst globalIPHealthCheckTypes = await client.globalIPHealthCheckTypes.list();\n\nconsole.log(globalIPHealthCheckTypes.data);\n```\n\nReturns: `health_check_params` (object), `health_check_type` (string), `record_type` (string)\n\n## List all Global IP health checks\n\nList all Global IP health checks.\n\n`GET /global_ip_health_checks`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const globalIPHealthCheckListResponse of client.globalIPHealthChecks.list()) {\n  console.log(globalIPHealthCheckListResponse);\n}\n```\n\nReturns: `created_at` (string), `global_ip_id` (uuid), `health_check_params` (object), `health_check_type` (string), `id` (uuid), `record_type` (string), `updated_at` (string)\n\n## Create a Global IP health check\n\nCreate a Global IP health check.\n\n`POST /global_ip_health_checks`\n\nOptional: `created_at` (string), `global_ip_id` (uuid), `health_check_params` (object), `health_check_type` (string), `id` (uuid), `record_type` (string), `updated_at` (string)\n\n```javascript\nconst globalIPHealthCheck = await client.globalIPHealthChecks.create();\n\nconsole.log(globalIPHealthCheck.data);\n```\n\nReturns: `created_at` (string), `global_ip_id` (uuid), `health_check_params` (object), `health_check_type` (string), `id` (uuid), `record_type` (string), `updated_at` (string)\n\n## Retrieve a Global IP health check\n\nRetrieve a Global IP health check.\n\n`GET /global_ip_health_checks/{id}`\n\n```javascript\nconst globalIPHealthCheck = await client.globalIPHealthChecks.retrieve(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n);\n\nconsole.log(globalIPHealthCheck.data);\n```\n\nReturns: `created_at` (string), `global_ip_id` (uuid), `health_check_params` (object), `health_check_type` (string), `id` (uuid), `record_type` (string), `updated_at` (string)\n\n## Delete a Global IP health check\n\nDelete a Global IP health check.\n\n`DELETE /global_ip_health_checks/{id}`\n\n```javascript\nconst globalIPHealthCheck = await client.globalIPHealthChecks.delete(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n);\n\nconsole.log(globalIPHealthCheck.data);\n```\n\nReturns: `created_at` (string), `global_ip_id` (uuid), `health_check_params` (object), `health_check_type` (string), `id` (uuid), `record_type` (string), `updated_at` (string)\n\n## Global IP Latency Metrics\n\n`GET /global_ip_latency`\n\n```javascript\nconst globalIPLatency = await client.globalIPLatency.retrieve();\n\nconsole.log(globalIPLatency.data);\n```\n\nReturns: `global_ip` (object), `mean_latency` (object), `percentile_latency` (object), `prober_location` (object), `timestamp` (date-time)\n\n## List all Global IP Protocols\n\n`GET /global_ip_protocols`\n\n```javascript\nconst globalIPProtocols = await client.globalIPProtocols.list();\n\nconsole.log(globalIPProtocols.data);\n```\n\nReturns: `code` (string), `name` (string), `record_type` (string)\n\n## Global IP Usage Metrics\n\n`GET /global_ip_usage`\n\n```javascript\nconst globalIPUsage = await client.globalIPUsage.retrieve();\n\nconsole.log(globalIPUsage.data);\n```\n\nReturns: `global_ip` (object), `received` (object), `timestamp` (date-time), `transmitted` (object)\n\n## List all Global IPs\n\nList all Global IPs.\n\n`GET /global_ips`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const globalIPListResponse of client.globalIPs.list()) {\n  console.log(globalIPListResponse);\n}\n```\n\nReturns: `created_at` (string), `description` (string), `id` (uuid), `ip_address` (string), `name` (string), `ports` (object), `record_type` (string), `updated_at` (string)\n\n## Create a Global IP\n\nCreate a Global IP.\n\n`POST /global_ips`\n\nOptional: `created_at` (string), `description` (string), `id` (uuid), `ip_address` (string), `name` (string), `ports` (object), `record_type` (string), `updated_at` (string)\n\n```javascript\nconst globalIP = await client.globalIPs.create();\n\nconsole.log(globalIP.data);\n```\n\nReturns: `created_at` (string), `description` (string), `id` (uuid), `ip_address` (string), `name` (string), `ports` (object), `record_type` (string), `updated_at` (string)\n\n## Retrieve a Global IP\n\nRetrieve a Global IP.\n\n`GET /global_ips/{id}`\n\n```javascript\nconst globalIP = await client.globalIPs.retrieve('6a09cdc3-8948-47f0-aa62-74ac943d6c58');\n\nconsole.log(globalIP.data);\n```\n\nReturns: `created_at` (string), `description` (string), `id` (uuid), `ip_address` (string), `name` (string), `ports` (object), `record_type` (string), `updated_at` (string)\n\n## Delete a Global IP\n\nDelete a Global IP.\n\n`DELETE /global_ips/{id}`\n\n```javascript\nconst globalIP = await client.globalIPs.delete('6a09cdc3-8948-47f0-aa62-74ac943d6c58');\n\nconsole.log(globalIP.data);\n```\n\nReturns: `created_at` (string), `description` (string), `id` (uuid), `ip_address` (string), `name` (string), `ports` (object), `record_type` (string), `updated_at` (string)\n\n## List all Networks\n\nList all Networks.\n\n`GET /networks`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const networkListResponse of client.networks.list()) {\n  console.log(networkListResponse);\n}\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `record_type` (string), `updated_at` (string)\n\n## Create a Network\n\nCreate a new Network.\n\n`POST /networks` — Required: `name`\n\nOptional: `created_at` (string), `id` (uuid), `record_type` (string), `updated_at` (string)\n\n```javascript\nconst network = await client.networks.create({ name: 'test network' });\n\nconsole.log(network.data);\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `record_type` (string), `updated_at` (string)\n\n## Retrieve a Network\n\nRetrieve a Network.\n\n`GET /networks/{id}`\n\n```javascript\nconst network = await client.networks.retrieve('6a09cdc3-8948-47f0-aa62-74ac943d6c58');\n\nconsole.log(network.data);\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `record_type` (string), `updated_at` (string)\n\n## Update a Network\n\nUpdate a Network.\n\n`PATCH /networks/{id}` — Required: `name`\n\nOptional: `created_at` (string), `id` (uuid), `record_type` (string), `updated_at` (string)\n\n```javascript\nconst network = await client.networks.update('6a09cdc3-8948-47f0-aa62-74ac943d6c58', {\n  name: 'test network',\n});\n\nconsole.log(network.data);\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `record_type` (string), `updated_at` (string)\n\n## Delete a Network\n\nDelete a Network.\n\n`DELETE /networks/{id}`\n\n```javascript\nconst network = await client.networks.delete('6a09cdc3-8948-47f0-aa62-74ac943d6c58');\n\nconsole.log(network.data);\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `record_type` (string), `updated_at` (string)\n\n## Get Default Gateway status.\n\n`GET /networks/{id}/default_gateway`\n\n```javascript\nconst defaultGateway = await client.networks.defaultGateway.retrieve(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n);\n\nconsole.log(defaultGateway.data);\n```\n\nReturns: `created_at` (string), `id` (uuid), `network_id` (uuid), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n## Create Default Gateway.\n\n`POST /networks/{id}/default_gateway`\n\nOptional: `created_at` (string), `id` (uuid), `network_id` (uuid), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n```javascript\nconst defaultGateway = await client.networks.defaultGateway.create(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n);\n\nconsole.log(defaultGateway.data);\n```\n\nReturns: `created_at` (string), `id` (uuid), `network_id` (uuid), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n## Delete Default Gateway.\n\n`DELETE /networks/{id}/default_gateway`\n\n```javascript\nconst defaultGateway = await client.networks.defaultGateway.delete(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n);\n\nconsole.log(defaultGateway.data);\n```\n\nReturns: `created_at` (string), `id` (uuid), `network_id` (uuid), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string), `wireguard_peer_id` (uuid)\n\n## List all Interfaces for a Network.\n\n`GET /networks/{id}/network_interfaces`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const networkListInterfacesResponse of client.networks.listInterfaces(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n)) {\n  console.log(networkListInterfacesResponse);\n}\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `record_type` (string), `region` (object), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `type` (string), `updated_at` (string)\n\n## Get all Private Wireless Gateways\n\nGet all Private Wireless Gateways belonging to the user.\n\n`GET /private_wireless_gateways`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const privateWirelessGateway of client.privateWirelessGateways.list()) {\n  console.log(privateWirelessGateway.id);\n}\n```\n\nReturns: `assigned_resources` (array[object]), `created_at` (string), `id` (uuid), `ip_range` (string), `name` (string), `network_id` (uuid), `record_type` (string), `region_code` (string), `status` (object), `updated_at` (string)\n\n## Create a Private Wireless Gateway\n\nAsynchronously create a Private Wireless Gateway for SIM cards for a previously created network. This operation may take several minutes so you can check the Private Wireless Gateway status at the section Get a Private Wireless Gateway.\n\n`POST /private_wireless_gateways` — Required: `network_id`, `name`\n\nOptional: `region_code` (string)\n\n```javascript\nconst privateWirelessGateway = await client.privateWirelessGateways.create({\n  name: 'My private wireless gateway',\n  network_id: '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n});\n\nconsole.log(privateWirelessGateway.data);\n```\n\nReturns: `assigned_resources` (array[object]), `created_at` (string), `id` (uuid), `ip_range` (string), `name` (string), `network_id` (uuid), `record_type` (string), `region_code` (string), `status` (object), `updated_at` (string)\n\n## Get a Private Wireless Gateway\n\nRetrieve information about a Private Wireless Gateway.\n\n`GET /private_wireless_gateways/{id}`\n\n```javascript\nconst privateWirelessGateway = await client.privateWirelessGateways.retrieve(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n);\n\nconsole.log(privateWirelessGateway.data);\n```\n\nReturns: `assigned_resources` (array[object]), `created_at` (string), `id` (uuid), `ip_range` (string), `name` (string), `network_id` (uuid), `record_type` (string), `region_code` (string), `status` (object), `updated_at` (string)\n\n## Delete a Private Wireless Gateway\n\nDeletes the Private Wireless Gateway.\n\n`DELETE /private_wireless_gateways/{id}`\n\n```javascript\nconst privateWirelessGateway = await client.privateWirelessGateways.delete(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n);\n\nconsole.log(privateWirelessGateway.data);\n```\n\nReturns: `assigned_resources` (array[object]), `created_at` (string), `id` (uuid), `ip_range` (string), `name` (string), `network_id` (uuid), `record_type` (string), `region_code` (string), `status` (object), `updated_at` (string)\n\n## List all Public Internet Gateways\n\nList all Public Internet Gateways.\n\n`GET /public_internet_gateways`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const publicInternetGatewayListResponse of client.publicInternetGateways.list()) {\n  console.log(publicInternetGatewayListResponse);\n}\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `public_ip` (string), `record_type` (string), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Create a Public Internet Gateway\n\nCreate a new Public Internet Gateway.\n\n`POST /public_internet_gateways`\n\nOptional: `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `public_ip` (string), `record_type` (string), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n```javascript\nconst publicInternetGateway = await client.publicInternetGateways.create();\n\nconsole.log(publicInternetGateway.data);\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `public_ip` (string), `record_type` (string), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Retrieve a Public Internet Gateway\n\nRetrieve a Public Internet Gateway.\n\n`GET /public_internet_gateways/{id}`\n\n```javascript\nconst publicInternetGateway = await client.publicInternetGateways.retrieve(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n);\n\nconsole.log(publicInternetGateway.data);\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `public_ip` (string), `record_type` (string), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Delete a Public Internet Gateway\n\nDelete a Public Internet Gateway.\n\n`DELETE /public_internet_gateways/{id}`\n\n```javascript\nconst publicInternetGateway = await client.publicInternetGateways.delete(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n);\n\nconsole.log(publicInternetGateway.data);\n```\n\nReturns: `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `public_ip` (string), `record_type` (string), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## List all Regions\n\nList all regions and the interfaces that region supports\n\n`GET /regions`\n\n```javascript\nconst regions = await client.regions.list();\n\nconsole.log(regions.data);\n```\n\nReturns: `code` (string), `created_at` (string), `name` (string), `record_type` (string), `supported_interfaces` (array[string]), `updated_at` (string)\n\n## List all Virtual Cross Connects\n\nList all Virtual Cross Connects.\n\n`GET /virtual_cross_connects`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const virtualCrossConnectListResponse of client.virtualCrossConnects.list()) {\n  console.log(virtualCrossConnectListResponse);\n}\n```\n\nReturns: `bandwidth_mbps` (number), `bgp_asn` (number), `cloud_provider` (enum: aws, azure, gce), `cloud_provider_region` (string), `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `primary_bgp_key` (string), `primary_cloud_account_id` (string), `primary_cloud_ip` (string), `primary_enabled` (boolean), `primary_routing_announcement` (boolean), `primary_telnyx_ip` (string), `record_type` (string), `region` (object), `region_code` (string), `secondary_bgp_key` (string), `secondary_cloud_account_id` (string), `secondary_cloud_ip` (string), `secondary_enabled` (boolean), `secondary_routing_announcement` (boolean), `secondary_telnyx_ip` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Create a Virtual Cross Connect\n\nCreate a new Virtual Cross Connect.  For AWS and GCE, you have the option of creating the primary connection first and the secondary connection later. You also have the option of disabling the primary and/or secondary connections at any time and later re-enabling them. With Azure, you do not have this option.\n\n`POST /virtual_cross_connects` — Required: `network_id`, `region_code`, `cloud_provider`, `cloud_provider_region`, `bgp_asn`, `primary_cloud_account_id`\n\nOptional: `bandwidth_mbps` (number), `created_at` (string), `id` (uuid), `name` (string), `primary_bgp_key` (string), `primary_cloud_ip` (string), `primary_enabled` (boolean), `primary_telnyx_ip` (string), `record_type` (string), `secondary_bgp_key` (string), `secondary_cloud_account_id` (string), `secondary_cloud_ip` (string), `secondary_enabled` (boolean), `secondary_telnyx_ip` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n```javascript\nconst virtualCrossConnect = await client.virtualCrossConnects.create({ region_code: 'ashburn-va' });\n\nconsole.log(virtualCrossConnect.data);\n```\n\nReturns: `bandwidth_mbps` (number), `bgp_asn` (number), `cloud_provider` (enum: aws, azure, gce), `cloud_provider_region` (string), `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `primary_bgp_key` (string), `primary_cloud_account_id` (string), `primary_cloud_ip` (string), `primary_enabled` (boolean), `primary_routing_announcement` (boolean), `primary_telnyx_ip` (string), `record_type` (string), `region` (object), `region_code` (string), `secondary_bgp_key` (string), `secondary_cloud_account_id` (string), `secondary_cloud_ip` (string), `secondary_enabled` (boolean), `secondary_routing_announcement` (boolean), `secondary_telnyx_ip` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Retrieve a Virtual Cross Connect\n\nRetrieve a Virtual Cross Connect.\n\n`GET /virtual_cross_connects/{id}`\n\n```javascript\nconst virtualCrossConnect = await client.virtualCrossConnects.retrieve(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n);\n\nconsole.log(virtualCrossConnect.data);\n```\n\nReturns: `bandwidth_mbps` (number), `bgp_asn` (number), `cloud_provider` (enum: aws, azure, gce), `cloud_provider_region` (string), `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `primary_bgp_key` (string), `primary_cloud_account_id` (string), `primary_cloud_ip` (string), `primary_enabled` (boolean), `primary_routing_announcement` (boolean), `primary_telnyx_ip` (string), `record_type` (string), `region` (object), `region_code` (string), `secondary_bgp_key` (string), `secondary_cloud_account_id` (string), `secondary_cloud_ip` (string), `secondary_enabled` (boolean), `secondary_routing_announcement` (boolean), `secondary_telnyx_ip` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Update the Virtual Cross Connect\n\nUpdate the Virtual Cross Connect.  Cloud IPs can only be patched during the `created` state, as GCE will only inform you of your generated IP once the pending connection requested has been accepted.\n\n`PATCH /virtual_cross_connects/{id}`\n\nOptional: `primary_cloud_ip` (string), `primary_enabled` (boolean), `primary_routing_announcement` (boolean), `secondary_cloud_ip` (string), `secondary_enabled` (boolean), `secondary_routing_announcement` (boolean)\n\n```javascript\nconst virtualCrossConnect = await client.virtualCrossConnects.update(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n);\n\nconsole.log(virtualCrossConnect.data);\n```\n\nReturns: `bandwidth_mbps` (number), `bgp_asn` (number), `cloud_provider` (enum: aws, azure, gce), `cloud_provider_region` (string), `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `primary_bgp_key` (string), `primary_cloud_account_id` (string), `primary_cloud_ip` (string), `primary_enabled` (boolean), `primary_routing_announcement` (boolean), `primary_telnyx_ip` (string), `record_type` (string), `region` (object), `region_code` (string), `secondary_bgp_key` (string), `secondary_cloud_account_id` (string), `secondary_cloud_ip` (string), `secondary_enabled` (boolean), `secondary_routing_announcement` (boolean), `secondary_telnyx_ip` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Delete a Virtual Cross Connect\n\nDelete a Virtual Cross Connect.\n\n`DELETE /virtual_cross_connects/{id}`\n\n```javascript\nconst virtualCrossConnect = await client.virtualCrossConnects.delete(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n);\n\nconsole.log(virtualCrossConnect.data);\n```\n\nReturns: `bandwidth_mbps` (number), `bgp_asn` (number), `cloud_provider` (enum: aws, azure, gce), `cloud_provider_region` (string), `created_at` (string), `id` (uuid), `name` (string), `network_id` (uuid), `primary_bgp_key` (string), `primary_cloud_account_id` (string), `primary_cloud_ip` (string), `primary_enabled` (boolean), `primary_routing_announcement` (boolean), `primary_telnyx_ip` (string), `record_type` (string), `region` (object), `region_code` (string), `secondary_bgp_key` (string), `secondary_cloud_account_id` (string), `secondary_cloud_ip` (string), `secondary_enabled` (boolean), `secondary_routing_announcement` (boolean), `secondary_telnyx_ip` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## List Virtual Cross Connect Cloud Coverage\n\nList Virtual Cross Connects Cloud Coverage.  This endpoint shows which cloud regions are available for the `location_code` your Virtual Cross Connect will be provisioned in.\n\n`GET /virtual_cross_connects_coverage`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const virtualCrossConnectsCoverageListResponse of client.virtualCrossConnectsCoverage.list()) {\n  console.log(virtualCrossConnectsCoverageListResponse.available_bandwidth);\n}\n```\n\nReturns: `available_bandwidth` (array[number]), `cloud_provider` (enum: aws, azure, gce), `cloud_provider_region` (string), `location` (object), `record_type` (string)\n\n## List all WireGuard Interfaces\n\nList all WireGuard Interfaces.\n\n`GET /wireguard_interfaces`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const wireguardInterfaceListResponse of client.wireguardInterfaces.list()) {\n  console.log(wireguardInterfaceListResponse);\n}\n```\n\nReturns: `created_at` (string), `enable_sip_trunking` (boolean), `endpoint` (string), `id` (uuid), `name` (string), `network_id` (uuid), `public_key` (string), `record_type` (string), `region` (object), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Create a WireGuard Interface\n\nCreate a new WireGuard Interface. Current limitation of 10 interfaces per user can be created.\n\n`POST /wireguard_interfaces` — Required: `network_id`, `region_code`\n\nOptional: `created_at` (string), `enable_sip_trunking` (boolean), `endpoint` (string), `id` (uuid), `name` (string), `public_key` (string), `record_type` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n```javascript\nconst wireguardInterface = await client.wireguardInterfaces.create({ region_code: 'ashburn-va' });\n\nconsole.log(wireguardInterface.data);\n```\n\nReturns: `created_at` (string), `enable_sip_trunking` (boolean), `endpoint` (string), `id` (uuid), `name` (string), `network_id` (uuid), `public_key` (string), `record_type` (string), `region` (object), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Retrieve a WireGuard Interfaces\n\nRetrieve a WireGuard Interfaces.\n\n`GET /wireguard_interfaces/{id}`\n\n```javascript\nconst wireguardInterface = await client.wireguardInterfaces.retrieve(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n);\n\nconsole.log(wireguardInterface.data);\n```\n\nReturns: `created_at` (string), `enable_sip_trunking` (boolean), `endpoint` (string), `id` (uuid), `name` (string), `network_id` (uuid), `public_key` (string), `record_type` (string), `region` (object), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## Delete a WireGuard Interface\n\nDelete a WireGuard Interface.\n\n`DELETE /wireguard_interfaces/{id}`\n\n```javascript\nconst wireguardInterface = await client.wireguardInterfaces.delete(\n  '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n);\n\nconsole.log(wireguardInterface.data);\n```\n\nReturns: `created_at` (string), `enable_sip_trunking` (boolean), `endpoint` (string), `id` (uuid), `name` (string), `network_id` (uuid), `public_key` (string), `record_type` (string), `region` (object), `region_code` (string), `status` (enum: created, provisioning, provisioned, deleting), `updated_at` (string)\n\n## List all WireGuard Peers\n\nList all WireGuard peers.\n\n`GET /wireguard_peers`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const wireguardPeerListResponse of client.wireguardPeers.list()) {\n  console.log(wireguardPeerListResponse);\n}\n```\n\nReturns: `created_at` (string), `id` (uuid), `last_seen` (string), `private_key` (string), `public_key` (string), `record_type` (string), `updated_at` (string), `wireguard_interface_id` (uuid)\n\n## Create a WireGuard Peer\n\nCreate a new WireGuard Peer. Current limitation of 5 peers per interface can be created.\n\n`POST /wireguard_peers` — Required: `wireguard_interface_id`\n\nOptional: `created_at` (string), `id` (uuid), `last_seen` (string), `private_key` (string), `public_key` (string), `record_type` (string), `updated_at` (string)\n\n```javascript\nconst wireguardPeer = await client.wireguardPeers.create({\n  wireguard_interface_id: '6a09cdc3-8948-47f0-aa62-74ac943d6c58',\n});\n\nconsole.log(wireguardPeer.data);\n```\n\nReturns: `created_at` (string), `id` (uuid), `last_seen` (string), `private_key` (string), `public_key` (string), `record_type` (string), `updated_at` (string), `wireguard_interface_id` (uuid)\n\n## Retrieve the WireGuard Peer\n\nRetrieve the WireGuard peer.\n\n`GET /wireguard_peers/{id}`\n\n```javascript\nconst wireguardPeer = await client.wireguardPeers.retrieve('6a09cdc3-8948-47f0-aa62-74ac943d6c58');\n\nconsole.log(wireguardPeer.data);\n```\n\nReturns: `created_at` (string), `id` (uuid), `last_seen` (string), `private_key` (string), `public_key` (string), `record_type` (string), `updated_at` (string), `wireguard_interface_id` (uuid)\n\n## Update the WireGuard Peer\n\nUpdate the WireGuard peer.\n\n`PATCH /wireguard_peers/{id}`\n\nOptional: `public_key` (string)\n\n```javascript\nconst wireguardPeer = await client.wireguardPeers.update('6a09cdc3-8948-47f0-aa62-74ac943d6c58');\n\nconsole.log(wireguardPeer.data);\n```\n\nReturns: `created_at` (string), `id` (uuid), `last_seen` (string), `private_key` (string), `public_key` (string), `record_type` (string), `updated_at` (string), `wireguard_interface_id` (uuid)\n\n## Delete the WireGuard Peer\n\nDelete the WireGuard peer.\n\n`DELETE /wireguard_peers/{id}`\n\n```javascript\nconst wireguardPeer = await client.wireguardPeers.delete('6a09cdc3-8948-47f0-aa62-74ac943d6c58');\n\nconsole.log(wireguardPeer.data);\n```\n\nReturns: `created_at` (string), `id` (uuid), `last_seen` (string), `private_key` (string), `public_key` (string), `record_type` (string), `updated_at` (string), `wireguard_interface_id` (uuid)\n\n## Retrieve Wireguard config template for Peer\n\n`GET /wireguard_peers/{id}/config`\n\n```javascript\nconst response = await client.wireguardPeers.retrieveConfig('6a09cdc3-8948-47f0-aa62-74ac943d6c58');\n\nconsole.log(response);\n```","tags":["telnyx","networking","javascript","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm","sdk"],"capabilities":["skill","source-team-telnyx","skill-telnyx-networking-javascript","topic-agent-skills","topic-ai-coding-agent","topic-claude-code","topic-cpaas","topic-cursor","topic-iot","topic-llm","topic-sdk","topic-sip","topic-sms","topic-speech-to-text","topic-telephony"],"categories":["ai"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/team-telnyx/ai/telnyx-networking-javascript","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add team-telnyx/ai","source_repo":"https://github.com/team-telnyx/ai","install_from":"skills.sh"}},"qualityScore":"0.533","qualityRationale":"deterministic score 0.53 from registry signals: · indexed on github topic:agent-skills · 167 github stars · SKILL.md body (36,006 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T06:54:41.056Z","embedding":null,"createdAt":"2026-04-18T22:07:00.090Z","updatedAt":"2026-04-22T06:54:41.056Z","lastSeenAt":"2026-04-22T06:54:41.056Z","tsv":"'+13125550001':80 '+13125550002':82 '-47':772,871,935,1187,1240,1471,1517,1645,1696,1736,1772,1843,1889,1946,2109,2167,2223,2413,2469,2922,3092,3211,3564,3626,3776,3826,3880,3930,3979 '-8948':771,870,934,1186,1239,1470,1516,1644,1695,1735,1771,1842,1888,1945,2108,2166,2222,2412,2468,2921,3091,3210,3563,3625,3775,3825,3879,3929,3978 '/ai/clusters':203,284,320,349,362 '/ai/integrations':388,505 '/ai/integrations/connections':425,454,487 '/api-reference/embeddings/embed-documents)':270 '/config':3971 '/default_gateway':1764,1810,1881 '/global_ip_allowed_ports':545 '/global_ip_assignment_health':577 '/global_ip_assignments':610,673,763,826,926 '/global_ip_assignments_usage':984 '/global_ip_health_check_types':1023 '/global_ip_health_checks':1056,1109,1178,1231 '/global_ip_latency':1276 '/global_ip_protocols':1307 '/global_ip_usage':1328 '/global_ips':1357,1403,1462,1508 '/graph':365 '/network_interfaces':1930 '/networks':1552,1590,1636,1673,1727,1762,1808,1879,1928 '/private_wireless_gateways':1998,2086,2158,2214 '/public_internet_gateways':2270,2327,2404,2460 '/regions':2518 '/virtual_cross_connects':2555,2723,2913,3060,3202 '/virtual_cross_connects_coverage':3343 '/wireguard_interfaces':3389,3462,3555,3617 '/wireguard_peers':3679,3740,3817,3867,3921,3969 '1':118 '10':3454 '1000':126 '401':66,151 '403':155 '404':158 '422':62,139,162 '429':59,103,168 '5':3732 '6a09cdc3':770,869,933,1185,1238,1469,1515,1643,1694,1734,1770,1841,1887,1944,2107,2165,2221,2411,2467,2920,3090,3209,3562,3624,3774,3824,3878,3928,3977 '74ac943d6c58':776,875,939,1191,1244,1475,1521,1649,1700,1740,1776,1847,1893,1950,2113,2171,2227,2417,2473,2926,3096,3215,3568,3630,3780,3830,3884,3934,3983 'aa62':775,874,938,1190,1243,1474,1520,1648,1699,1739,1775,1846,1892,1949,2112,2170,2226,2416,2472,2925,3095,3214,3567,3629,3779,3829,3883,3933,3982 'accept':3058 'account':2604,2636,2738,2775,2843,2875,2962,2994,3132,3164,3251,3283 'address':1382,1413,1441,1487,1533 'allow':434,469,542 'alreadi':42 'also':2694 'alway':67 'and/or':2702 'announc':637,685,728,790,839,890,953,2616,2648,2855,2887,2974,3006,3072,3083,3144,3176,3263,3295 'api':26,50,133,153 'apikey':23 'array':289,336,399,436,471,520,2017,2119,2177,2233,2539,3363 'ashburn':2806,3505 'ashburn-va':2805,3504 'asn':2576,2735,2815,2934,3104,3223 'assign':572,591,603,608,666,671,761,819,824,919,924,980,998,2015,2117,2175,2231 'assum':39 'asynchron':2048 'authent':64 'auto':183 'auto-pagin':182 'automat':198,205,612,1058,1359,1554,1932,2000,2272,2557,3345,3391,3681 'avail':385,397,518,3329,3361 'aw':2581,2675,2820,2939,3109,3228,3368 'await':77,119,188,212,304,326,353,369,377,392,429,461,492,511,549,581,619,713,768,867,931,988,1027,1065,1137,1183,1236,1280,1311,1332,1366,1428,1467,1513,1561,1608,1641,1692,1732,1768,1839,1885,1939,2007,2098,2163,2219,2279,2360,2409,2465,2522,2564,2801,2918,3088,3207,3352,3398,3500,3560,3622,3688,3769,3822,3876,3926,3975 'azur':2582,2715,2821,2940,3110,3229,3369 'background':256 'backoff':111,174 'bandwidth':2572,2741,2811,2930,3100,3219,3359,3362 'bash':9 'belong':1993 'bgp':2575,2599,2631,2734,2752,2770,2814,2838,2870,2933,2957,2989,3103,3127,3159,3222,3246,3278 'boolean':638,641,645,686,689,693,729,732,736,791,794,798,840,843,847,891,894,898,954,957,961,2613,2617,2645,2649,2761,2784,2852,2856,2884,2888,2971,2975,3003,3007,3069,3073,3080,3084,3141,3145,3173,3177,3260,3264,3292,3296,3412,3475,3516,3578,3640 'bucket':221,267,286,306,309,333 'call':51 'card':2056 'catch':85 'check':94,143,165,574,1013,1020,1033,1037,1048,1054,1081,1085,1101,1107,1119,1123,1150,1154,1170,1176,1203,1207,1223,1229,1256,1260,2071 'client':20,40 'client.ai.clusters.compute':305 'client.ai.clusters.delete':354 'client.ai.clusters.fetchgraph':370 'client.ai.clusters.list':216 'client.ai.clusters.retrieve':327 'client.ai.integrations.connections.delete':493 'client.ai.integrations.connections.list':430 'client.ai.integrations.connections.retrieve':462 'client.ai.integrations.list':393 'client.ai.integrations.retrieve':512 'client.globalipallowedports.list':550 'client.globalipassignmenthealth.retrieve':582 'client.globalipassignments.create':714 'client.globalipassignments.delete':932 'client.globalipassignments.list':623 'client.globalipassignments.retrieve':769 'client.globalipassignments.update':868 'client.globalipassignmentsusage.retrieve':989 'client.globaliphealthchecks.create':1138 'client.globaliphealthchecks.delete':1237 'client.globaliphealthchecks.list':1069 'client.globaliphealthchecks.retrieve':1184 'client.globaliphealthchecktypes.list':1028 'client.globaliplatency.retrieve':1281 'client.globalipprotocols.list':1312 'client.globalips.create':1429 'client.globalips.delete':1514 'client.globalips.list':1370 'client.globalips.retrieve':1468 'client.globalipusage.retrieve':1333 'client.messages.send':78 'client.networks.create':1609 'client.networks.defaultgateway.create':1840 'client.networks.defaultgateway.delete':1886 'client.networks.defaultgateway.retrieve':1769 'client.networks.delete':1733 'client.networks.list':1565 'client.networks.listinterfaces':1943 'client.networks.retrieve':1642 'client.networks.update':1693 'client.privatewirelessgateways.create':2099 'client.privatewirelessgateways.delete':2220 'client.privatewirelessgateways.list':2011 'client.privatewirelessgateways.retrieve':2164 'client.publicinternetgateways.create':2361 'client.publicinternetgateways.delete':2466 'client.publicinternetgateways.list':2283 'client.publicinternetgateways.retrieve':2410 'client.regions.list':2523 'client.virtualcrossconnects.create':2802 'client.virtualcrossconnects.delete':3208 'client.virtualcrossconnects.list':2568 'client.virtualcrossconnects.retrieve':2919 'client.virtualcrossconnects.update':3089 'client.virtualcrossconnectscoverage.list':3356 'client.wireguardinterfaces.create':3501 'client.wireguardinterfaces.delete':3623 'client.wireguardinterfaces.list':3402 'client.wireguardinterfaces.retrieve':3561 'client.wireguardpeers.create':3770 'client.wireguardpeers.delete':3927 'client.wireguardpeers.list':3692 'client.wireguardpeers.retrieve':3823 'client.wireguardpeers.retrieveconfig':3976 'client.wireguardpeers.update':3877 'cloud':2578,2584,2603,2608,2635,2640,2729,2731,2737,2756,2774,2779,2817,2823,2842,2847,2874,2879,2936,2942,2961,2966,2993,2998,3031,3064,3075,3106,3112,3131,3136,3163,3168,3225,3231,3250,3255,3282,3287,3314,3320,3326,3365,3371 'cluster':201,234,253,272,292,318,325,335,347,359 'cluster.data':331 'clusterlistrespons':214 'clusterlistresponse.task':218 'code':72,150,565,1316,1970,2036,2093,2138,2196,2252,2304,2346,2382,2438,2494,2527,2628,2728,2804,2867,2986,3156,3275,3333,3431,3467,3503,3535,3597,3659 'common':148,276 'complet':246,343 'comput':251,259 'config':3964 'connect':95,416,428,446,456,460,464,480,485,489,495,537,640,688,731,793,842,893,956,2548,2553,2667,2673,2686,2691,2704,2906,2911,3025,3030,3054,3195,3200,3313,3319,3337 'connection.data':467 'connections.data':432 'console.error':91,132,140 'console.log':217,310,330,373,379,394,431,466,515,551,583,624,715,777,877,940,990,1029,1070,1139,1192,1245,1282,1313,1334,1371,1430,1476,1522,1566,1613,1650,1704,1741,1777,1848,1894,1951,2012,2114,2172,2228,2284,2362,2418,2474,2524,2569,2808,2927,3097,3216,3357,3403,3507,3569,3631,3693,3781,3831,3885,3935,3984 'const':19,75,112,189,213,302,324,367,375,390,427,459,509,547,579,620,711,766,865,929,986,1025,1066,1135,1181,1234,1278,1309,1330,1367,1426,1465,1511,1562,1606,1639,1690,1730,1766,1837,1883,1940,2008,2096,2161,2217,2280,2358,2407,2463,2520,2565,2799,2916,3086,3205,3353,3399,3498,3558,3620,3689,3767,3820,3874,3924,3973 'content':376,380 'coverag':3315,3321 'creat':223,627,651,662,667,675,699,718,742,780,804,829,853,880,904,943,967,1073,1096,1102,1111,1142,1195,1248,1374,1394,1398,1405,1433,1479,1525,1569,1582,1585,1594,1616,1653,1678,1707,1744,1780,1793,1804,1812,1825,1851,1864,1897,1910,1954,1974,2019,2043,2049,2060,2121,2179,2235,2287,2308,2315,2320,2329,2350,2365,2386,2421,2442,2477,2498,2529,2588,2656,2663,2668,2683,2744,2791,2827,2895,2946,3014,3039,3116,3184,3235,3303,3406,3435,3442,3446,3460,3469,3490,3510,3539,3572,3601,3634,3663,3696,3720,3724,3738,3746,3784,3834,3888,3938 'cross':2547,2552,2666,2672,2905,2910,3024,3029,3194,3199,3312,3318,3336 'current':3451,3729 'data':262,282 'date':226,231,597,1004,1299,1344 'date-tim':225,230,596,1003,1298,1343 'default':31,1758,1805,1876 'defaultgateway':1767,1838,1884 'defaultgateway.data':1778,1849,1895 'delet':345,348,478,481,486,654,702,745,807,856,907,915,920,925,970,1218,1224,1230,1499,1503,1507,1720,1723,1726,1796,1828,1867,1875,1878,1913,1977,2203,2208,2213,2311,2353,2389,2445,2449,2454,2459,2501,2659,2794,2898,3017,3187,3191,3196,3201,3306,3438,3493,3542,3604,3608,3612,3616,3666,3912,3916,3920 'descript':401,522,1377,1408,1436,1482,1528 'detail':503 'developers.telnyx.com':269 'developers.telnyx.com/api-reference/embeddings/embed-documents)':268 'disabl':2699 'disconnect':415,536 'display':403,524 'els':98,127 'embed':265 'enabl':2612,2644,2712,2760,2783,2851,2883,2970,3002,3068,3079,3140,3172,3259,3291,3409,3472,3513,3575,3637 'endpoint':3323,3413,3476,3517,3579,3641 'enum':242,339,414,535,650,698,741,803,852,903,966,1792,1824,1863,1909,1973,2307,2349,2385,2441,2497,2580,2655,2790,2819,2894,2938,3013,3108,3183,3227,3302,3367,3434,3489,3538,3600,3662 'err':86,88,100,129 'err.headers':114 'err.message':136 'err.status':135,138 'error':47,56,61,65,69,93,134,142,149,164 'exampl':37 'exponenti':110,173 'f0':774,873,937,1189,1242,1473,1519,1647,1698,1738,1774,1845,1891,1948,2111,2169,2225,2415,2471,2924,3094,3213,3566,3628,3778,3828,3882,3932,3981 'f0-aa62-74ac943d6c58':773,872,936,1188,1241,1472,1518,1646,1697,1737,1773,1844,1890,1947,2110,2168,2224,2414,2470,2923,3093,3212,3565,3627,3777,3827,3881,3931,3980 'fail':53,247,344 'fetch':206,316,357,613,1059,1360,1555,1933,2001,2273,2558,3346,3392,3682 'field':145,166 'file':288 'finish':228 'first':554,2687 'format':147,167 'found':161 'gateway':1759,1806,1877,1987,1992,2047,2053,2075,2084,2104,2149,2156,2207,2212,2263,2268,2319,2325,2397,2402,2453,2458 'gce':2583,2677,2822,2941,3042,3111,3230,3370 'generat':3049 'get':202,319,361,387,424,443,449,453,504,544,576,609,762,983,1022,1055,1177,1275,1306,1327,1356,1461,1551,1635,1757,1761,1927,1983,1988,1997,2080,2145,2157,2269,2403,2517,2554,2912,3342,3388,3554,3678,3816,3968 'global':540,570,586,589,601,606,630,664,669,678,721,755,759,783,817,822,832,883,917,922,946,978,993,996,1010,1017,1045,1051,1076,1098,1104,1114,1145,1167,1173,1198,1220,1226,1251,1271,1285,1303,1323,1337,1350,1354,1396,1400,1455,1459,1501,1505 'globalip':1427,1466,1512 'globalip.data':1431,1477,1523 'globalipallowedport':548 'globalipallowedports.data':552 'globalipassign':621,712,767,866,930 'globalipassignment.data':716,778,878,941 'globalipassignment.id':625 'globalipassignmenthealth':580 'globalipassignmenthealth.data':584 'globalipassignmentsusag':987 'globalipassignmentsusage.data':991 'globalipassignmentupdaterequest':876 'globaliphealthcheck':1136,1182,1235 'globaliphealthcheck.data':1140,1193,1246 'globaliphealthchecklistrespons':1067,1071 'globaliphealthchecktyp':1026 'globaliphealthchecktypes.data':1030 'globaliplat':1279 'globaliplatency.data':1283 'globaliplistrespons':1368,1372 'globalipprotocol':1310 'globalipprotocols.data':1314 'globalipusag':1331 'globalipusage.data':1335 'handl':48,68 'health':573,593,1012,1019,1032,1036,1047,1053,1080,1084,1100,1106,1118,1122,1149,1153,1169,1175,1202,1206,1222,1228,1255,1259 'hello':84 'help':274 'id':219,249,314,322,329,351,356,364,372,406,438,441,448,457,465,473,476,490,496,500,507,514,527,557,632,634,660,680,682,708,723,725,751,764,785,787,813,827,834,836,862,885,887,913,927,948,950,976,1078,1088,1116,1126,1147,1157,1179,1200,1210,1232,1253,1263,1379,1410,1438,1463,1484,1509,1530,1572,1597,1619,1637,1656,1674,1681,1710,1728,1747,1763,1783,1786,1802,1809,1815,1818,1834,1854,1857,1873,1880,1900,1903,1919,1929,1957,1962,2022,2030,2089,2106,2124,2132,2159,2182,2190,2215,2238,2246,2290,2295,2332,2337,2368,2373,2405,2424,2429,2461,2480,2485,2591,2596,2605,2637,2726,2739,2747,2776,2830,2835,2844,2876,2914,2949,2954,2963,2995,3061,3119,3124,3133,3165,3203,3238,3243,3252,3284,3415,3420,3465,3478,3519,3524,3556,3581,3586,3618,3643,3648,3699,3718,3744,3749,3773,3787,3806,3818,3837,3856,3868,3891,3910,3922,3941,3960,3970 'identifi':275 'import':15,175 'inform':2151,3045 'initi':43 'instal':8,11 'instanceof':89,101,130 'insuffici':156 'integ':236,240,294,298,556,561 'integr':382,386,391,419,423,440,445,452,475,479,484,498,502,506,510,513 'integration.id':516 'integrations.data':395 'interfac':1923,2513,2538,3383,3387,3445,3450,3455,3549,3553,3611,3615,3717,3735,3743,3772,3805,3855,3909,3959 'internet':2262,2267,2318,2324,2396,2401,2452,2457 'invalid':152 'ip':541,571,587,590,602,607,631,665,670,679,722,756,760,784,818,823,833,884,918,923,947,979,994,997,1011,1018,1046,1052,1077,1099,1105,1115,1146,1168,1174,1199,1221,1227,1252,1272,1286,1304,1324,1338,1351,1355,1381,1397,1401,1412,1440,1456,1460,1486,1502,1506,1532,2024,2126,2184,2240,2298,2340,2376,2432,2488,2609,2620,2641,2652,2757,2764,2780,2787,2848,2859,2880,2891,2967,2978,2999,3010,3032,3050,3065,3076,3137,3148,3169,3180,3256,3267,3288,3299 'item':190 'iter':185,194 'javascript':4,7,14,73,204,301,323,352,366,389,426,458,491,508,546,578,611,710,765,864,928,985,1024,1057,1134,1180,1233,1277,1308,1329,1358,1425,1464,1510,1553,1605,1638,1689,1729,1765,1836,1882,1931,1999,2095,2160,2216,2271,2357,2406,2462,2519,2556,2798,2915,3085,3204,3344,3390,3497,3557,3619,3680,3766,3819,3873,3923,3972 'key':27,154,2600,2632,2753,2771,2839,2871,2958,2990,3128,3160,3247,3279,3423,3483,3527,3589,3651,3705,3708,3755,3758,3793,3796,3843,3846,3871,3897,3900,3947,3950 'last':559,3701,3751,3789,3839,3893,3943 'latenc':1273,1289,1292 'later':2692,2709 'limit':58,105,170,3452,3730 'list':178,199,381,383,417,420,497,538,599,604,1008,1015,1043,1049,1301,1348,1352,1545,1548,1921,2259,2264,2505,2508,2544,2549,3310,3316,3380,3384,3670,3674 'locat':1295,3332,3375 'logo':408,529 'mainten':644,692,735,797,846,897,960 'may':2064 'mbps':2573,2742,2812,2931,3101,3220 'mean':1288 'method':179 'metric':575,982,1274,1326 'min':233,237,291,295 'minut':2067 'my-bucket':307 'name':404,411,525,532,562,1318,1384,1415,1443,1489,1535,1574,1592,1610,1621,1658,1676,1701,1712,1749,1959,2027,2090,2100,2129,2187,2243,2292,2334,2370,2426,2482,2532,2593,2749,2832,2951,3121,3240,3417,3480,3521,3583,3645 'need':210,617,1063,1364,1559,1937,2005,2277,2562,3350,3396,3686 'network':3,6,55,92,1547,1550,1584,1588,1607,1612,1631,1634,1640,1668,1671,1691,1703,1722,1725,1731,1785,1817,1856,1902,1926,1961,2029,2061,2088,2105,2131,2189,2245,2294,2336,2372,2428,2484,2595,2725,2834,2953,3123,3242,3419,3464,3523,3585,3647 'network.data':1614,1651,1705,1742 'networklistinterfacesrespons':1941,1952 'networklistrespons':1563,1567 'new':21,120,252,1587,2322,2670,3448,3726 'note':176 'npm':10 'number':2574,2577,2743,2813,2816,2932,2935,3102,3105,3221,3224,3364 'object':337,588,592,594,995,999,1001,1007,1035,1083,1121,1152,1205,1258,1287,1290,1293,1296,1339,1341,1347,1387,1418,1446,1492,1538,1968,2018,2039,2120,2141,2178,2199,2234,2255,2626,2865,2984,3154,3273,3376,3429,3533,3595,3657 'omit':35 'oper':2063 'option':287,674,828,1110,1404,1593,1677,1811,2091,2328,2681,2697,2721,2740,3062,3468,3745,3869 'page':197,208,615,1061,1362,1557,1935,2003,2275,2560,3348,3394,3684 'pagin':177,184 'param':1034,1082,1120,1151,1204,1257 'patch':825,1672,3036,3059,3866 'pattern':279 'peer':659,707,750,812,861,912,975,1801,1833,1872,1918,3673,3677,3723,3728,3733,3811,3815,3861,3865,3915,3919,3967 'pend':243,340,3053 'per':3456,3734 'percentil':1291 'permiss':157 'port':543,555,560,1386,1417,1445,1491,1537 'post':283,672,1108,1402,1589,1807,2085,2326,2722,3461,3739 'prefix':299 'previous':2059 'primari':2598,2602,2607,2611,2614,2618,2685,2701,2736,2751,2755,2759,2762,2837,2841,2846,2850,2853,2857,2956,2960,2965,2969,2972,2976,3063,3067,3070,3126,3130,3135,3139,3142,3146,3245,3249,3254,3258,3261,3265 'privat':1985,1990,2045,2051,2073,2082,2102,2147,2154,2205,2210,3704,3754,3792,3842,3896,3946 'privatewirelessgateway':2009,2097,2162,2218 'privatewirelessgateway.data':2115,2173,2229 'privatewirelessgateway.id':2013 'prober':1294 'process.env':24 'product':71 'promis':121 'protocol':564,1305 'provid':2579,2585,2730,2732,2818,2824,2937,2943,3107,3113,3226,3232,3366,3372 'provis':652,653,700,701,743,744,805,806,854,855,905,906,968,969,1794,1795,1826,1827,1865,1866,1911,1912,1975,1976,2309,2310,2351,2352,2387,2388,2443,2444,2499,2500,2657,2658,2792,2793,2896,2897,3015,3016,3185,3186,3304,3305,3340,3436,3437,3491,3492,3540,3541,3602,3603,3664,3665 'public':2261,2266,2297,2317,2323,2339,2375,2395,2400,2431,2451,2456,2487,3422,3482,3526,3588,3650,3707,3757,3795,3845,3870,3899,3949 'publicinternetgateway':2359,2408,2464 'publicinternetgateway.data':2363,2419,2475 'publicinternetgatewaylistrespons':2281,2285 'r':122,124 'rang':2025,2127,2185,2241 'rate':57,104,169 're':2711 're-en':2710 'receiv':1000,1340 'record':567,646,694,737,799,848,899,962,1040,1090,1128,1159,1212,1265,1320,1388,1419,1447,1493,1539,1576,1599,1623,1660,1683,1714,1751,1788,1820,1859,1905,1964,2032,2134,2192,2248,2300,2342,2378,2434,2490,2534,2622,2766,2861,2980,3150,3269,3377,3425,3485,3529,3591,3653,3710,3760,3798,3848,3902,3952 'region':1967,1969,2035,2092,2137,2195,2251,2303,2345,2381,2437,2493,2507,2510,2515,2521,2586,2625,2627,2727,2733,2803,2825,2864,2866,2944,2983,2985,3114,3153,3155,3233,3272,3274,3327,3373,3428,3430,3466,3502,3532,3534,3594,3596,3656,3658 'regions.data':2525 'request':3055 'requir':144,285,1591,1675,2087,2724,3463,3741 'resourc':159,2016,2118,2176,2232 'respons':303,368,374,3974,3985 'response.blob':378 'response.data':311 'result':76,192 'retri':97,108,116,171 'retriev':501,753,757,1165,1171,1453,1457,1629,1632,2150,2393,2398,2902,2907,3546,3550,3808,3812,3962 'retry-aft':115 'retryaft':113,125 'return':180,220,312,332,396,433,468,517,553,585,626,717,779,879,942,992,1031,1072,1141,1194,1247,1284,1315,1336,1373,1432,1478,1524,1568,1615,1652,1706,1743,1779,1850,1896,1953,2014,2116,2174,2230,2286,2364,2420,2476,2526,2571,2810,2929,3099,3218,3360,3405,3509,3571,3633,3695,3783,3833,3887,3937 'rout':2615,2647,2854,2886,2973,3005,3071,3082,3143,3175,3262,3294 'run':245,342 'secondari':2630,2634,2639,2643,2646,2650,2690,2703,2769,2773,2778,2782,2785,2869,2873,2878,2882,2885,2889,2988,2992,2997,3001,3004,3008,3074,3078,3081,3158,3162,3167,3171,3174,3178,3277,3281,3286,3290,3293,3297 'section':2079 'seen':3702,3752,3790,3840,3894,3944 'settimeout':123 'setup':13,422,451 'sever':2066 'show':3324 'shown':45 'sim':2055 'sip':3410,3473,3514,3576,3638 'size':235,239,293,297 'skill' 'skill-telnyx-networking-javascript' 'source-team-telnyx' 'specif':483 'start':244,254,341 'state':3040 'status':241,338,413,534,649,697,740,802,851,902,965,1760,1791,1823,1862,1908,1972,2038,2076,2140,2198,2254,2306,2348,2384,2440,2496,2654,2789,2893,3012,3182,3301,3433,3488,3537,3599,3661 'storag':266 'string':222,250,290,300,315,334,400,402,405,407,410,412,437,439,442,472,474,477,521,523,526,528,531,533,563,566,569,629,648,657,677,696,705,720,739,748,782,801,810,831,835,850,859,863,882,901,910,945,964,973,1039,1042,1075,1087,1092,1095,1113,1125,1130,1133,1144,1156,1161,1164,1197,1209,1214,1217,1250,1262,1267,1270,1317,1319,1322,1376,1378,1383,1385,1390,1393,1407,1409,1414,1416,1421,1424,1435,1437,1442,1444,1449,1452,1481,1483,1488,1490,1495,1498,1527,1529,1534,1536,1541,1544,1571,1575,1578,1581,1596,1601,1604,1618,1622,1625,1628,1655,1659,1662,1665,1680,1685,1688,1709,1713,1716,1719,1746,1750,1753,1756,1782,1790,1799,1814,1822,1831,1853,1861,1870,1899,1907,1916,1956,1960,1966,1971,1979,1982,2021,2026,2028,2034,2037,2042,2094,2123,2128,2130,2136,2139,2144,2181,2186,2188,2194,2197,2202,2237,2242,2244,2250,2253,2258,2289,2293,2299,2302,2305,2314,2331,2335,2341,2344,2347,2356,2367,2371,2377,2380,2383,2392,2423,2427,2433,2436,2439,2448,2479,2483,2489,2492,2495,2504,2528,2531,2533,2536,2540,2543,2587,2590,2594,2601,2606,2610,2621,2624,2629,2633,2638,2642,2653,2662,2746,2750,2754,2758,2765,2768,2772,2777,2781,2788,2797,2826,2829,2833,2840,2845,2849,2860,2863,2868,2872,2877,2881,2892,2901,2945,2948,2952,2959,2964,2968 'subclust':238,296 'support':2516,2537 'take':2065 'task':248,257,313,321,328,350,355,363,371 'telnyx':2,5,12,16,18,22,25,2619,2651,2763,2786,2858,2890,2977,3009,3147,3179,3266,3298 'telnyx-networking-javascript':1 'telnyx.apiconnectionerror':90 'telnyx.apierror':131 'telnyx.ratelimiterror':102 'templat':3965 'test':1611,1702 'text':83 'theme':277 'time':227,232,598,1005,1300,1345,2707 'timestamp':595,1002,1297,1342 'tool':398,435,470,519 'topic-agent-skills' 'topic-ai-coding-agent' 'topic-claude-code' 'topic-cpaas' 'topic-cursor' 'topic-iot' 'topic-llm' 'topic-sdk' 'topic-sip' 'topic-sms' 'topic-speech-to-text' 'topic-telephony' 'transmit':1006,1346 'tri':74 'trunk':3411,3474,3515,3577,3639 'type':568,647,695,738,800,849,900,963,1014,1021,1038,1041,1086,1091,1124,1129,1155,1160,1208,1213,1261,1266,1321,1389,1420,1448,1494,1540,1577,1600,1624,1661,1684,1715,1752,1789,1821,1860,1906,1965,1978,2033,2135,2193,2249,2301,2343,2379,2435,2491,2535,2623,2767,2862,2981,3151,3270,3378,3426,3486,3530,3592,3654,3711,3761,3799,3849,3903,3953 'updat':655,703,746,808,815,820,857,908,971,1093,1131,1162,1215,1268,1391,1422,1450,1496,1542,1579,1602,1626,1663,1666,1669,1686,1717,1754,1797,1829,1868,1914,1980,2040,2142,2200,2256,2312,2354,2390,2446,2502,2541,2660,2795,2899,3018,3021,3026,3188,3307,3439,3494,3543,3605,3667,3713,3763,3801,3851,3858,3862,3905,3955 'url':409,530 'usag':981,1325 'use':186 'user':418,421,444,450,455,463,488,494,1996,3457 'uuid':558,633,635,661,681,683,709,724,726,752,786,788,814,837,886,888,914,949,951,977,1079,1089,1117,1127,1148,1158,1201,1211,1254,1264,1380,1411,1439,1485,1531,1573,1598,1620,1657,1682,1711,1748,1784,1787,1803,1816,1819,1835,1855,1858,1874,1901,1904,1920,1958,1963,2023,2031,2125,2133,2183,2191,2239,2247,2291,2296,2333,2338,2369,2374,2425,2430,2481,2486,2592,2597,2748,2831,2836,2950,2955,3120,3125,3239,3244,3416,3421,3479,3520,3525,3582,3587,3644,3649,3700,3719,3750,3788,3807,3838,3857,3892,3911,3942,3961 'va':2807,3506 'valid':60,141,163 'virtual':2546,2551,2665,2671,2904,2909,3023,3028,3193,3198,3311,3317,3335 'virtualcrossconnect':2800,2917,3087,3206 'virtualcrossconnect.data':2809,2928,3098,3217 'virtualcrossconnectlistrespons':2566,2570 'virtualcrossconnectscoveragelistrespons':3354 'virtualcrossconnectscoveragelistresponse.available':3358 'visual':360 'wait':106 'wireguard':658,706,749,811,860,911,974,1800,1832,1871,1917,3382,3386,3444,3449,3548,3552,3610,3614,3672,3676,3716,3722,3727,3742,3771,3804,3810,3814,3854,3860,3864,3908,3914,3918,3958,3963 'wireguardinterfac':3499,3559,3621 'wireguardinterface.data':3508,3570,3632 'wireguardinterfacelistrespons':3400,3404 'wireguardp':3768,3821,3875,3925 'wireguardpeer.data':3782,3832,3886,3936 'wireguardpeerlistrespons':3690,3694 'wireless':1986,1991,2046,2052,2074,2083,2103,2148,2155,2206,2211","prices":[{"id":"7fdba175-cb62-4efb-82bc-db9cd3eda30e","listingId":"79f2d256-4460-4cc7-85e6-fc500cf59140","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"team-telnyx","category":"ai","install_from":"skills.sh"},"createdAt":"2026-04-18T22:07:00.090Z"}],"sources":[{"listingId":"79f2d256-4460-4cc7-85e6-fc500cf59140","source":"github","sourceId":"team-telnyx/ai/telnyx-networking-javascript","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-networking-javascript","isPrimary":false,"firstSeenAt":"2026-04-18T22:07:00.090Z","lastSeenAt":"2026-04-22T06:54:41.056Z"}],"details":{"listingId":"79f2d256-4460-4cc7-85e6-fc500cf59140","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-networking-javascript","github":{"repo":"team-telnyx/ai","stars":167,"topics":["agent-skills","ai","ai-coding-agent","claude-code","cpaas","cursor","iot","llm","sdk","sip","sms","speech-to-text","telephony","telnyx","tts","twilio-migration","voice-agents","voice-ai","webrtc","windsurf"],"license":"mit","html_url":"https://github.com/team-telnyx/ai","pushed_at":"2026-04-21T22:09:49Z","description":"Official one-stop shop for AI Agents and developers building with Telnyx.","skill_md_sha":"585cd9be7bb7d9efb07b0ccf848aa40115699940","skill_md_path":"skills/telnyx-networking-javascript/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-networking-javascript"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-networking-javascript","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-networking-javascript"},"updatedAt":"2026-04-22T06:54:41.056Z"}}