@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Twilio - Verify
@base https://verify.twilio.com
@version 1.0.0
@auth Bearer basic
@endpoints 57
@hint download_for_search
@toc Services(49), Forms(1), SafeList(3), Attempts(3), Templates(1)

@group Services
@endpoint POST /v2/Services/{ServiceSid}/AccessTokens
@required {ServiceSid: str}
@returns(200) {sid: str?, account_sid: str?, service_sid: str?, entity_identity: str?, factor_type: str, factor_friendly_name: str?, token: str?, url: str(uri)?, ttl: int, date_created: str(date-time)?}
@returns(201) {sid: str?, account_sid: str?, service_sid: str?, entity_identity: str?, factor_type: str, factor_friendly_name: str?, token: str?, url: str(uri)?, ttl: int, date_created: str(date-time)?}

@endpoint GET /v2/Services/{ServiceSid}/AccessTokens/{Sid}
@required {ServiceSid: str, Sid: str}
@returns(200) {sid: str?, account_sid: str?, service_sid: str?, entity_identity: str?, factor_type: str, factor_friendly_name: str?, token: str?, url: str(uri)?, ttl: int, date_created: str(date-time)?}

@endpoint POST /v2/Services/{ServiceSid}/RateLimits/{RateLimitSid}/Buckets
@required {ServiceSid: str, RateLimitSid: str}
@returns(201) {sid: str?, rate_limit_sid: str?, service_sid: str?, account_sid: str?, max: int, interval: int, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?}

@endpoint GET /v2/Services/{ServiceSid}/RateLimits/{RateLimitSid}/Buckets
@required {ServiceSid: str, RateLimitSid: str}
@optional {PageSize: int(int64), Page: int, PageToken: str}
@returns(200) {buckets: [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)}}

@endpoint POST /v2/Services/{ServiceSid}/RateLimits/{RateLimitSid}/Buckets/{Sid}
@required {ServiceSid: str, RateLimitSid: str, Sid: str}
@returns(200) {sid: str?, rate_limit_sid: str?, service_sid: str?, account_sid: str?, max: int, interval: int, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?}

@endpoint GET /v2/Services/{ServiceSid}/RateLimits/{RateLimitSid}/Buckets/{Sid}
@required {ServiceSid: str, RateLimitSid: str, Sid: str}
@returns(200) {sid: str?, rate_limit_sid: str?, service_sid: str?, account_sid: str?, max: int, interval: int, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?}

@endpoint DELETE /v2/Services/{ServiceSid}/RateLimits/{RateLimitSid}/Buckets/{Sid}
@required {ServiceSid: str, RateLimitSid: str, Sid: str}
@returns(204)

@endpoint POST /v2/Services/{ServiceSid}/Entities/{Identity}/Challenges
@required {ServiceSid: str, Identity: str}
@returns(201) {sid: str?, account_sid: str?, service_sid: str?, entity_sid: str?, identity: str?, factor_sid: str?, date_created: str(date-time)?, date_updated: str(date-time)?, date_responded: str(date-time)?, expiration_date: str(date-time)?, status: str, responded_reason: str, details: any?, hidden_details: any?, metadata: any?, factor_type: str, url: str(uri)?, links: map?}

@endpoint GET /v2/Services/{ServiceSid}/Entities/{Identity}/Challenges
@required {ServiceSid: str, Identity: str}
@optional {FactorSid: str, Status: str, Order: str, PageSize: int(int64), Page: int, PageToken: str}
@returns(200) {challenges: [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)}}

@endpoint GET /v2/Services/{ServiceSid}/Entities/{Identity}/Challenges/{Sid}
@required {ServiceSid: str, Identity: str, Sid: str}
@returns(200) {sid: str?, account_sid: str?, service_sid: str?, entity_sid: str?, identity: str?, factor_sid: str?, date_created: str(date-time)?, date_updated: str(date-time)?, date_responded: str(date-time)?, expiration_date: str(date-time)?, status: str, responded_reason: str, details: any?, hidden_details: any?, metadata: any?, factor_type: str, url: str(uri)?, links: map?}

