{"id":"6a7ba71a-7e33-4c63-b505-22cf7729b7d3","shortId":"TLJ9xz","kind":"skill","title":"telnyx-video-javascript","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Video - 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## View a list of room compositions.\n\n`GET /room_compositions`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const roomComposition of client.roomCompositions.list()) {\n  console.log(roomComposition.id);\n}\n```\n\nReturns: `completed_at` (date-time), `created_at` (date-time), `download_url` (string), `duration_secs` (integer), `ended_at` (date-time), `format` (enum: mp4), `id` (uuid), `record_type` (string), `resolution` (string), `room_id` (uuid), `session_id` (uuid), `size_mb` (float), `started_at` (date-time), `status` (enum: completed, enqueued, processing), `updated_at` (date-time), `user_id` (uuid), `video_layout` (object), `webhook_event_failover_url` (uri), `webhook_event_url` (uri), `webhook_timeout_secs` (integer)\n\n## Create a room composition.\n\nAsynchronously create a room composition.\n\n`POST /room_compositions`\n\nOptional: `format` (string), `resolution` (string), `session_id` (uuid), `video_layout` (object), `webhook_event_failover_url` (uri), `webhook_event_url` (uri), `webhook_timeout_secs` (integer)\n\n```javascript\nconst roomComposition = await client.roomCompositions.create();\n\nconsole.log(roomComposition.data);\n```\n\nReturns: `completed_at` (date-time), `created_at` (date-time), `download_url` (string), `duration_secs` (integer), `ended_at` (date-time), `format` (enum: mp4), `id` (uuid), `record_type` (string), `resolution` (string), `room_id` (uuid), `session_id` (uuid), `size_mb` (float), `started_at` (date-time), `status` (enum: completed, enqueued, processing), `updated_at` (date-time), `user_id` (uuid), `video_layout` (object), `webhook_event_failover_url` (uri), `webhook_event_url` (uri), `webhook_timeout_secs` (integer)\n\n## View a room composition.\n\n`GET /room_compositions/{room_composition_id}`\n\n```javascript\nconst roomComposition = await client.roomCompositions.retrieve(\n  '5219b3af-87c6-4c08-9b58-5a533d893e21',\n);\n\nconsole.log(roomComposition.data);\n```\n\nReturns: `completed_at` (date-time), `created_at` (date-time), `download_url` (string), `duration_secs` (integer), `ended_at` (date-time), `format` (enum: mp4), `id` (uuid), `record_type` (string), `resolution` (string), `room_id` (uuid), `session_id` (uuid), `size_mb` (float), `started_at` (date-time), `status` (enum: completed, enqueued, processing), `updated_at` (date-time), `user_id` (uuid), `video_layout` (object), `webhook_event_failover_url` (uri), `webhook_event_url` (uri), `webhook_timeout_secs` (integer)\n\n## Delete a room composition.\n\nSynchronously delete a room composition.\n\n`DELETE /room_compositions/{room_composition_id}`\n\n```javascript\nawait client.roomCompositions.delete('5219b3af-87c6-4c08-9b58-5a533d893e21');\n```\n\n## View a list of room participants.\n\n`GET /room_participants`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const roomParticipant of client.roomParticipants.list()) {\n  console.log(roomParticipant.id);\n}\n```\n\nReturns: `context` (string), `id` (uuid), `joined_at` (date-time), `left_at` (date-time), `record_type` (string), `session_id` (uuid), `updated_at` (date-time)\n\n## View a room participant.\n\n`GET /room_participants/{room_participant_id}`\n\n```javascript\nconst roomParticipant = await client.roomParticipants.retrieve(\n  '0ccc7b54-4df3-4bca-a65a-3da1ecc777f0',\n);\n\nconsole.log(roomParticipant.data);\n```\n\nReturns: `context` (string), `id` (uuid), `joined_at` (date-time), `left_at` (date-time), `record_type` (string), `session_id` (uuid), `updated_at` (date-time)\n\n## View a list of room recordings.\n\n`GET /room_recordings`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const roomRecordingListResponse of client.roomRecordings.list()) {\n  console.log(roomRecordingListResponse.id);\n}\n```\n\nReturns: `codec` (string), `completed_at` (date-time), `created_at` (date-time), `download_url` (string), `duration_secs` (integer), `ended_at` (date-time), `id` (uuid), `participant_id` (uuid), `record_type` (string), `room_id` (uuid), `session_id` (uuid), `size_mb` (float), `started_at` (date-time), `status` (enum: completed, processing), `type` (enum: audio, video), `updated_at` (date-time)\n\n## Delete several room recordings in a bulk.\n\n`DELETE /room_recordings`\n\n```javascript\nconst response = await client.roomRecordings.deleteBulk();\n\nconsole.log(response.data);\n```\n\nReturns: `room_recordings` (integer)\n\n## View a room recording.\n\n`GET /room_recordings/{room_recording_id}`\n\n```javascript\nconst roomRecording = await client.roomRecordings.retrieve('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');\n\nconsole.log(roomRecording.data);\n```\n\nReturns: `codec` (string), `completed_at` (date-time), `created_at` (date-time), `download_url` (string), `duration_secs` (integer), `ended_at` (date-time), `id` (uuid), `participant_id` (uuid), `record_type` (string), `room_id` (uuid), `session_id` (uuid), `size_mb` (float), `started_at` (date-time), `status` (enum: completed, processing), `type` (enum: audio, video), `updated_at` (date-time)\n\n## Delete a room recording.\n\nSynchronously delete a Room Recording.\n\n`DELETE /room_recordings/{room_recording_id}`\n\n```javascript\nawait client.roomRecordings.delete('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');\n```\n\n## View a list of room sessions.\n\n`GET /room_sessions`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const roomSession of client.rooms.sessions.list0()) {\n  console.log(roomSession.id);\n}\n```\n\nReturns: `active` (boolean), `created_at` (date-time), `ended_at` (date-time), `id` (uuid), `participants` (array[object]), `record_type` (string), `room_id` (uuid), `updated_at` (date-time)\n\n## View a room session.\n\n`GET /room_sessions/{room_session_id}`\n\n```javascript\nconst session = await client.rooms.sessions.retrieve('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');\n\nconsole.log(session.data);\n```\n\nReturns: `active` (boolean), `created_at` (date-time), `ended_at` (date-time), `id` (uuid), `participants` (array[object]), `record_type` (string), `room_id` (uuid), `updated_at` (date-time)\n\n## End a room session.\n\nNote: this will also kick all participants currently present in the room\n\n`POST /room_sessions/{room_session_id}/actions/end`\n\n```javascript\nconst response = await client.rooms.sessions.actions.end('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');\n\nconsole.log(response.data);\n```\n\nReturns: `result` (string)\n\n## Kick participants from a room session.\n\n`POST /room_sessions/{room_session_id}/actions/kick`\n\nOptional: `exclude` (array[string]), `participants` (object)\n\n```javascript\nconst response = await client.rooms.sessions.actions.kick('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');\n\nconsole.log(response.data);\n```\n\nReturns: `result` (string)\n\n## Mute participants in room session.\n\n`POST /room_sessions/{room_session_id}/actions/mute`\n\nOptional: `exclude` (array[string]), `participants` (object)\n\n```javascript\nconst response = await client.rooms.sessions.actions.mute('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');\n\nconsole.log(response.data);\n```\n\nReturns: `result` (string)\n\n## Unmute participants in room session.\n\n`POST /room_sessions/{room_session_id}/actions/unmute`\n\nOptional: `exclude` (array[string]), `participants` (object)\n\n```javascript\nconst response = await client.rooms.sessions.actions.unmute('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');\n\nconsole.log(response.data);\n```\n\nReturns: `result` (string)\n\n## View a list of room participants.\n\n`GET /room_sessions/{room_session_id}/participants`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const roomParticipant of client.rooms.sessions.retrieveParticipants(\n  '0ccc7b54-4df3-4bca-a65a-3da1ecc777f0',\n)) {\n  console.log(roomParticipant.id);\n}\n```\n\nReturns: `context` (string), `id` (uuid), `joined_at` (date-time), `left_at` (date-time), `record_type` (string), `session_id` (uuid), `updated_at` (date-time)\n\n## View a list of rooms.\n\n`GET /rooms`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const room of client.rooms.list()) {\n  console.log(room.id);\n}\n```\n\nReturns: `active_session_id` (uuid), `created_at` (date-time), `enable_recording` (boolean), `id` (uuid), `max_participants` (integer), `record_type` (string), `sessions` (array[object]), `unique_name` (string), `updated_at` (date-time), `webhook_event_failover_url` (uri), `webhook_event_url` (uri), `webhook_timeout_secs` (integer)\n\n## Create a room.\n\nSynchronously create a Room.\n\n`POST /rooms`\n\nOptional: `enable_recording` (boolean), `max_participants` (integer), `unique_name` (string), `webhook_event_failover_url` (uri), `webhook_event_url` (uri), `webhook_timeout_secs` (integer)\n\n```javascript\nconst room = await client.rooms.create({\n    uniqueName: 'my-meeting-room',\n    maxParticipants: 10,\n});\n\nconsole.log(room.data);\n```\n\nReturns: `active_session_id` (uuid), `created_at` (date-time), `enable_recording` (boolean), `id` (uuid), `max_participants` (integer), `record_type` (string), `sessions` (array[object]), `unique_name` (string), `updated_at` (date-time), `webhook_event_failover_url` (uri), `webhook_event_url` (uri), `webhook_timeout_secs` (integer)\n\n## View a room.\n\n`GET /rooms/{room_id}`\n\n```javascript\nconst room = await client.rooms.retrieve('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');\n\nconsole.log(room.data);\n```\n\nReturns: `active_session_id` (uuid), `created_at` (date-time), `enable_recording` (boolean), `id` (uuid), `max_participants` (integer), `record_type` (string), `sessions` (array[object]), `unique_name` (string), `updated_at` (date-time), `webhook_event_failover_url` (uri), `webhook_event_url` (uri), `webhook_timeout_secs` (integer)\n\n## Update a room.\n\nSynchronously update a Room.\n\n`PATCH /rooms/{room_id}`\n\nOptional: `enable_recording` (boolean), `max_participants` (integer), `unique_name` (string), `webhook_event_failover_url` (uri), `webhook_event_url` (uri), `webhook_timeout_secs` (integer)\n\n```javascript\nconst room = await client.rooms.update('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');\n\nconsole.log(room.data);\n```\n\nReturns: `active_session_id` (uuid), `created_at` (date-time), `enable_recording` (boolean), `id` (uuid), `max_participants` (integer), `record_type` (string), `sessions` (array[object]), `unique_name` (string), `updated_at` (date-time), `webhook_event_failover_url` (uri), `webhook_event_url` (uri), `webhook_timeout_secs` (integer)\n\n## Delete a room.\n\nSynchronously delete a Room. Participants from that room will be kicked out, they won't be able to join that room anymore, and you won't be charged anymore for that room.\n\n`DELETE /rooms/{room_id}`\n\n```javascript\nawait client.rooms.delete('0ccc7b54-4df3-4bca-a65a-3da1ecc777f0');\n```\n\n## Create Client Token to join a room.\n\nSynchronously create an Client Token to join a Room. Client Token is necessary to join a Telnyx Room. Client Token will expire after `token_ttl_secs`, a Refresh Token is also provided to refresh a Client Token, the Refresh Token expires after `refresh_token_ttl_secs`.\n\n`POST /rooms/{room_id}/actions/generate_join_client_token`\n\nOptional: `refresh_token_ttl_secs` (integer), `token_ttl_secs` (integer)\n\n```javascript\nconst response = await client.rooms.actions.generateJoinClientToken(\n  '0ccc7b54-4df3-4bca-a65a-3da1ecc777f0',\n);\n\nconsole.log(response.data);\n```\n\nReturns: `refresh_token` (string), `refresh_token_expires_at` (date-time), `token` (string), `token_expires_at` (date-time)\n\n## Refresh Client Token to join a room.\n\nSynchronously refresh an Client Token to join a Room. Client Token is necessary to join a Telnyx Room. Client Token will expire after `token_ttl_secs`.\n\n`POST /rooms/{room_id}/actions/refresh_client_token` — Required: `refresh_token`\n\nOptional: `token_ttl_secs` (integer)\n\n```javascript\nconst response = await client.rooms.actions.refreshClientToken(\n  '0ccc7b54-4df3-4bca-a65a-3da1ecc777f0',\n  {\n    refresh_token:\n      'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJ0ZWxueXhfdGVsZXBob255IiwiZXhwIjoxNTkwMDEwMTQzLCJpYXQiOjE1ODc1OTA5NDMsImlzcyI6InRlbG55eF90ZWxlcGhvbnkiLCJqdGkiOiJiOGM3NDgzNy1kODllLTRhNjUtOWNmMi0zNGM3YTZmYTYwYzgiLCJuYmYiOjE1ODc1OTA5NDIsInN1YiI6IjVjN2FjN2QwLWRiNjUtNGYxMS05OGUxLWVlYzBkMWQ1YzZhZSIsInRlbF90b2tlbiI6InJqX1pra1pVT1pNeFpPZk9tTHBFVUIzc2lVN3U2UmpaRmVNOXMtZ2JfeENSNTZXRktGQUppTXlGMlQ2Q0JSbWxoX1N5MGlfbGZ5VDlBSThzRWlmOE1USUlzenl6U2xfYURuRzQ4YU81MHlhSEd1UlNZYlViU1ltOVdJaVEwZz09IiwidHlwIjoiYWNjZXNzIn0.gNEwzTow5MLLPLQENytca7pUN79PmPj6FyqZWW06ZeEmesxYpwKh0xRtA0TzLh6CDYIRHrI8seofOO0YFGDhpQ',\n  },\n);\n\nconsole.log(response.data);\n```\n\nReturns: `token` (string), `token_expires_at` (date-time)\n\n## View a list of room sessions.\n\n`GET /rooms/{room_id}/sessions`\n\n```javascript\n// Automatically fetches more pages as needed.\nfor await (const roomSession of client.rooms.sessions.list1(\n  '0ccc7b54-4df3-4bca-a65a-3da1ecc777f0',\n)) {\n  console.log(roomSession.id);\n}\n```\n\nReturns: `active` (boolean), `created_at` (date-time), `ended_at` (date-time), `id` (uuid), `participants` (array[object]), `record_type` (string), `room_id` (uuid), `updated_at` (date-time)","tags":["telnyx","video","javascript","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm","sdk"],"capabilities":["skill","source-team-telnyx","skill-telnyx-video-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-video-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 (14,439 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-22T00:54:50.354Z","embedding":null,"createdAt":"2026-04-18T22:08:10.375Z","updatedAt":"2026-04-22T00:54:50.354Z","lastSeenAt":"2026-04-22T00:54:50.354Z","tsv":"'+13125550001':80 '+13125550002':82 '/actions/end':938 '/actions/generate_join_client_token':1534 '/actions/kick':966 '/actions/mute':999 '/actions/refresh_client_token':1614 '/actions/unmute':1032 '/participants':1066 '/room_compositions':182,283,395,497 '/room_participants':517,564 '/room_recordings':614,697,714,800 '/room_sessions':820,871,934,962,995,1028,1062 '/rooms':1120,1189,1276,1345,1465,1531,1611,1655 '/sessions':1658 '0ccc7b54':574,724,808,881,945,979,1012,1045,1081,1285,1377,1472,1551,1629,1674 '0ccc7b54-4df3-4bca-a65a-3da1ecc777f0':573,723,807,880,944,978,1011,1044,1080,1284,1376,1471,1550,1628,1673 '1':118 '10':1224 '1000':126 '3da1ecc777f0':578,728,812,885,949,983,1016,1049,1085,1289,1381,1476,1555,1633,1678 '401':66,151 '403':155 '404':158 '422':62,139,162 '429':59,103,168 '4bca':576,726,810,883,947,981,1014,1047,1083,1287,1379,1474,1553,1631,1676 '4c08':407,507 '4df3':575,725,809,882,946,980,1013,1046,1082,1286,1378,1473,1552,1630,1675 '5219b3af':405,505 '5219b3af-87c6-4c08-9b58-5a533d893e21':404,504 '5a533d893e21':409,509 '87c6':406,506 '9b58':408,508 'a65a':577,727,811,884,948,982,1015,1048,1084,1288,1380,1475,1554,1632,1677 'abl':1448 'activ':838,889,1137,1228,1293,1385,1682 'alreadi':42 'also':924,1514 'alway':67 'anymor':1453,1460 'api':26,50,133,153 'apikey':23 'array':853,904,969,1002,1035,1158,1249,1314,1406,1697 'assum':39 'asynchron':277 'audio':682,783 'authent':64 'automat':184,519,616,822,1068,1122,1660 'await':77,119,191,311,402,502,526,571,623,701,721,805,829,878,942,976,1009,1042,1075,1129,1216,1282,1374,1469,1548,1626,1667 'backoff':111,174 'bash':9 'boolean':839,890,1148,1193,1239,1304,1351,1396,1683 'bulk':695 'call':51 'catch':85 'charg':1459 'check':94,143,165 'client':20,40,1478,1487,1493,1502,1519,1578,1587,1593,1602 'client.messages.send':78 'client.roomcompositions.create':312 'client.roomcompositions.delete':503 'client.roomcompositions.list':195 'client.roomcompositions.retrieve':403 'client.roomparticipants.list':530 'client.roomparticipants.retrieve':572 'client.roomrecordings.delete':806 'client.roomrecordings.deletebulk':702 'client.roomrecordings.list':627 'client.roomrecordings.retrieve':722 'client.rooms.actions.generatejoinclienttoken':1549 'client.rooms.actions.refreshclienttoken':1627 'client.rooms.create':1217 'client.rooms.delete':1470 'client.rooms.list':1133 'client.rooms.retrieve':1283 'client.rooms.sessions':833,1671 'client.rooms.sessions.actions.end':943 'client.rooms.sessions.actions.kick':977 'client.rooms.sessions.actions.mute':1010 'client.rooms.sessions.actions.unmute':1043 'client.rooms.sessions.retrieve':879 'client.rooms.sessions.retrieveparticipants':1079 'client.rooms.update':1375 'code':72,150 'codec':631,732 'common':148 'complet':199,246,316,363,413,460,633,678,734,779 'composit':180,276,281,393,397,490,495,499 'connect':95 'console.error':91,132,140 'console.log':196,313,410,531,579,628,703,729,835,886,950,984,1017,1050,1086,1134,1225,1290,1382,1556,1637,1679 'const':19,75,112,192,309,400,527,569,624,699,719,830,876,940,974,1007,1040,1076,1130,1214,1280,1372,1546,1624,1668 'context':534,582,1089 'creat':204,273,278,321,418,638,739,840,891,1141,1181,1185,1232,1297,1389,1477,1485,1684 'current':928 'date':202,207,218,242,252,319,324,335,359,369,416,421,432,456,466,541,546,557,589,594,605,636,641,652,674,687,737,742,753,775,788,843,848,864,894,899,915,1096,1101,1112,1144,1166,1235,1257,1300,1322,1392,1414,1567,1575,1646,1687,1692,1708 'date-tim':201,206,217,241,251,318,323,334,358,368,415,420,431,455,465,540,545,556,588,593,604,635,640,651,673,686,736,741,752,774,787,842,847,863,893,898,914,1095,1100,1111,1143,1165,1234,1256,1299,1321,1391,1413,1566,1574,1645,1686,1691,1707 'default':31 'delet':487,492,496,689,696,790,795,799,1429,1433,1464 'download':209,326,423,643,744 'durat':212,329,426,646,747 'els':98,127 'enabl':1146,1191,1237,1302,1349,1394 'end':215,332,429,649,750,845,896,917,1689 'enqueu':247,364,461 'enum':221,245,338,362,435,459,677,681,778,782 '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 'event':261,266,296,301,378,383,475,480,1169,1174,1201,1206,1260,1265,1325,1330,1359,1364,1417,1422 'exampl':37 'exclud':968,1001,1034 'expir':1505,1524,1564,1572,1605,1643 'exponenti':110,173 'eyjhbgcioijiuzuxmiisinr5cci6ikpxvcj9.eyjhdwqioij0zwxuexhfdgvszxbob255iiwizxhwijoxntkwmdewmtqzlcjpyxqioje1odc1ota5ndmsimlzcyi6inrlbg55ef90zwxlcghvbnkilcjqdgkioijiogm3ndgzny1kodllltrhnjutownmmi0zngm3ytzmytywyzgilcjuymyioje1odc1ota5ndisinn1yii6ijvjn2fjn2qwlwrinjutngyxms05oguxlwvlyzbkmwq1yzzhzsisinrlbf90b2tlbii6injqx1pra1pvt1pnefppzk9tthbfvuizc2lvn3u2umparmvnoxmtz2jfeensntzxrktgqupptxlgmlq2q0jsbwxox1n5mglfbgz5vdlbsthzrwlmoe1usulzenl6u2xfyururzq4yu81mhlhsed1ulnzylviu1ltovdjavewzz09iiwidhlwijoiywnjzxnzin0.gnewztow5mllplqenytca7pun79pmpj6fyqzww06zeemesxypwkh0xrta0tzlh6cdyirhri8seofoo0yfgdhpq':1636 'fail':53 'failov':262,297,379,476,1170,1202,1261,1326,1360,1418 'fetch':185,520,617,823,1069,1123,1661 'field':145,166 'float':238,355,452,670,771 'format':147,167,220,285,337,434 'found':161 'get':181,394,516,563,613,713,819,870,1061,1119,1275,1654 'handl':48,68 'hello':84 'id':223,231,234,255,290,340,348,351,372,398,437,445,448,469,500,536,552,567,584,600,654,657,663,666,717,755,758,764,767,803,850,859,874,901,910,937,965,998,1031,1065,1091,1107,1139,1149,1230,1240,1278,1295,1305,1347,1387,1397,1467,1533,1613,1657,1694,1703 'import':15 'initi':43 'instal':8,11 'instanceof':89,101,130 'insuffici':156 'integ':214,272,307,331,389,428,486,648,708,749,1153,1180,1196,1212,1244,1271,1309,1336,1354,1370,1401,1428,1540,1544,1622 'invalid':152 'javascript':4,7,14,73,183,308,399,501,518,568,615,698,718,804,821,875,939,973,1006,1039,1067,1121,1213,1279,1371,1468,1545,1623,1659 'join':538,586,1093,1450,1481,1490,1498,1581,1590,1598 'key':27,154 'kick':925,955,1442 'layout':258,293,375,472 'left':543,591,1098 'limit':58,105,170 'list':177,512,609,815,1057,1116,1650 'list0':834 'list1':1672 'max':1151,1194,1242,1307,1352,1399 'maxparticip':1223 'mb':237,354,451,669,770 'meet':1221 'mp4':222,339,436 'mute':989 'my-meeting-room':1219 'name':1161,1198,1252,1317,1356,1409 'necessari':1496,1596 'need':189,524,621,827,1073,1127,1665 'network':55,92 'new':21,120 'note':921 'npm':10 'object':259,294,376,473,854,905,972,1005,1038,1159,1250,1315,1407,1698 'omit':35 'option':284,967,1000,1033,1190,1348,1535,1618 'page':187,522,619,825,1071,1125,1663 'particip':515,562,566,656,757,852,903,927,956,971,990,1004,1023,1037,1060,1152,1195,1243,1308,1353,1400,1436,1696 'patch':1344 'permiss':157 'post':282,933,961,994,1027,1188,1530,1610 'present':929 'process':248,365,462,679,780 'process.env':24 'product':71 'promis':121 'provid':1515 'r':122,124 'rate':57,104,169 'record':225,342,439,548,596,612,659,692,707,712,716,760,793,798,802,855,906,1103,1147,1154,1192,1238,1245,1303,1310,1350,1395,1402,1699 'refresh':1511,1517,1522,1526,1536,1559,1562,1577,1585,1616,1634 'requir':144,1615 'resolut':228,287,345,442 'resourc':159 'respons':700,941,975,1008,1041,1547,1625 'response.data':704,951,985,1018,1051,1557,1638 'result':76,953,987,1020,1053 'retri':97,108,116,171 'retry-aft':115 'retryaft':113,125 'return':198,315,412,533,581,630,705,731,837,888,952,986,1019,1052,1088,1136,1227,1292,1384,1558,1639,1681 'room':179,230,275,280,347,392,396,444,489,494,498,514,561,565,611,662,691,706,711,715,763,792,797,801,817,858,868,872,909,919,932,935,959,963,992,996,1025,1029,1059,1063,1118,1131,1183,1187,1215,1222,1274,1277,1281,1339,1343,1346,1373,1431,1435,1439,1452,1463,1466,1483,1492,1501,1532,1583,1592,1601,1612,1652,1656,1702 'room.data':1226,1291,1383 'room.id':1135 'roomcomposit':193,310,401 'roomcomposition.data':314,411 'roomcomposition.id':197 'roomparticip':528,570,1077 'roomparticipant.data':580 'roomparticipant.id':532,1087 'roomrecord':720 'roomrecording.data':730 'roomrecordinglistrespons':625 'roomrecordinglistresponse.id':629 'roomsess':831,1669 'roomsession.id':836,1680 'sec':213,271,306,330,388,427,485,647,748,1179,1211,1270,1335,1369,1427,1509,1529,1539,1543,1609,1621 'session':233,289,350,447,551,599,665,766,818,869,873,877,920,936,960,964,993,997,1026,1030,1064,1106,1138,1157,1229,1248,1294,1313,1386,1405,1653 'session.data':887 'settimeout':123 'setup':13 'sever':690 'shown':45 'size':236,353,450,668,769 'skill' 'skill-telnyx-video-javascript' 'source-team-telnyx' 'start':239,356,453,671,772 'status':244,361,458,676,777 'string':211,227,229,286,288,328,344,346,425,441,443,535,550,583,598,632,645,661,733,746,762,857,908,954,970,988,1003,1021,1036,1054,1090,1105,1156,1162,1199,1247,1253,1312,1318,1357,1404,1410,1561,1570,1641,1701 'synchron':491,794,1184,1340,1432,1484,1584 'telnyx':2,5,12,16,18,22,25,1500,1600 'telnyx-video-javascript':1 'telnyx.apiconnectionerror':90 'telnyx.apierror':131 'telnyx.ratelimiterror':102 'text':83 'time':203,208,219,243,253,320,325,336,360,370,417,422,433,457,467,542,547,558,590,595,606,637,642,653,675,688,738,743,754,776,789,844,849,865,895,900,916,1097,1102,1113,1145,1167,1236,1258,1301,1323,1393,1415,1568,1576,1647,1688,1693,1709 'timeout':270,305,387,484,1178,1210,1269,1334,1368,1426 'token':1479,1488,1494,1503,1507,1512,1520,1523,1527,1537,1541,1560,1563,1569,1571,1579,1588,1594,1603,1607,1617,1619,1635,1640,1642 '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' 'tri':74 'ttl':1508,1528,1538,1542,1608,1620 'type':226,343,440,549,597,660,680,761,781,856,907,1104,1155,1246,1311,1403,1700 'uniqu':1160,1197,1251,1316,1355,1408 'uniquenam':1218 'unmut':1022 'updat':249,366,463,554,602,684,785,861,912,1109,1163,1254,1319,1337,1341,1411,1705 'uri':264,268,299,303,381,385,478,482,1172,1176,1204,1208,1263,1267,1328,1332,1362,1366,1420,1424 'url':210,263,267,298,302,327,380,384,424,477,481,644,745,1171,1175,1203,1207,1262,1266,1327,1331,1361,1365,1419,1423 'user':254,371,468 'uuid':224,232,235,256,291,341,349,352,373,438,446,449,470,537,553,585,601,655,658,664,667,756,759,765,768,851,860,902,911,1092,1108,1140,1150,1231,1241,1296,1306,1388,1398,1695,1704 'valid':60,141,163 'video':3,6,257,292,374,471,683,784 'view':175,390,510,559,607,709,813,866,1055,1114,1272,1648 'wait':106 'webhook':260,265,269,295,300,304,377,382,386,474,479,483,1168,1173,1177,1200,1205,1209,1259,1264,1268,1324,1329,1333,1358,1363,1367,1416,1421,1425 'won':1445,1456","prices":[{"id":"0baa5f99-5609-4b7e-8917-96619b20cb03","listingId":"6a7ba71a-7e33-4c63-b505-22cf7729b7d3","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:08:10.375Z"}],"sources":[{"listingId":"6a7ba71a-7e33-4c63-b505-22cf7729b7d3","source":"github","sourceId":"team-telnyx/ai/telnyx-video-javascript","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-video-javascript","isPrimary":false,"firstSeenAt":"2026-04-18T22:08:10.375Z","lastSeenAt":"2026-04-22T00:54:50.354Z"}],"details":{"listingId":"6a7ba71a-7e33-4c63-b505-22cf7729b7d3","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-video-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":"af3a17ee0aa040ce80b1d9790eaddd33d7d79d4f","skill_md_path":"skills/telnyx-video-javascript/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-video-javascript"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-video-javascript","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-video-javascript"},"updatedAt":"2026-04-22T00:54:50.354Z"}}