{"files":{"SKILL.md":"---\nname: twilio-voice\ndescription: \"Twilio - Voice API skill. Use when working with Twilio - Voice for Archives, ByocTrunks, ConnectionPolicies. Covers 32 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Twilio - Voice\nAPI version: 1.0.0\n\n## Auth\nBearer basic\n\n## Base URL\nhttps://voice.twilio.com\n\n## Setup\n1. Set Authorization header with Bearer token\n2. GET /v1/ByocTrunks -- verify access\n3. POST /v1/ByocTrunks -- create first ByocTrunk\n\n## Endpoints\n32 endpoints across 7 groups. See references/api-spec.lap for full details.\n\n### Archives\n| Method | Path | Description |\n|--------|------|-------------|\n| DELETE | /v1/Archives/{Date}/Calls/{Sid} | Delete an archived call record from Bulk Export. Note: this does not also delete the record from the Voice API. |\n\n### ByocTrunks\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v1/ByocTrunks |  |\n| GET | /v1/ByocTrunks |  |\n| GET | /v1/ByocTrunks/{Sid} |  |\n| POST | /v1/ByocTrunks/{Sid} |  |\n| DELETE | /v1/ByocTrunks/{Sid} |  |\n\n### ConnectionPolicies\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v1/ConnectionPolicies |  |\n| GET | /v1/ConnectionPolicies |  |\n| GET | /v1/ConnectionPolicies/{Sid} |  |\n| POST | /v1/ConnectionPolicies/{Sid} |  |\n| DELETE | /v1/ConnectionPolicies/{Sid} |  |\n| POST | /v1/ConnectionPolicies/{ConnectionPolicySid}/Targets |  |\n| GET | /v1/ConnectionPolicies/{ConnectionPolicySid}/Targets |  |\n| GET | /v1/ConnectionPolicies/{ConnectionPolicySid}/Targets/{Sid} |  |\n| POST | /v1/ConnectionPolicies/{ConnectionPolicySid}/Targets/{Sid} |  |\n| DELETE | /v1/ConnectionPolicies/{ConnectionPolicySid}/Targets/{Sid} |  |\n\n### DialingPermissions\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/DialingPermissions/Countries/{IsoCode} | Retrieve voice dialing country permissions identified by the given ISO country code |\n| GET | /v1/DialingPermissions/Countries | Retrieve all voice dialing country permissions for this account |\n| POST | /v1/DialingPermissions/BulkCountryUpdates | Create a bulk update request to change voice dialing country permissions of one or more countries identified by the corresponding [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) |\n| GET | /v1/DialingPermissions/Countries/{IsoCode}/HighRiskSpecialPrefixes | Fetch the high-risk special services prefixes from the country resource corresponding to the [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) |\n\n### Settings\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /v1/Settings | Retrieve voice dialing permissions inheritance for the sub-account |\n| POST | /v1/Settings | Update voice dialing permissions inheritance for the sub-account |\n\n### IpRecords\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v1/IpRecords |  |\n| GET | /v1/IpRecords |  |\n| GET | /v1/IpRecords/{Sid} |  |\n| POST | /v1/IpRecords/{Sid} |  |\n| DELETE | /v1/IpRecords/{Sid} |  |\n\n### SourceIpMappings\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /v1/SourceIpMappings |  |\n| GET | /v1/SourceIpMappings |  |\n| GET | /v1/SourceIpMappings/{Sid} |  |\n| POST | /v1/SourceIpMappings/{Sid} |  |\n| DELETE | /v1/SourceIpMappings/{Sid} |  |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Delete a Call?\" -> DELETE /v1/Archives/{Date}/Calls/{Sid}\n- \"Create a ByocTrunk?\" -> POST /v1/ByocTrunks\n- \"List all ByocTrunks?\" -> GET /v1/ByocTrunks\n- \"Get ByocTrunk details?\" -> GET /v1/ByocTrunks/{Sid}\n- \"Delete a ByocTrunk?\" -> DELETE /v1/ByocTrunks/{Sid}\n- \"Create a ConnectionPolicy?\" -> POST /v1/ConnectionPolicies\n- \"List all ConnectionPolicies?\" -> GET /v1/ConnectionPolicies\n- \"Get ConnectionPolicy details?\" -> GET /v1/ConnectionPolicies/{Sid}\n- \"Delete a ConnectionPolicy?\" -> DELETE /v1/ConnectionPolicies/{Sid}\n- \"Create a Target?\" -> POST /v1/ConnectionPolicies/{ConnectionPolicySid}/Targets\n- \"List all Targets?\" -> GET /v1/ConnectionPolicies/{ConnectionPolicySid}/Targets\n- \"Get Target details?\" -> GET /v1/ConnectionPolicies/{ConnectionPolicySid}/Targets/{Sid}\n- \"Delete a Target?\" -> DELETE /v1/ConnectionPolicies/{ConnectionPolicySid}/Targets/{Sid}\n- \"Get Country details?\" -> GET /v1/DialingPermissions/Countries/{IsoCode}\n- \"List all Countries?\" -> GET /v1/DialingPermissions/Countries\n- \"Create a BulkCountryUpdate?\" -> POST /v1/DialingPermissions/BulkCountryUpdates\n- \"List all HighRiskSpecialPrefixes?\" -> GET /v1/DialingPermissions/Countries/{IsoCode}/HighRiskSpecialPrefixes\n- \"List all Settings?\" -> GET /v1/Settings\n- \"Create a Setting?\" -> POST /v1/Settings\n- \"Create a IpRecord?\" -> POST /v1/IpRecords\n- \"List all IpRecords?\" -> GET /v1/IpRecords\n- \"Get IpRecord details?\" -> GET /v1/IpRecords/{Sid}\n- \"Delete a IpRecord?\" -> DELETE /v1/IpRecords/{Sid}\n- \"Create a SourceIpMapping?\" -> POST /v1/SourceIpMappings\n- \"List all SourceIpMappings?\" -> GET /v1/SourceIpMappings\n- \"Get SourceIpMapping details?\" -> GET /v1/SourceIpMappings/{Sid}\n- \"Delete a SourceIpMapping?\" -> DELETE /v1/SourceIpMappings/{Sid}\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Paginated endpoints accept limit/offset or cursor parameters\n- Create/update endpoints return the modified resource on success\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Twilio - Voice\n@base https://voice.twilio.com\n@version 1.0.0\n@auth Bearer basic\n@endpoints 32\n@hint download_for_search\n@toc Archives(1), ByocTrunks(5), ConnectionPolicies(10), DialingPermissions(4), Settings(2), IpRecords(5), SourceIpMappings(5)\n\n@group Archives\n@endpoint DELETE /v1/Archives/{Date}/Calls/{Sid}\n@desc Delete an archived call record from Bulk Export. Note: this does not also delete the record from the Voice API.\n@required {Date: str(date) # The date of the Call in UTC., Sid: str # The Twilio-provided Call SID that uniquely identifies the Call resource to delete}\n@returns(204) The resource was deleted successfully.\n\n@endgroup\n\n@group ByocTrunks\n@endpoint POST /v1/ByocTrunks\n@returns(201) {account_sid: str?, sid: str?, friendly_name: str?, voice_url: str(uri)?, voice_method: str(http-method)?, voice_fallback_url: str(uri)?, voice_fallback_method: str(http-method)?, status_callback_url: str(uri)?, status_callback_method: str(http-method)?, cnam_lookup_enabled: bool?, connection_policy_sid: str?, from_domain_sid: str?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?} # Created\n\n@endpoint GET /v1/ByocTrunks\n@optional {PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}\n@returns(200) {byoc_trunks: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}} # OK\n\n@endpoint GET /v1/ByocTrunks/{Sid}\n@required {Sid: str # The Twilio-provided string that uniquely identifies the BYOC Trunk resource to fetch.}\n@returns(200) {account_sid: str?, sid: str?, friendly_name: str?, voice_url: str(uri)?, voice_method: str(http-method)?, voice_fallback_url: str(uri)?, voice_fallback_method: str(http-method)?, status_callback_url: str(uri)?, status_callback_method: str(http-method)?, cnam_lookup_enabled: bool?, connection_policy_sid: str?, from_domain_sid: str?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?} # OK\n\n@endpoint POST /v1/ByocTrunks/{Sid}\n@required {Sid: str # The Twilio-provided string that uniquely identifies the BYOC Trunk resource to update.}\n@returns(200) {account_sid: str?, sid: str?, friendly_name: str?, voice_url: str(uri)?, voice_method: str(http-method)?, voice_fallback_url: str(uri)?, voice_fallback_method: str(http-method)?, status_callback_url: str(uri)?, status_callback_method: str(http-method)?, cnam_lookup_enabled: bool?, connection_policy_sid: str?, from_domain_sid: str?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?} # OK\n\n@endpoint DELETE /v1/ByocTrunks/{Sid}\n@required {Sid: str # The Twilio-provided string that uniquely identifies the BYOC Trunk resource to delete.}\n@returns(204) The resource was deleted successfully.\n\n@endgroup\n\n@group ConnectionPolicies\n@endpoint POST /v1/ConnectionPolicies\n@returns(201) {account_sid: str?, sid: str?, friendly_name: str?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?, links: map?} # Created\n\n@endpoint GET /v1/ConnectionPolicies\n@optional {PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}\n@returns(200) {connection_policies: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}} # OK\n\n@endpoint GET /v1/ConnectionPolicies/{Sid}\n@required {Sid: str # The unique string that we created to identify the Connection Policy resource to fetch.}\n@returns(200) {account_sid: str?, sid: str?, friendly_name: str?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?, links: map?} # OK\n\n@endpoint POST /v1/ConnectionPolicies/{Sid}\n@required {Sid: str # The unique string that we created to identify the Connection Policy resource to update.}\n@returns(200) {account_sid: str?, sid: str?, friendly_name: str?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?, links: map?} # OK\n\n@endpoint DELETE /v1/ConnectionPolicies/{Sid}\n@required {Sid: str # The unique string that we created to identify the Connection Policy resource to delete.}\n@returns(204) The resource was deleted successfully.\n\n@endpoint POST /v1/ConnectionPolicies/{ConnectionPolicySid}/Targets\n@required {ConnectionPolicySid: str # The SID of the Connection Policy that owns the Target.}\n@returns(201) {account_sid: str?, connection_policy_sid: str?, sid: str?, friendly_name: str?, target: str(uri)?, priority: int, weight: int, enabled: bool?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?} # Created\n\n@endpoint GET /v1/ConnectionPolicies/{ConnectionPolicySid}/Targets\n@required {ConnectionPolicySid: str # The SID of the Connection Policy from which to read the Targets.}\n@optional {PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}\n@returns(200) {targets: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}} # OK\n\n@endpoint GET /v1/ConnectionPolicies/{ConnectionPolicySid}/Targets/{Sid}\n@required {ConnectionPolicySid: str # The SID of the Connection Policy that owns the Target., Sid: str # The unique string that we created to identify the Target resource to fetch.}\n@returns(200) {account_sid: str?, connection_policy_sid: str?, sid: str?, friendly_name: str?, target: str(uri)?, priority: int, weight: int, enabled: bool?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?} # OK\n\n@endpoint POST /v1/ConnectionPolicies/{ConnectionPolicySid}/Targets/{Sid}\n@required {ConnectionPolicySid: str # The SID of the Connection Policy that owns the Target., Sid: str # The unique string that we created to identify the Target resource to update.}\n@returns(200) {account_sid: str?, connection_policy_sid: str?, sid: str?, friendly_name: str?, target: str(uri)?, priority: int, weight: int, enabled: bool?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?} # OK\n\n@endpoint DELETE /v1/ConnectionPolicies/{ConnectionPolicySid}/Targets/{Sid}\n@required {ConnectionPolicySid: str # The SID of the Connection Policy that owns the Target., Sid: str # The unique string that we created to identify the Target resource to delete.}\n@returns(204) The resource was deleted successfully.\n\n@endgroup\n\n@group DialingPermissions\n@endpoint GET /v1/DialingPermissions/Countries/{IsoCode}\n@desc Retrieve voice dialing country permissions identified by the given ISO country code\n@required {IsoCode: str(iso-country-code) # The [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the DialingPermissions Country resource to fetch}\n@returns(200) {iso_code: str(iso-country-code)?, name: str?, continent: str?, country_codes: [str]?, low_risk_numbers_enabled: bool?, high_risk_special_numbers_enabled: bool?, high_risk_tollfraud_numbers_enabled: bool?, url: str(uri)?, links: map?} # OK\n\n@endpoint GET /v1/DialingPermissions/Countries\n@desc Retrieve all voice dialing country permissions for this account\n@optional {IsoCode: str(iso-country-code) # Filter to retrieve the country permissions by specifying the [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2), Continent: str # Filter to retrieve the country permissions by specifying the continent, CountryCode: str # Filter the results by specified [country codes](https://www.itu.int/itudoc/itu-t/ob-lists/icc/e164_763.html), LowRiskNumbersEnabled: bool # Filter to retrieve the country permissions with dialing to low-risk numbers enabled. Can be: `true` or `false`., HighRiskSpecialNumbersEnabled: bool # Filter to retrieve the country permissions with dialing to high-risk special service numbers enabled. Can be: `true` or `false`, HighRiskTollfraudNumbersEnabled: bool # Filter to retrieve the country permissions with dialing to high-risk [toll fraud](https://www.twilio.com/blog/how-to-protect-your-account-from-toll-fraud-with-voice-dialing-geo-permissions-html) numbers enabled. Can be: `true` or `false`., PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}\n@returns(200) {content: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}} # OK\n\n@endpoint POST /v1/DialingPermissions/BulkCountryUpdates\n@desc Create a bulk update request to change voice dialing country permissions of one or more countries identified by the corresponding [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\n@returns(201) {update_count: int, update_request: str?} # Created\n\n@endpoint GET /v1/DialingPermissions/Countries/{IsoCode}/HighRiskSpecialPrefixes\n@desc Fetch the high-risk special services prefixes from the country resource corresponding to the [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)\n@required {IsoCode: str(iso-country-code) # The [ISO 3166-1 country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) to identify the country permissions from which high-risk special service number prefixes are fetched}\n@optional {PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}\n@returns(200) {content: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}} # OK\n\n@endgroup\n\n@group Settings\n@endpoint GET /v1/Settings\n@desc Retrieve voice dialing permissions inheritance for the sub-account\n@returns(200) {dialing_permissions_inheritance: bool?, url: str(uri)?} # OK\n\n@endpoint POST /v1/Settings\n@desc Update voice dialing permissions inheritance for the sub-account\n@returns(202) {dialing_permissions_inheritance: bool?, url: str(uri)?} # Accepted\n\n@endgroup\n\n@group IpRecords\n@endpoint POST /v1/IpRecords\n@returns(201) {account_sid: str?, sid: str?, friendly_name: str?, ip_address: str?, cidr_prefix_length: int, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?} # Created\n\n@endpoint GET /v1/IpRecords\n@optional {PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}\n@returns(200) {ip_records: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}} # OK\n\n@endpoint GET /v1/IpRecords/{Sid}\n@required {Sid: str # The Twilio-provided string that uniquely identifies the IP Record resource to fetch.}\n@returns(200) {account_sid: str?, sid: str?, friendly_name: str?, ip_address: str?, cidr_prefix_length: int, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?} # OK\n\n@endpoint POST /v1/IpRecords/{Sid}\n@required {Sid: str # The Twilio-provided string that uniquely identifies the IP Record resource to update.}\n@returns(200) {account_sid: str?, sid: str?, friendly_name: str?, ip_address: str?, cidr_prefix_length: int, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?} # OK\n\n@endpoint DELETE /v1/IpRecords/{Sid}\n@required {Sid: str # The Twilio-provided string that uniquely identifies the IP Record resource to delete.}\n@returns(204) The resource was deleted successfully.\n\n@endgroup\n\n@group SourceIpMappings\n@endpoint POST /v1/SourceIpMappings\n@returns(201) {sid: str?, ip_record_sid: str?, sip_domain_sid: str?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?} # Created\n\n@endpoint GET /v1/SourceIpMappings\n@optional {PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}\n@returns(200) {source_ip_mappings: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}} # OK\n\n@endpoint GET /v1/SourceIpMappings/{Sid}\n@required {Sid: str # The Twilio-provided string that uniquely identifies the IP Record resource to fetch.}\n@returns(200) {sid: str?, ip_record_sid: str?, sip_domain_sid: str?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?} # OK\n\n@endpoint POST /v1/SourceIpMappings/{Sid}\n@required {Sid: str # The Twilio-provided string that uniquely identifies the IP Record resource to update.}\n@returns(200) {sid: str?, ip_record_sid: str?, sip_domain_sid: str?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?} # OK\n\n@endpoint DELETE /v1/SourceIpMappings/{Sid}\n@required {Sid: str # The Twilio-provided string that uniquely identifies the IP Record resource to delete.}\n@returns(204) The resource was deleted successfully.\n\n@endgroup\n\n@end\n"}}