@endpoint POST /v2/Services/{ServiceSid}/Entities/{Identity}/Challenges/{Sid}
@required {ServiceSid: str, Identity: str, Sid: str}
@returns(200) {sid: str?, account_sid: str?, service_sid: str?, entity_sid: str?, identity: str?, factor_sid: str?, date_created: str(date-time)?, date_updated: str(date-time)?, date_responded: str(date-time)?, expiration_date: str(date-time)?, status: str, responded_reason: str, details: any?, hidden_details: any?, metadata: any?, factor_type: str, url: str(uri)?, links: map?}

@endpoint POST /v2/Services/{ServiceSid}/Entities
@required {ServiceSid: str}
@returns(201) {sid: str?, identity: str?, account_sid: str?, service_sid: str?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?, links: map?}

@endpoint GET /v2/Services/{ServiceSid}/Entities
@required {ServiceSid: str}
@optional {PageSize: int(int64), Page: int, PageToken: str}
@returns(200) {entities: [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)}}

@endpoint DELETE /v2/Services/{ServiceSid}/Entities/{Identity}
@required {ServiceSid: str, Identity: str}
@returns(204)

@endpoint GET /v2/Services/{ServiceSid}/Entities/{Identity}
@required {ServiceSid: str, Identity: str}
@returns(200) {sid: str?, identity: str?, account_sid: str?, service_sid: str?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?, links: map?}

@endpoint DELETE /v2/Services/{ServiceSid}/Entities/{Identity}/Factors/{Sid}
@required {ServiceSid: str, Identity: str, Sid: str}
@returns(204)

@endpoint GET /v2/Services/{ServiceSid}/Entities/{Identity}/Factors/{Sid}
@required {ServiceSid: str, Identity: str, Sid: str}
@returns(200) {sid: str?, account_sid: str?, service_sid: str?, entity_sid: str?, identity: str?, date_created: str(date-time)?, date_updated: str(date-time)?, friendly_name: str?, status: str, factor_type: str, config: any?, metadata: any?, url: str(uri)?}

@endpoint POST /v2/Services/{ServiceSid}/Entities/{Identity}/Factors/{Sid}
@required {ServiceSid: str, Identity: str, Sid: str}
@returns(200) {sid: str?, account_sid: str?, service_sid: str?, entity_sid: str?, identity: str?, date_created: str(date-time)?, date_updated: str(date-time)?, friendly_name: str?, status: str, factor_type: str, config: any?, metadata: any?, url: str(uri)?}

@endpoint GET /v2/Services/{ServiceSid}/Entities/{Identity}/Factors
@required {ServiceSid: str, Identity: str}
@optional {PageSize: int(int64), Page: int, PageToken: str}
@returns(200) {factors: [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)}}

@endpoint POST /v2/Services/{ServiceSid}/Entities/{Identity}/Factors
@required {ServiceSid: str, Identity: str}
@returns(201) {sid: str?, account_sid: str?, service_sid: str?, entity_sid: str?, identity: str?, binding: any?, options: any?, date_created: str(date-time)?, date_updated: str(date-time)?, friendly_name: str?, status: str, factor_type: str, config: any?, metadata: any?, url: str(uri)?}

@endgroup

@group Forms
@endpoint GET /v2/Forms/{FormType}
@required {FormType: str}
@returns(200) {form_type: str, forms: any?, form_meta: any?, url: str(uri)?}

@endgroup

@group Services
@endpoint POST /v2/Services/{ServiceSid}/MessagingConfigurations
@required {ServiceSid: str}
@returns(201) {account_sid: str?, service_sid: str?, country: str?, messaging_service_sid: str?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?}

@endpoint GET /v2/Services/{ServiceSid}/MessagingConfigurations
@required {ServiceSid: str}
@optional {PageSize: int(int64), Page: int, PageToken: str}
@returns(200) {messaging_configurations: [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)}}

@endpoint POST /v2/Services/{ServiceSid}/MessagingConfigurations/{Country}
@required {ServiceSid: str, Country: str}
@returns(200) {account_sid: str?, service_sid: str?, country: str?, messaging_service_sid: str?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?}

@endpoint GET /v2/Services/{ServiceSid}/MessagingConfigurations/{Country}
@required {ServiceSid: str, Country: str}
@returns(200) {account_sid: str?, service_sid: str?, country: str?, messaging_service_sid: str?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?}

@endpoint DELETE /v2/Services/{ServiceSid}/MessagingConfigurations/{Country}
@required {ServiceSid: str, Country: str}
@returns(204)

@endpoint POST /v2/Services/{ServiceSid}/Entities/{Identity}/Challenges/{ChallengeSid}/Notifications
@required {ServiceSid: str, Identity: str, ChallengeSid: str}
@returns(201) {sid: str?, account_sid: str?, service_sid: str?, entity_sid: str?, identity: str?, challenge_sid: str?, priority: str?, ttl: int, date_created: str(date-time)?}

@endpoint POST /v2/Services/{ServiceSid}/RateLimits
@required {ServiceSid: str}
@returns(201) {sid: str?, service_sid: str?, account_sid: str?, unique_name: str?, description: str?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?, links: map?}

@endpoint GET /v2/Services/{ServiceSid}/RateLimits
@required {ServiceSid: str}
@optional {PageSize: int(int64), Page: int, PageToken: str}
@returns(200) {rate_limits: [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)}}

@endpoint POST /v2/Services/{ServiceSid}/RateLimits/{Sid}
@required {ServiceSid: str, Sid: str}
@returns(200) {sid: str?, service_sid: str?, account_sid: str?, unique_name: str?, description: str?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?, links: map?}

@endpoint GET /v2/Services/{ServiceSid}/RateLimits/{Sid}
@required {ServiceSid: str, Sid: str}
@returns(200) {sid: str?, service_sid: str?, account_sid: str?, unique_name: str?, description: str?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?, links: map?}

@endpoint DELETE /v2/Services/{ServiceSid}/RateLimits/{Sid}
@required {ServiceSid: str, Sid: str}
@returns(204)

@endgroup

@group SafeList
@endpoint POST /v2/SafeList/Numbers
@returns(201) {sid: str?, phone_number: str?, url: str(uri)?}

@endpoint GET /v2/SafeList/Numbers/{PhoneNumber}
@required {PhoneNumber: str}
@returns(200) {sid: str?, phone_number: str?, url: str(uri)?}

@endpoint DELETE /v2/SafeList/Numbers/{PhoneNumber}
@required {PhoneNumber: str}
@returns(204)

@endgroup

@group Services
@endpoint POST /v2/Services
@returns(201) {sid: str?, account_sid: str?, friendly_name: str?, code_length: int, lookup_enabled: bool?, psd2_enabled: bool?, skip_sms_to_landlines: bool?, dtmf_input_required: bool?, tts_name: str?, do_not_share_warning_enabled: bool?, custom_code_enabled: bool?, push: any?, totp: any?, default_template_sid: str?, whatsapp: any?, passkeys: any?, verify_event_subscription_enabled: bool?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?, links: map?}

@endpoint GET /v2/Services
@optional {PageSize: int(int64), Page: int, PageToken: str}
@returns(200) {services: [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)}}

@endpoint GET /v2/Services/{Sid}
@required {Sid: str}
@returns(200) {sid: str?, account_sid: str?, friendly_name: str?, code_length: int, lookup_enabled: bool?, psd2_enabled: bool?, skip_sms_to_landlines: bool?, dtmf_input_required: bool?, tts_name: str?, do_not_share_warning_enabled: bool?, custom_code_enabled: bool?, push: any?, totp: any?, default_template_sid: str?, whatsapp: any?, passkeys: any?, verify_event_subscription_enabled: bool?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?, links: map?}

@endpoint DELETE /v2/Services/{Sid}
@required {Sid: str}
@returns(204)

@endpoint POST /v2/Services/{Sid}
@required {Sid: str}
@returns(200) {sid: str?, account_sid: str?, friendly_name: str?, code_length: int, lookup_enabled: bool?, psd2_enabled: bool?, skip_sms_to_landlines: bool?, dtmf_input_required: bool?, tts_name: str?, do_not_share_warning_enabled: bool?, custom_code_enabled: bool?, push: any?, totp: any?, default_template_sid: str?, whatsapp: any?, passkeys: any?, verify_event_subscription_enabled: bool?, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?, links: map?}

@endpoint POST /v2/Services/{ServiceSid}/Verifications
@required {ServiceSid: str}
@returns(201) {sid: str?, service_sid: str?, account_sid: str?, to: str?, channel: str, status: str?, valid: bool?, lookup: any?, amount: str?, payee: str?, send_code_attempts: [any]?, date_created: str(date-time)?, date_updated: str(date-time)?, sna: any?, url: str(uri)?}
@errors {429}

@endpoint POST /v2/Services/{ServiceSid}/Verifications/{Sid}
@required {ServiceSid: str, Sid: str}
@returns(200) {sid: str?, service_sid: str?, account_sid: str?, to: str?, channel: str, status: str?, valid: bool?, lookup: any?, amount: str?, payee: str?, send_code_attempts: [any]?, date_created: str(date-time)?, date_updated: str(date-time)?, sna: any?, url: str(uri)?}

@endpoint GET /v2/Services/{ServiceSid}/Verifications/{Sid}
@required {ServiceSid: str, Sid: str}
@returns(200) {sid: str?, service_sid: str?, account_sid: str?, to: str?, channel: str, status: str?, valid: bool?, lookup: any?, amount: str?, payee: str?, send_code_attempts: [any]?, date_created: str(date-time)?, date_updated: str(date-time)?, sna: any?, url: str(uri)?}

@endgroup

@group Attempts
@endpoint GET /v2/Attempts
@optional {DateCreatedAfter: str(date-time), DateCreatedBefore: str(date-time), ChannelData.To: str, Country: str(iso-country-code), Channel: str, VerifyServiceSid: str, VerificationSid: str, Status: str, PageSize: int(int64), Page: int, PageToken: str}
@returns(200) {attempts: [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)}}

@endpoint GET /v2/Attempts/{Sid}
@required {Sid: str}
@returns(200) {sid: str?, account_sid: str?, service_sid: str?, verification_sid: str?, date_created: str(date-time)?, date_updated: str(date-time)?, conversion_status: str, channel: str, price: any?, channel_data: any?, url: str(uri)?}

@endpoint GET /v2/Attempts/Summary
@optional {VerifyServiceSid: str, DateCreatedAfter: str(date-time), DateCreatedBefore: str(date-time), Country: str(iso-country-code), Channel: str, DestinationPrefix: str}
@returns(200) {total_attempts: int, total_converted: int, total_unconverted: int, conversion_rate_percentage: str?, url: str(uri)?}

@endgroup

@group Services
@endpoint POST /v2/Services/{ServiceSid}/VerificationCheck
@required {ServiceSid: str}
@returns(200) {sid: str?, service_sid: str?, account_sid: str?, to: str?, channel: str, status: str?, valid: bool?, amount: str?, payee: str?, date_created: str(date-time)?, date_updated: str(date-time)?, sna_attempts_error_codes: [any]?}
@returns(201) {sid: str?, service_sid: str?, account_sid: str?, to: str?, channel: str, status: str?, valid: bool?, amount: str?, payee: str?, date_created: str(date-time)?, date_updated: str(date-time)?, sna_attempts_error_codes: [any]?}

@endgroup

@group Templates
@endpoint GET /v2/Templates
@optional {FriendlyName: str, PageSize: int(int64), Page: int, PageToken: str}
@returns(200) {templates: [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)}}

@endgroup

@group Services
@endpoint POST /v2/Services/{ServiceSid}/Webhooks
@required {ServiceSid: str}
@returns(201) {sid: str?, service_sid: str?, account_sid: str?, friendly_name: str?, event_types: [str]?, status: str, version: str, webhook_url: str(uri)?, webhook_method: str, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?}

@endpoint GET /v2/Services/{ServiceSid}/Webhooks
@required {ServiceSid: str}
@optional {PageSize: int(int64), Page: int, PageToken: str}
@returns(200) {webhooks: [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)}}

@endpoint POST /v2/Services/{ServiceSid}/Webhooks/{Sid}
@required {ServiceSid: str, Sid: str}
@returns(200) {sid: str?, service_sid: str?, account_sid: str?, friendly_name: str?, event_types: [str]?, status: str, version: str, webhook_url: str(uri)?, webhook_method: str, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?}

@endpoint DELETE /v2/Services/{ServiceSid}/Webhooks/{Sid}
@required {ServiceSid: str, Sid: str}
@returns(204)

@endpoint GET /v2/Services/{ServiceSid}/Webhooks/{Sid}
@required {ServiceSid: str, Sid: str}
@returns(200) {sid: str?, service_sid: str?, account_sid: str?, friendly_name: str?, event_types: [str]?, status: str, version: str, webhook_url: str(uri)?, webhook_method: str, date_created: str(date-time)?, date_updated: str(date-time)?, url: str(uri)?}

@endpoint POST /v2/Services/{ServiceSid}/Passkeys/VerifyFactor
@required {ServiceSid: str, response: map{attestationObject: str, clientDataJSON: str, transports: [str]}}
@optional {id: str, rawId: str, authenticatorAttachment: str(platform/cross-platform), type: str=public-key}
@returns(200) {sid: str?, account_sid: str?, service_sid: str?, entity_sid: str?, identity: str?, date_created: str(date-time)?, date_updated: str(date-time)?, friendly_name: str?, status: str, factor_type: str, config: any?, metadata: any?, url: str(uri)?}

@endpoint POST /v2/Services/{ServiceSid}/Passkeys/Factors
@required {ServiceSid: str, friendly_name: str, identity: str}
@optional {config: map{relying_party: map, authenticator_attachment: str, discoverable_credentials: str, user_verification: str}}
@returns(201) {sid: str?, account_sid: str?, service_sid: str?, entity_sid: str?, identity: str?, binding: any?, options: any?, date_created: str(date-time)?, date_updated: str(date-time)?, friendly_name: str?, status: str, factor_type: str, config: any?, metadata: any?, url: str(uri)?}

@endpoint POST /v2/Services/{ServiceSid}/Passkeys/Challenges
@required {ServiceSid: str}
@optional {identity: str, factor_sid: str}
@returns(201) {options: map, sid: str?, account_sid: str?, service_sid: str?, entity_sid: str?, identity: str?, factor_sid: str?, date_created: str(date-time)?, date_updated: str(date-time)?, date_responded: str(date-time)?, expiration_date: str(date-time)?, status: str, responded_reason: str, details: any?, hidden_details: any?, metadata: any?, factor_type: str, url: str(uri)?, links: map?}

@endpoint POST /v2/Services/{ServiceSid}/Passkeys/ApproveChallenge
@required {ServiceSid: str, id: str, rawId: str, authenticatorAttachment: str(platform/cross-platform), response: map{authenticatorData!: str, clientDataJSON!: str, signature!: str, userHandle: str}}
@optional {type: str=public-key}
@returns(200) {options: map, sid: str?, account_sid: str?, service_sid: str?, entity_sid: str?, identity: str?, factor_sid: str?, date_created: str(date-time)?, date_updated: str(date-time)?, date_responded: str(date-time)?, expiration_date: str(date-time)?, status: str, responded_reason: str, details: any?, hidden_details: any?, metadata: any?, factor_type: str, url: str(uri)?, links: map?}

@endgroup

@end
