openapi: 3.1.0 info: title: Wavix APIs description: Wavix provides robust APIs that let you integrate voice and text messaging features directly into your app. Send text, place calls, and access detailed reports programmatically. termsOfService: https://wavix.com/terms-and-conditions license: name: MIT identifier: MIT contact: name: Wavix url: https://wavix.com email: support@wavix.com version: '1.0' servers: - url: https://api.wavix.com description: https://api.wavix.com variables: {} security: - bearerAuth: [] tags: - name: SIP trunks description: SIP trunks - name: Buy description: Numbers - name: Cart description: Numbers - name: My numbers description: Numbers - name: Billing description: Billing, transactions, and invoices - name: Profile description: Account profile and customer information - name: CDRs description: Call detail records and call history - name: Speech Analytics description: Call transcription and speech analytics - name: SMS and MMS description: Messaging - name: Number Validator description: Phone number validation - name: Link shortener description: Short link and click metrics - name: 2FA description: Two-factor authentication - name: 10DLC description: 10DLC Campaigns and Brands - name: API Keys description: API key management - name: Call webhooks description: Webhook configuration for call events - name: Call control description: Programmable Voice - name: Call streaming description: Real-time call audio streaming over WebSocket - name: Call recording description: Call recording - name: Sub-accounts description: Sub-account management - name: Voice campaigns description: Outbound voice campaigns - name: Wavix Embeddable description: WebRTC embeddable widget paths: /v1/api-keys: get: operationId: api_keys_list summary: List API keys description: Returns the API keys belonging to the authenticated account. tags: - API Keys x-fern-sdk-group-name: - apiKeys x-fern-sdk-method-name: list parameters: - in: query name: label schema: type: string description: Filters API keys by `label`. Matches partial values. example: production responses: '200': description: Returns the list of API keys. content: application/json: schema: type: array items: $ref: '#/components/schemas/ApiKey' examples: default: value: - id: 123 label: Production API Key value: abc123def456ghi789jkl012mno345pqr678stu901vwx234yz active: true restricted: true permitted_ips: - 192.168.1.1 - 10.0.0.1 scopes_enabled: true last_used_at: '2026-04-20T15:42:11Z' numbers: allow: read trunks: allow: none calls: allow: read messages: allow: write recordings: allow: read campaigns: allow: none two_fa: allow: write validator: allow: read webhooks: allow: none embeddable: allow: none billing: allow: read account: allow: read subaccounts: allow: none created_at: '2024-01-15T10:30:00Z' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' post: operationId: api_keys_create summary: Create an API key description: Creates an API key for the authenticated account. Restrict access by listing permitted IP addresses in `permitted_ips`. tags: - API Keys x-fern-sdk-group-name: - apiKeys x-fern-sdk-method-name: create requestBody: content: application/json: schema: $ref: '#/components/schemas/ApiKeyCreateRequest' example: label: Production API Key active: true restricted: true permitted_ips: - 192.168.1.1 - 10.0.0.1 scopes_enabled: true numbers: allow: read calls: allow: read messages: allow: write two_fa: allow: write billing: allow: read responses: '200': description: Returns the created API key. content: application/json: schema: $ref: '#/components/schemas/ApiKey' examples: default: value: id: 123 label: Production API Key value: abc123def456ghi789jkl012mno345pqr678stu901vwx234yz active: true restricted: true permitted_ips: - 192.168.1.1 - 10.0.0.1 scopes_enabled: true last_used_at: null numbers: allow: read trunks: allow: none calls: allow: read messages: allow: write recordings: allow: none campaigns: allow: none two_fa: allow: write validator: allow: none webhooks: allow: none embeddable: allow: none billing: allow: read account: allow: none subaccounts: allow: none created_at: '2024-01-15T10:30:00Z' '400': $ref: '#/components/responses/BadRequestErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '422': description: Returns a validation error when a field value is invalid. headers: {} content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' examples: ip_invalid: summary: Invalid IP address value: success: false message: Ip has incorrect format scope_not_hash: summary: Scope value is not an object value: success: false message: 'API key scope numbers: must be a hash' scope_extra_keys: summary: Scope object has unexpected keys value: success: false message: 'API key scope numbers: must have only "allow" key' scope_invalid_allow: summary: Unsupported allow value value: success: false message: 'API key scope numbers: allow must be one of: none, read, write' /v1/api-keys/{id}: patch: operationId: api_keys_update summary: Update an API key description: Updates an API key identified by `id`. Only the provided fields are changed. tags: - API Keys x-fern-sdk-group-name: - apiKeys x-fern-sdk-method-name: update parameters: - in: path name: id schema: type: integer required: true description: The unique ID of the API key. example: 123 requestBody: content: application/json: schema: $ref: '#/components/schemas/ApiKeyUpdateRequest' example: active: true restricted: true scopes_enabled: true permitted_ips: - 192.168.1.1 - 10.0.0.1 label: Production API Key required: false responses: '200': description: Returns the updated API key. content: application/json: schema: $ref: '#/components/schemas/ApiKey' '400': $ref: '#/components/responses/BadRequestErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' '422': $ref: '#/components/responses/ValidationErrorResponse' delete: operationId: api_keys_delete summary: Delete an API key description: Deletes the API key identified by `id`. Deletion is permanent and revokes the key immediately. tags: - API Keys x-fern-sdk-group-name: - apiKeys x-fern-sdk-method-name: delete parameters: - in: path name: id schema: type: integer required: true description: The unique ID of the API key. example: 123 responses: '200': description: Returns a success confirmation. The API key is revoked. content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' examples: success: summary: Successful response value: success: true '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' /v1/trunks: get: tags: - SIP trunks summary: List SIP trunks description: Returns a paginated list of SIP trunks for the authenticated account. operationId: sip_trunks_list security: - bearerAuth: - trunks:read x-fern-sdk-group-name: - sipTrunks x-fern-sdk-method-name: list parameters: - name: page in: query description: Page number to retrieve. Default `1`. style: form schema: type: integer format: int32 - name: per_page in: query description: Number of records to return per page. Default `25`. style: form schema: type: integer format: int32 responses: '200': description: Returns a paginated list of SIP trunks. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SIPTrunkListResponse' examples: success: summary: Successful response value: sip_trunks: - id: 3107 label: My trunk name: '32882' auth_method: IP auth callerid: '14302287001' host_request: host: 127.0.0.1 status: pending encrypted_media: false passthrough: false multiple_numbers: true status: pending charge: '24.637' talk_time: 65 machine_detection_enabled: true call_recording_enabled: true transcription_enabled: true transcription_threshold: 6 access_token: siped7a3f5c1b9e042d6f8a4c2e7b9d1f3a5c8e0b2d4f6a8c0e2d4b6f8a1c3e5d7 pagination: current_page: 1 total: 1 per_page: 25 total_pages: 1 '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false post: tags: - SIP trunks summary: Create a SIP trunk description: Creates a SIP trunk for routing inbound and outbound calls. Returns the trunk with its generated `access_token`. operationId: sip_trunks_create security: - bearerAuth: - trunks:write x-fern-sdk-group-name: - sipTrunks x-fern-sdk-method-name: create parameters: [] requestBody: description: Attributes for the new SIP trunk. content: application/json: schema: $ref: '#/components/schemas/SIPTrunkCreateRequest' required: true responses: '201': description: Returns the created SIP trunk. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SIPTrunkResponse' examples: success: summary: Successful response value: id: 293 name: '67758' callerid: example label: example ip_restrict: false allowed_ips: - id: 6712 ip: 127.0.0.1 channels_restrict: false max_channels: 123 cost_limit: false max_call_cost: example call_restrict: false call_limit: 123 didinfo_enabled: true rewrite_enabled: false rewrite_prefix: example rewrite_cond: example call_recording_enabled: false machine_detection_enabled: false transcription_enabled: false transcription_threshold: 6 created_at: '2023-06-15T10:30:00Z' host: example multiple_numbers: true encrypted_media: true access_token: siped7a3f5c1b9e042d6f8a4c2e7b9d1f3a5c8e0b2d4f6a8c0e2d4b6f8a1c3e5d7 '400': $ref: '#/components/responses/ValidationErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '422': $ref: '#/components/responses/ValidationErrorResponse' deprecated: false /v1/trunks/{id}: get: tags: - SIP trunks summary: Retrieve a SIP trunk description: Returns the SIP trunk identified by `id`. operationId: sip_trunks_get security: - bearerAuth: - trunks:read x-fern-sdk-group-name: - sipTrunks x-fern-sdk-method-name: get parameters: - name: id in: path description: The unique ID of the SIP trunk. required: true style: simple schema: type: integer format: int32 example: 3107 responses: '200': description: Returns the SIP trunk. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SIPTrunkResponse' examples: success: summary: Successful response value: id: 293 name: '67758' callerid: '12345678900' label: My trunk ip_restrict: false allowed_ips: - id: 6712 ip: 127.0.0.1 channels_restrict: false max_channels: 2 cost_limit: true max_call_cost: '0.18' call_restrict: false call_limit: 3600 didinfo_enabled: true rewrite_enabled: true rewrite_prefix: '1' rewrite_cond: example call_recording_enabled: true machine_detection_enabled: true transcription_enabled: false transcription_threshold: 10 created_at: '2023-05-16T17:13:25.000Z' host: dynamic multiple_numbers: true encrypted_media: true access_token: 123easwqe321132 '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': description: Returns when no SIP trunk matches `id`, or the account is not provisioned for SIP trunks. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/ForbiddenErrorResponse' examples: success: summary: Successful response value: success: false message: The service is not provisioned for your account. deprecated: false put: tags: - SIP trunks summary: Update a SIP trunk description: Replaces the configuration of the SIP trunk identified by `id`. Omitted fields revert to their defaults. operationId: sip_trunks_update security: - bearerAuth: - trunks:write x-fern-sdk-group-name: - sipTrunks x-fern-sdk-method-name: update parameters: - name: id in: path description: The unique ID of the SIP trunk. required: true style: simple schema: type: integer format: int32 example: 3107 requestBody: description: Full replacement of the SIP trunk. Omitted fields revert to their defaults. content: application/json: schema: $ref: '#/components/schemas/SIPTrunkCreateRequest' required: true responses: '200': description: Returns the updated SIP trunk. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SIPTrunkResponse' examples: success: summary: Successful response value: id: 293 name: '67758' callerid: '12345678900' label: My trunk ip_restrict: false allowed_ips: - id: 6712 ip: 127.0.0.1 channels_restrict: false max_channels: 2 cost_limit: true max_call_cost: '0.18' call_restrict: false call_limit: 3600 didinfo_enabled: true rewrite_enabled: true rewrite_prefix: '1' rewrite_cond: example call_recording_enabled: true machine_detection_enabled: true transcription_enabled: false transcription_threshold: 10 created_at: '2023-05-16T17:13:25.000Z' host: dynamic multiple_numbers: true encrypted_media: true access_token: 123easwqe321132 '400': $ref: '#/components/responses/ValidationErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false delete: tags: - SIP trunks summary: Delete a SIP trunk description: Deletes the SIP trunk identified by `id`. Deletion is permanent and stops call routing through the trunk. operationId: sip_trunks_delete security: - bearerAuth: - trunks:write x-fern-sdk-group-name: - sipTrunks x-fern-sdk-method-name: delete parameters: - name: id in: path description: The unique ID of the SIP trunk. required: true style: simple schema: type: integer format: int32 example: 3107 responses: '200': description: Returns a success confirmation. The SIP trunk is deleted. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessResponse' examples: success: summary: Successful response value: success: true '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/buy/countries: get: tags: - Buy summary: List countries description: Returns a list of countries where phone numbers are available. operationId: buy_countries_list security: - bearerAuth: - numbers:read x-fern-sdk-group-name: - buy - countries x-fern-sdk-method-name: list parameters: - name: text_enabled_only in: query description: When `true`, returns only countries that offer text-enabled phone numbers. style: form explode: true schema: type: boolean responses: '200': headers: {} description: Returns the list of countries with available phone numbers. content: application/json: schema: allOf: - $ref: '#/components/schemas/CountryListResponse' - example: countries: - id: 8669 has_provinces_or_states: false name: Argentina - id: 8650 has_provinces_or_states: true name: Australia examples: default: value: countries: - id: 8669 has_provinces_or_states: false name: Argentina - id: 8650 has_provinces_or_states: true name: Australia '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false /v1/buy/countries/{country_id}/regions: get: tags: - Buy summary: List regions description: Returns a list of regions (states or provinces) for countries where `has_provinces_or_states` is `true`. operationId: buy_regions_list security: - bearerAuth: - numbers:read x-fern-sdk-group-name: - buy - regions x-fern-sdk-method-name: list parameters: - name: country_id in: path description: The unique ID of the country. required: true style: simple schema: type: integer format: int32 example: 1892 - name: text_enabled_only in: query description: When `true`, returns only regions that offer text-enabled numbers. style: form explode: true schema: type: boolean responses: '200': description: Returns the list of regions. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RegionListResponse' - example: regions: - id: 13 name: Alabama - id: 15 name: Arizona - id: 16 name: Arkansas - id: 17 name: California examples: success: summary: Successful response value: regions: - id: 13 name: Alabama - id: 15 name: Arizona - id: 16 name: Arkansas - id: 17 name: California '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' '422': $ref: '#/components/responses/CountryHasNoRegionsErrorResponse' deprecated: false /v1/buy/countries/{country_id}/cities: get: tags: - Buy summary: List cities description: |- Returns a list of cities for countries where `has_provinces_or_states` is `false`. operationId: buy_cities_list security: - bearerAuth: - numbers:read x-fern-sdk-group-name: - buy - cities x-fern-sdk-method-name: list parameters: - name: country_id in: path description: The unique ID of the country. required: true style: simple schema: type: integer format: int32 example: 1891 - name: text_enabled_only in: query description: When `true`, returns only cities that offer text-enabled numbers. style: form explode: true schema: type: boolean responses: '200': description: Returns the list of cities. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/CityListResponse' - example: cities: - area_code: 113 id: 128791 name: Buenos Aires - area_code: 341 id: 132655 name: Rosario - area_code: 351 id: 132656 name: Cordoba - area_code: 381 id: 141803 name: Tucuman - area_code: 387 id: 141986 name: Salta examples: success: summary: Successful response value: cities: - area_code: 113 id: 128791 name: Buenos Aires - area_code: 341 id: 132655 name: Rosario - area_code: 351 id: 132656 name: Cordoba - area_code: 381 id: 141803 name: Tucuman - area_code: 387 id: 141986 name: Salta '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/buy/countries/{country_id}/regions/{region_id}/cities: get: tags: - Buy summary: List region cities description: Returns a list of cities in the specified region for countries where `has_provinces_or_states` is `true`. operationId: buy_region_cities_list security: - bearerAuth: - numbers:read x-fern-sdk-group-name: - buy - regionCities x-fern-sdk-method-name: list parameters: - name: country_id in: path description: The unique ID of the country. required: true style: simple schema: type: integer format: int32 example: 1891 - name: region_id in: path description: The unique ID of the region. required: true style: simple schema: type: integer format: int32 example: 821 - name: text_enabled_only in: query description: When `true`, returns only cities that offer text-enabled numbers. style: form explode: true schema: type: boolean responses: '200': description: Returns the list of cities. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/CityListResponse' - example: cities: - area_code: 113 id: 128791 name: Buenos Aires - area_code: 341 id: 132655 name: Rosario - area_code: 351 id: 132656 name: Cordoba - area_code: 381 id: 141803 name: Tucuman - area_code: 387 id: 141986 name: Salta examples: success: summary: Successful response value: cities: - area_code: 113 id: 128791 name: Buenos Aires - area_code: 341 id: 132655 name: Rosario - area_code: 351 id: 132656 name: Cordoba - area_code: 381 id: 141803 name: Tucuman - area_code: 387 id: 141986 name: Salta '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/buy/countries/{country_id}/cities/{city_id}/dids: get: tags: - Buy summary: List available phone numbers description: Returns a paginated list of phone numbers available for purchase in the specified city. operationId: buy_numbers_list security: - bearerAuth: - numbers:read x-fern-sdk-group-name: - buy - numbers x-fern-sdk-method-name: list parameters: - name: country_id in: path description: The unique ID of the country. required: true style: simple schema: type: integer format: int32 - name: city_id in: path description: The unique ID of the city. required: true style: simple schema: type: integer format: int32 - name: text_enabled_only in: query description: When `true`, returns only text-enabled phone numbers. style: form explode: true schema: type: boolean - name: page in: query description: Page number to retrieve. Default `1`. style: form explode: true schema: type: integer format: int32 - name: per_page in: query description: Number of records to return per page. Default `25`. style: form explode: true schema: type: integer format: int32 responses: '200': description: Returns a paginated list of available phone numbers. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/AvailableNumberListResponse' - example: dids: - activation_fee: '15.0' channels: '4' city: Buenos Aires cnam: false country: Argentina country_short_name: AR domestic_cli: false free_min: 0 id: 541139862174 monthly_fee: '10.0' number: '541139862174' per_min: '0.01' require_docs: [] sms_enabled: false sms_price: 0 pagination: total: 1 total_pages: 1 current_page: 1 per_page: 50 examples: success: summary: Successful response value: dids: - activation_fee: '15.0' channels: '4' city: Buenos Aires cnam: false country: Argentina country_short_name: AR domestic_cli: false free_min: 0 id: 541139862174 monthly_fee: '10.0' number: '541139862174' per_min: '0.01' require_docs: [] sms_enabled: false sms_price: 0 pagination: total: 1 total_pages: 1 current_page: 1 per_page: 50 '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/buy/cart: put: tags: - Cart summary: Add to cart description: Adds the listed phone numbers to the purchase cart. operationId: cart_add security: - bearerAuth: - numbers:write x-fern-sdk-group-name: - cart x-fern-sdk-method-name: add parameters: [] requestBody: description: Phone numbers to add to the cart. content: application/json: schema: type: object additionalProperties: false required: - ids properties: ids: type: array description: Phone numbers to add to the cart. items: type: string example: - '541139862174' - '541139862175' required: true responses: '200': description: Returns the phone numbers now in the cart. headers: {} content: application/json: schema: type: array additionalProperties: false example: - activation_fee: '15.0' channels: '4' city: Buenos Aires cnam: false country: Argentina country_short_name: AR domestic_cli: false free_min: 0 id: 541139862174 monthly_fee: '10.0' number: '541139862174' per_min: '0.01' require_docs: [] sms_enabled: false sms_price: 0 examples: default: value: - activation_fee: '15.0' channels: '4' city: Buenos Aires cnam: false country: Argentina country_short_name: AR domestic_cli: false free_min: 0 id: 541139862174 monthly_fee: '10.0' number: '541139862174' per_min: '0.01' require_docs: [] sms_enabled: false sms_price: 0 '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false get: tags: - Cart summary: Retrieve the cart description: Returns the current purchase cart, including the phone numbers it contains and the documents each requires. operationId: cart_get security: - bearerAuth: - numbers:read x-fern-sdk-group-name: - cart x-fern-sdk-method-name: get parameters: [] responses: '200': description: Returns the cart. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/CartResponse' - example: dids: - activation_fee: '15.0' channels: '4' city: Buenos Aires cnam: false country: Argentina country_short_name: AR domestic_cli: false free_min: 0 id: 541139862174 monthly_fee: '10.0' number: '541139862174' per_min: '0.01' require_docs: [] sms_enabled: false sms_price: 0 doc_types: - id: 1 name: id title: Any form of ID - id: 2 name: address title: Proof of address - id: 3 name: localaddress title: Proof of local address examples: default: value: dids: - activation_fee: '15.0' channels: '4' city: Buenos Aires cnam: false country: Argentina country_short_name: AR domestic_cli: false free_min: 0 id: 541139862174 monthly_fee: '10.0' number: '541139862174' per_min: '0.01' require_docs: [] sms_enabled: false sms_price: 0 doc_types: - id: 1 name: id title: Any form of ID - id: 2 name: address title: Proof of address - id: 3 name: localaddress title: Proof of local address '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false delete: tags: - Cart summary: Remove from cart description: Removes the listed phone numbers from the purchase cart. operationId: cart_remove security: - bearerAuth: - numbers:write x-fern-sdk-group-name: - cart x-fern-sdk-method-name: remove requestBody: required: true content: application/json: schema: type: object additionalProperties: false required: - ids properties: ids: type: array items: type: string description: Phone numbers to remove from the cart. example: - '541139862174' - '541139862175' responses: '200': description: Returns a success confirmation. The numbers are removed from the cart. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessResponse' - example: success: true examples: default: value: success: true '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/buy/cart/checkout: post: tags: - Cart summary: Check out the cart description: Purchases the listed phone numbers from the cart. Activation and monthly fees are deducted from the account balance. operationId: cart_checkout security: - bearerAuth: - numbers:write x-fern-sdk-group-name: - cart x-fern-sdk-method-name: checkout parameters: [] requestBody: description: Phone numbers from the cart to purchase. content: application/json: schema: type: object additionalProperties: false required: - ids properties: ids: type: array description: Phone numbers from the cart to purchase. items: type: string example: - '541139862174' - '541139862175' required: true responses: '201': description: Returns a success confirmation. The phone numbers are purchased. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessResponse' - example: success: true examples: success: summary: Successful response value: success: true '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/numbers: get: tags: - My numbers summary: List phone numbers description: Returns a paginated list of the phone numbers owned by the authenticated account. operationId: my_numbers_list security: - bearerAuth: - numbers:read x-fern-sdk-group-name: - numbers x-fern-sdk-method-name: list parameters: - name: city_id in: query description: Filters numbers by the ID of their city or rate center. style: form explode: true schema: type: integer format: int32 example: 123 - name: search in: query description: Filters numbers by a full or partial phone number. style: form explode: true schema: type: string example: '256537' - name: label in: query description: Filters numbers by `label`. style: form explode: true schema: type: string example: ALEX - name: label_present in: query description: When `true`, returns only numbers that have a label; when `false`, only numbers without one. style: form explode: true schema: type: boolean example: true - name: page in: query description: Page number to retrieve. Default `1`. style: form explode: true schema: type: integer format: int32 example: 2 - name: per_page in: query description: Number of records to return per page. Default `25`. style: form explode: true schema: type: integer format: int32 example: 50 responses: '200': description: Returns a paginated list of phone numbers. headers: {} content: application/json: schema: $ref: '#/components/schemas/NumberListResponse' examples: success: summary: Successful response value: items: - id: 123 number: '12565378257' activation_fee: '0.99' monthly_fee: '0.99' per_min: '0.01' city: DETROIT, MI state: example country: United States country_short_name: US destination: - id: 1 destination: '[did]@sipuri.com' priority: 1 transport: 1 trunk_id: 23123 srtp: false trunk_label: My trunk channels: 24 require_docs: - '1' documents: - id: 423 allow_replace: false did_number: '12565378257' doc_content_type: image/png doc_file_name: Copy of ID.png doc_type_id: 1 status: approved url: https://api.wavix.com/v1/numbers/24882/papers/1 domestic_cli: true free_min: 123 unlimited: true label: example status: example seconds: example added: '2023-04-10T06:42:59.000Z' paid_until: '2023-12-07' sms_enabled: false sms_relay_url: https://your-website.com/webhook cnam: true call_recording_enabled: true transcription_enabled: true transcription_threshold: 6 call_status_url: https://example.com doc_types: - id: 2 name: address title: Proof of address pagination: current_page: 2 per_page: 25 total: 101 total_pages: 5 '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false delete: tags: - My numbers summary: Release phone numbers description: Releases the listed phone numbers back to stock. Selection accepts either `ids` (record IDs) or `dids` (phone numbers), but not both. operationId: my_numbers_delete security: - bearerAuth: - numbers:write x-fern-sdk-group-name: - numbers x-fern-sdk-method-name: delete parameters: - name: ids in: query description: Record IDs of the phone numbers to release. Mutually exclusive with `dids`. required: false schema: type: array items: type: integer example: - 47832123321 - 47832123324 - 478321233215 style: form explode: true - name: dids in: query description: Comma-separated phone numbers to release. Mutually exclusive with `ids`. required: false schema: type: string example: 47832123321,47832123324,478321233215 responses: '200': description: Returns a success confirmation. The numbers are released back to stock. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessResponse' - example: success: true examples: default: value: success: true '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' '422': $ref: '#/components/responses/ValidationErrorResponse' deprecated: false patch: tags: - My numbers summary: Bulk update phone numbers description: Applies the same changes to every listed phone number. Only the provided fields are changed. Destination and SMS callback changes are applied asynchronously and may not be reflected in the response immediately. operationId: numbers_bulk_update security: - bearerAuth: - numbers:write x-fern-sdk-group-name: - numbers x-fern-sdk-method-name: bulkUpdate requestBody: content: application/json: schema: $ref: '#/components/schemas/NumberBulkUpdateRequest' required: true responses: '200': description: Returns the updated phone numbers. headers: {} content: application/json: schema: type: object additionalProperties: false properties: items: type: array items: $ref: '#/components/schemas/Number' description: The updated phone numbers. '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/numbers/{id}: get: tags: - My numbers summary: Retrieve a phone number description: Returns the phone number identified by `id`, including its destinations, documents, and feature settings. operationId: my_numbers_get security: - bearerAuth: - numbers:read x-fern-sdk-group-name: - numbers x-fern-sdk-method-name: get parameters: - name: id in: path description: The unique ID of the phone number. required: true style: simple schema: type: integer format: int32 example: 123 responses: '200': description: Returns the phone number. headers: {} content: application/json: schema: $ref: '#/components/schemas/Number' examples: success: summary: Successful response value: id: 123 number: '12565378257' activation_fee: '0.99' monthly_fee: '0.99' per_min: '0.01' city: DETROIT, MI state: example country: United States country_short_name: US destination: - id: 1 destination: '[did]@sipuri.com' priority: 1 transport: 1 trunk_id: 23123 srtp: false trunk_label: My trunk channels: 24 require_docs: - '1' documents: - id: 423 allow_replace: false did_number: '12565378257' doc_content_type: image/png doc_file_name: Copy of ID.png doc_type_id: 1 status: approved url: https://api.wavix.com/v1/numbers/24882/papers/1 domestic_cli: true free_min: 123 unlimited: true label: example status: example seconds: example added: '2023-04-10T06:42:59.000Z' paid_until: '2023-12-07' sms_enabled: false sms_relay_url: https://your-website.com/webhook cnam: true call_recording_enabled: true transcription_enabled: true transcription_threshold: 6 call_status_url: https://example.com '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false patch: tags: - My numbers summary: Update a phone number description: Updates the phone number identified by `id`. Only the provided fields are changed. operationId: numbers_update security: - bearerAuth: - numbers:write x-fern-sdk-group-name: - numbers x-fern-sdk-method-name: update parameters: - name: id in: path description: The unique ID of the phone number. required: true style: simple schema: type: integer format: int32 example: 123 requestBody: content: application/json: schema: $ref: '#/components/schemas/NumberUpdateRequest' required: false responses: '200': description: Returns the updated phone number. headers: {} content: application/json: schema: $ref: '#/components/schemas/Number' '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/numbers/papers: post: tags: - My numbers summary: Upload a document description: |- Uploads a verification document for one or more phone numbers. Uploaded files must meet the following requirements: - Allowed formats: PNG, JPG, JPEG, TIFF, BMP, or PDF - Maximum file size: 10 MB - Files can't be password protected - PDF files must not contain digital signatures operationId: my_numbers_papers_upload security: - bearerAuth: - numbers:write x-fern-sdk-group-name: - numbers - papers x-fern-sdk-method-name: upload parameters: [] requestBody: content: multipart/form-data: encoding: {} schema: required: - did_ids - doc_attachment - doc_id type: object additionalProperties: false properties: did_ids: type: string description: Comma-separated record IDs of the phone numbers the document applies to. example: '2321' doc_attachment: type: string description: Document file to upload. Allowed formats are PNG, JPG, JPEG, TIFF, BMP, and PDF. Maximum size is 10 MB. format: binary doc_id: $ref: '#/components/schemas/DocumentTypeID' required: false responses: '200': description: Returns the uploaded documents and their review status. content: application/json: schema: type: array items: $ref: '#/components/schemas/NumberDocument' examples: default: value: - id: 101 allow_replace: false did_number: '+14062355770' doc_content_type: image/png doc_file_name: user-id-card.png doc_type_id: 1 status: pending url: https://api.wavix.com/v1/numbers/1001/papers/101 - id: 102 allow_replace: true did_number: '+14062355771' doc_content_type: application/pdf doc_file_name: driver-license.pdf doc_type_id: 2 status: approved url: https://api.wavix.com/v1/numbers/1002/papers/102 '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false /v1/cdrs: get: tags: - CDRs summary: List CDRs description: Returns a paginated list of call detail records for the authenticated account, within the requested date range. operationId: cdrs_list security: - bearerAuth: - calls:read x-fern-sdk-group-name: - cdrs x-fern-sdk-method-name: list parameters: - name: from in: query description: Start of the date range to query, in `YYYY-MM-DD` format. Inclusive. required: true style: form explode: true schema: type: string format: date example: '2023-01-01' - name: to in: query description: End of the date range to query, in `YYYY-MM-DD` format. Inclusive. required: true style: form explode: true schema: type: string format: date example: '2023-09-01' - name: type in: query description: Filters CDRs by call direction. One of `placed` (outbound calls dialed by the account) or `received` (inbound calls answered by the account). required: true style: form explode: true schema: type: string example: received - name: disposition in: query description: Filters CDRs by call disposition. One of `answered` (the called party answered), `busy` (the called party was busy), `rejected` (the call was declined), `failed` (the call could not be routed), or `all` (no disposition filter). style: form explode: true schema: allOf: - $ref: '#/components/schemas/CallDisposition' - name: from_search in: query description: Filters CDRs by originating phone number. Accepts a full or partial number. style: form explode: true schema: type: string example: '13524815863' - name: to_search in: query description: Filters CDRs by destination phone number. Accepts a full or partial number. style: form explode: true schema: type: string example: '12565378257' - name: sip_trunk in: query description: Filters outbound CDRs by SIP trunk login. Ignored for inbound calls. style: form explode: true schema: type: string example: '12321' - name: uuid in: query description: Filters CDRs by the unique call ID. style: form explode: true schema: type: string example: 99df5ffd-962a-410f-bcce-d08f1f7f328c - name: page in: query description: Page number to retrieve. Default `1`. style: form explode: true schema: type: integer format: int32 example: 1 - name: per_page in: query description: Number of records to return per page. Default `25`. style: form explode: true schema: type: integer format: int32 default: 25 example: 25 responses: '200': description: Returns a paginated list of CDRs. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/CDRListResponse' examples: success: summary: Successful response value: items: - date: '2023-08-21T06:43:36.000Z' from: '14302287001' to: '33170363950' disposition: answered duration: 6 destination: France per_minute: '0.027' charge: '0.822' sip_trunk: '32882' forward_fee: '0.0' uuid: 99df5ffd-962a-410f-bcce-d08f1f7f328c call_id: 99df5ffd-962a-410f-bcce-d08f1f7f328c parent_uuid: 99df5ffd-962a-410f-bcce-d08f1f7f328c answered_by: human pagination: current_page: 2 per_page: 25 total: 101 total_pages: 5 '400': $ref: '#/components/responses/BadRequestErrorResponse' deprecated: false post: tags: - CDRs summary: Search transcriptions description: Searches call transcriptions for the given keywords or phrases and returns the matching CDRs with their transcriptions. operationId: cdrs_search security: - bearerAuth: - calls:read x-fern-sdk-group-name: - cdrs x-fern-sdk-method-name: search parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/CDRSearchRequest' required: true responses: '200': description: Returns a paginated list of matching CDRs with their transcriptions. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/CDRTranscriptionSearchResponse' examples: success: summary: Successful response value: items: - answered_by: human date: '2023-08-21T06:43:36.000Z' from: '14302287001' to: '33170363950' disposition: answered duration: 6 destination: France per_minute: '0.027' charge: example sip_trunk: '32882' forward_fee: '0.0' uuid: 99df5ffd-962a-410f-bcce-d08f1f7f328c call_id: 99df5ffd-962a-410f-bcce-d08f1f7f328c parent_uuid: 99df5ffd-962a-410f-bcce-d08f1f7f328c transcription: uuid: 40d6f322-048d-490b-95c7-4fc5c76a74db url: https://api.wavix.com/v1/cdrs/40d6f322-048d-490b-95c7-4fc5c76a74db/transcription?appid=secret pagination: current_page: 2 per_page: 25 total: 101 total_pages: 5 '403': $ref: '#/components/responses/ForbiddenErrorResponse' '422': $ref: '#/components/responses/ValidationErrorResponse' deprecated: false /v1/cdrs/{call_id}/retranscribe: put: tags: - CDRs summary: Transcribe a call recording description: Transcribes the recording of the call identified by `call_id`. Transcription is asynchronous; poll the transcription endpoint for the result. operationId: cdrs_retranscribe security: - bearerAuth: - calls:write x-fern-sdk-group-name: - cdrs x-fern-sdk-method-name: retranscribe parameters: - name: call_id in: path description: The unique ID of the call. required: true style: simple schema: type: string example: bbaa37bf-430a-46da-ade3-c248e407016 requestBody: description: Options for the transcription request. content: application/json: schema: allOf: - $ref: '#/components/schemas/CDRRetranscriptionRequest' required: true responses: '200': description: Returns a success confirmation. Transcription is queued. content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' examples: default: value: success: true '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' '422': $ref: '#/components/responses/ValidationErrorResponse' deprecated: false /v1/cdrs/{call_id}/transcription: get: tags: - CDRs summary: Retrieve a transcription description: Returns the transcription of the recorded call identified by `call_id`, including the transcript, speaker turns, and summary. operationId: cdrs_transcription_get security: - bearerAuth: - calls:read x-fern-sdk-group-name: - cdrs - transcription x-fern-sdk-method-name: get parameters: - name: call_id in: path description: The unique ID of the call. required: true style: simple schema: type: string example: bbaa37bf-430a-46da-ade3-c248e407016 responses: '200': description: Returns the call transcription. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/CDRTranscriptionResponse' examples: success: summary: Successful response value: transcript: '16572026750': '' '16465292513': '' turns: - type: '46844685344' s: 160 e: 7280 text: Hello, how can I help you? - type: '+16572026750' s: 2400 e: 3280 text: Hello, I have a question about my bill. uuid: e84f350f-6da7-4b56-80eb-41dec572626b language: en duration: 102 charge: '0.01' status: completed transcription_date: '2023-01-09T10:04:39.734Z' call_date: '2023-01-09T10:01:13.394Z' call_uuid: bbaa37bf-430a-46da-ade3-c248e4070161 call_score: '3.8' call_summary: The agent and client discussed billing issues. '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/cdrs/{call_id}/transcriptions: get: tags: - CDRs summary: Retrieve a transcription description: Returns the transcription of the recorded call identified by `call_id`. Alias of the `transcription` endpoint. operationId: cdrs_transcriptions security: - bearerAuth: - calls:read x-fern-sdk-group-name: - cdrs x-fern-sdk-method-name: transcriptions parameters: - name: call_id in: path description: The unique ID of the call. required: true style: simple schema: type: string example: bbaa37bf-430a-46da-ade3-c248e407016 responses: '200': description: Returns the call transcription. headers: {} content: application/json: schema: $ref: '#/components/schemas/CDRTranscriptionResponse' examples: success: summary: Successful response value: transcript: '16572026750': '' '16465292513': '' turns: - type: '46844685344' s: 160 e: 7280 text: Hello, how can I help you? - type: '+16572026750' s: 2400 e: 3280 text: Hello, I have a question about my bill. uuid: e84f350f-6da7-4b56-80eb-41dec572626b language: en duration: 102 charge: '0.01' status: completed transcription_date: '2023-01-09T10:04:39.734Z' call_date: '2023-01-09T10:01:13.394Z' call_uuid: bbaa37bf-430a-46da-ade3-c248e4070161 call_score: '3.8' call_summary: The agent and client discussed billing issues. '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/cdrs/{call_id}: get: tags: - CDRs summary: Retrieve a CDR description: Returns the call detail record for the call identified by `call_id`. operationId: cdrs_get security: - bearerAuth: - calls:read x-fern-sdk-group-name: - cdrs x-fern-sdk-method-name: get parameters: - name: call_id in: path description: The unique ID of the call. required: true style: simple schema: type: string example: aa566501-c591-4a8b-b3b9-cc1295398b72 - name: show_transcription in: query description: When `true`, includes the call transcription in the response. style: form explode: true schema: type: boolean example: true responses: '200': description: Returns the CDR. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/CDRResponse' examples: success: summary: Successful response value: date: '2023-08-21T06:43:36.000Z' from: '14302287001' to: '33170363950' disposition: answered duration: 6 destination: France per_minute: '0.027' recording_url: https://api.wavix.com/v1/recordings/recording_id charge: '0.162' sip_trunk: '32882' forward_fee: '0.0' uuid: 99df5ffd-962a-410f-bcce-d08f1f7f328c call_id: 99df5ffd-962a-410f-bcce-d08f1f7f328c parent_uuid: 99df5ffd-962a-410f-bcce-d08f1f7f328c answered_by: human '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/cdrs/all: get: tags: - CDRs summary: Export CDRs description: Streams matching call detail records as newline-delimited JSON (NDJSON), one record per line, for bulk export. operationId: cdrs_list_all security: - bearerAuth: - calls:read x-fern-sdk-group-name: - cdrs x-fern-sdk-method-name: listAll parameters: - name: from in: query description: Start of the date range to query, in `YYYY-MM-DD` format. Inclusive. required: true style: form explode: true schema: type: string format: date example: '2023-01-01' - name: to in: query description: End of the date range to query, in `YYYY-MM-DD` format. Inclusive. required: true style: form explode: true schema: type: string format: date example: '2023-09-01' - name: type in: query description: Filters CDRs by call direction. One of `placed` (outbound calls dialed by the account) or `received` (inbound calls answered by the account). required: true style: form explode: true schema: type: string example: received - name: disposition in: query description: Filters CDRs by call disposition. One of `answered` (the called party answered), `busy` (the called party was busy), `rejected` (the call was declined), `failed` (the call could not be routed), or `all` (no disposition filter). style: form explode: true schema: allOf: - $ref: '#/components/schemas/CallDisposition' - name: from_search in: query description: Filters CDRs by originating phone number. Accepts a full or partial number. style: form explode: true schema: type: string example: '13524815863' - name: to_search in: query description: Filters CDRs by destination phone number. Accepts a full or partial number. style: form explode: true schema: type: string example: '12565378257' - name: sip_trunk in: query description: Filters outbound CDRs by SIP trunk login. Ignored for inbound calls. style: form explode: true schema: type: string example: '12321' - name: uuid in: query description: Filters CDRs by the unique call ID. style: form explode: true schema: type: string example: 99df5ffd-962a-410f-bcce-d08f1f7f328c - name: page in: query description: Page number to retrieve. Default `1`. style: form explode: true schema: type: integer format: int32 example: 1 - name: per_page in: query description: Number of records to return per page. Default `25`. style: form explode: true schema: type: integer format: int32 default: 25 example: 25 responses: '200': description: Returns an NDJSON stream of CDRs, one record per line. headers: Content-Type: description: Media type of the response body. Always `application/x-ndjson`. schema: type: string example: application/x-ndjson Last-Modified: description: Timestamp when the exported data was last modified. schema: type: string example: '0' ETag: description: Entity tag identifying the version of the exported data. schema: type: string example: '0' content: application/x-ndjson: schema: type: string description: NDJSON stream of CDR records, one per line. example: |- {"charge":"0.0059","date":"2023-08-28T15:43:31.000Z","destination":"My trunk","disposition":"answered","duration":26,"forward_fee":"0.0","from":"13524815863","per_minute":"0.0059","to":"12565378257","uuid":"99df5ffd-962a-410f-bcce-d08f1f7f328c"} {"charge":"0.00325","date":"2023-11-29T14:48:50.000Z","destination":"United States","disposition":"answered","duration":21,"from":"17182444444","per_minute":"0.0065","to":"18007009909","uuid":"aa566501-c591-4a8b-b3b9-cc1295398b72","forward_fee":"0.003"} '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false /v1/recordings: get: tags: - Call recording summary: List call recordings description: Returns a paginated list of call recordings for the authenticated account, filtered by date range, number, call, or SIP trunk. operationId: call_recording_list security: - bearerAuth: - recordings:read x-fern-sdk-group-name: - callRecording x-fern-sdk-method-name: list parameters: - name: from_date in: query description: Start of the date range to query, in `YYYY-MM-DD` format. Inclusive. required: false style: form explode: true schema: type: string format: date example: '2023-01-01' - name: to_date in: query description: End of the date range to query, in `YYYY-MM-DD` format. Inclusive. required: false style: form explode: true schema: type: string format: date example: '2023-12-31' - name: from in: query description: Filters recordings by originating phone number. Accepts a full or partial number. required: false style: form explode: true schema: type: string example: '123456' - name: to in: query description: Filters recordings by destination phone number. Accepts a full or partial number. required: false style: form explode: true schema: type: string example: '1987654321' - name: call_uuid in: query description: Filters recordings by the unique call ID. required: false style: form explode: true schema: type: string example: aa566501-c591-4a8b-b3b9-cc1295398b72 - name: sip_trunks in: query description: Filters recordings of outbound calls placed through the listed SIP trunk logins. required: false style: form explode: true schema: type: array items: type: string example: - '123' - '456' - name: page in: query description: Page number to retrieve. Default `1`. style: form explode: true schema: type: integer format: int32 example: 1 - name: per_page in: query description: Number of records to return per page. Default `25`. style: form explode: true schema: type: integer format: int32 default: 25 example: 25 responses: '200': description: Returns a paginated list of call recordings. headers: {} content: application/json: schema: $ref: '#/components/schemas/CallRecordingListResponse' examples: success: summary: Successful response value: recordings: - id: 123 created_at: '2023-06-15T10:30:00Z' duration: 120 from: '1234567890' to: '0987654321' call_uuid: aa566501-c591-4a8b-b3b9-cc1295398b72 url: https://api.wavix.com/v1/recordings/uuid invalid: dids: - invalid_did_1 - invalid_did_2 sip_trunks: - invalid_trunk_1 - invalid_trunk_2 pagination: current_page: 2 per_page: 25 total: 101 total_pages: 5 '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false /v1/recordings/{call_id}: get: tags: - Call recording summary: Retrieve a recording by call ID description: Redirects to the recording file for the call identified by `call_id`. The download URL is returned in the `Location` header. operationId: call_recording_get_by_call security: - bearerAuth: - recordings:read x-fern-sdk-group-name: - callRecording x-fern-sdk-method-name: getByCall parameters: - name: call_id in: path description: The unique ID of the call whose recording is retrieved. required: true style: simple explode: false schema: type: string example: aa566501-c591-4a8b-b3b9-cc1295398b72 responses: '200': description: Redirects to the recording file. The URL is in the `Location` header. headers: Location: description: Download URL of the recording file. schema: type: string example: https://api.wavix.com/v1/recordings/uuid '400': description: Returns when the recording has already been deleted. headers: {} content: application/json: schema: $ref: '#/components/schemas/RecordingDeletedErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/recordings/{id}: get: tags: - Call recording summary: Retrieve a recording description: Returns the call recording identified by `id`, including its metadata and download URL. operationId: call_recording_get security: - bearerAuth: - recordings:read x-fern-sdk-group-name: - callRecording x-fern-sdk-method-name: get parameters: - name: id in: path description: The unique ID of the call recording. required: true style: simple explode: false schema: type: integer format: int32 example: 123 responses: '200': description: Returns the call recording. headers: {} content: application/json: schema: $ref: '#/components/schemas/Recording' examples: success: summary: Successful response value: id: 123 created_at: '2023-06-15T10:30:00Z' duration: 120 from: '1234567890' to: '0987654321' call_uuid: aa566501-c591-4a8b-b3b9-cc1295398b72 url: https://api.wavix.com/v1/recordings/uuid '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false delete: tags: - Call recording summary: Delete a call recording description: Deletes the call recording identified by `id`. Deletion is permanent and removes the recording file. operationId: call_recording_delete security: - bearerAuth: - recordings:write x-fern-sdk-group-name: - callRecording x-fern-sdk-method-name: delete parameters: - name: id in: path description: The unique ID of the call recording. required: true style: simple explode: false schema: type: integer format: int32 example: 123 responses: '200': description: Returns a success confirmation. The recording is deleted. headers: {} content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' examples: default: value: success: true '400': description: Returns when the recording has already been deleted. headers: {} content: application/json: schema: $ref: '#/components/schemas/RecordingDeletedErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/speech-analytics: post: tags: - Speech Analytics summary: Upload a file description: |- Uploads an audio file for transcription. Transcription is asynchronous; Wavix sends a POST callback to `callback_url` when it completes, including the `request_id` returned by this request. Callback body: ```json { "request_id": "e865ea07-25af-4fdd-876e-04b0d41d5ebd", "status": "completed", "error": null } ``` - `request_id`: ID of the transcription request. - `status`: One of `completed` (transcription succeeded) or `failed` (transcription encountered an error). - `error`: Error description, or `null` when the transcription succeeded. operationId: speech_analytics_create security: - bearerAuth: - calls:write x-fern-sdk-group-name: - speechAnalytics x-fern-sdk-method-name: create parameters: [] requestBody: content: multipart/form-data: encoding: {} schema: required: - file - callback_url type: object additionalProperties: false properties: file: type: string description: Audio file to transcribe. Maximum size is 25 MB. Supported formats are WAV, MP3, and MP4 stereo. format: binary callback_url: type: string description: URL that receives the POST callback when transcription completes. example: https://you-site.com/webhook insights: type: boolean description: When `true`, generates conversation insights alongside the transcript. example: true required: false responses: '200': description: Returns the transcription `request_id` for the uploaded file. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SubmitFileTranscriptionResponse' - example: file: file.mp3 request_id: e865ea07-25af-4fdd-876e-04b0d41d5ebd success: true examples: default: value: file: file.mp3 request_id: e865ea07-25af-4fdd-876e-04b0d41d5ebd success: true '400': $ref: '#/components/responses/BadRequestErrorResponse' '422': $ref: '#/components/responses/ValidationErrorResponse' deprecated: false /v1/speech-analytics/{request_id}: get: tags: - Speech Analytics summary: Retrieve a transcription description: Returns the transcription for the request identified by `request_id`, including transcript, speaker turns, and insights when available. operationId: speech_analytics_get security: - bearerAuth: - calls:read x-fern-sdk-group-name: - speechAnalytics x-fern-sdk-method-name: get parameters: - name: request_id in: path description: The `request_id` of the transcription, returned when the file was uploaded. required: true style: simple schema: type: string example: e865ea07-25af-4fdd-876e-04b0d41d5ebd responses: '200': description: Returns the completed transcription. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/FileTranscriptionResponse' - example: transcript: channel_1: Hi there channel_2: Hello turns: - speaker: channel_1 s: 600 e: 700 text: Hi sentiment: positive request_id: e84f350f-6da7-4b56-80eb-41dec572626b language: en duration: 102 charge: '0.01' status: completed transcription_date: '2023-01-09T10:04:39.734Z' transcription_score: '3.8' transcription_summary: The agent and client discussed call recording and call transcription original_file: https://api.wavix.com/v1/files/uuid examples: success: summary: Successful response value: transcript: channel_1: Hi there channel_2: Hello turns: - speaker: channel_1 s: 600 e: 700 text: Hi sentiment: positive request_id: e84f350f-6da7-4b56-80eb-41dec572626b language: en duration: 102 charge: '0.01' status: completed transcription_date: '2023-01-09T10:04:39.734Z' transcription_score: '3.8' transcription_summary: The agent and client discussed call recording and call transcription original_file: https://api.wavix.com/v1/files/uuid '202': description: Accepted. The transcription is still in progress. headers: {} content: application/json: schema: type: object properties: success: type: boolean description: Indicates whether the request was accepted. example: true message: type: string description: Human-readable status message. example: The transcription is still pending examples: default: value: success: true message: The transcription is still pending '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false put: tags: - Speech Analytics summary: Retranscribe a file description: Re-runs transcription on the file identified by `request_id`, replacing the existing transcript. operationId: speech_analytics_retranscribe security: - bearerAuth: - calls:write x-fern-sdk-group-name: - speechAnalytics x-fern-sdk-method-name: retranscribe parameters: - name: request_id in: path description: The `request_id` of the transcription, returned when the file was uploaded. required: true style: simple schema: type: string example: e865ea07-25af-4fdd-876e-04b0d41d5ebd requestBody: content: application/json: schema: $ref: '#/components/schemas/SpeechAnalyticsRetranscribeRequest' required: false responses: '200': description: Returns a success confirmation. Retranscription is queued. headers: {} content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' examples: default: value: success: true '400': $ref: '#/components/responses/BadRequestErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' '422': $ref: '#/components/responses/ValidationErrorResponse' deprecated: false /v1/speech-analytics/{request_id}/file: get: tags: - Speech Analytics summary: Retrieve the original file description: Returns the original audio file submitted for the transcription identified by `request_id`. operationId: speech_analytics_file_get security: - bearerAuth: - calls:read x-fern-sdk-group-name: - speechAnalytics - file x-fern-sdk-method-name: get parameters: - name: request_id in: path description: The `request_id` of the transcription, returned when the file was uploaded. required: true style: simple schema: type: string example: e865ea07-25af-4fdd-876e-04b0d41d5ebd responses: '200': description: Returns the original audio file. content: audio/wav: schema: type: string format: binary audio/mpeg: schema: type: string format: binary audio/mp4: schema: type: string format: binary '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/calls/webhooks: get: tags: - Call webhooks summary: List call webhooks description: Returns the configured call webhooks for the authenticated account. Wavix sends POST callbacks for `on-call` and `post-call` events. operationId: call_webhooks_list security: - bearerAuth: - webhooks:read x-fern-sdk-group-name: - callWebhooks x-fern-sdk-method-name: list parameters: [] responses: '200': description: Returns the list of call webhooks. headers: {} content: application/json: schema: $ref: '#/components/schemas/CallWebhookListResponse' examples: default: value: - event_type: post-call url: https://you-site.com/voice/post-call/webhook - event_type: on-call url: https://you-site.com/voice/on-call/webhook '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false post: tags: - Call webhooks summary: Create a call webhook description: Registers a callback URL for the `on-call` or `post-call` event. Wavix sends a POST callback to the URL when the event occurs. operationId: call_webhooks_create security: - bearerAuth: - webhooks:write x-fern-sdk-group-name: - callWebhooks x-fern-sdk-method-name: create parameters: [] requestBody: description: Attributes for the new call webhook. content: application/json: schema: $ref: '#/components/schemas/CallWebhooksCreateRequest' required: true responses: '201': description: Returns the created call webhook. headers: {} content: application/json: schema: $ref: '#/components/schemas/CallWebhook' examples: default: value: success: true event_type: post-call url: https://you-site.com/webhook '400': $ref: '#/components/responses/BadRequestErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false delete: tags: - Call webhooks summary: Delete a call webhook description: Removes the call webhook for the given event type. Wavix stops sending callbacks for that event. operationId: call_webhooks_delete security: - bearerAuth: - webhooks:write x-fern-sdk-group-name: - callWebhooks x-fern-sdk-method-name: delete parameters: - name: event_type in: query description: Event type of the webhook to delete. One of `post-call` (callbacks sent after a call ends) or `on-call` (real-time call status callbacks during a call). required: true style: form explode: true schema: type: string enum: - post-call - on-call example: post-call responses: '200': description: Returns a success confirmation. The call webhook is removed. headers: {} content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' examples: default: value: success: true '400': $ref: '#/components/responses/BadRequestErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '422': $ref: '#/components/responses/ValidationErrorResponse' deprecated: false /v1/calls: post: tags: - Call control summary: Start a call description: Places an outbound call. Returns the call with its `uuid` for tracking and control. operationId: call_control_create security: - bearerAuth: - calls:write x-fern-sdk-group-name: - callControl x-fern-sdk-method-name: create parameters: [] requestBody: description: Attributes for the new outbound call. content: application/json: schema: $ref: '#/components/schemas/CallRequest' required: true responses: '200': description: Returns the created call. content: application/json: schema: $ref: '#/components/schemas/CallCreateResponse' examples: success: summary: Successful response value: uuid: 5dccb6b0-f35c-488c-867b-86fb012c4415 direction: inbound event_type: call_setup event_time: '2025-09-22T12:56:38.547Z' event_payload: null from: '+18045961058' to: '17653889567' call_started: '2025-09-22T12:56:38.547Z' call_answered: '2023-06-15T10:30:00Z' call_completed: '2023-06-15T10:30:00Z' machine_detected: false tag: '' '400': description: Returns a validation error when a request parameter is invalid. content: application/json: schema: $ref: '#/components/schemas/CallControlValidationErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' deprecated: false get: tags: - Call control summary: List active calls description: Returns the calls currently in progress for the authenticated account. operationId: call_control_list security: - bearerAuth: - calls:read x-fern-sdk-group-name: - callControl x-fern-sdk-method-name: list parameters: [] responses: '200': description: Returns the list of active calls. content: application/json: schema: $ref: '#/components/schemas/CallListResponse' examples: success: summary: Successful response value: calls: - uuid: 5dccb6b0-f35c-488c-867b-86fb012c4415 id: 5dccb6b0-f35c-488c-867b-86fb012c4415 direction: inbound event_type: call_setup event_time: '2025-09-22T12:56:38.547Z' event_payload: null from: '+18045961058' to: '17653889567' call_started: '2025-09-22T12:56:38.547Z' call_answered: '2023-06-15T10:30:00Z' call_completed: '2023-06-15T10:30:00Z' machine_detected: false tag: marketing-campaign success: true '401': $ref: '#/components/responses/UnauthorizedErrorResponse' deprecated: false /v1/calls/{id}: get: tags: - Call control summary: Retrieve a call description: Returns the call identified by `id`, including its current event and timestamps. operationId: call_control_get security: - bearerAuth: - calls:read x-fern-sdk-group-name: - callControl x-fern-sdk-method-name: get parameters: - name: id in: path description: The `uuid` of the call. required: true schema: type: string format: uuid responses: '200': description: Returns the call. content: application/json: schema: $ref: '#/components/schemas/CallResponse' examples: success: summary: Successful response value: call: uuid: 5dccb6b0-f35c-488c-867b-86fb012c4415 id: 5dccb6b0-f35c-488c-867b-86fb012c4415 direction: inbound event_type: call_setup event_time: '2025-09-22T12:56:38.547Z' event_payload: null from: '+18045961058' to: '17653889567' call_started: '2025-09-22T12:56:38.547Z' call_answered: '2023-06-15T10:30:00Z' call_completed: '2023-06-15T10:30:00Z' machine_detected: false tag: marketing-campaign success: true '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false delete: tags: - Call control summary: End a call description: Ends the active call identified by `id` by hanging up. operationId: call_control_delete security: - bearerAuth: - calls:write x-fern-sdk-group-name: - callControl x-fern-sdk-method-name: delete parameters: - name: id in: path description: The `uuid` of the call. required: true schema: type: string format: uuid responses: '200': description: Returns a success confirmation. The call is ended. content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' examples: success: summary: Successful response value: success: true '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false patch: tags: - Call control summary: Update a call description: Updates the active call identified by `id`. Only the `tag` field can be changed. operationId: call_control_update security: - bearerAuth: - calls:write x-fern-sdk-group-name: - callControl x-fern-sdk-method-name: update parameters: - name: id in: path description: The `uuid` of the call. required: true schema: type: string format: uuid requestBody: description: Fields to update on the call. Only `tag` is changed. content: application/json: schema: $ref: '#/components/schemas/UpdateCallRequest' required: true responses: '200': description: Returns a success confirmation. The call `tag` is updated. content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' examples: success: summary: Successful response value: success: true '400': $ref: '#/components/responses/BadRequestErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/calls/{id}/answer: post: tags: - Call control summary: Answer a call description: Answers the inbound call identified by `id`. Optionally starts media streaming on answer. operationId: call_control_answer security: - bearerAuth: - calls:write x-fern-sdk-group-name: - callControl x-fern-sdk-method-name: answer parameters: - name: id in: path description: The `uuid` of the call. required: true schema: type: string format: uuid requestBody: description: Options to apply when answering the call. content: application/json: schema: $ref: '#/components/schemas/CallAnswerRequest' required: true responses: '200': description: Returns a success confirmation. The call is answered. content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' examples: success: summary: Successful response value: success: true '400': description: Returns a validation error when a request parameter is invalid. content: application/json: schema: $ref: '#/components/schemas/CallControlValidationErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/calls/{call_id}/streams: post: tags: - Call streaming summary: Start call streaming description: Starts streaming the media of the call identified by `call_id` to the configured destination. Returns the `stream_id`. operationId: call_control_streams_create security: - bearerAuth: - calls:write x-fern-sdk-group-name: - callControl - streams x-fern-sdk-method-name: create parameters: - name: call_id in: path description: The `uuid` of the call. required: true schema: type: string format: uuid requestBody: description: Destination and options for the media stream. content: application/json: schema: $ref: '#/components/schemas/CallStreamCreateRequest' required: true responses: '200': description: Returns the created media stream, including its `stream_id`. content: application/json: schema: $ref: '#/components/schemas/CallStreamResponse' examples: success: summary: Successful response value: success: true stream_id: 123e4567-e89b-12d3-a456-426614174000 '400': description: Returns a validation error when a request parameter is invalid. content: application/json: schema: $ref: '#/components/schemas/CallControlValidationErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' deprecated: false /v1/calls/{call_id}/streams/{id}: delete: tags: - Call streaming summary: Stop call streaming description: Stops the media stream identified by `id` on the call identified by `call_id`. operationId: call_control_streams_delete security: - bearerAuth: - calls:write x-fern-sdk-group-name: - callControl - streams x-fern-sdk-method-name: delete parameters: - name: call_id in: path description: The `uuid` of the call. required: true schema: type: string format: uuid - name: id in: path description: The `uuid` of the media stream to stop. required: true schema: type: string format: uuid responses: '200': description: Returns a success confirmation. The media stream is stopped. content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' examples: success: summary: Successful response value: success: true '401': $ref: '#/components/responses/UnauthorizedErrorResponse' deprecated: false /v1/calls/{id}/play: post: tags: - Call control summary: Play audio description: Plays an audio prompt into the active call identified by `id`. operationId: call_control_audio_play security: - bearerAuth: - calls:write x-fern-sdk-group-name: - callControl - audio x-fern-sdk-method-name: play parameters: - name: id in: path description: The `uuid` of the call. required: true schema: type: string format: uuid requestBody: description: Audio source and playback options. content: application/json: schema: $ref: '#/components/schemas/CallAudioPlayRequest' required: true responses: '200': description: Returns a success confirmation. Audio playback starts. content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' examples: success: summary: Successful response value: success: true '400': description: Returns a validation error when a request parameter is invalid. content: application/json: schema: $ref: '#/components/schemas/CallControlValidationErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/calls/{id}/audio: delete: tags: - Call control summary: Stop audio playback description: Stops audio playback in the active call identified by `id`. operationId: call_control_audio_stop security: - bearerAuth: - calls:write x-fern-sdk-group-name: - callControl - audio x-fern-sdk-method-name: stop parameters: - name: id in: path description: The `uuid` of the call. required: true schema: type: string format: uuid responses: '200': description: Returns a success confirmation. Audio playback stops. content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' examples: success: summary: Successful response value: success: true '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/calls/{id}/collect: post: tags: - Call control summary: Collect DTMF input description: Collects DTMF keypad input from the caller on the active call identified by `id`. operationId: call_control_collect security: - bearerAuth: - calls:write x-fern-sdk-group-name: - callControl x-fern-sdk-method-name: collect parameters: - name: id in: path description: The `uuid` of the call. required: true schema: type: string format: uuid requestBody: description: Options for the DTMF collection. content: application/json: schema: $ref: '#/components/schemas/CallDtmfCollectRequest' required: true responses: '200': description: Returns a success confirmation. DTMF collection starts. content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' examples: success: summary: Successful response value: success: true '400': description: Returns a validation error when a request parameter is invalid. content: application/json: schema: $ref: '#/components/schemas/CallControlValidationErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v2/webrtc/tokens: post: tags: - Wavix Embeddable summary: Create a widget token description: Creates a Wavix Embeddable widget token that authenticates a browser-based softphone session. The token expires after `ttl` seconds. operationId: webrtc_tokens_create security: - bearerAuth: - embeddable:write x-fern-sdk-group-name: - webrtc - tokens x-fern-sdk-method-name: create parameters: [] requestBody: description: Attributes for the new widget token. content: application/json: schema: $ref: '#/components/schemas/WebRTCTokenCreateRequest' example: sip_trunk: my-sip-trunk ttl: 3600 payload: user_id: '42' required: true responses: '201': description: Returns the created widget token. content: application/json: schema: $ref: '#/components/schemas/WebRTCTokenResponse' examples: success: summary: Successful response value: token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... uuid: uuid sip_trunk: sip trunk payload: {} ttl: 123 '400': $ref: '#/components/responses/BadRequestErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false get: tags: - Wavix Embeddable summary: List widget tokens description: Returns a paginated list of active Wavix Embeddable widget tokens for the authenticated account. operationId: webrtc_tokens_list security: - bearerAuth: - embeddable:read x-fern-sdk-group-name: - webrtc - tokens x-fern-sdk-method-name: list parameters: [] responses: '200': description: Returns a paginated list of active widget tokens. content: application/json: schema: $ref: '#/components/schemas/WebRTCTokensListResponse' examples: success: summary: Successful response value: items: - uuid: 550e8400-e29b-41d4-a716-446655440000 sip_trunk: my-sip-trunk payload: {} ttl: 3600 pagination: current_page: 2 per_page: 25 total: 101 total_pages: 5 '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false /v2/webrtc/tokens/{id}: get: tags: - Wavix Embeddable summary: Retrieve a widget token description: Returns the Wavix Embeddable widget token identified by `id`. operationId: webrtc_tokens_get security: - bearerAuth: - embeddable:read x-fern-sdk-group-name: - webrtc - tokens x-fern-sdk-method-name: get parameters: - name: id in: path description: The UUID of the widget token to retrieve. required: true schema: type: string format: uuid responses: '200': description: Returns the widget token. content: application/json: schema: $ref: '#/components/schemas/WebRTCToken' examples: success: summary: Successful response value: uuid: 550e8400-e29b-41d4-a716-446655440000 sip_trunk: my-sip-trunk payload: {} ttl: 3600 '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false put: tags: - Wavix Embeddable summary: Update a widget token description: Updates the `payload` carried by the Wavix Embeddable widget token identified by `id`. operationId: webrtc_tokens_update security: - bearerAuth: - embeddable:write x-fern-sdk-group-name: - webrtc - tokens x-fern-sdk-method-name: update parameters: - name: id in: path description: The UUID of the widget token to update. required: true schema: type: string format: uuid requestBody: description: Fields to update on the widget token. Only included fields are changed. content: application/json: schema: $ref: '#/components/schemas/WebRTCTokenUpdateRequest' required: true responses: '200': description: Returns the updated widget token. content: application/json: schema: $ref: '#/components/schemas/WebRTCToken' examples: success: summary: Successful response value: uuid: 550e8400-e29b-41d4-a716-446655440000 sip_trunk: my-sip-trunk payload: {} ttl: 3600 '400': $ref: '#/components/responses/BadRequestErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false delete: tags: - Wavix Embeddable summary: Delete a widget token description: Deletes the Wavix Embeddable widget token identified by `id`. The token can no longer authenticate widget sessions, and any active session using it ends. operationId: webrtc_tokens_delete security: - bearerAuth: - embeddable:write x-fern-sdk-group-name: - webrtc - tokens x-fern-sdk-method-name: delete parameters: - name: id in: path description: The UUID of the widget token to delete. required: true schema: type: string format: uuid responses: '200': description: Returns a success confirmation. The widget token is deleted. content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' examples: success: summary: Successful response value: success: true '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v3/messages/sender-ids: get: tags: - SMS and MMS summary: List Sender IDs description: Returns the Sender IDs registered for the authenticated account. operationId: sms_and_mms_sender_ids_list security: - bearerAuth: - messages:read x-fern-sdk-group-name: - smsAndMms - senderIds x-fern-sdk-method-name: list parameters: [] responses: '200': description: Returns the list of Sender IDs. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SenderIDListResponse' examples: success: summary: Successful response value: items: - id: 3c7a5a90-43e0-43e0-b006-fdfea30c5a7c sender_id: org_123 type: numeric allowlisted_in: - allowlisted in usecase: usecase samples: - samples '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false post: tags: - SMS and MMS summary: Create a Sender ID description: Creates a Sender ID. Use the 10DLC API to create Sender IDs in the US. operationId: sms_and_mms_sender_ids_create security: - bearerAuth: - messages:write x-fern-sdk-group-name: - smsAndMms - senderIds x-fern-sdk-method-name: create parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/SenderIDCreateRequest' required: true responses: '201': description: Returns the created Sender ID. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SenderIDDetails' examples: success: summary: Successful response value: id: 3c7a5a90-43e0-43e0-b006-fdfea30c5a7c sender_id: Wavix type: numeric allowlisted_in: - example usecase: example samples: - example '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false /v3/messages/sender-ids/{id}: get: tags: - SMS and MMS summary: Retrieve a Sender ID description: Returns the Sender ID identified by `id`. operationId: sms_and_mms_sender_ids_get security: - bearerAuth: - messages:read x-fern-sdk-group-name: - smsAndMms - senderIds x-fern-sdk-method-name: get parameters: - name: id in: path required: true description: The unique ID of the Sender ID. schema: type: string format: uuid responses: '200': description: Returns the Sender ID. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SenderIDResponse' examples: success: summary: Successful response value: id: 3c7a5a90-43e0-43e0-b006-fdfea30c5a7c sender_id: Wavix type: alphanumeric usecase: promo samples: - Sample allowlisted_in: - GB '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false delete: tags: - SMS and MMS summary: Delete a Sender ID description: Deletes the Sender ID identified by `id`. Deletion is permanent. operationId: sms_and_mms_sender_ids_delete security: - bearerAuth: - messages:write x-fern-sdk-group-name: - smsAndMms - senderIds x-fern-sdk-method-name: delete parameters: - name: id in: path description: The unique ID of the Sender ID. required: true style: simple schema: type: string example: fc34ba88-1eee-476e-b09e-dae63dc441e0 responses: '200': description: Returns a success confirmation. The Sender ID is deleted. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessResponse' - example: success: true examples: success: summary: Successful response value: success: true '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': description: Returns when no Sender ID matches `id`. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' examples: success: summary: Successful response value: success: false message: Record not found '422': $ref: '#/components/responses/ValidationErrorResponse' deprecated: false /v3/messages/opt-outs: get: tags: - SMS and MMS summary: List opted-out phone numbers description: Returns a paginated list of phone numbers that have opted out of receiving messages from the authenticated account. operationId: sms_and_mms_opt_outs_list security: - bearerAuth: - messages:read x-fern-sdk-group-name: - smsAndMms - optOuts x-fern-sdk-method-name: list parameters: - in: query name: sender_id schema: type: string description: Filters opt-outs by the Sender ID they apply to. example: MySender - in: query name: campaign_id schema: type: string description: Filters opt-outs by the 10DLC campaign ID they apply to. example: C123456 - in: query name: created_after schema: type: string format: date description: Returns opt-outs created on or after this date, in `YYYY-MM-DD` format. example: '2024-01-01' - in: query name: created_before schema: type: string format: date description: Returns opt-outs created on or before this date, in `YYYY-MM-DD` format. example: '2024-12-31' - in: query name: page schema: type: integer minimum: 1 description: Page number to retrieve. Minimum `1`, default `1`. example: 1 - in: query name: per_page schema: type: integer minimum: 1 maximum: 100 description: Number of records to return per page. Default `25`, maximum `100`. example: 25 responses: '200': description: Returns a paginated list of opted-out phone numbers. content: application/json: schema: $ref: '#/components/schemas/OptOutsListResponse' examples: default: value: items: - phone_number: '15551234567' sender_id: MySender campaign_id: null created_at: '2024-01-15T10:30:00Z' - phone_number: '15559876543' sender_id: null campaign_id: C123456 created_at: '2024-01-16T14:45:00Z' pagination: current_page: 1 per_page: 25 total: 2 total_pages: 1 '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '422': $ref: '#/components/responses/ValidationErrorResponse' deprecated: false post: tags: - SMS and MMS summary: Create an opt-out description: Opts a phone number out of receiving messages from a Sender ID, a 10DLC campaign, or all outbound messages. operationId: sms_and_mms_opt_outs_create security: - bearerAuth: - messages:write x-fern-sdk-group-name: - smsAndMms - optOuts x-fern-sdk-method-name: create parameters: [] requestBody: description: Attributes for the new opt-out. content: application/json: schema: allOf: - $ref: '#/components/schemas/OptOutCreateRequest' required: true responses: '201': description: Returns a success confirmation. The opt-out is created. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessResponse' - example: success: true examples: default: value: success: true '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' '422': $ref: '#/components/responses/ValidationErrorResponse' deprecated: false /v3/messages: post: tags: - SMS and MMS summary: Send a message description: |- Sends an SMS or MMS message. MMS is supported for U.S. numbers only. Track delivery using the returned `message_id` and the message status callback. **Rate limit**: 20 messages per phone number in 24 hours. operationId: sms_and_mms_messages_send security: - bearerAuth: - messages:write x-fern-sdk-group-name: - smsAndMms - messages x-fern-sdk-method-name: send parameters: [] requestBody: description: Attributes for the message to send. content: application/json: schema: allOf: - $ref: '#/components/schemas/MessageCreateRequest' - description: Sender, recipient, and content of the message. example: from: Wavix to: '+447537151866' message_body: text: Hi there, this is a message from Wavix media: null callback_url: https://you-site.com/webhook validity: 3600 tag: Fall sale example: from: Wavix to: '+447537151866' message_body: text: Hi there, this is a message from Wavix media: null callback_url: https://you-site.com/webhook validity: 3600 tag: Fall sale required: true responses: '201': description: Returns the submitted message with its `message_id` and initial status. headers: {} content: application/json: schema: $ref: '#/components/schemas/SendMessagesResponse' examples: default: value: carrier_fees: '0.0' charge: '0.0' delivered_at: '2024-05-28T12:34:56Z' error_message: null from: Sender mcc: '310' mnc: '260' message_body: text: This is a test MMS message with multiple media attachments. media: - https://api.examples.com/v3/messages/attachments/abc123/file1.mp3 - https://api.examples.com/v3/messages/attachments/abc123/file2.mp3 - https://api.examples.com/v3/messages/attachments/abc123/file3.mp3 message_id: abc123de-4567-890f-gh12-ijklmnop3456 message_type: mms segments: 1 sent_at: '2024-05-28T12:34:54Z' status: accepted submitted_at: '2025-09-22T09:07:53' tag: campaign_test to: '+15551234567' '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false get: tags: - SMS and MMS summary: List messages description: Returns a paginated list of SMS and MMS messages for the authenticated account, filtered by direction, date, and other criteria. operationId: sms_and_mms_messages_list security: - bearerAuth: - messages:read x-fern-sdk-group-name: - smsAndMms - messages x-fern-sdk-method-name: list parameters: - name: sent_after in: query description: Returns messages sent on or after this date, in `YYYY-MM-DD` format. style: form explode: true schema: type: string example: '2023-04-10' - name: sent_before in: query description: Returns messages sent on or before this date, in `YYYY-MM-DD` format. style: form explode: true schema: type: string example: '2023-04-13' - name: type in: query description: Filters messages by direction. One of `inbound` (messages received by the account) or `outbound` (messages sent by the account). required: true style: form explode: true schema: type: string example: outbound - name: from in: query description: Filters by message sender. For `outbound` messages, the Sender ID used to send the message; for `inbound` messages, the originating phone number. style: form explode: true schema: type: string example: '15072429497' - name: to in: query description: Filters by message recipient. For `outbound` messages, the destination phone number; for `inbound` messages, an SMS-enabled number on the Wavix platform. style: form explode: true schema: type: string example: '16419252149' - name: status in: query description: Filters messages by delivery status. Accepts a `MessageDeliveryStatus` value. style: form explode: true schema: allOf: - $ref: '#/components/schemas/MessageDeliveryStatus' - name: tag in: query description: Filters messages by `tag`. Supported for outbound messages only. style: form explode: true schema: type: string example: campaignX - name: message_type in: query description: Filters messages by type. One of `sms` (text message) or `mms` (multimedia message). style: form explode: true schema: type: string enum: - sms - mms example: sms - name: page in: query description: Page number to retrieve. Default `1`. style: form explode: true schema: type: integer format: int32 example: 2 - name: per_page in: query description: Number of records to return per page. Default `25`. style: form explode: true schema: type: integer format: int32 example: 50 responses: '200': description: Returns a paginated list of messages. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/MessageListResponse' - example: items: - charge: '0.0475' delivered_at: '2023-08-29T12:32:45.000Z' direction: outbound error_message: null from: Sender ID. mcc: '234' message_body: text: Please call me back media: null message_id: 3a525ca2-6909-4c72-9399-905adf7f3a74 message_type: sms mnc: '024' segments: 1 sent_at: '2023-08-29T12:32:44.000Z' status: delivered submitted_at: '2023-08-29T12:32:44.000Z' carrier_fees: '0.0' tag: null to: '447537151866' pagination: current_page: 1 per_page: 10 total: 1 total_pages: 1 examples: success: summary: Successful response value: items: - charge: '0.0475' delivered_at: '2023-08-29T12:32:45.000Z' direction: outbound error_message: null from: Sender ID. mcc: '234' message_body: text: Please call me back media: null message_id: 3a525ca2-6909-4c72-9399-905adf7f3a74 message_type: sms mnc: '024' segments: 1 sent_at: '2023-08-29T12:32:44.000Z' status: delivered submitted_at: '2023-08-29T12:32:44.000Z' carrier_fees: '0.0' tag: null to: '447537151866' pagination: current_page: 1 per_page: 10 total: 1 total_pages: 1 '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false /v3/messages/{id}: get: tags: - SMS and MMS summary: Retrieve a message description: Returns the SMS or MMS message identified by `id`, including its delivery status and content. operationId: sms_and_mms_messages_get security: - bearerAuth: - messages:read x-fern-sdk-group-name: - smsAndMms - messages x-fern-sdk-method-name: get parameters: - name: id in: path description: The unique ID of the message. required: true style: simple explode: false schema: type: string example: 3a525ca2-6909-4c72-9399-905adf7f3a74 responses: '200': description: Returns the message. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/MessageResponse' - example: message_id: 3a525ca2-6909-4c72-9399-905adf7f3a74 message_type: sms from: '15072429497' to: '16419252149' direction: outbound mcc: '310' mnc: '024' message_body: text: Hello, this is a test message media: null segments: 1 status: delivered charge: '0.01' submitted_at: '2022-04-14T13:51:16.096Z' sent_at: '2022-04-14T13:51:16.096Z' delivered_at: '2022-04-14T13:51:16.096Z' error_message: null carrier_fees: '0.0' tag: Fall sale examples: success: summary: Successful response value: message_id: 3a525ca2-6909-4c72-9399-905adf7f3a74 message_type: sms from: '15072429497' to: '16419252149' direction: outbound mcc: '310' mnc: '024' message_body: text: Hello, this is a test message media: null tag: Fall sale status: delivered segments: 1 charge: '0.01' submitted_at: '2022-04-14T13:51:16.096Z' sent_at: '2022-04-14T13:51:16.096Z' delivered_at: '2022-04-14T13:51:16.096Z' error_message: null carrier_fees: '0.0' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v3/messages/all: get: tags: - SMS and MMS summary: Export messages description: Streams matching SMS and MMS messages as newline-delimited JSON (NDJSON), one message per line, for bulk export. operationId: sms_and_mms_messages_list_all security: - bearerAuth: - messages:read x-fern-sdk-group-name: - smsAndMms - messages x-fern-sdk-method-name: listAll parameters: - name: sent_after in: query description: Returns messages sent on or after this timestamp, in `YYYY-MM-DDTHH:MM:SS` format. style: form explode: true schema: type: string example: '2023-04-10T00:00:00' - name: sent_before in: query description: Returns messages sent on or before this timestamp, in `YYYY-MM-DDTHH:MM:SS` format. style: form explode: true schema: type: string example: '2023-04-13T23:59:59' - name: type in: query description: Filters messages by direction. One of `inbound` (messages received by the account) or `outbound` (messages sent by the account). required: true style: form explode: true schema: type: string example: outbound - name: from in: query description: Filters by message sender. For `outbound` messages, the Sender ID used to send the message; for `inbound` messages, the originating phone number. style: form explode: true schema: type: string example: '15072429497' - name: to in: query description: Filters by message recipient. For `outbound` messages, the destination phone number; for `inbound` messages, the SMS-enabled number that received the message. style: form explode: true schema: type: string example: '16419252149' - name: status in: query description: Filters messages by delivery status. Accepts a `MessageDeliveryStatus` value. style: form explode: true schema: allOf: - $ref: '#/components/schemas/MessageDeliveryStatus' - name: tag in: query description: Filters messages by `tag`. Supported for outbound messages only. style: form explode: true schema: type: string example: campaignX - name: message_type in: query description: Filters messages by type. One of `sms` (text message) or `mms` (multimedia message). style: form explode: true schema: type: string enum: - sms - mms example: sms responses: '200': description: Returns an NDJSON stream of messages, one per line. headers: Content-Type: description: Media type of the response body. Always `application/x-ndjson`. schema: type: string example: application/x-ndjson Last-Modified: description: Timestamp when the exported data was last modified. schema: type: string example: '0' ETag: description: Entity tag identifying the version of the exported data. schema: type: string example: '0' content: application/x-ndjson: schema: type: string description: Newline-delimited JSON stream of messages. example: | {"message_id":"3a525ca2-6909-4c72-9399-905adf7f3a74","message_type":"sms","from":"15072429497","to":"16419252149","direction":"outbound","status":"delivered"} {"message_id":"4b636ca3-7900-5d83-a400-016bf8f8f4b85","message_type":"sms","from":"15072429497","to":"16419252150","direction":"outbound","status":"delivered"} '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false /v3/10dlc/brands: get: tags: - 10DLC summary: List 10DLC Brands description: Returns a paginated list of 10DLC Brands for the authenticated account, filtered by date, name, legal name, and status. operationId: ten_dlc_brands_list security: - bearerAuth: - campaigns:read x-fern-sdk-group-name: - tenDlc - brands x-fern-sdk-method-name: list parameters: - name: dba_name in: query description: Filters Brands by `dba_name` (doing-business-as name). Matches partial values. style: form explode: true schema: type: string example: Brand - name: company_name in: query description: Filters Brands by `company_name` (registered legal name). Matches partial values. style: form explode: true schema: type: string example: Company - name: entity_type in: query description: Filters Brands by business entity type, such as `PRIVATE_PROFIT`. style: form explode: true schema: type: string example: PRIVATE_PROFIT - name: status in: query description: Filters Brands by identity verification status, such as `VERIFIED`. style: form explode: true schema: type: string example: VERIFIED - name: country in: query description: Filters Brands by registration country, as an ISO 3166-1 alpha-2 code (e.g., `US`). style: form explode: true schema: type: string example: US - name: show_deleted in: query description: When `true`, includes deleted Brands in the results. Default `false`. style: form explode: true schema: type: boolean default: false example: false - name: ein_taxid in: query description: Filters Brands by their Employer Identification Number (EIN) or tax ID. style: form explode: true schema: type: string example: '999999999' - name: mock in: query description: When `true`, returns only mock Brands used for testing. Default `false`. style: form explode: true schema: type: boolean default: false example: false - name: created_before in: query description: Returns brands created on or before this date, in `YYYY-MM-DD` format. style: form explode: true schema: type: string example: '2024-08-22' - name: created_after in: query description: Returns brands created on or after this date, in `YYYY-MM-DD` format. style: form explode: true schema: type: string example: '2024-08-22' - name: page in: query description: Page number to retrieve. Default `1`. style: form explode: true schema: type: integer format: int32 example: 1 - name: per_page in: query description: Number of records to return per page. Default `25`. style: form explode: true schema: type: integer format: int32 example: 25 responses: '200': description: Returns a paginated list of 10DLC Brands. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/TenDLCBrandListResponse' - example: items: - brand_id: BM20QP9 city: Miami company_name: Company legal name country: US created_at: '2024-07-24T08:10:49' dba_name: New Brand ein_taxid: '999999999' ein_taxid_country: US email: support@brand.com entity_type: PRIVATE_PROFIT feedback: null first_name: John last_name: Dow mock: false phone_number: '12123450099' state_or_province: FL status: VERIFIED stock_exchange: null stock_symbol: null street_address: 10, Street Name updated_at: '2024-07-24T08:29:09' vertical: HEALTHCARE website: https://brand.com zip: '12345' pagination: current_page: 1 per_page: 25 total: 1 total_pages: 1 examples: default: value: items: - brand_id: BM20QP9 city: Miami company_name: Company legal name country: US created_at: '2024-07-24T08:10:49' dba_name: New Brand ein_taxid: '999999999' ein_taxid_country: US email: support@brand.com entity_type: PRIVATE_PROFIT feedback: null first_name: John last_name: Dow mock: false phone_number: '12123450099' state_or_province: FL status: VERIFIED stock_exchange: null stock_symbol: null street_address: 10, Street Name updated_at: '2024-07-24T08:29:09' vertical: HEALTHCARE website: https://brand.com zip: '12345' pagination: current_page: 1 per_page: 25 total: 1 total_pages: 1 '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. deprecated: false post: tags: - 10DLC summary: Register a 10DLC Brand description: Registers a 10DLC Brand. TCR automatically verifies the brand identity. Only brands with `VERIFIED` or `VETTED_VERIFIED` identity status can register 10DLC Campaigns. operationId: ten_dlc_brands_create security: - bearerAuth: - campaigns:write x-fern-sdk-group-name: - tenDlc - brands x-fern-sdk-method-name: create parameters: [] requestBody: description: Attributes for the new 10DLC Brand. content: application/json: schema: $ref: '#/components/schemas/TenDLCBrandCreateRequest' required: true responses: '201': description: Returns the registered 10DLC Brand. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/TenDLCBrand' - example: brand_id: BM20QP9 city: Miami company_name: Company legal name country: US created_at: '2024-07-24T08:10:49' dba_name: New Brand ein_taxid: '99999999' ein_taxid_country: US email: support@brand.com entity_type: PRIVATE_PROFIT feedback: null first_name: John last_name: Dow mock: false phone_number: '12123450099' state_or_province: FL status: REVIEW stock_exchange: null stock_symbol: null street_address: 10, Street Name updated_at: '2024-07-24T08:10:49' vertical: HEALTHCARE website: https://brand.com zip: '12345' examples: default: value: brand_id: BM20QP9 city: Miami company_name: Company legal name country: US created_at: '2024-07-24T08:10:49' dba_name: New Brand ein_taxid: '99999999' ein_taxid_country: US email: support@brand.com entity_type: PRIVATE_PROFIT feedback: null first_name: John last_name: Dow mock: false phone_number: '12123450099' state_or_province: FL status: REVIEW stock_exchange: null stock_symbol: null street_address: 10, Street Name updated_at: '2024-07-24T08:10:49' vertical: HEALTHCARE website: https://brand.com zip: '12345' '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. deprecated: false /v3/10dlc/brands/{brand_id}: get: tags: - 10DLC summary: Retrieve a 10DLC Brand description: Returns the 10DLC Brand identified by `brand_id`. operationId: ten_dlc_brands_get security: - bearerAuth: - campaigns:read x-fern-sdk-group-name: - tenDlc - brands x-fern-sdk-method-name: get parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: BM20QP9 responses: '200': description: Returns the 10DLC Brand. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/TenDLCBrand' - example: brand_id: BM20QP9 city: Miami company_name: Company legal name country: US created_at: '2024-07-24T08:10:49' dba_name: New Brand ein_taxid: '99999999' ein_taxid_country: US email: support@brand.com entity_type: PRIVATE_PROFIT feedback: null first_name: John last_name: Dow mock: false phone_number: '12123450099' state_or_province: FL status: VERIFIED stock_exchange: null stock_symbol: null street_address: 10, Street Name updated_at: '2024-07-24T08:29:09' vertical: HEALTHCARE website: https://brand.com zip: '12345' examples: success: summary: Successful response value: brand_id: BM20QP9 city: Miami company_name: Company legal name country: US created_at: '2024-07-24T08:10:49' dba_name: New Brand ein_taxid: '99999999' ein_taxid_country: US email: support@brand.com entity_type: PRIVATE_PROFIT feedback: null first_name: John last_name: Dow mock: false phone_number: '12123450099' state_or_province: FL status: VERIFIED stock_exchange: null stock_symbol: null street_address: 10, Street Name updated_at: '2024-07-24T08:29:09' vertical: HEALTHCARE website: https://brand.com zip: '12345' '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when the requested 10DLC resource does not exist. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. deprecated: false put: tags: - 10DLC summary: Update a 10DLC Brand description: Updates the 10DLC Brand identified by `brand_id`. Changing identity fields, including `ein_taxid`, `ein_taxid_country`, and `entity_type`, resets the Brand status to `UNVERIFIED` and triggers automatic re-submission. Brands in `VETTED_VERIFIED` status or with active Campaigns cannot be updated. operationId: ten_dlc_brands_update security: - bearerAuth: - campaigns:write x-fern-sdk-group-name: - tenDlc - brands x-fern-sdk-method-name: update parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: BM20QP9 requestBody: description: Fields to update on the 10DLC Brand. Only included fields are changed. content: application/json: schema: $ref: '#/components/schemas/TenDLCBrandUpdateRequest' required: true responses: '200': description: Returns the updated 10DLC Brand. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/TenDLCBrand' - example: brand_id: BM20QP9 city: Miami company_name: Company legal name country: US created_at: '2024-07-24T08:10:49' dba_name: New Brand ein_taxid: '99999999' ein_taxid_country: US email: support@brand.com entity_type: PRIVATE_PROFIT feedback: null first_name: John last_name: Dow mock: false phone_number: '12123450099' state_or_province: FL status: REVIEW stock_exchange: null stock_symbol: null street_address: 10, Street Name updated_at: '2024-07-24T09:02:19' vertical: HEALTHCARE website: https://brand.com zip: '12345' examples: default: value: brand_id: BM20QP9 city: Miami company_name: Company legal name country: US created_at: '2024-07-24T08:10:49' dba_name: New Brand ein_taxid: '99999999' ein_taxid_country: US email: support@brand.com entity_type: PRIVATE_PROFIT feedback: null first_name: John last_name: Dow mock: false phone_number: '12123450099' state_or_province: FL status: REVIEW stock_exchange: null stock_symbol: null street_address: 10, Street Name updated_at: '2024-07-24T09:02:19' vertical: HEALTHCARE website: https://brand.com zip: '12345' '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when the requested 10DLC resource does not exist. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. '422': description: Returns a validation error when a field value is invalid. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Invalid ein_taxid - ein_taxid is a nine-digit number. The format is XX-XXXXXXX. The \"-\" symbol is also accepted. examples: success: summary: Successful response value: success: false message: Invalid ein_taxid - ein_taxid is a nine-digit number. The format is XX-XXXXXXX. The \"-\" symbol is also accepted. deprecated: false delete: tags: - 10DLC summary: Delete a 10DLC Brand description: Deletes a 10DLC Brand. Brands with active campaigns cannot be deleted. operationId: ten_dlc_brands_delete security: - bearerAuth: - campaigns:write x-fern-sdk-group-name: - tenDlc - brands x-fern-sdk-method-name: delete parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: BM20QP9 responses: '200': description: Returns a success confirmation. The 10DLC Brand is deleted. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessResponse' - example: success: true examples: default: value: success: true '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when the requested 10DLC resource does not exist. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. deprecated: false /v3/10dlc/brands/{brand_id}/appeals: post: tags: - 10DLC summary: Appeal a 10DLC Brand identity verification description: |- Submits an appeal for 10DLC brand identity verification. Provide any additional documentation to support the appeal. Use `appeal_category` to specify the appeal type: - `VERIFY_TAX_ID` — Use if the brand is UNVERIFIED due to a tax ID mismatch. Applies to private companies, public companies, non-profits, and government entities. - `VERIFY_NON_PROFIT` — Use if a non-profit brand is UNVERIFIED or VERIFIED but missing tax-exempt status. - `VERIFY_GOVERNMENT` — Use if a government brand is UNVERIFIED or VERIFIED but missing government entity status. operationId: ten_dlc_brand_appeals_create security: - bearerAuth: - campaigns:write x-fern-sdk-group-name: - tenDlc - brandAppeals x-fern-sdk-method-name: create parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: BM20QP9 requestBody: description: Appeal category and supporting documentation. content: application/json: schema: allOf: - $ref: '#/components/schemas/TenDLCBrandAppealCreateRequest' - description: The appeal request required: true responses: '200': description: Returns the submitted appeal. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessResponse' - example: success: true examples: default: value: success: true '400': description: Returns a validation error when a field value is invalid. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when the requested 10DLC resource does not exist. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. '422': $ref: '#/components/responses/ValidationErrorResponse' deprecated: false get: tags: - 10DLC summary: List Brand identity appeals description: Returns the identity verification appeals submitted for the 10DLC Brand identified by `brand_id`. operationId: ten_dlc_brand_appeals_list security: - bearerAuth: - campaigns:read x-fern-sdk-group-name: - tenDlc - brandAppeals x-fern-sdk-method-name: list parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: BM20QP9 responses: '200': description: Returns the list of identity verification appeals. headers: {} content: application/json: schema: type: array items: $ref: '#/components/schemas/TenDLCBrandAppeal' example: - categories: - VERIFY_TAX_ID created_at: '2024-08-01T14:09:43Z' evidence: [] explanation: Dear partner, please review the registration docs outcome: optional_attributes: {} feedback: category: [] vetting_status: VERIFIED status: COMPLETE updated_at: '2024-08-01T18:33:15Z' examples: default: value: - categories: - VERIFY_TAX_ID created_at: '2024-08-01T14:09:43Z' evidence: [] explanation: Dear partner, please review the registration docs outcome: optional_attributes: {} feedback: category: [] vetting_status: VERIFIED status: COMPLETE updated_at: '2024-08-01T18:33:15Z' '400': description: Returns a validation error when a field value is invalid. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Invalid Request examples: success: summary: Successful response value: success: false message: Invalid Request '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when the requested 10DLC resource does not exist. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. deprecated: false /v3/10dlc/brands/{brand_id}/evidence: post: tags: - 10DLC summary: Upload Brand evidence description: Uploads a supporting evidence file for the 10DLC Brand identified by `brand_id`. Supported formats include `.jpg`, `.png`, and `.pdf`. Maximum size is 10 MB. operationId: ten_dlc_brand_evidence_upload security: - bearerAuth: - campaigns:write x-fern-sdk-group-name: - tenDlc - brandEvidence x-fern-sdk-method-name: upload parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: B6AI7PA requestBody: content: multipart/form-data: encoding: {} schema: required: - file type: object additionalProperties: false properties: file: type: string description: Evidence file to upload. Maximum size is 10 MB. format: binary required: false responses: '201': description: Returns the uploaded evidence file. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/TenDLCBrandEvidence' - example: file_name: image.png mime_type: image/png url: https://api.wavix.dev/v3/10dlc/brands/B6AI7PA/evidence/191eb205-8357-4d71-b8da-160a25a000d7 uuid: 191eb205-8357-4d71-b8da-160a25a000d7 examples: default: value: file_name: image.png mime_type: image/png url: https://api.wavix.dev/v3/10dlc/brands/B6AI7PA/evidence/191eb205-8357-4d71-b8da-160a25a000d7 uuid: 191eb205-8357-4d71-b8da-160a25a000d7 '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when no 10DLC Brand matches `brand_id`. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. '422': description: Returns when no file is provided in the request. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: File missing examples: success: summary: Successful response value: success: false message: File missing deprecated: false get: tags: - 10DLC summary: List Brand evidence description: Returns the evidence files uploaded for the 10DLC Brand identified by `brand_id`. operationId: ten_dlc_brand_evidence_list security: - bearerAuth: - campaigns:read x-fern-sdk-group-name: - tenDlc - brandEvidence x-fern-sdk-method-name: list parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: B6AI7PA responses: '200': description: Returns the list of uploaded evidence files. headers: {} content: application/json: schema: $ref: '#/components/schemas/ListBrandEvidenceResponse' examples: success: summary: Successful response value: items: - file_name: file.png mime_type: image/png url: https://api.qa1.wavix.dev/v3/10dlc/brands/BRGQVL0/evidence/3d8d97b6-61f7-4f91-8c1c-7ef83828e072 uuid: 3d8d97b6-61f7-4f91-8c1c-7ef83828e072 '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when no 10DLC Brand matches `brand_id`. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. deprecated: false /v3/10dlc/brands/{brand_id}/evidence/{id}: get: tags: - 10DLC summary: Download Brand evidence description: Returns the Brand evidence file identified by the evidence ID. operationId: ten_dlc_brand_evidence_get security: - bearerAuth: - campaigns:read x-fern-sdk-group-name: - tenDlc - brandEvidence x-fern-sdk-method-name: get parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: B6AI7PA - name: id in: path description: The unique ID of the Brand evidence file. required: true style: simple schema: type: string example: 191eb205-8357-4d71-b8da-160a25a000d7 responses: '200': description: Returns the Brand evidence file. headers: {} content: application/octet-stream: schema: type: string format: binary '404': description: Returns when the requested 10DLC resource does not exist. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. deprecated: false delete: tags: - 10DLC summary: Delete Brand evidence description: Deletes the Brand evidence file identified by the evidence ID. Deletion is permanent. operationId: ten_dlc_brand_evidence_delete security: - bearerAuth: - campaigns:write x-fern-sdk-group-name: - tenDlc - brandEvidence x-fern-sdk-method-name: delete parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: B6AI7PA - name: id in: path description: The unique ID of the Brand evidence file. required: true style: simple schema: type: string example: 191eb205-8357-4d71-b8da-160a25a000d7 responses: '200': description: Returns a success confirmation. The evidence file is deleted. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessResponse' - example: success: true examples: default: value: success: true '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when the requested 10DLC resource does not exist. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. deprecated: false /v3/10dlc/brands/{brand_id}/vettings: post: tags: - 10DLC summary: Request external vetting description: 'Requests external vetting for a 10DLC Brand. Supported providers: `AEGIS`, `CV`, `WMC`. Supported classes: `STANDARD`, `ENHANCED`.' operationId: ten_dlc_brand_vettings_create security: - bearerAuth: - campaigns:write x-fern-sdk-group-name: - tenDlc - brandVettings x-fern-sdk-method-name: create parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: B6AI7PA requestBody: description: Provider and class for the external vetting. content: application/json: schema: $ref: '#/components/schemas/TenDLCBrandVettingCreateRequest' required: true responses: '200': description: Returns the requested external vetting. headers: {} content: application/json: schema: $ref: '#/components/schemas/TenDLCBrandVetting' examples: success: summary: Successful response value: evp_id: AEGIS create_date: '2024-08-01T14:09:43' vetting_details: additional_prop1: {} additional_prop2: {} additional_prop3: {} vetted_date: '2024-08-01T14:09:43' vetting_id: 13d8e00c-3cb4-4dc0-9e26-d5057fa938d9 vetting_token: 3oDcE1vq8OR43claMa6Thu/7V4vzZywAfKRgiJnXDjlw+08wpWbGqOssAXKgeZibHCLaGgXvU/yPb7kISeeb5qGdisGRLdhPnSNpvRR82RnCWYNpTp92orlJWjTJU8ZGmNxL5MwK0tt/9SxCha36iTtPV2+4vND8xCPe5suItuQTonG4A3Yi6F1LMqihgwdesRjxJnKqcE7Thcv9ug1NyNPYEZQvPugFj2F2DdU6jFZcOWgXsnE7ucZ+xNaNX9LkF9if3v0hrcviG9L8bUUrpPBGr02txP0i+cPBTLbj4Rq1Ox83R+WUx1gnoXHCIU1ByDGWvQq2Ef4qxGVOwPJHJbja1BovxKBk4YJxiz8OSO68QAIEfxuPTpj5eZz7KEFtFmBIVaVmxBDe4b8Tpl01C2rek7xgPzXaoURvh7CQVnVmJL00DTWKvyOmUOQQW901XEcgcJ7VWgfIvxhIMuXEXXtVDGNowmEc9JQXXYHVlGuN5QicSbApkwwqRZI7TQ4lsS66zCfqomIIJyBNRJpl+8sGwsa2J2h6fEkAD77J9zdUgIKXMFamHbvRadCKMZNIbMrkOC7PuOjZdSiWKh5A8FSjzkv3PlN2hRDqkaODEoodp5pTQeBtNe37+uAMOuHNfsZXlwvfMgCZjiZJ9HQNSLhJBUq7/IvT/EzszUk4HPTj/WFSbT1YrrkDi+zrB20ZDY9lZFWxN1hlYQoNcanDAAWPmw/yW1+8DroL5WIMGsXX3WFGOG7eWB1GHgFQsziAeRQl78u1qOvsRMN08+GrkASBJwqwy5l7xCesUKqbz3O0QA/dwzzsWIDvFPavZpjqMBSjRTurQLFahAaGmdY0BX/Ii+s2+OxfaHQIa1lgucm0P7GPKeZvLX/8boO01Onr/87ra+NX7ABvQb+SXvwsg+Bm5CziWB6DMKDKRD/KQjHxpjIY35UwSEW7G4ixux7ufizXttthHfPJWd/rWFhfYigFhVLgIPCR12smwFVuZwM7ujvY2CIM0X4E0dsX9uVHkgYmqRIdNf5vshpmRuIcHsXZpTJP/tD7zQM6m214c5xkJSfAVIaD7WzRYS4eVL+R3z4u+6n5p6FjuWSjSzuEffUai3HCWjes4JbtDSjIwoG0tOMtBukgPbreH+pjXcvnhU+1QhCV2aIdG6C3FmaI5Uoo/mthJyiFAThwtOpxQ5YkdsRunqVVEFYZfMNEn4Ig2clCFrLOm46JB2wPcLGP2MoH5RqajYzQ6IV8IXIFQVzG0C7HoHsBkVp+GrpnH6N0FCKR+fpbGjigM2lLf4pYBhChUY4ao9hvV1hd8ikS6QoasvDLPytBBa1YAwbSa8d7YdwO6fXfQqetfS8S9gbHD0zxazw5p9Lp5fXFmajDNkD2voYNMzOHJMMHG/49pWV2 vetting_score: 80 vetting_class: STANDARD vetting_status: PENDING reasons: - 'Company size as reported by government or business sources resulted in a score deduction: size range 6-10' '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when the requested 10DLC resource does not exist. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. deprecated: false put: tags: - 10DLC summary: Import external vetting description: Imports an existing external vetting record into the 10DLC Brand identified by `brand_id`. operationId: ten_dlc_brand_vettings_import security: - bearerAuth: - campaigns:write x-fern-sdk-group-name: - tenDlc - brandVettings x-fern-sdk-method-name: import parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: B6AI7PA requestBody: description: Details of the existing external vetting to import. content: application/json: schema: $ref: '#/components/schemas/TenDLCBrandVettingImportRequest' required: true responses: '200': description: Returns the imported external vetting. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/TenDLCBrandVetting' examples: success: summary: Successful response value: evp_id: AEGIS create_date: '2024-08-01T14:09:43' vetting_details: additional_prop1: {} additional_prop2: {} additional_prop3: {} vetted_date: '2024-08-01T14:09:43' vetting_id: 13d8e00c-3cb4-4dc0-9e26-d5057fa938d9 vetting_token: 3oDcE1vq8OR43claMa6Thu/7V4vzZywAfKRgiJnXDjlw+08wpWbGqOssAXKgeZibHCLaGgXvU/yPb7kISeeb5qGdisGRLdhPnSNpvRR82RnCWYNpTp92orlJWjTJU8ZGmNxL5MwK0tt/9SxCha36iTtPV2+4vND8xCPe5suItuQTonG4A3Yi6F1LMqihgwdesRjxJnKqcE7Thcv9ug1NyNPYEZQvPugFj2F2DdU6jFZcOWgXsnE7ucZ+xNaNX9LkF9if3v0hrcviG9L8bUUrpPBGr02txP0i+cPBTLbj4Rq1Ox83R+WUx1gnoXHCIU1ByDGWvQq2Ef4qxGVOwPJHJbja1BovxKBk4YJxiz8OSO68QAIEfxuPTpj5eZz7KEFtFmBIVaVmxBDe4b8Tpl01C2rek7xgPzXaoURvh7CQVnVmJL00DTWKvyOmUOQQW901XEcgcJ7VWgfIvxhIMuXEXXtVDGNowmEc9JQXXYHVlGuN5QicSbApkwwqRZI7TQ4lsS66zCfqomIIJyBNRJpl+8sGwsa2J2h6fEkAD77J9zdUgIKXMFamHbvRadCKMZNIbMrkOC7PuOjZdSiWKh5A8FSjzkv3PlN2hRDqkaODEoodp5pTQeBtNe37+uAMOuHNfsZXlwvfMgCZjiZJ9HQNSLhJBUq7/IvT/EzszUk4HPTj/WFSbT1YrrkDi+zrB20ZDY9lZFWxN1hlYQoNcanDAAWPmw/yW1+8DroL5WIMGsXX3WFGOG7eWB1GHgFQsziAeRQl78u1qOvsRMN08+GrkASBJwqwy5l7xCesUKqbz3O0QA/dwzzsWIDvFPavZpjqMBSjRTurQLFahAaGmdY0BX/Ii+s2+OxfaHQIa1lgucm0P7GPKeZvLX/8boO01Onr/87ra+NX7ABvQb+SXvwsg+Bm5CziWB6DMKDKRD/KQjHxpjIY35UwSEW7G4ixux7ufizXttthHfPJWd/rWFhfYigFhVLgIPCR12smwFVuZwM7ujvY2CIM0X4E0dsX9uVHkgYmqRIdNf5vshpmRuIcHsXZpTJP/tD7zQM6m214c5xkJSfAVIaD7WzRYS4eVL+R3z4u+6n5p6FjuWSjSzuEffUai3HCWjes4JbtDSjIwoG0tOMtBukgPbreH+pjXcvnhU+1QhCV2aIdG6C3FmaI5Uoo/mthJyiFAThwtOpxQ5YkdsRunqVVEFYZfMNEn4Ig2clCFrLOm46JB2wPcLGP2MoH5RqajYzQ6IV8IXIFQVzG0C7HoHsBkVp+GrpnH6N0FCKR+fpbGjigM2lLf4pYBhChUY4ao9hvV1hd8ikS6QoasvDLPytBBa1YAwbSa8d7YdwO6fXfQqetfS8S9gbHD0zxazw5p9Lp5fXFmajDNkD2voYNMzOHJMMHG/49pWV2 vetting_score: 80 vetting_class: STANDARD vetting_status: PENDING reasons: - 'Company size as reported by government or business sources resulted in a score deduction: size range 6-10' '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when the requested 10DLC resource does not exist. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. '422': $ref: '#/components/responses/ValidationErrorResponse' deprecated: false get: tags: - 10DLC summary: List external vettings description: Returns the external vettings for the 10DLC Brand identified by `brand_id`. operationId: ten_dlc_brand_vettings_list security: - bearerAuth: - campaigns:read x-fern-sdk-group-name: - tenDlc - brandVettings x-fern-sdk-method-name: list parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: B6AI7PA responses: '200': description: Returns the list of external vettings. headers: {} content: application/json: schema: type: array items: $ref: '#/components/schemas/TenDLCBrandVetting' examples: success: summary: Successful response value: - evp_id: AEGIS create_date: '2024-08-01T14:09:43' vetting_details: additional_prop1: {} additional_prop2: {} additional_prop3: {} vetted_date: '2024-08-01T14:09:43' vetting_id: 13d8e00c-3cb4-4dc0-9e26-d5057fa938d9 vetting_token: 3oDcE1vq8OR43claMa6Thu/7V4vzZywAfKRgiJnXDjlw+08wpWbGqOssAXKgeZibHCLaGgXvU/yPb7kISeeb5qGdisGRLdhPnSNpvRR82RnCWYNpTp92orlJWjTJU8ZGmNxL5MwK0tt/9SxCha36iTtPV2+4vND8xCPe5suItuQTonG4A3Yi6F1LMqihgwdesRjxJnKqcE7Thcv9ug1NyNPYEZQvPugFj2F2DdU6jFZcOWgXsnE7ucZ+xNaNX9LkF9if3v0hrcviG9L8bUUrpPBGr02txP0i+cPBTLbj4Rq1Ox83R+WUx1gnoXHCIU1ByDGWvQq2Ef4qxGVOwPJHJbja1BovxKBk4YJxiz8OSO68QAIEfxuPTpj5eZz7KEFtFmBIVaVmxBDe4b8Tpl01C2rek7xgPzXaoURvh7CQVnVmJL00DTWKvyOmUOQQW901XEcgcJ7VWgfIvxhIMuXEXXtVDGNowmEc9JQXXYHVlGuN5QicSbApkwwqRZI7TQ4lsS66zCfqomIIJyBNRJpl+8sGwsa2J2h6fEkAD77J9zdUgIKXMFamHbvRadCKMZNIbMrkOC7PuOjZdSiWKh5A8FSjzkv3PlN2hRDqkaODEoodp5pTQeBtNe37+uAMOuHNfsZXlwvfMgCZjiZJ9HQNSLhJBUq7/IvT/EzszUk4HPTj/WFSbT1YrrkDi+zrB20ZDY9lZFWxN1hlYQoNcanDAAWPmw/yW1+8DroL5WIMGsXX3WFGOG7eWB1GHgFQsziAeRQl78u1qOvsRMN08+GrkASBJwqwy5l7xCesUKqbz3O0QA/dwzzsWIDvFPavZpjqMBSjRTurQLFahAaGmdY0BX/Ii+s2+OxfaHQIa1lgucm0P7GPKeZvLX/8boO01Onr/87ra+NX7ABvQb+SXvwsg+Bm5CziWB6DMKDKRD/KQjHxpjIY35UwSEW7G4ixux7ufizXttthHfPJWd/rWFhfYigFhVLgIPCR12smwFVuZwM7ujvY2CIM0X4E0dsX9uVHkgYmqRIdNf5vshpmRuIcHsXZpTJP/tD7zQM6m214c5xkJSfAVIaD7WzRYS4eVL+R3z4u+6n5p6FjuWSjSzuEffUai3HCWjes4JbtDSjIwoG0tOMtBukgPbreH+pjXcvnhU+1QhCV2aIdG6C3FmaI5Uoo/mthJyiFAThwtOpxQ5YkdsRunqVVEFYZfMNEn4Ig2clCFrLOm46JB2wPcLGP2MoH5RqajYzQ6IV8IXIFQVzG0C7HoHsBkVp+GrpnH6N0FCKR+fpbGjigM2lLf4pYBhChUY4ao9hvV1hd8ikS6QoasvDLPytBBa1YAwbSa8d7YdwO6fXfQqetfS8S9gbHD0zxazw5p9Lp5fXFmajDNkD2voYNMzOHJMMHG/49pWV2 vetting_score: 80 vetting_class: STANDARD vetting_status: PENDING reasons: - 'Company size as reported by government or business sources resulted in a score deduction: size range 6-10' '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when the requested 10DLC resource does not exist. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. deprecated: false /v3/10dlc/brands/{brand_id}/vettings/appeals: post: tags: - 10DLC summary: Appeal external vetting description: Submits an appeal for an external vetting of the 10DLC Brand identified by `brand_id`. operationId: ten_dlc_brand_vetting_appeals_create security: - bearerAuth: - campaigns:write x-fern-sdk-group-name: - tenDlc - brandVettingAppeals x-fern-sdk-method-name: create parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: B6AI7PA requestBody: description: Appeal category and supporting documentation. content: application/json: schema: $ref: '#/components/schemas/TenDLCBrandVettingAppealCreateRequest' required: true responses: '200': description: Returns the submitted appeal. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessResponse' - example: success: true examples: default: value: success: true '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when the requested 10DLC resource does not exist. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. '422': description: Returns when a `VETTED_VERIFIED` Brand requests the `VERIFY_TAX_ID` appeal category. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Invalid request by VETTED_VERIFIED entity for VERIFY_TAX_ID category examples: success: summary: Successful response value: success: false message: Invalid request by VETTED_VERIFIED entity for VERIFY_TAX_ID category deprecated: false get: tags: - 10DLC summary: List external vetting appeals description: Returns the external vetting appeals for the 10DLC Brand identified by `brand_id`. operationId: ten_dlc_brand_vetting_appeals_list security: - bearerAuth: - campaigns:read x-fern-sdk-group-name: - tenDlc - brandVettingAppeals x-fern-sdk-method-name: list parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: BMQFB7X responses: '200': description: Returns the list of external vetting appeals. headers: {} content: application/json: schema: type: array items: $ref: '#/components/schemas/TenDLCBrandVettingAppeal' example: - appeal_outcome: vet_status: ACTIVE vet_score: 80 feedback: reasons: - 'Company size as reported by government or business sources resulted in a score deduction: size range 6-10.' appeal_status: COMPLETE appeal_status_update_date: '2024-08-15T08:42:31Z' attachment_uuid_list: [] brand_id: BMQFB7X category_list: - LOW_SCORE create_date: '2024-08-15T08:41:05' evp_id: AEGIS explanation: This is an API test vetting_class: STANDARD vetting_id: 48c0ffaa-4e51-4d44-3982-08dcb9856232 examples: default: value: - appeal_outcome: vet_status: ACTIVE vet_score: 80 feedback: reasons: - 'Company size as reported by government or business sources resulted in a score deduction: size range 6-10.' appeal_status: COMPLETE appeal_status_update_date: '2024-08-15T08:42:31Z' attachment_uuid_list: [] brand_id: BMQFB7X category_list: - LOW_SCORE create_date: '2024-08-15T08:41:05' evp_id: AEGIS explanation: This is an API test vetting_class: STANDARD vetting_id: 48c0ffaa-4e51-4d44-3982-08dcb9856232 '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when the requested 10DLC resource does not exist. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. deprecated: false /v3/10dlc/brands/{brand_id}/usecases/{use_case}: get: tags: - 10DLC summary: Qualify a 10DLC Brand for a use case description: Returns the qualification results for a 10DLC Brand use case. Includes MNO-specific attributes, restrictions, and fees. operationId: ten_dlc_brand_usecase_qualify security: - bearerAuth: - campaigns:read x-fern-sdk-group-name: - tenDlc - brands x-fern-sdk-method-name: qualifyUsecase parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: BMQFB7X - name: use_case in: path description: Name of the use case to qualify the Brand for. required: true style: simple schema: type: string enum: - AGENTS_FRANCHISES - CARRIER_EXEMPT - CHARITY - EMERGENCY - K12_EDUCATION - LOW_VOLUME - M2M - MIXED - POLITICAL - PROXY - SOCIAL - SOLE_PROPRIETOR - SWEEPSTAKE - TRIAL - UCAAS_HIGH - UCAAS_LOW - 2FA - ACCOUNT_NOTIFICATION - CUSTOMER_CARE - DELIVERY_NOTIFICATION - FRAUD_ALERT - HIGHER_EDUCATION - MARKETING - POLLING_VOTING - PUBLIC_SERVICE_ANNOUNCEMENT - SECURITY_ALERT example: 2FA responses: '200': description: Returns the use case qualification results for the Brand. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/TenDLCBrandQualificationResult' - example: mno_metadata: - att_mms_tpm: null att_msg_class: null att_sms_tpm: null att_tpm_scope: null help_required: true min_msg_samples: 1 mno: T-Mobile mno_qualify: true mno_review: false mno_support: true no_embedded_links: false no_embedded_phone: false optin_required: true optout_required: false tmobile_brand_dcap: 2000 tmobile_brand_tier: LOW monthly_fee: 10 usecase: 2FA examples: default: value: mno_metadata: - att_mms_tpm: null att_msg_class: null att_sms_tpm: null att_tpm_scope: null help_required: true min_msg_samples: 1 mno: T-Mobile mno_qualify: true mno_review: false mno_support: true no_embedded_links: false no_embedded_phone: false optin_required: true optout_required: false tmobile_brand_dcap: 2000 tmobile_brand_tier: LOW monthly_fee: 10 usecase: 2FA '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when the requested 10DLC resource does not exist. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. '422': description: Returns when the Brand is still being scored or has not yet been submitted to TCR. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: The Brand is in a 'pending' state waiting for the brand scoring task be to completed or the Brand has not been submitted to TCR yet examples: success: summary: Successful response value: success: false message: The Brand is in a 'pending' state waiting for the brand scoring task be to completed or the Brand has not been submitted to TCR yet deprecated: false /v3/10dlc/brands/campaigns: get: tags: - 10DLC summary: List 10DLC Campaigns description: Returns a paginated list of 10DLC Campaigns for the authenticated account, filtered by date, status, and use case. operationId: ten_dlc_campaigns_list security: - bearerAuth: - campaigns:read x-fern-sdk-group-name: - tenDlc - campaigns x-fern-sdk-method-name: list parameters: - name: name in: query description: Filters Campaigns by name. Matches partial values. style: form explode: true schema: type: string example: Name - name: usecase in: query description: Filters Campaigns by use case. style: form explode: true schema: type: string example: 2FA - name: status in: query description: Filters Campaigns by status. style: form explode: true schema: type: string example: APPROVED - name: mock in: query description: When `true`, returns only mock Campaigns used for testing. Default `false`. style: form explode: true schema: type: boolean default: false example: true - name: created_before in: query description: Returns Campaigns created on or before this date, in `YYYY-MM-DD` format. style: form explode: true schema: type: string format: date example: '2024-08-22' - name: created_after in: query description: Returns Campaigns created on or after this date, in `YYYY-MM-DD` format. style: form explode: true schema: type: string format: date example: '2024-08-22' - name: page in: query description: Page number to retrieve. Default `1`. style: form explode: true schema: type: integer format: int32 example: 1 - name: per_page in: query description: Number of records to return per page. Default `25`. style: form explode: true schema: type: integer format: int32 example: 25 responses: '200': description: Returns a paginated list of 10DLC Campaigns. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/TenDLCCampaignListResponse' - example: items: - affiliate_marketing: false age_gated: false auto_renewal: false brand_id: BM20QP9 campaign_id: CKLCK95 created_at: '2024-08-14T11:57:41' description: Our campaign aims to … direct_lending: false embedded_link_sample: null embedded_links: false embedded_phones: false feedback: null help: true help_keywords: help help_message: For help, please visit www.site.com. To opt-out, reply STOP. last_bill_date: '2024-08-14T11:57:42' mock: false monthly_fee: '10.0' name: My first campaign next_bill_date: '2024-11-14T00:00:00' optin: true optin_keywords: begin,start optin_message: You are now opted-in for help please reply HELP, to stop please reply STOP optin_workflow: Our SMS ... optout: true optout_keywords: stop,quit,unsubscribe optout_message: You are now opted out and will receive no further messages privacy_policy: https://site.com/privacy-policy sample1: Your verification code is XXXXXX sample2: XXXX is your verification code sample3: null sample4: null sample5: null status: APPROVED terms_conditions: https://site.com/terms-and-conditions updated_at: '2024-08-14T11:57:47' usecase: 2FA phone_numbers: - '14358684439' - '13193337776' - '12673296046' pagination: current_page: 1 per_page: 25 total: 1 total_pages: 1 examples: default: value: items: - affiliate_marketing: false age_gated: false auto_renewal: false brand_id: BM20QP9 campaign_id: CKLCK95 created_at: '2024-08-14T11:57:41' description: Our campaign aims to … direct_lending: false embedded_link_sample: null embedded_links: false embedded_phones: false feedback: null help: true help_keywords: help help_message: For help, please visit www.site.com. To opt-out, reply STOP. last_bill_date: '2024-08-14T11:57:42' mock: false monthly_fee: '10.0' name: My first campaign next_bill_date: '2024-11-14T00:00:00' optin: true optin_keywords: begin,start optin_message: You are now opted-in for help please reply HELP, to stop please reply STOP optin_workflow: Our SMS ... optout: true optout_keywords: stop,quit,unsubscribe optout_message: You are now opted out and will receive no further messages privacy_policy: https://site.com/privacy-policy sample1: Your verification code is XXXXXX sample2: XXXX is your verification code sample3: null sample4: null sample5: null status: APPROVED terms_conditions: https://site.com/terms-and-conditions updated_at: '2024-08-14T11:57:47' usecase: 2FA phone_numbers: - '14358684439' - '13193337776' - '12673296046' pagination: current_page: 1 per_page: 25 total: 1 total_pages: 1 '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. deprecated: false /v3/10dlc/brands/{brand_id}/campaigns: get: tags: - 10DLC summary: List Brand Campaigns description: Returns a paginated list of 10DLC Campaigns associated with the 10DLC Brand identified by `brand_id`. operationId: ten_dlc_brand_campaigns_list security: - bearerAuth: - campaigns:read x-fern-sdk-group-name: - tenDlc - campaigns x-fern-sdk-method-name: listByBrand parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: BM20QP9 - name: name in: query description: Filters Campaigns by name. Matches partial values. style: form explode: true schema: type: string example: Name - name: usecase in: query description: Filters Campaigns by use case. style: form explode: true schema: type: string example: 2FA - name: status in: query description: Filters Campaigns by status. style: form explode: true schema: type: string example: APPROVED - name: mock in: query description: When `true`, returns only mock Campaigns used for testing. Default `false`. style: form explode: true schema: type: boolean default: false example: true - name: created_before in: query description: Returns Campaigns created on or before this date, in `YYYY-MM-DD` format. style: form explode: true schema: type: string format: date example: '2024-08-22' - name: created_after in: query description: Returns Campaigns created on or after this date, in `YYYY-MM-DD` format. style: form explode: true schema: type: string format: date example: '2024-08-22' - name: page in: query description: Page number to retrieve. Default `1`. style: form explode: true schema: type: integer format: int32 example: 1 - name: per_page in: query description: Number of records to return per page. Default `25`. style: form explode: true schema: type: integer format: int32 example: 25 responses: '200': description: Returns a paginated list of 10DLC Campaigns. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/TenDLCCampaignListResponse' - example: items: - affiliate_marketing: false age_gated: false auto_renewal: false brand_id: BM20QP9 campaign_id: CKLCK95 created_at: '2024-08-14T11:57:41' description: Our campaign aims to … direct_lending: false embedded_link_sample: null embedded_links: false embedded_phones: false feedback: null help: true help_keywords: help help_message: For help, please visit www.site.com. To opt-out, reply STOP. last_bill_date: '2024-08-14T11:57:42' mock: false monthly_fee: '10.0' name: My first campaign next_bill_date: '2024-11-14T00:00:00' optin: true optin_keywords: begin,start optin_message: You are now opted-in for help please reply HELP, to stop please reply STOP optin_workflow: Our SMS ... optout: true optout_keywords: stop,quit,unsubscribe optout_message: You are now opted out and will receive no further messages privacy_policy: https://site.com/privacy-policy sample1: Your verification code is XXXXXX sample2: XXXX is your verification code sample3: null sample4: null sample5: null status: APPROVED terms_conditions: https://site.com/terms-and-conditions updated_at: '2024-08-14T11:57:47' usecase: 2FA phone_numbers: - '14358684439' - '13193337776' - '12673296046' pagination: current_page: 1 per_page: 25 total: 1 total_pages: 1 examples: default: value: items: - affiliate_marketing: false age_gated: false auto_renewal: false brand_id: BM20QP9 campaign_id: CKLCK95 created_at: '2024-08-14T11:57:41' description: Our campaign aims to … direct_lending: false embedded_link_sample: null embedded_links: false embedded_phones: false feedback: null help: true help_keywords: help help_message: For help, please visit www.site.com. To opt-out, reply STOP. last_bill_date: '2024-08-14T11:57:42' mock: false monthly_fee: '10.0' name: My first campaign next_bill_date: '2024-11-14T00:00:00' optin: true optin_keywords: begin,start optin_message: You are now opted-in for help please reply HELP, to stop please reply STOP optin_workflow: Our SMS ... optout: true optout_keywords: stop,quit,unsubscribe optout_message: You are now opted out and will receive no further messages privacy_policy: https://site.com/privacy-policy sample1: Your verification code is XXXXXX sample2: XXXX is your verification code sample3: null sample4: null sample5: null status: APPROVED terms_conditions: https://site.com/terms-and-conditions updated_at: '2024-08-14T11:57:47' usecase: 2FA phone_numbers: - '14358684439' - '13193337776' - '12673296046' pagination: current_page: 1 per_page: 25 total: 1 total_pages: 1 '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when no 10DLC Brand matches `brand_id`. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. deprecated: false post: tags: - 10DLC summary: Register a 10DLC Campaign description: Registers a 10DLC Campaign under the 10DLC Brand identified by `brand_id`. The Brand must have a verified identity status. operationId: ten_dlc_brand_campaigns_create security: - bearerAuth: - campaigns:write x-fern-sdk-group-name: - tenDlc - campaigns x-fern-sdk-method-name: create parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: BM20QP9 requestBody: description: Attributes for the new 10DLC Campaign. content: application/json: schema: $ref: '#/components/schemas/TenDLCCampaignCreateRequest' required: true responses: '201': description: Returns the registered 10DLC Campaign. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/TenDLCCampaign' - example: affiliate_marketing: false age_gated: false auto_renewal: false brand_id: BM20QP9 campaign_id: CKLCK95 created_at: '2024-08-14T11:57:41' description: Our campaign aims to … direct_lending: false embedded_link_sample: null embedded_links: false embedded_phones: false feedback: null help: true help_keywords: help help_message: For help, please visit www.site.com. To opt-out, reply STOP. last_bill_date: '2024-08-14T11:57:42' mock: false monthly_fee: '10.0' name: My first campaign next_bill_date: '2024-11-14T00:00:00' optin: true optin_keywords: begin,start optin_message: You are now opted-in for help please reply HELP, to stop please reply STOP optin_workflow: Our SMS ... optout: true optout_keywords: stop,quit,unsubscribe optout_message: You are now opted out and will receive no further messages privacy_policy: https://site.com/privacy-policy sample1: Your verification code is XXXXXX sample2: XXXX is your verification code sample3: null sample4: null sample5: null status: APPROVED terms_conditions: https://site.com/terms-and-conditions updated_at: '2024-08-14T11:57:47' usecase: 2FA phone_numbers: [] examples: default: value: affiliate_marketing: false age_gated: false auto_renewal: false brand_id: BM20QP9 campaign_id: CKLCK95 created_at: '2024-08-14T11:57:41' description: Our campaign aims to … direct_lending: false embedded_link_sample: null embedded_links: false embedded_phones: false feedback: null help: true help_keywords: help help_message: For help, please visit www.site.com. To opt-out, reply STOP. last_bill_date: '2024-08-14T11:57:42' mock: false monthly_fee: '10.0' name: My first campaign next_bill_date: '2024-11-14T00:00:00' optin: true optin_keywords: begin,start optin_message: You are now opted-in for help please reply HELP, to stop please reply STOP optin_workflow: Our SMS ... optout: true optout_keywords: stop,quit,unsubscribe optout_message: You are now opted out and will receive no further messages privacy_policy: https://site.com/privacy-policy sample1: Your verification code is XXXXXX sample2: XXXX is your verification code sample3: null sample4: null sample5: null status: APPROVED terms_conditions: https://site.com/terms-and-conditions updated_at: '2024-08-14T11:57:47' usecase: 2FA phone_numbers: [] '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when no 10DLC Brand matches `brand_id`. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. deprecated: false /v3/10dlc/brands/{brand_id}/campaigns/{campaign_id}: get: tags: - 10DLC summary: Retrieve a 10DLC Campaign description: Returns the 10DLC Campaign identified by `campaign_id` under the Brand identified by `brand_id`. operationId: ten_dlc_brand_campaigns_get security: - bearerAuth: - campaigns:read x-fern-sdk-group-name: - tenDlc - campaigns x-fern-sdk-method-name: get parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: BM20QP9 - name: campaign_id in: path description: The unique ID of the 10DLC Campaign. required: true style: simple schema: type: string example: CKLCK95 responses: '200': description: Returns the 10DLC Campaign. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/TenDLCCampaign' - example: affiliate_marketing: false age_gated: false auto_renewal: false brand_id: BM20QP9 campaign_id: CKLCK95 created_at: '2024-08-14T11:57:41' description: Our campaign aims to … direct_lending: false embedded_link_sample: null embedded_links: false embedded_phones: false feedback: null help: true help_keywords: help help_message: For help, please visit www.site.com. To opt-out, reply STOP. last_bill_date: '2024-08-14T11:57:42' mock: false monthly_fee: '10.0' name: My first campaign next_bill_date: '2024-11-14T00:00:00' optin: true optin_keywords: begin,start optin_message: You are now opted-in for help please reply HELP, to stop please reply STOP optin_workflow: Our SMS ... optout: true optout_keywords: stop,quit,unsubscribe optout_message: You are now opted out and will receive no further messages privacy_policy: https://site.com/privacy-policy sample1: Your verification code is XXXXXX sample2: XXXX is your verification code sample3: null sample4: null sample5: null status: APPROVED terms_conditions: https://site.com/terms-and-conditions updated_at: '2024-08-14T11:57:47' usecase: 2FA phone_numbers: - '14358684439' - '13193337776' - '12673296046' examples: default: value: affiliate_marketing: false age_gated: false auto_renewal: false brand_id: BM20QP9 campaign_id: CKLCK95 created_at: '2024-08-14T11:57:41' description: Our campaign aims to … direct_lending: false embedded_link_sample: null embedded_links: false embedded_phones: false feedback: null help: true help_keywords: help help_message: For help, please visit www.site.com. To opt-out, reply STOP. last_bill_date: '2024-08-14T11:57:42' mock: false monthly_fee: '10.0' name: My first campaign next_bill_date: '2024-11-14T00:00:00' optin: true optin_keywords: begin,start optin_message: You are now opted-in for help please reply HELP, to stop please reply STOP optin_workflow: Our SMS ... optout: true optout_keywords: stop,quit,unsubscribe optout_message: You are now opted out and will receive no further messages privacy_policy: https://site.com/privacy-policy sample1: Your verification code is XXXXXX sample2: XXXX is your verification code sample3: null sample4: null sample5: null status: APPROVED terms_conditions: https://site.com/terms-and-conditions updated_at: '2024-08-14T11:57:47' usecase: 2FA phone_numbers: - '14358684439' - '13193337776' - '12673296046' '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when no 10DLC Brand matches `brand_id`. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. deprecated: false put: tags: - 10DLC summary: Update a 10DLC Campaign description: Updates the 10DLC Campaign identified by `campaign_id`. Only the provided fields are changed. operationId: ten_dlc_brand_campaigns_update security: - bearerAuth: - campaigns:write x-fern-sdk-group-name: - tenDlc - campaigns x-fern-sdk-method-name: update parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: BM20QP9 - name: campaign_id in: path description: The unique ID of the 10DLC Campaign. required: true style: simple schema: type: string example: CKLCK95 requestBody: description: Fields to update on the 10DLC Campaign. Only included fields are changed. content: application/json: schema: $ref: '#/components/schemas/TenDLCCampaignUpdateRequest' required: true responses: '200': description: Returns the updated 10DLC Campaign. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/TenDLCCampaign' - example: affiliate_marketing: false age_gated: false auto_renewal: false brand_id: BM20QP9 campaign_id: CKLCK95 created_at: '2024-08-14T11:57:41' description: Our campaign aims to … direct_lending: false embedded_link_sample: null embedded_links: false embedded_phones: false feedback: null help: true help_keywords: help help_message: For help, please visit www.site.com. To opt-out, reply STOP. last_bill_date: '2024-08-14T11:57:42' mock: false monthly_fee: '10.0' name: My first campaign next_bill_date: '2024-11-14T00:00:00' optin: true optin_keywords: begin,start optin_message: You are now opted-in for help please reply HELP, to stop please reply STOP optin_workflow: Our SMS ... optout: true optout_keywords: stop,quit,unsubscribe optout_message: You are now opted out and will receive no further messages privacy_policy: https://site.com/privacy-policy sample1: Your verification code is XXXXXX sample2: XXXX is your verification code sample3: null sample4: null sample5: null status: APPROVED terms_conditions: https://site.com/terms-and-conditions updated_at: '2024-08-14T11:57:47' usecase: 2FA phone_numbers: [] examples: default: value: affiliate_marketing: false age_gated: false auto_renewal: false brand_id: BM20QP9 campaign_id: CKLCK95 created_at: '2024-08-14T11:57:41' description: Our campaign aims to … direct_lending: false embedded_link_sample: null embedded_links: false embedded_phones: false feedback: null help: true help_keywords: help help_message: For help, please visit www.site.com. To opt-out, reply STOP. last_bill_date: '2024-08-14T11:57:42' mock: false monthly_fee: '10.0' name: My first campaign next_bill_date: '2024-11-14T00:00:00' optin: true optin_keywords: begin,start optin_message: You are now opted-in for help please reply HELP, to stop please reply STOP optin_workflow: Our SMS ... optout: true optout_keywords: stop,quit,unsubscribe optout_message: You are now opted out and will receive no further messages privacy_policy: https://site.com/privacy-policy sample1: Your verification code is XXXXXX sample2: XXXX is your verification code sample3: null sample4: null sample5: null status: APPROVED terms_conditions: https://site.com/terms-and-conditions updated_at: '2024-08-14T11:57:47' usecase: 2FA phone_numbers: [] '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when no 10DLC Brand matches `brand_id`. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. deprecated: false delete: tags: - 10DLC summary: Delete a 10DLC Campaign description: Deletes a 10DLC Campaign. Associated phone numbers cannot be used as Sender IDs once the Campaign is deleted. operationId: ten_dlc_brand_campaigns_delete security: - bearerAuth: - campaigns:write x-fern-sdk-group-name: - tenDlc - campaigns x-fern-sdk-method-name: delete parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: BM20QP9 - name: campaign_id in: path description: The unique ID of the 10DLC Campaign. required: true style: simple schema: type: string example: CKLCK95 responses: '200': description: Returns a success confirmation. The 10DLC Campaign is deleted. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessResponse' - example: success: true examples: default: value: success: true '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when no 10DLC Brand matches `brand_id`. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. deprecated: false /v3/10dlc/subscriptions: post: tags: - 10DLC summary: Subscribe to 10DLC events description: Registers a callback URL to receive Wavix 10DLC event notifications. operationId: ten_dlc_subscriptions_create security: - bearerAuth: - campaigns:write x-fern-sdk-group-name: - tenDlc - subscriptions x-fern-sdk-method-name: create parameters: [] requestBody: description: Event categories and callback URL for the subscription. content: application/json: schema: $ref: '#/components/schemas/TenDLCEventSubscription' required: true responses: '201': description: Returns the created 10DLC event subscription. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/TenDLCEventSubscription' - example: subscription_category: brand url: https://webhook.url examples: default: value: subscription_category: brand url: https://webhook.url '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. deprecated: false get: tags: - 10DLC summary: List event subscriptions description: Returns the 10DLC event subscriptions for the authenticated account. operationId: ten_dlc_subscriptions_list security: - bearerAuth: - campaigns:read x-fern-sdk-group-name: - tenDlc - subscriptions x-fern-sdk-method-name: list parameters: [] responses: '200': description: Returns the list of 10DLC event subscriptions. headers: {} content: application/json: schema: type: array items: $ref: '#/components/schemas/TenDLCEventSubscription' example: - subscription_category: brand url: https://webhook.url examples: default: value: - subscription_category: brand url: https://webhook.url '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. deprecated: false delete: tags: - 10DLC summary: Delete event subscription description: Removes the 10DLC event subscription for the specified event category. operationId: ten_dlc_subscriptions_delete security: - bearerAuth: - campaigns:write x-fern-sdk-group-name: - tenDlc - subscriptions x-fern-sdk-method-name: delete parameters: - name: subscription_category in: query description: Event category to unsubscribe from. required: true style: form explode: true schema: type: string example: number responses: '200': description: Returns a success confirmation. The event subscription is removed. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessResponse' - example: success: true examples: default: value: success: true '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. deprecated: false /v3/10dlc/brands/{brand_id}/campaigns/{campaign_id}/numbers/{number}: post: tags: - 10DLC summary: Link a number to a 10DLC Campaign description: Links a phone number to a 10DLC Campaign. Wavix automatically creates a Sender ID once the number is approved. operationId: ten_dlc_campaign_numbers_link security: - bearerAuth: - campaigns:write x-fern-sdk-group-name: - tenDlc - campaignNumbers x-fern-sdk-method-name: link parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: B9FXYNH - name: campaign_id in: path description: The unique ID of the 10DLC Campaign. required: true style: simple schema: type: string example: CSJ4TV0 - name: number in: path description: The phone number to link to the Campaign, in E.164 format. required: true style: simple schema: type: string example: '17029641104' responses: '200': description: Returns a success confirmation. The phone number is linked to the Campaign. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessResponse' - example: success: true examples: default: value: success: true '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false delete: tags: - 10DLC summary: Unlink phone number description: Unlinks a phone number from a 10DLC Campaign. The associated Sender ID is also deleted. operationId: ten_dlc_campaign_numbers_unlink security: - bearerAuth: - campaigns:write x-fern-sdk-group-name: - tenDlc - campaignNumbers x-fern-sdk-method-name: unlink parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: B9FXYNH - name: campaign_id in: path description: The unique ID of the 10DLC Campaign. required: true style: simple schema: type: string example: CSJ4TV0 - name: number in: path description: The phone number to unlink from the Campaign, in E.164 format. required: true style: simple schema: type: string example: '17029641104' responses: '200': description: Returns a success confirmation. The phone number is unlinked from the Campaign. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessResponse' - example: success: true examples: default: value: success: true '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v3/10dlc/brands/{brand_id}/campaigns/{campaign_id}/numbers: get: tags: - 10DLC summary: List Campaign phone numbers description: Returns the phone numbers linked to the 10DLC Campaign identified by `campaign_id`. operationId: ten_dlc_campaign_numbers_list security: - bearerAuth: - campaigns:read x-fern-sdk-group-name: - tenDlc - campaignNumbers x-fern-sdk-method-name: list parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: B9FXYNH - name: campaign_id in: path description: The unique ID of the 10DLC Campaign. required: true style: simple schema: type: string example: CSJ4TV0 responses: '200': description: Returns the phone numbers linked to the Campaign. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/TenDLCCampaignNumberListResponse' - example: brand_id: B9FXYNH campaign_id: CSJ4TV0 numbers: - number: '17029641104' status: APPROVED examples: success: summary: Successful response value: brand_id: B9FXYNH campaign_id: CSJ4TV0 numbers: - number: '17029641104' status: APPROVED '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v3/10dlc/brands/{brand_id}/campaigns/{campaign_id}/nudge: post: tags: - 10DLC summary: Nudge a 10DLC Campaign review description: |- Requests action on a pending or rejected 10DLC Campaign. Use `nudge_intent` to specify the action: - `REVIEW`: Request review for a pending Campaign. - `APPEAL_REJECTION`: Appeal a rejected Campaign. Note: - The Campaign must be at least 72 hours old. - Only one nudge request per Campaign is allowed every 24 hours. operationId: ten_dlc_campaigns_nudge security: - bearerAuth: - campaigns:write x-fern-sdk-group-name: - tenDlc - campaigns x-fern-sdk-method-name: nudge parameters: - name: brand_id in: path description: The unique ID of the 10DLC Brand. required: true style: simple schema: type: string example: B9FXYNH - name: campaign_id in: path description: The unique ID of the 10DLC Campaign. required: true style: simple schema: type: string example: CSJ4TV0 requestBody: description: Action to request on the Campaign. content: application/json: schema: allOf: - $ref: '#/components/schemas/TenDLCCampaignNudgeRequest' - description: The nudge request required: true responses: '200': description: Returns a success confirmation. The nudge request is submitted. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessResponse' examples: success: summary: Successful response value: success: true '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': description: Returns when the 10DLC feature is disabled for the account. content: application/json: schema: $ref: '#/components/schemas/AccountErrorResponse' examples: success: summary: Successful response value: success: false message: Request failed. The feature is disabled for the account. '404': description: Returns when the requested 10DLC resource does not exist. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Request failed. The Brand is not found. examples: success: summary: Successful response value: success: false message: Request failed. The Brand is not found. '429': description: Returns when the request exceeds the rate limit. Only one nudge per Campaign is allowed every 24 hours. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' deprecated: false /v1/validation: get: tags: - Number validator summary: Validate a number description: Validates a single phone number and returns line type, carrier, portability, and reachability details. operationId: number_validator_get security: - bearerAuth: - validator:read x-fern-sdk-group-name: - numberValidator x-fern-sdk-method-name: get parameters: - name: phone_number in: query description: The phone number to validate, in E.164 format with or without the leading `+`. required: true style: form explode: true schema: type: string example: '971569483322' - name: type in: query description: Depth of validation to perform. Accepts a `PhoneNumberValidationType` value. required: true style: form explode: true schema: allOf: - $ref: '#/components/schemas/PhoneNumberValidationType' responses: '200': description: Returns the phone number validation details. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/PhoneValidationResponse' - example: phone_number: '971569483322' valid: true country_code: AE e164_format: '+971569483322' national_format: 056 948 3322 ported: false mcc: '424' mnc: '02' number_type: mobile carrier_name: Etisalat risky_destination: false unallocated_range: false reachable: true roaming: false timezone: UTC+04:00 charge: '0.015' error_code: '000' examples: success: summary: Successful response value: phone_number: '971569483322' valid: true country_code: AE e164_format: '+971569483322' national_format: 056 948 3322 ported: false mcc: '424' mnc: '02' number_type: mobile carrier_name: Etisalat risky_destination: false unallocated_range: false reachable: true roaming: false timezone: UTC+04:00 charge: '0.015' error_code: '000' '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false post: tags: - Number validator summary: Validate multiple numbers description: Validates a batch of phone numbers. When `async` is `true`, returns a `request_id` to poll for results instead of the validation details. operationId: number_validator_create_bulk security: - bearerAuth: - validator:write x-fern-sdk-group-name: - numberValidator x-fern-sdk-method-name: createBulk parameters: [] requestBody: description: Phone numbers to validate and validation options. content: application/json: schema: allOf: - $ref: '#/components/schemas/PhoneValidationRequest' required: true responses: '200': description: Returns the validation results, or a `request_id` when validation is asynchronous. headers: {} content: application/json: schema: $ref: '#/components/schemas/NumberValidatorCreateBulkResponse' examples: success: summary: Successful response value: status: success pending: 0 count: 1000 items: - phone_number: '971569483322' valid: true country_code: AE e164_format: '+971569483322' national_format: 056 948 3322 ported: false mcc: '424' mnc: '004' number_type: mobile carrier_name: Etisalat risky_destination: false unallocated_range: false reachable: true roaming: false timezone: UTC+04:00 charge: '0.015' error_code: '000' '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/validation/{request_id}: get: tags: - Number validator summary: Retrieve validation results description: Returns the results of an asynchronous batch validation identified by `request_id`. operationId: number_validator_results_get security: - bearerAuth: - validator:read x-fern-sdk-group-name: - numberValidator - results x-fern-sdk-method-name: get parameters: - name: request_id in: path description: The `request_id` returned by the asynchronous bulk validation request. required: true style: simple schema: type: string example: 12542c5c-1a17-4d12-a163-5b68543e75f6 responses: '200': description: Returns the batch validation results. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/PhoneValidationBatchResultResponse' examples: success: summary: Successful response value: status: success pending: 10 count: 1000 items: - phone_number: '971501390098' valid: true country_code: AE e164_format: '+971501390098' national_format: 050 139 0098 ported: false mcc: '424' mnc: '02' number_type: mobile carrier_name: Etisalat risky_destination: false unallocated_range: false reachable: true roaming: false timezone: UTC+04:00 charge: '0.015' error_code: '000' - phone_number: '971504359195' valid: true country_code: AE e164_format: '+971504359195' national_format: 050 435 9195 ported: false mcc: '424' mnc: '02' number_type: mobile carrier_name: Etisalat risky_destination: false unallocated_range: false reachable: true roaming: false timezone: UTC+04:00 charge: '0.015' error_code: '000' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/voice-campaigns: post: tags: - Voice campaigns summary: Trigger a scenario description: Launches a voice campaign that places an outbound call using a pre-configured scenario. Track progress with the returned voice campaign `id`. operationId: voice_campaigns_create security: - bearerAuth: - campaigns:write x-fern-sdk-group-name: - voiceCampaigns x-fern-sdk-method-name: create parameters: [] requestBody: description: Attributes for the new voice campaign. content: application/json: schema: allOf: - $ref: '#/components/schemas/VoiceCampaignCreateRequest' - description: Scenario and contact details for the campaign. required: true responses: '201': description: Returns the launched voice campaign. headers: {} content: application/json: schema: $ref: '#/components/schemas/VoiceCampaignsCreateResponse' examples: success: summary: Successful response value: voice_campaign: id: 2321423 status: status timestamp: '2023-06-15T10:30:00Z' caller_id: org_123 contact: contact '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '422': description: Returns when the account has insufficient funds to launch the campaign. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' - example: success: false message: Insufficient funds examples: default: value: success: false message: Insufficient funds deprecated: false /v1/voice-campaigns/{id}: get: tags: - Voice campaigns summary: Retrieve a voice campaign description: Returns the voice campaign identified by `id`, including its current status. operationId: voice_campaigns_get security: - bearerAuth: - campaigns:read x-fern-sdk-group-name: - voiceCampaigns x-fern-sdk-method-name: get parameters: - name: id in: path description: The unique ID of the voice campaign to retrieve. required: true style: simple schema: type: integer format: int32 example: 2321423 responses: '200': description: Returns the voice campaign. headers: {} content: application/json: schema: $ref: '#/components/schemas/VoiceCampaignsGetResponse' examples: success: summary: Successful response value: voice_campaign: id: 2321423 status: in_progress timestamp: '2023-08-03T09:04:12.000Z' caller_id: '13123310912' contact: '16729923812' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/short-links: post: tags: - Link shortener summary: Create a short link description: Creates a short link that redirects to the target URL and tracks click metrics. operationId: link_shortener_create security: - bearerAuth: - campaigns:write x-fern-sdk-group-name: - linkShortener x-fern-sdk-method-name: create parameters: [] requestBody: description: Attributes for the new short link. content: application/json: schema: allOf: - $ref: '#/components/schemas/ShortLinkCreateRequest' required: true responses: '200': description: Returns the created short link. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/ShortLinkResponse' examples: success: summary: Successful response value: short_link: https://wx.com/hd82Jhs21 '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' '422': description: Returns a validation error when a field value is invalid. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' examples: default: value: success: false message: Expiration time can't be in the past deprecated: false /v1/short-links/metrics: get: tags: - Link shortener summary: List short link metrics description: Returns per-click metrics for short links, including device, location, and campaign attribution, within the requested date range. operationId: link_shortener_metrics_list security: - bearerAuth: - campaigns:read x-fern-sdk-group-name: - linkShortener - metrics x-fern-sdk-method-name: list parameters: - name: from in: query description: Start of the date range to query, in `YYYY-MM-DD` format. Inclusive. required: true style: form explode: true schema: type: string format: date example: '2023-05-01' - name: to in: query description: End of the date range to query, in `YYYY-MM-DD` format. Inclusive. required: true style: form explode: true schema: type: string format: date example: '2023-05-31' - name: phone in: query description: Filters metrics by the phone number associated with the click, in E.164 format. style: form explode: true schema: type: string example: '1872025555' - name: utm_campaign in: query description: Filters metrics by `utm_campaign` name. style: form explode: true schema: type: string example: summer - name: page in: query description: Page number to retrieve. Default `1`. style: form explode: true schema: type: integer format: int32 example: 1 - name: per_page in: query description: Number of records to return per page. Default `25`. style: form explode: true schema: type: integer format: int32 example: 25 responses: '200': description: Returns a paginated list of short link metrics. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/ShortLinkMetricsResponse' examples: success: summary: Successful response value: metrics: - latitude: 59.3247 longitude: 18.056 operating_system: Mac OS X 10.15 browser: Firefox language: English phone: '12762025555' utm_campaign: summer created_at: '2023-07-19 18:23:42.120Z' link_hash: hd82Jhs21 user_id: 100017 pagination: current_page: 2 per_page: 25 total: 101 total_pages: 5 '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false /v1/two-fa/verification: post: tags: - 2FA summary: Create a 2FA Verification description: |- Creates a 2FA verification and sends a one-time password (OTP) to the destination phone number over the selected channel. Requires a 2FA service configured in the Wavix portal; the service is reused to generate and validate OTPs. The verification proceeds through three steps: 1. Create a verification to generate and send an OTP. 2. Resend the OTP on the same verification if needed. 3. Validate the OTP through the check endpoint. operationId: two_fa_verification_create security: - bearerAuth: - two_fa:write x-fern-sdk-group-name: - twoFa - verification x-fern-sdk-method-name: create parameters: [] requestBody: description: Attributes for the new 2FA verification. content: application/json: schema: $ref: '#/components/schemas/TwoFactorVerificationCreateRequest' required: true responses: '200': description: Returns the created 2FA verification. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/TwoFactorVerificationResponse' - example: success: true service_id: 7204a030201211ee9fb47d093f2f127c session_url: https://api.wavix.com/v1/two-fa/verification/2953d4308f2e11ecb75fcdafd6d2d687 session_id: 2953d4308f2e11ecb75fcdafd6d2d687 destination: '447919433768' created_at: '2022-02-16T13:41:38.000Z' number_lookup: number_type: mobile country: GB current_carrier: Vodafone examples: success: summary: Successful response value: success: true service_id: 7204a030201211ee9fb47d093f2f127c session_url: https://api.wavix.com/v1/two-fa/verification/2953d4308f2e11ecb75fcdafd6d2d687 session_id: 2953d4308f2e11ecb75fcdafd6d2d687 destination: '447919433768' created_at: '2022-02-16T13:41:38.000Z' number_lookup: number_type: mobile country: GB current_carrier: Vodafone '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false /v1/two-fa/service/{service_id}/sessions: get: tags: - 2FA summary: List 2FA verifications description: Returns the 2FA verifications for the service identified by `service_id`, within the requested date range. operationId: two_fa_sessions_list security: - bearerAuth: - two_fa:read x-fern-sdk-group-name: - twoFa - sessions x-fern-sdk-method-name: list parameters: - name: service_id in: path description: The unique ID of the 2FA service. required: true style: simple schema: type: string example: 7204a030201211ee9fb47d093f2f127c - name: from in: query description: Start of the date range to query, in `YYYY-MM-DD` format. Inclusive. required: true style: form explode: true schema: type: string format: date example: '2022-01-01' - name: to in: query description: End of the date range to query, in `YYYY-MM-DD` format. Inclusive. required: true style: form explode: true schema: type: string format: date example: '2022-01-31' responses: '200': description: Returns the list of 2FA verifications. headers: {} content: application/json: schema: type: array items: $ref: '#/components/schemas/ListSessionsResponseItem' example: - created_at: '2022-02-16T13:41:38.000Z' session_id: 2953d4308f2e11ecb75fcdafd6d2d687 phone_number: '447919433768' destination_country: GB status: verified charge: '0.01' service_id: 7204a030201211ee9fb47d093f2f127c service_name: Wavix 2FA Service - created_at: '2022-02-16T13:41:38.000Z' session_id: 8753d4308f2e11ecb75fcdafd6d2d690 phone_number: '447919433768' destination_country: GB status: pending charge: '0.01' service_id: 7204a030201211ee9fb47d093f2f127c service_name: Wavix 2FA Service examples: success: summary: Successful response value: - created_at: '2022-02-16T13:41:38.000Z' session_id: 2953d4308f2e11ecb75fcdafd6d2d687 phone_number: '447919433768' destination_country: GB status: verified charge: '0.01' service_id: 7204a030201211ee9fb47d093f2f127c service_name: Wavix 2FA Service - created_at: '2022-02-16T13:41:38.000Z' session_id: 8753d4308f2e11ecb75fcdafd6d2d690 phone_number: '447919433768' destination_country: GB status: pending charge: '0.01' service_id: 7204a030201211ee9fb47d093f2f127c service_name: Wavix 2FA Service '400': description: Returns a validation error when a required field is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' examples: default: value: success: false message: 'Request validation errors: Field "to" is required' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': description: Returns when no verifications match the service and date range. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' examples: default: value: success: false message: Sessions not found deprecated: false /v1/two-fa/verification/{session_id}: post: tags: - 2FA summary: Resend a code description: Resends the OTP for the verification identified by `session_id` over the specified channel. Previously sent codes are invalidated. operationId: two_fa_verification_resend security: - bearerAuth: - two_fa:write x-fern-sdk-group-name: - twoFa - verification x-fern-sdk-method-name: resend parameters: - name: session_id in: path description: The unique ID of the 2FA verification session. required: true style: simple schema: type: string example: 2953d4308f2e11ecb75fcdafd6d2d687 requestBody: description: Channel to resend the OTP over. content: application/json: schema: $ref: '#/components/schemas/TwoFactorVerificationResendRequest' required: true responses: '200': description: Returns the resend result, including the channel used. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/TwoFactorVerificationResendResponse' - example: success: true channel: voice destination: '447919433768' created_at: '2022-02-16T13:41:38.000Z' examples: success: summary: Successful response value: success: true channel: voice destination: '447919433768' created_at: '2022-02-16T13:41:38.000Z' '400': description: Returns a validation error when a required field is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' examples: default: value: success: false message: 'Request validation errors: Field "channel" is required' '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false /v1/two-fa/verification/{session_id}/check: post: tags: - 2FA summary: Validate a code description: Validates the OTP submitted by the end user against the verification identified by `session_id`. operationId: two_fa_verification_check security: - bearerAuth: - two_fa:write x-fern-sdk-group-name: - twoFa - verification x-fern-sdk-method-name: check parameters: - name: session_id in: path description: The unique ID of the 2FA verification session. required: true style: simple schema: type: string example: 2953d4308f2e11ecb75fcdafd6d2d687 requestBody: description: OTP to validate. content: application/json: schema: $ref: '#/components/schemas/TwoFactorVerificationCheckRequest' required: true responses: '200': description: Returns the validation result in `is_valid`. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/TwoFactorVerificationCheckResponse' - example: is_valid: true examples: success: summary: Successful response value: is_valid: true '400': description: Returns a validation error when a required field is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' examples: default: value: success: false message: 'Request validation errors: Field "code" is required' '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false /v1/two-fa/verification/{session_id}/cancel: patch: tags: - 2FA summary: Cancel a 2FA verification description: Cancels the 2FA verification identified by `session_id`. No further codes are sent, and previously sent codes can no longer be validated. A new verification is required to send another code. operationId: two_fa_verification_cancel security: - bearerAuth: - two_fa:write x-fern-sdk-group-name: - twoFa - verification x-fern-sdk-method-name: cancel parameters: - name: session_id in: path description: The unique ID of the 2FA verification session. required: true style: simple schema: type: string example: 2953d4308f2e11ecb75fcdafd6d2d687 responses: '200': description: Returns a success confirmation. The verification is canceled. headers: {} content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' examples: success: summary: Successful response value: success: true '400': description: Returns a validation error when a required field is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' examples: default: value: success: false message: 'Request validation errors: Field "code" is required' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': description: Returns when no verification matches `session_id`. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' examples: default: value: success: false message: Two FA session is not canceled deprecated: false /v1/two-fa/session/{session_id}/events: get: tags: - 2FA summary: List 2FA verification events description: Returns the lifecycle events of the 2FA verification identified by `session_id`, such as number lookup and code delivery. operationId: two_fa_events_list security: - bearerAuth: - two_fa:read x-fern-sdk-group-name: - twoFa - events x-fern-sdk-method-name: list parameters: - name: session_id in: path description: The unique ID of the 2FA verification session. required: true style: simple schema: type: string example: 8753d4308f2e11ecb75fcdafd6d2d690 responses: '200': description: Returns the list of 2FA verification events. headers: {} content: application/json: schema: type: array items: $ref: '#/components/schemas/TwoFactorVerificationEvent' example: - created_at: '2022-02-16T13:41:38.000Z' event: Number lookup status: success charge: '0.005' error: null - created_at: '2022-02-16T13:41:38.000Z' event: Code sent via SMS status: success charge: '0.005' error: null examples: default: value: - created_at: '2022-02-16T13:41:38.000Z' event: Number lookup status: success charge: '0.005' error: null - created_at: '2022-02-16T13:41:38.000Z' event: Code sent via SMS status: success charge: '0.005' error: null '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': description: Returns when no verification matches `session_id`. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/RecordNotFoundErrorResponse' examples: default: value: success: false message: 2FA verification session with ID=1c7d5259092eb11f083eed7e070f20a2b cannot be found deprecated: false /v1/billing/transactions: get: tags: - Billing summary: List transactions description: Returns a paginated list of billing transactions for the authenticated account within the requested date range. operationId: billing_transactions_list security: - bearerAuth: - billing:read x-fern-sdk-group-name: - billing - transactions x-fern-sdk-method-name: list parameters: - name: from_date in: query description: Start of the date range to query, in `YYYY-MM-DD` format. Inclusive. required: true style: form explode: true schema: type: string format: date example: '2023-08-01' - name: to_date in: query description: End of the date range to query, in `YYYY-MM-DD` format. Inclusive. required: true style: form explode: true schema: type: string format: date example: '2023-08-31' - name: type in: query description: Filters transactions by type. Accepts a `TransactionType` value. style: form explode: true schema: allOf: - $ref: '#/components/schemas/TransactionType' - name: details_contains in: query description: Filters transactions whose `details` contain the given substring. style: form explode: true schema: type: string example: monthly - name: payments in: query description: When `true`, returns only account top-up transactions. Defaults to all transaction types. style: form explode: true schema: type: boolean example: true - name: page in: query description: Page number to retrieve. Default `1`. style: form explode: true schema: type: integer format: int32 example: 1 - name: per_page in: query description: Number of records to return per page. Default `25`. style: form explode: true schema: type: integer format: int32 example: 25 responses: '200': description: Returns a paginated list of billing transactions. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/BillingTransactionListResponse' - example: is_empty: false transactions: - id: 24789389 amount: -0.99 balance_after: 309.0601 date: '2023-08-29T14:48:38.000Z' details: Monthly fee for 16419252149 status: Committed type: 3 show_invoice: false pagination: current_page: 1 per_page: 25 total: 1 total_pages: 1 examples: default: value: is_empty: false transactions: - id: 24789389 amount: -0.99 balance_after: 309.0601 date: '2023-08-29T14:48:38.000Z' details: Monthly fee for 16419252149 status: Committed type: 3 show_invoice: false pagination: current_page: 1 per_page: 25 total: 1 total_pages: 1 '400': $ref: '#/components/responses/BadRequestErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '503': description: Returns when the billing service is temporarily unavailable. content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' deprecated: false /v1/billing/invoices: get: tags: - Billing summary: List financial statements description: Returns the auto-generated financial statements for the authenticated account, paginated and ordered by billing period. operationId: billing_invoices_list security: - bearerAuth: - billing:read x-fern-sdk-group-name: - billing - invoices x-fern-sdk-method-name: list parameters: - name: page in: query description: Page number to retrieve. Default `1`. style: form explode: true schema: type: integer format: int32 example: 1 - name: per_page in: query description: Number of records to return per page. Default `25`. style: form explode: true schema: type: integer format: int32 example: 25 responses: '200': description: Returns a paginated list of financial statements. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/InvoiceListResponse' - example: is_empty: false invoices: - id: 1 from_date: '2023-08-01' to_date: '2023-08-31' amount: '25.00' pagination: current_page: 1 per_page: 25 total: 1 total_pages: 1 examples: success: summary: Successful response value: is_empty: false invoices: - id: 1 from_date: '2023-08-01' to_date: '2023-08-31' amount: '25.00' pagination: current_page: 1 per_page: 25 total: 1 total_pages: 1 '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false /v1/billing/invoices/{id}: get: tags: - Billing summary: Download statement PDF description: Returns the financial statement identified by `id` as a PDF file. operationId: billing_invoices_download security: - bearerAuth: - billing:read x-fern-sdk-group-name: - billing - invoices x-fern-sdk-method-name: download parameters: - name: id in: path description: The unique ID of the financial statement to download. required: true style: simple schema: type: integer format: int32 example: 123 responses: '200': description: Returns the financial statement as a PDF file. headers: {} content: application/pdf: schema: type: string format: binary '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false /v1/profile: put: tags: - Profile summary: Update a profile description: Updates the profile and billing details of the authenticated account. operationId: profile_update security: - bearerAuth: - account:write x-fern-sdk-group-name: - profile x-fern-sdk-method-name: update parameters: [] requestBody: description: Profile and billing fields to set on the account. content: application/json: schema: allOf: - $ref: '#/components/schemas/ProfileUpdateRequest' required: true responses: '200': description: Returns the updated profile. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/ProfileResponse' examples: success: summary: Successful response value: id: 1 email: email first_name: first name last_name: last name phone: '+12025550123' additional_info: additional info contact_email: contact email timezone: timezone job_title: job title default_short_link_endpoint: default short link endpoint default_destinations: - transport: transport value: value company_info: name: name industry: telecommunications address: address attn_contact_name: attn contact name vat_number: vat number country: country_name: country name country_id: 123 '422': $ref: '#/components/responses/ValidationErrorResponse' deprecated: false get: tags: - Profile summary: Retrieve a profile description: Returns the profile and billing details of the authenticated account. operationId: profile_get security: - bearerAuth: - account:read x-fern-sdk-group-name: - profile x-fern-sdk-method-name: get parameters: [] responses: '200': description: Returns the profile. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/ProfileResponse' examples: success: summary: Successful response value: id: 1 email: info@awesome.com first_name: example last_name: example phone: '+12025550123' additional_info: example contact_email: example timezone: example job_title: example default_short_link_endpoint: example default_destinations: - transport: example value: example company_info: name: example industry: telecommunications address: example attn_contact_name: example vat_number: example country: country_name: example country_id: 123 '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false /v1/profile/config: get: tags: - Profile summary: Retrieve account settings description: Returns the balance and global limits configured for the authenticated account. operationId: profile_config_get security: - bearerAuth: - account:read x-fern-sdk-group-name: - profile - config x-fern-sdk-method-name: get parameters: [] responses: '200': description: Returns the account settings. headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/ProfileConfigResponse' - example: balance: '309.06' global_limits: max_call_duration: 3600 max_sip_channels: 8 max_call_rate: '99.0' examples: default: value: balance: '309.06' global_limits: max_call_duration: 3600 max_sip_channels: 8 max_call_rate: '99.0' '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false /v1/sub-organizations: get: tags: - Sub-accounts summary: List sub-accounts description: Returns a paginated list of sub-accounts under the authenticated master account. operationId: sub_accounts_list security: - bearerAuth: - subaccounts:read x-fern-sdk-group-name: - subAccounts x-fern-sdk-method-name: list parameters: - name: status in: query description: Filters sub-accounts by status. One of `enabled` (the sub-account is active) or `disabled` (the sub-account is suspended). required: false style: form explode: true schema: type: string enum: - enabled - disabled example: enabled responses: '200': description: Returns a paginated list of sub-accounts. headers: {} content: application/json: schema: $ref: '#/components/schemas/SubAccountsListResponse' examples: success: summary: Successful response value: sub_organizations: - id: 123 created_at: '2023-06-15T10:30:00Z' name: My sub-account api_key: abc123def456 master_organization: 456 status: enabled default_destinations: sms_endpoint: https://examples.com/sms dlr_endpoint: https://examples.com/dlr pagination: current_page: 2 per_page: 25 total: 123 total_pages: 123 '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' deprecated: false post: tags: - Sub-accounts summary: Create a sub-account description: Creates a sub-account under the authenticated master account. Returns the sub-account with its generated `api_key`. operationId: sub_accounts_create security: - bearerAuth: - subaccounts:write x-fern-sdk-group-name: - subAccounts x-fern-sdk-method-name: create parameters: [] requestBody: description: Attributes for the new sub-account. content: application/json: schema: $ref: '#/components/schemas/SubAccountsCreateRequest' example: name: Company default_destinations: sms_endpoint: https://examples.com/sms dlr_endpoint: https://examples.com/dlr required: true responses: '200': description: Returns the created sub-account. headers: {} content: application/json: schema: $ref: '#/components/schemas/SubOrganizationResponse' examples: success: summary: Successful response value: id: 123 created_at: '2023-06-15T10:30:00Z' name: My sub-account api_key: abc123def456 master_organization: 456 status: enabled default_destinations: sms_endpoint: https://examples.com/sms dlr_endpoint: https://examples.com/dlr '400': description: Returns when a required parameter is missing or invalid. headers: {} content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' examples: success: summary: Successful response value: success: false message: Missing or invalid parameter '403': $ref: '#/components/responses/ForbiddenErrorResponse' '422': $ref: '#/components/responses/ValidationErrorResponse' deprecated: false /v1/sub-organizations/{id}: get: tags: - Sub-accounts summary: Retrieve a sub-account description: Returns the sub-account identified by `id`. operationId: sub_accounts_get security: - bearerAuth: - subaccounts:read x-fern-sdk-group-name: - subAccounts x-fern-sdk-method-name: get parameters: - name: id in: path description: The unique ID of the sub-account. required: true style: simple explode: false schema: type: integer format: int32 example: 123 responses: '200': headers: {} description: Returns the sub-account. content: application/json: schema: $ref: '#/components/schemas/SubOrganizationResponse' examples: success: summary: Successful response value: id: 123 created_at: '2023-06-15T10:30:00Z' name: My sub-account api_key: abc123def456 master_organization: 456 status: enabled default_destinations: sms_endpoint: https://examples.com/sms dlr_endpoint: https://examples.com/dlr '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' deprecated: false put: tags: - Sub-accounts summary: Update a sub-account description: Replaces the configuration of the sub-account identified by `id`. Omitted fields revert to their defaults. operationId: sub_accounts_update security: - bearerAuth: - subaccounts:write x-fern-sdk-group-name: - subAccounts x-fern-sdk-method-name: update parameters: - name: id in: path description: The unique ID of the sub-account. required: true style: simple explode: false schema: type: integer format: int32 example: 123 requestBody: description: Full replacement of the sub-account. Omitted fields revert to their defaults. content: application/json: schema: $ref: '#/components/schemas/SubAccountsUpdateRequest' example: name: Updated Company Name status: enabled default_destinations: sms_endpoint: https://examples.com/sms dlr_endpoint: https://examples.com/dlr required: true responses: '200': description: Returns the updated sub-account. headers: {} content: application/json: schema: $ref: '#/components/schemas/SubOrganizationResponse' examples: success: summary: Successful response value: id: 123 created_at: '2023-06-15T10:30:00Z' name: My sub-account api_key: abc123def456 master_organization: 456 status: enabled default_destinations: sms_endpoint: https://examples.com/sms dlr_endpoint: https://examples.com/dlr '400': $ref: '#/components/responses/ValidationErrorResponse' '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' '422': $ref: '#/components/responses/ValidationErrorResponse' deprecated: false /v1/sub-organizations/{id}/billing/transactions: get: tags: - Sub-accounts summary: List sub-account transactions description: Returns a paginated list of billing transactions for the sub-account identified by `id`, within the requested date range. operationId: sub_accounts_transactions_list security: - bearerAuth: - subaccounts:read x-fern-sdk-group-name: - subAccounts - transactions x-fern-sdk-method-name: list parameters: - name: id in: path description: The unique ID of the sub-account. required: true style: simple explode: false schema: type: integer format: int32 example: 123 - name: from_date in: query required: true description: Start of the date range to query, in `YYYY-MM-DD` format. Inclusive. style: form explode: true schema: type: string format: date example: '2023-01-01' - name: to_date in: query description: End of the date range to query, in `YYYY-MM-DD` format. Inclusive. required: true style: form explode: true schema: type: string format: date example: '2023-12-31' - name: type in: query description: Filters transactions by type. Accepts a single transaction type code or an array of codes. required: false style: form explode: true schema: oneOf: - title: Single type type: integer format: int32 example: 1 - title: Multiple types type: array items: type: integer format: int32 example: - 1 - 2 - 3 - name: page in: query description: Page number to retrieve. Default `1`. style: form explode: true schema: type: integer format: int32 example: 1 - name: per_page in: query description: Number of records to return per page. Default `25`. style: form explode: true schema: type: integer format: int32 default: 25 example: 25 responses: '200': headers: {} description: Returns a paginated list of sub-account transactions. content: application/json: schema: $ref: '#/components/schemas/SubAccountsTransactionsListResponse' examples: success: summary: Successful response value: transactions: - amount: 10.5 balance_after: 100 date: '2023-06-15T10:30:00Z' details: Account top-up status: committed type: 1 pagination: current_page: 1 per_page: 25 total: 1 total_pages: 123 '401': $ref: '#/components/responses/UnauthorizedErrorResponse' '403': $ref: '#/components/responses/ForbiddenErrorResponse' '404': $ref: '#/components/responses/NotFoundErrorResponse' '503': description: Returns when the transaction list is temporarily unavailable. headers: {} content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' deprecated: false webhooks: OnCallEvent: post: summary: On-call event operationId: on_call_event security: [] description: Sends a notification to track the lifecycle of an active call.status updates. It's triggered when a call is initiated, answered, and ends. tags: - Call webhooks requestBody: description: Callback payload. content: application/json: schema: $ref: '#/components/schemas/Call' responses: '200': description: Return a 200 status to indicate that the data was successfully received PostCallEvent: post: summary: Post-call event operationId: post_call_event security: [] description: The `post-call` callback includes details such as call disposition, duration, and cost. It's triggered after the call ends. tags: - Call webhooks requestBody: description: Callback payload. content: application/json: schema: $ref: '#/components/schemas/CallStatusWebhook' responses: '200': description: Return a 200 status to indicate that the data was successfully received AudioFileTranscriptionCompleted: post: summary: Audio file transcription completed operationId: audio_file_transcription_completed security: [] description: Sends a notification when an audio file transcription is complete. tags: - Speech Analytics requestBody: description: Callback payload. content: application/json: schema: $ref: '#/components/schemas/FileTranscriptionCompletedWebhook' responses: '200': description: Return a 200 status to indicate that the data was successfully received CallTranscriptionCompleted: post: summary: Call transcription completed operationId: call_transcription_completed security: [] description: Sends a notification when a call transcription is complete. tags: - Speech Analytics requestBody: description: Callback payload. content: application/json: schema: $ref: '#/components/schemas/CDRTranscriptionCompletedWebhook' responses: '200': description: Return a 200 status to indicate that the data was received. DeliveryReport: post: summary: Delivery report operationId: delivery_report security: [] description: Sends a notification when an outbound message delivery status changes. tags: - SMS and MMS requestBody: content: application/json: schema: $ref: '#/components/schemas/MessagesDeliveryReport' responses: '200': description: Successful callback receipt. InboundMessage: post: summary: Inbound message operationId: inbound_message security: [] description: Sends a notification when a message is received by an SMS-enabled phone number. tags: - SMS and MMS requestBody: description: Callback payload. content: application/json: schema: $ref: '#/components/schemas/InboundMessage' responses: '200': description: Return a 200 status to indicate that the data was received. BrandStatusChanged: post: summary: Brand status changed operationId: brand_status_changed security: [] description: Sends a notification when a 10DLC Brand status is updated. tags: - 10DLC requestBody: description: Callback payload. content: application/json: schema: $ref: '#/components/schemas/BrandStatusUpdatedWebhook' responses: '200': description: Return a 200 status to indicate that the data was received. CampaignStatusChanged: post: summary: Campaign status changed operationId: campaign_status_changed security: [] description: Sends a notification when a 10DLC Campaign status is updated in TCR. tags: - 10DLC requestBody: content: application/json: schema: $ref: '#/components/schemas/CampaignStatusUpdatedWebhook' responses: '200': description: Return a 200 status to indicate that the data was successfully received NumberStatusChanged: post: summary: Number status changed operationId: number_status_changed security: [] description: Sends a notification when a phone number status is updated. tags: - 10DLC requestBody: description: Callback payload. content: application/json: schema: $ref: '#/components/schemas/NumberStatusUpdatedWebhook' responses: '200': description: Return a 200 status to indicate that the data was received. components: securitySchemes: bearerAuth: type: http scheme: bearer description: | Wavix API key. Pass as `Authorization: Bearer `. Keys support per-resource scopes (none / read / write). See [Restricted keys and scopes](https://docs.wavix.com/api-reference/authentication#restricted-keys-and-scopes). schemas: ApiKeyScopePermission: type: object description: Permission level for an API key scope group. properties: allow: type: string enum: - none - read - write default: none description: |- Permission level: - `none`: no access - `read`: GET only - `write`: all methods (includes read) example: read ApiKeyCallsScopePermission: type: object description: Permission level for the `calls` scope group. properties: allow: type: string enum: - none - read - write default: none description: |- Permission level: - `none`: no access - `read`: GET requests, `POST /v1/cdrs` - `write`: all methods (includes read) example: read ApiKey: type: object description: API key details including IP restrictions and scope permissions. required: - id - label - value - active - restricted - permitted_ips - scopes_enabled - last_used_at - numbers - trunks - calls - messages - recordings - campaigns - two_fa - validator - webhooks - embeddable - billing - account - subaccounts - created_at properties: id: type: integer description: API key ID. example: 123 label: type: string description: API key label. example: Production API Key value: type: string description: API key value. example: abc123def456ghi789jkl012mno345pqr678stu901vwx234yz active: type: boolean description: Indicates whether the API key is active. example: true restricted: type: boolean description: |- Indicates whether IP restrictions are enabled. When enabled, the API key works only from IP addresses in `permitted_ips`. example: true permitted_ips: type: array items: type: string description: |- List of permitted IP addresses. If `restricted` is false, an empty list means no IP restrictions. If `restricted` is true, an empty list prevents all requests. example: - 192.168.1.1 - 10.0.0.1 scopes_enabled: type: boolean description: |- When `true`, the key is restricted to the permissions defined in the scope fields below. When `false`, the key has full access. example: true last_used_at: type: - string - 'null' format: date-time description: Timestamp of the most recent authenticated request made with this key. example: '2026-04-20T15:42:11Z' numbers: anyOf: - $ref: '#/components/schemas/ApiKeyScopePermission' - type: 'null' description: View, buy, release, and configure phone numbers, browse inventory, and manage the cart. trunks: anyOf: - $ref: '#/components/schemas/ApiKeyScopePermission' - type: 'null' description: View, create, update, and delete SIP trunks and their settings. calls: anyOf: - $ref: '#/components/schemas/ApiKeyCallsScopePermission' - type: 'null' description: Access call records and active calls, and control live call actions such as starting, answering, ending, audio playback, DTMF, streaming, and transcription requests. messages: anyOf: - $ref: '#/components/schemas/ApiKeyScopePermission' - type: 'null' description: Access message history and Sender IDs, send messages, manage opt-outs, and create or delete Sender IDs. recordings: anyOf: - $ref: '#/components/schemas/ApiKeyScopePermission' - type: 'null' description: List, download, and delete call recordings. campaigns: anyOf: - $ref: '#/components/schemas/ApiKeyScopePermission' - type: 'null' description: View campaign analytics and Sender ID or Brand status, schedule bulk voice or SMS campaigns, register Brands, and create short links. two_fa: anyOf: - $ref: '#/components/schemas/ApiKeyScopePermission' - type: 'null' description: View 2FA service details and verification logs, trigger OTPs by voice or SMS, and validate verification codes. validator: anyOf: - $ref: '#/components/schemas/ApiKeyScopePermission' - type: 'null' description: View number validation results and trigger single or bulk validation or HLR lookup requests. webhooks: anyOf: - $ref: '#/components/schemas/ApiKeyScopePermission' - type: 'null' description: List, create, and delete webhooks. embeddable: anyOf: - $ref: '#/components/schemas/ApiKeyScopePermission' - type: 'null' description: Manage widget tokens, including listing, viewing, creating, updating, and deleting them. billing: anyOf: - $ref: '#/components/schemas/ApiKeyScopePermission' - type: 'null' description: Access statements, balance, payment methods, usage reports, and billing settings, including payment method updates. account: anyOf: - $ref: '#/components/schemas/ApiKeyScopePermission' - type: 'null' description: View and update account profile information and timezone. subaccounts: anyOf: - $ref: '#/components/schemas/ApiKeyScopePermission' - type: 'null' description: 'Manage subaccounts: list and view them, create, update, and suspend them.' created_at: type: string format: date-time description: Creation date and time in ISO 8601 format. example: '2024-01-15T10:30:00Z' UnauthorizedErrorResponse: title: UnauthorizedErrorResponse type: object properties: success: type: boolean description: Indicates whether the request was successful. Always `false` for this error. example: false error: type: boolean description: Indicates that the response represents an error. Always `true` for this error. example: true message: type: string description: Human-readable description stating that authentication is missing or invalid. example: Unauthorized ForbiddenErrorResponse: title: ForbiddenErrorResponse type: object properties: success: type: boolean description: Indicates whether the request was successful. Always `false` for this error. example: false message: type: string description: Human-readable description of why access is forbidden. example: The service is not provisioned for your account. ApiKeyCreateRequest: type: object required: - label properties: label: type: string description: API key label. example: My API key active: type: boolean description: Indicates whether the API key should be activated upon creation. default: true example: true restricted: type: boolean description: Indicates whether to restrict API key access by IP address. When enabled, only requests from IP addresses listed in `permitted_ips` are allowed. default: false example: true permitted_ips: type: array items: type: string description: List of permitted IP addresses for this API key. Each must be a valid IPv4 address. Required when `restricted` is true. example: - 192.168.1.1 - 10.0.0.1 scopes_enabled: type: boolean description: |- When `true`, scope fields below are enforced. When `false` (default), the key has full access. Omitted scope fields default to `{ allow: none }`, so with `scopes_enabled: true` and no scopes set the key has no access. default: false example: true numbers: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: View, buy, release, and configure phone numbers, browse inventory, and manage the cart. trunks: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: View, create, update, and delete SIP trunks and their settings. calls: allOf: - $ref: '#/components/schemas/ApiKeyCallsScopePermission' description: Access call records and active calls, and control live call actions such as starting, answering, ending, audio playback, DTMF, streaming, and transcription requests. messages: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: Access message history and Sender IDs, send messages, manage opt-outs, and create or delete Sender IDs. recordings: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: List, download, and delete call recordings. campaigns: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: View campaign analytics and Sender ID or Brand status, schedule bulk voice or SMS campaigns, register Brands, and create short links. two_fa: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: View 2FA service details and verification logs, trigger OTPs by voice or SMS, and validate verification codes. validator: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: View number validation results and trigger single or bulk validation or HLR lookup requests. webhooks: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: List, create, and delete webhooks. embeddable: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: Manage widget tokens, including listing, viewing, creating, updating, and deleting them. billing: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: Access statements, balance, payment methods, usage reports, and billing settings, including payment method updates. account: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: View and update account profile information and timezone. subaccounts: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: 'Manage subaccounts: list and view them, create, update, and suspend them.' ValidationErrorResponse: title: ValidationErrorResponse type: object properties: success: type: boolean description: Indicates whether the request was successful. Always `false` for this error. example: false message: type: string description: Human-readable description naming the missing or invalid request parameter. example: Missing or invalid parameter SuccessResponse: title: SuccessResponse required: - success type: object properties: success: type: boolean description: Indicates whether the request was successful. example: true NotFoundErrorResponse: title: NotFoundErrorResponse type: object properties: success: type: boolean description: Indicates whether the request was successful. Always `false` for this error. example: false message: type: string description: Human-readable description stating that no resource matches the given ID. example: Record not found ApiKeyUpdateRequest: title: ApiKeyUpdateRequest type: object additionalProperties: false description: Fields to update on an API key. All fields are optional; only the provided fields are changed. properties: active: type: boolean description: Indicates whether the API key is active. example: true restricted: type: boolean description: Indicates whether the API key is restricted to the listed permitted IPs. example: true scopes_enabled: type: boolean description: Indicates whether per-resource scope permissions are enforced for the API key. example: true permitted_ips: type: array items: type: string description: IP addresses allowed to use the API key when restriction is enabled. example: - 192.168.1.1 - 10.0.0.1 label: type: string description: Human-readable label for the API key. example: Production API Key numbers: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: View, buy, release, and configure phone numbers, browse inventory, and manage the cart. trunks: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: View, create, update, and delete SIP trunks and their settings. calls: allOf: - $ref: '#/components/schemas/ApiKeyCallsScopePermission' description: Access call records and active calls, and control live call actions such as starting, answering, ending, audio playback, DTMF, streaming, and transcription requests. messages: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: Access message history and Sender IDs, send messages, manage opt-outs, and create or delete Sender IDs. recordings: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: List, download, and delete call recordings. campaigns: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: View campaign analytics and Sender ID or Brand status, schedule bulk voice or SMS campaigns, register Brands, and create short links. two_fa: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: View 2FA service details and verification logs, trigger OTPs by voice or SMS, and validate verification codes. validator: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: View number validation results and trigger single or bulk validation or HLR lookup requests. webhooks: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: List, create, and delete webhooks. embeddable: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: Manage widget tokens, including listing, viewing, creating, updating, and deleting them. billing: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: Access statements, balance, payment methods, usage reports, and billing settings, including payment method updates. account: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: View and update account profile information and timezone. subaccounts: allOf: - $ref: '#/components/schemas/ApiKeyScopePermission' description: 'Manage subaccounts: list and view them, create, update, and suspend them.' SIPTrunkSummary: title: SIPTrunkSummary required: - id - name - callerid - multiple_numbers - label - auth_method - host_request - status - talk_time - charge - access_token type: object additionalProperties: false properties: id: type: integer description: Unique identifier of the SIP trunk on the platform format: int32 example: 293 name: type: string description: System-generated login name of the SIP trunk example: '67758' callerid: type: - string - 'null' description: Caller ID associated with the SIP trunk. Contains `null` if no Caller ID is set, or an empty string if multiple Caller IDs are allowed. example: '12345678900' label: type: string description: User-defined name of the SIP trunk example: My trunk auth_method: description: SIP trunk authentication method. Can be either `Digest` or `IP auth`. type: string host_request: type: - object - 'null' description: For SIP trunks with IP-based authentication, contains the status of the IP authentication request. properties: host: type: string description: The IP address submitted for authentication example: 127.0.0.1 status: type: string description: Status of the IP authentication request example: pending passthrough: type: boolean description: Indicates whether Caller ID passthrough is enabled for the SIP trunk example: false multiple_numbers: type: boolean description: Indicates whether multiple Caller IDs are enabled for the SIP trunk example: false status: type: string description: |- Status of the SIP trunk. Possible values are: `active` - The SIP trunk is active and can be used to place outbound calls. `pending` - The IP authentication request is under review by the Wavix team. `rejected` - The IP authentication request was rejected by the Wavix team. SIP trunks with a `pending` or `rejected` status can't be used to place calls. talk_time: description: Total duration of all outbound calls placed through the SIP trunk the current month, in seconds. Automatically resets at the beginning of each month. type: integer format: int32 example: 65 charge: description: Total cost of all outbound calls placed through the SIP trunk in the current month, in USD. Automatically resets at the beginning of each month. type: string example: '24.637' call_recording_enabled: description: Indicates whether outbound call recording is enabled for the SIP trunk type: boolean default: false machine_detection_enabled: description: |- Indicates whether automatic voicemail detection is enabled for the SIP trunk. Available for `Flex Pro` customers only. type: boolean default: false transcription_enabled: description: |- Indicates whether automatic call transcription is enabled for the SIP trunk. Available for `Flex Pro` customers only. type: boolean default: false transcription_threshold: description: |- Minimum call duration (in seconds) required to automatically generate a transcription. Transcriptions are created for calls that meet or exceed this value. Available to `Flex Pro` customers only. type: integer format: int32 default: 6 encrypted_media: type: boolean description: Indicates whether SRTP media encryption is enabled for the SIP trunk. example: true access_token: type: - string - 'null' description: Static authentication token for the SIP trunk. example: siped7a3f5c1b9e042d6f8a4c2e7b9d1f3a5c8e0b2d4f6a8c0e2d4b6f8a1c3e5d7 description: A SIP trunk associated with the account. example: id: 3107 label: My trunk name: '32882' auth_method: Digest callerid: '14302287001' host_request: null passthrough: false multiple_numbers: false status: active charge: '24.637' talk_time: 65 machine_detection_enabled: true call_recording_enabled: true transcription_enabled: true transcription_threshold: 6 access_token: siped7a3f5c1b9e042d6f8a4c2e7b9d1f3a5c8e0b2d4f6a8c0e2d4b6f8a1c3e5d7 Pagination: title: Pagination required: - current_page - per_page - total - total_pages type: object additionalProperties: false properties: current_page: type: integer description: Current page number. format: int32 example: 2 per_page: type: integer description: Number of records per page. format: int32 example: 25 total: type: integer description: Total number of records. format: int32 example: 101 total_pages: type: integer description: Total number of pages. format: int32 example: 5 SIPTrunkListResponse: title: SIPTrunkListResponse required: - sip_trunks - pagination type: object additionalProperties: false properties: sip_trunks: type: - array - 'null' items: $ref: '#/components/schemas/SIPTrunkSummary' description: SIP trunks associated with the account. pagination: $ref: '#/components/schemas/Pagination' example: sip_trunks: - id: 3107 label: My trunk name: '32882' auth_method: IP auth callerid: '14302287001' host_request: host: 127.0.0.1 status: pending encrypted_media: false passthrough: false multiple_numbers: true status: pending charge: '24.637' talk_time: 65 machine_detection_enabled: true call_recording_enabled: true transcription_enabled: true transcription_threshold: 6 access_token: siped7a3f5c1b9e042d6f8a4c2e7b9d1f3a5c8e0b2d4f6a8c0e2d4b6f8a1c3e5d7 pagination: current_page: 1 total: 1 per_page: 25 total_pages: 1 SIPTrunkCreateRequest: title: SIPTrunkCreateRequest required: - label - password - callerid - ip_restrict - didinfo_enabled - call_restrict - cost_limit - channels_restrict - rewrite_enabled - transcription_enabled - transcription_threshold type: object additionalProperties: false properties: label: type: string description: User-defined name of the SIP trunk example: My trunk password: type: string description: Password set for the SIP trunk. A strong password helps keep the trunk secure. example: 4r=h;EaCB85QNtr2 host_request: type: object description: For SIP trunks with IP authentication, includes the SIP endpoint public static IP address and the status of the authentication request. Wavix authenticates all SIP traffic originating from this IP address. additionalProperties: false required: - host properties: host: type: string description: SIP endpoint public static IP address example: 127.0.0.1 callerid: type: string description: Caller ID associated with the SIP trunk. Must be an active or verified number on the account. example: '13132847320' multiple_numbers: type: boolean description: Indicates whether any active or verified phone number on the account can be used as the Caller ID for the SIP trunk. ip_restrict: type: boolean description: Indicates whether SIP trunk registration is allowed from only specific public static IP addresses. When set to `true`, the `allowed_ips` parameter must be provided. example: false allowed_ips: type: - array - 'null' description: A list of public static IP addresses allowed to register with the SIP trunk items: type: object additionalProperties: false required: - ip properties: ip: type: string description: Public static IP address allowed to register with the SIP trunk. example: 127.0.0.1 didinfo_enabled: type: boolean description: Indicates whether inbound calls include dialed number information in the `To` header of SIP INVITE requests example: true call_restrict: type: boolean description: Indicates whether a maximum call duration limit is enforced for the SIP trunk example: true call_limit: type: integer description: Maximum call duration for the SIP trunk, in seconds. Must not exceed the maximum duration set for the account. Ignored when `call_restrict` is `false`. format: int32 example: 3600 cost_limit: type: boolean description: Indicates if the max cost limit for an outbound call limit is activated for the SIP trunk. default: false example: true max_call_cost: type: number format: decimal description: Maximum cost for an outbound call, in USD example: 0.18 channels_restrict: type: boolean description: Indicates whether a limit on the number of concurrent outbound calls is enforced for the SIP trunk example: false max_channels: type: integer description: Maximum number of concurrent outbound calls for the SIP trunk. Must not exceed the outbound channel capacity set for the account. Ignored when `channels_restrict` is `false`. format: int32 example: 2 rewrite_enabled: type: boolean description: Indicates whether a custom dial plan is activated for the SIP trunk example: true rewrite_prefix: type: string description: Digits to automatically prepend to each dialed phone number example: '1' rewrite_cond: type: string description: Number of leading digits to automatically remove from each dialed phone number call_recording_enabled: type: boolean description: Indicates whether outbound call recording is enabled for the SIP trunk example: true transcription_enabled: type: boolean description: |- Indicates whether automatic call transcription is enabled for the SIP trunk. Available for `Flex Pro` customers only. example: true transcription_threshold: type: integer description: |- Transcriptions will be generated for calls that meet or exceed the specified minimal call duration threshold, in seconds. Available for `Flex Pro` customers only. format: int32 example: 10 machine_detection_enabled: type: boolean description: |- Indicates whether automatic voicemail detection is enabled for the SIP trunk. Available for `Flex Pro` customers only. example: true encrypted_media: type: boolean description: Indicates whether SRTP media encryption is enabled for the SIP trunk. example: true AllowedIPs: title: AllowedIPs type: array items: type: object additionalProperties: false required: - id - ip properties: id: type: integer description: IP address ID. format: int32 example: 6712 ip: type: string description: Public static IP address. example: 127.0.0.1 SIPTrunkResponse: title: SIPTrunkResponse required: - id - name - callerid - label - allowed_ips - created_at type: object additionalProperties: false properties: id: type: integer description: Unique identifier of the SIP trunk on the platform format: int32 example: 293 name: type: string description: System-generated login name of the SIP trunk example: '67758' callerid: type: - string - 'null' description: Caller ID configured on the SIP trunk. Contains `null` if no Caller ID is set, or an empty string if multiple Caller IDs are allowed. example: '12345678900' label: type: string description: User-defined name of the SIP trunk example: My trunk ip_restrict: type: boolean description: Indicates whether IP restriction must be enabled on the SIP trunk default: false example: false allowed_ips: $ref: '#/components/schemas/AllowedIPs' channels_restrict: type: boolean description: Indicates if the max number of concurrent outbound calls limit is activated for the SIP trunk. default: false example: false max_channels: type: - integer - 'null' description: A maximum number of concurrent outbound calls placed via the SIP trunk. Cannot be higher than the outbound channel capacity configured on the account. format: int32 example: 2 cost_limit: type: boolean description: Indicates if the max cost limit for an outbound call limit is activated for the SIP trunk. default: false example: true max_call_cost: type: - string - 'null' description: A maximum cost of an outbound call, in USD. example: '0.18' call_restrict: type: - boolean - 'null' description: Indicates if maximum call duration limit is activated for the SIP trunk. default: false example: false call_limit: type: - integer - 'null' description: A maximum call duration for the SIP trunk, in seconds. Cannot be higher than the max call duration set for the account. format: int32 example: 3600 didinfo_enabled: type: boolean description: Indicates if inbound calls carry dialed number information in the 'To' header of SIP Invites default: true example: true rewrite_enabled: type: boolean description: Indicates if a custom dial plan is activated for the SIP trunk. default: false example: true rewrite_prefix: type: string description: Leading digits to be added before the dialed phone numbers. example: '1' rewrite_cond: type: string description: Leading digits to be deleted from the dialed phone numbers. call_recording_enabled: type: boolean description: Indicates if outbound call recording is enabled on the SIP trunk. Available for `Flex Pro` customers only. default: false example: true machine_detection_enabled: type: boolean description: Indicates if automatic voicemail detection is enabled on the SIP trunk. Available for `Flex Pro` customers only. default: false example: true transcription_enabled: type: boolean description: Indicates if automatic call transcription is enabled on the SIP trunk. Available for `Flex Pro` customers only. default: false example: false transcription_threshold: type: integer description: Transcriptions will be generated for calls that meet or exceed the specified minimal call duration threshold, in seconds format: int32 default: 6 example: 10 created_at: type: string description: Date and time the SIP trunk was created format: date-time example: '2023-05-16T17:13:25.000Z' host: type: string description: Registration host for the SIP trunk. `dynamic` for credential-based registration, or a public static IP address for IP authentication. example: dynamic multiple_numbers: type: boolean description: Indicates whether any active or verified phone number on the account can be used as the Caller ID for the SIP trunk. example: true encrypted_media: type: boolean description: Indicates whether SRTP media encryption is enabled for the SIP trunk. example: true passthrough: type: boolean description: Indicates whether Caller ID passthrough is enabled. example: true access_token: type: - string - 'null' description: Static authentication token for the SIP trunk. example: 123easwqe321132 Country: title: Country required: - id - name - has_provinces_or_states type: object additionalProperties: false properties: id: type: integer description: Country ID. format: int32 example: 8148 name: type: string description: Country name. example: France has_provinces_or_states: type: boolean description: Indicates whether the country has regions. example: false CountryListResponse: title: CountryListResponse required: - countries type: object additionalProperties: false properties: countries: type: array description: Countries where phone numbers are available. items: $ref: '#/components/schemas/Country' Region: title: Region required: - id - name type: object additionalProperties: false properties: id: type: integer description: Region ID. format: int32 example: 17 name: type: string description: Region name. example: California description: State or province of the country, if applicable. RegionListResponse: title: RegionListResponse required: - regions type: object additionalProperties: false properties: regions: type: array description: States or provinces available for the requested country. items: $ref: '#/components/schemas/Region' CountryHasNoRegionsErrorResponse: title: CountryHasNoRegionsErrorResponse type: object properties: success: type: boolean description: Indicates whether the request succeeded. example: false message: type: string description: Human-readable error message. example: Country has no states or provinces City: title: City required: - id - name - area_code type: object additionalProperties: false properties: id: type: integer description: City ID. format: int32 example: 3213 name: type: string description: City name. example: Paris area_code: type: number description: Rate center. CityListResponse: title: CityListResponse required: - cities type: object additionalProperties: false properties: cities: type: array description: Cities available for the requested country or region. items: $ref: '#/components/schemas/City' AvailableNumber: title: AvailableNumber required: - id - activation_fee - monthly_fee - per_min - channels - city - country - country_short_name - cnam - free_min - number - require_docs - sms_enabled - sms_price type: object additionalProperties: false properties: id: type: integer description: Phone number ID. format: int64 example: 541139862174 activation_fee: type: string description: One-time activation fee in USD. example: '15.0' monthly_fee: type: string description: Monthly fee in USD. example: '10.0' per_min: type: string description: Price per inbound minute in USD. example: '0.01' channels: type: string description: Maximum number of concurrent inbound calls. format: int32 example: '4' city: type: string description: City where the phone number originates. example: Buenos Aires country: type: string description: Country where the phone number originates. example: Argentina country_short_name: type: string description: Two-letter ISO country code. example: AR cnam: type: - boolean - 'null' description: Indicates whether CNAM can be activated. example: false free_min: type: integer description: Number of free inbound minutes. format: int32 example: 0 number: type: string description: Phone number in E.164 format. example: '541139862174' require_docs: type: array items: type: integer format: int32 description: Documents required to activate the phone number. example: - 1 - 3 sms_enabled: type: boolean description: |- Indicates whether the phone number can receive inbound SMS and MMS messages. example: false sms_price: type: number format: float description: Price per inbound SMS segment in USD. example: 0 domestic_cli: type: boolean description: Indicates whether the number can be used as the Caller ID for local calls. example: true description: Phone number available for purchase. AvailableNumberListResponse: title: AvailableNumberListResponse required: - dids - pagination type: object additionalProperties: false properties: dids: type: array description: Phone numbers available for purchase that match the search criteria. items: $ref: '#/components/schemas/AvailableNumber' pagination: $ref: '#/components/schemas/Pagination' DocumentType: title: DocumentType required: - id - name - title type: object additionalProperties: false properties: id: type: integer format: int32 description: Document type ID. example: 2 name: type: string description: Document type name. example: address title: type: string description: Human-readable document type name. example: Proof of address CartResponse: title: CartResponse required: - dids - doc_types type: object additionalProperties: false properties: dids: type: array description: List of phone numbers in the cart. items: $ref: '#/components/schemas/AvailableNumber' doc_types: type: array items: $ref: '#/components/schemas/DocumentType' description: Document types required to activate phone numbers. InboundCallTransport: title: InboundCallTransport enum: - 1 - 4 - 5 type: integer description: Transport used to route the inbound call to its destination. One of `1` (SIP URI), `4` (PSTN phone number), or `5` (SIP trunk on the platform). InboundCallDestination: title: InboundCallDestination required: - id - destination - priority - transport - trunk_id - trunk_label type: object additionalProperties: false properties: id: type: integer description: Unique identifier of the inbound call destination format: int32 example: 1 destination: type: string description: The destination for inbound call routing. Can be either a SIP URI, a PSTN phone number or system-generated login of a SIP trunk on the platform. example: '[did]@sipuri.com' priority: type: integer description: For phone numbers with several destinations, sets the order in which the platform routes inbound calls. The lower the value, the higher the priority. format: int32 example: 1 transport: $ref: '#/components/schemas/InboundCallTransport' trunk_id: type: - integer - 'null' description: Unique identified of a SIP trunk on the platform. In cases when `transport:5`, otherwise, `null` format: int32 example: 23123 srtp: type: boolean description: Indicates whether SRTP media encryption is enabled for this destination. example: false trunk_label: type: - string - 'null' description: A user-defined name of a SIP trunk on the platform. In cases when `transport:5`, otherwise, `null` example: My trunk description: Inbound call destination DocumentTypeID: title: DocumentTypeID enum: - 1 - 2 - 3 type: integer description: |- Specifies the type of document required to activate the phone number. Possible values are: `1` - Proof of identity, `2` - Proof of address, `3` - Proof of business registration. NumberDocument: title: NumberDocument required: - id - allow_replace - did_number - doc_content_type - doc_file_name - doc_type_id - status - url type: object additionalProperties: false properties: id: type: integer description: Unique identifier of the uploaded document format: int32 example: 1 allow_replace: type: boolean description: Indicates whether the document can be replaced. Only documents with `rejected` status can be replaced. example: false did_number: type: string description: The phone number the document was uploaded for example: '12565378257' doc_content_type: type: string description: The uploaded content type identified by the platform example: image/png doc_file_name: type: string description: The uploaded document name example: Copy of ID.png doc_type_id: $ref: '#/components/schemas/DocumentTypeID' status: type: string description: Status of the uploaded document. Can be either `approved`, `pending`, or `rejected` url: type: string description: A link to the uploaded document example: https://api.wavix.com/v1/numbers/24882/papers/1" description: A document uploaded for a phone number example: id: 423 allow_replace: false did_number: '12565378257' doc_content_type: image/png doc_file_name: Copy of ID.png doc_type_id: 1 status: approved url: https://api.wavix.com/v1/numbers/24882/papers/1 Number: title: Number required: - id - number - activation_fee - monthly_fee - per_min - city - country - country_short_name - destination - channels - require_docs - documents - label - status - seconds - added - paid_until - sms_enabled - sms_relay_url - cnam - call_recording_enabled - transcription_enabled - transcription_threshold - domestic_cli type: object additionalProperties: false properties: id: type: integer format: int32 description: Phone number ID. example: 123 number: type: string description: Phone number. example: '12565378257' activation_fee: type: string description: One-time activation fee in USD. example: '0.99' monthly_fee: type: string description: Monthly fee in USD. example: '0.99' per_min: type: string description: Price per inbound minute in USD. example: '0.01' city: type: string description: City or rate center where the phone number originates. example: DETROIT, MI state: type: - string - 'null' description: State where the phone number originates. For non-US numbers, this field may be null. country: type: string description: Country where the phone number originates. example: United States country_short_name: type: string description: Two-letter ISO country code. example: US destination: type: array items: $ref: '#/components/schemas/InboundCallDestination' description: Inbound call destinations set for the phone number. channels: type: integer format: int32 description: Maximum number of concurrent inbound calls. example: 24 require_docs: type: array items: type: string description: Documents required to activate the phone number. example: - '1' documents: type: array items: $ref: '#/components/schemas/NumberDocument' description: Uploaded documents for the phone number. domestic_cli: type: boolean description: Indicates whether the number can be used as the Caller ID for local calls. free_min: type: integer description: Number of free inbound minutes. unlimited: type: boolean description: Indicates whether usage is unlimited. label: type: - string - 'null' description: Label assigned to the phone number. status: type: string description: Phone number status. `active` means the number can receive and place calls; `inactive` means it cannot. seconds: type: string description: Total inbound call duration in seconds for current month. added: type: string format: date-time description: Date and time the phone number was purchased in ISO 8601 format. example: '2023-04-10T06:42:59.000Z' paid_until: type: string format: date description: Date until which the number is paid. example: '2023-12-07' sms_enabled: type: boolean description: Indicates whether SMS is enabled. example: false sms_relay_url: type: - string - 'null' description: Callback URL for inbound SMS and MMS messages. example: https://your-website.com/webhook cnam: type: - boolean - 'null' description: Indicates whether CNAM is enabled. example: true call_recording_enabled: type: boolean description: Indicates whether call recording is enabled. example: true transcription_enabled: type: boolean description: Indicates whether transcription is enabled. example: true transcription_threshold: type: integer format: int32 description: Minimum call duration in seconds to trigger transcription. example: 6 call_status_url: type: - string - 'null' description: Callback URL for call status updates. example: https://example.com NumberListResponse: title: NumberListResponse required: - items - doc_types - pagination type: object additionalProperties: false properties: items: type: array items: $ref: '#/components/schemas/Number' description: List of phone numbers on the account. doc_types: type: array items: $ref: '#/components/schemas/DocumentType' description: Documents required to activate phone numbers. pagination: $ref: '#/components/schemas/Pagination' NumberDestination: title: NumberDestination required: - destination - priority - transport type: object additionalProperties: false properties: destination: type: string description: SIP URI, PSTN number, or SIP trunk login for inbound call routing. example: '[did]@sipuri.com' priority: type: integer format: int32 description: Destination priority (lower is higher priority). example: 1 transport: $ref: '#/components/schemas/InboundCallTransport' trunk_id: type: - integer - 'null' format: int32 description: SIP trunk ID when `transport` is 5, otherwise null. example: 23123 description: Inbound call destination example: destination: '32882' priority: 1 transport: 5 trunk_id: 3107 NumberBulkUpdateRequest: title: NumberBulkUpdateRequest type: object required: - ids additionalProperties: false description: A single patch applied to every listed phone number. All mutable fields are optional. properties: ids: type: array items: type: integer description: |- Numbers (by ID) to apply the patch to. The same patch is applied to every listed number. example: - 123 - 456 sms_enabled: type: boolean description: Indicates whether SMS is enabled for the phone numbers. example: true destinations: type: array items: $ref: '#/components/schemas/NumberDestination' description: Inbound call routing destinations for the phone numbers. sms_relay_url: type: string format: uri description: Callback URL for inbound messages. example: https://your-site.com/sms call_recording_enabled: type: boolean description: Indicates whether call recording is enabled. example: true transcription_enabled: type: boolean description: Indicates whether call transcription is enabled. example: true transcription_threshold: type: integer description: Minimum call duration in seconds before transcription runs. example: 30 call_status_url: type: string format: uri description: Callback URL for call status updates. example: https://your-site.com/calls NumberUpdateRequest: title: NumberUpdateRequest type: object additionalProperties: false description: Fields to update on a phone number. All fields are optional; only the provided fields are changed. properties: sms_enabled: type: boolean description: Indicates whether SMS is enabled for the phone number. example: true destinations: type: array items: $ref: '#/components/schemas/NumberDestination' description: Inbound call routing destinations for the phone number. sms_relay_url: type: string format: uri description: Callback URL for inbound messages. example: https://your-site.com/sms call_recording_enabled: type: boolean description: Indicates whether call recording is enabled. example: true transcription_enabled: type: boolean description: Indicates whether call transcription is enabled. example: true transcription_threshold: type: integer description: Minimum call duration in seconds before transcription runs. example: 30 call_status_url: type: string format: uri description: Callback URL for call status updates. example: https://your-site.com/calls CallDisposition: title: CallDisposition enum: - answered - noanswer - busy - failed - all type: string description: Final disposition of the call. One of `answered` (the called party answered), `noanswer` (no answer within the ring timeout), `busy` (the called party was busy), `failed` (the call could not be routed), or `all` (matches any disposition when used as a filter). CDR: title: CDR description: Call detail record (CDR) for an individual call. required: - date - from - to - disposition - duration - destination - per_minute - charge - uuid - call_id type: object additionalProperties: false properties: date: type: string format: date-time description: Date and time of the call in ISO 8601 format. example: '2023-08-21T06:43:36.000Z' from: type: string description: Originating phone number (ANI). example: '14302287001' to: type: string description: Destination phone number (DNIS). example: '33170363950' disposition: $ref: '#/components/schemas/CallDisposition' duration: type: integer format: int32 description: Call duration in seconds. example: 6 destination: type: string description: |- Destination of the call. For outbound calls, contains the country name and, optionally, a mobile carrier or city name. For inbound calls, includes the SIP trunk name, SIP URI, or PSTN number the call is forwarded to. example: France per_minute: type: string description: Price per minute in USD. example: '0.027' charge: type: string description: Total charge for the call in USD. example: '0.822' sip_trunk: type: - string - 'null' description: System-generated SIP trunk login. For outbound calls only. example: '32882' forward_fee: type: string description: PSTN forwarding price in USD. For inbound calls only when forwarded to PSTN. example: '0.0' uuid: type: string deprecated: true description: Call ID. Deprecated — use `call_id` instead. example: 99df5ffd-962a-410f-bcce-d08f1f7f328c call_id: type: string description: Call ID. Alias of `uuid`. example: 99df5ffd-962a-410f-bcce-d08f1f7f328c parent_uuid: type: - string - 'null' deprecated: true description: Parent call ID. Deprecated — use `parent_call_id` instead. example: 99df5ffd-962a-410f-bcce-d08f1f7f328c parent_call_id: type: - string - 'null' description: Parent call ID. Alias of `parent_uuid`. example: 99df5ffd-962a-410f-bcce-d08f1f7f328c answered_by: type: - string - 'null' description: Who answered the call. Possible values are `human`, `machine`. example: human CDRListResponse: title: CDRListResponse required: - items - pagination type: object additionalProperties: false properties: items: type: array items: $ref: '#/components/schemas/CDR' description: List of CDRs pagination: $ref: '#/components/schemas/Pagination' TranscriptionFilter: title: TranscriptionFilter required: - agent - client - any type: object additionalProperties: false properties: agent: type: object description: Search in an agent's spoken words and phrases properties: must: type: array items: type: string example: Hello description: Only calls with transcription that includes all of the specified keywords and phrases are returned. The listed keywords and phrases are combined using logical AND example: - Hello - Thank you match: type: array items: type: string example: Nope description: Only calls with transcription that includes any of the specified keywords and phrases are returned. The listed keywords and phrases are combined using logical OR example: - Nope - Maybe exclude: type: array items: type: string example: Richard description: Only calls with transcription that does not include any of the specified keywords and phrases are returned. The listed keywords and phrases are combined using logical OR example: - Richard - Issue resolved client: type: object description: Search in an customer's spoken words and phrases properties: must: type: array items: type: string example: Hello description: Only calls with transcription that includes all of the specified keywords and phrases are returned. The listed keywords and phrases are combined using logical AND example: - Hello - Thank you match: type: array items: type: string example: Nope description: Only calls with transcription that includes any of the specified keywords and phrases are returned. The listed keywords and phrases are combined using logical OR example: - Nope - Maybe exclude: type: array items: type: string example: Richard description: Only calls with transcription that does not include any of the specified keywords and phrases are returned. The listed keywords and phrases are combined using logical OR example: - Richard - Issue resolved any: type: object description: Search in both speakers' spoken words and phrases properties: must: type: array items: type: string example: Hello description: Only calls with transcription that includes all of the specified keywords and phrases are returned. The listed keywords and phrases are combined using logical AND example: - Hello - Thank you match: type: array items: type: string example: Nope description: Only calls with transcription that includes any of the specified keywords and phrases are returned. The listed keywords and phrases are combined using logical OR example: - Nope - Maybe exclude: type: array items: type: string example: Richard description: Only calls with transcription that does not include any of the specified keywords and phrases are returned. The listed keywords and phrases are combined using logical OR example: - Richard - Issue resolved CDRSearchRequest: title: CDRSearchRequest required: - type - from - to - page - per_page type: object additionalProperties: false properties: type: type: string enum: - placed - received description: Filters by call type. One of `placed` (outbound calls dialed by the account) or `received` (inbound calls answered by the account). example: placed from: type: string format: date description: Start date for call search in `YYYY-MM-DD` format. example: '2023-08-01' to: type: string format: date description: End date for call search in `YYYY-MM-DD` format. example: '2023-08-31' from_search: type: string description: Originating phone number to filter results. Accepts full or partial number. example: '4478012' to_search: type: string description: Destination phone number to filter results. Accepts full or partial number. example: '44206723' sip_trunk: type: string description: SIP trunk login to filter outbound calls. Ignored for inbound calls. example: '87095' min_duration: type: integer format: int32 description: Minimum call duration in seconds. example: 10 transcription: $ref: '#/components/schemas/TranscriptionFilter' uuid: type: string description: Call ID. example: 99df5ffd-962a-410f-bcce-d08f1f7f328c disposition: allOf: - $ref: '#/components/schemas/CallDisposition' - description: | Call disposition to filter results. If omitted, returns only answered calls. Allowed values: `answered`, `busy`, `rejected`, `failed`, `all`. Use `all` to return calls regardless of their disposition. page: type: integer format: int32 description: Page number to retrieve. example: 1 per_page: type: integer format: int32 description: Number of records per page. example: 50 TranscriptionReference: title: TranscriptionReference required: - uuid - url type: - object - 'null' additionalProperties: false properties: uuid: type: string description: Unique identifier of the call transcription. example: 40d6f322-048d-490b-95c7-4fc5c76a74db url: type: string description: URL for retrieving the full call transcription. example: https://api.wavix.com/v1/cdrs/40d6f322-048d-490b-95c7-4fc5c76a74db/transcription?appid=secret CDRWithTranscription: title: CDRWithTranscription required: - date - from - to - disposition - duration - destination - per_minute - charge - uuid - call_id - transcription type: object additionalProperties: false properties: answered_by: type: - string - 'null' description: Who answered the call. Allowed values are `human`, `machine`. example: human date: type: string description: Date and time of the call format: date-time example: '2023-08-21T06:43:36.000Z' from: type: string description: ANI/From attribute of the call example: '14302287001' to: type: string description: DNIS/To attribute of the call example: '33170363950' disposition: $ref: '#/components/schemas/CallDisposition' duration: type: integer description: Duration of the call, in seconds format: int32 example: 6 destination: type: string description: Destination of the call. For outbound calls, it contains the country name and, optionally, a mobile carrier or city name. For inbound calls, the destination includes the user-defined SIP trunk name, SIP URI, or PSTN number that the call is forwarded to. example: France per_minute: type: string description: Price per minute, in USD example: '0.027' charge: type: string description: Total charge for the call, in USD sip_trunk: type: - string - 'null' description: System-generated login of a SIP trunk. For `placed` calls only. example: '32882' forward_fee: type: string description: PSTN forwarding price, in USD. For `received` calls only when forwarded to PSTN. example: '0.0' uuid: type: string deprecated: true description: Call ID. Deprecated — use `call_id` instead. example: 99df5ffd-962a-410f-bcce-d08f1f7f328c call_id: type: string description: Call ID. Alias of `uuid`. example: 99df5ffd-962a-410f-bcce-d08f1f7f328c parent_uuid: type: - string - 'null' deprecated: true description: Parent call ID. Deprecated — use `parent_call_id` instead. example: 99df5ffd-962a-410f-bcce-d08f1f7f328c parent_call_id: type: - string - 'null' description: Parent call ID. Alias of `parent_uuid`. example: 99df5ffd-962a-410f-bcce-d08f1f7f328c transcription: $ref: '#/components/schemas/TranscriptionReference' description: A CDR of a single call with call transcription CDRTranscriptionSearchResponse: title: CDRTranscriptionSearchResponse required: - items - pagination type: object additionalProperties: false properties: items: type: array items: $ref: '#/components/schemas/CDRWithTranscription' description: List of CDRs with transcription links. pagination: $ref: '#/components/schemas/Pagination' TranscriptionLanguage: title: TranscriptionLanguage enum: - en - de - es - fr - it - null type: - string - 'null' description: Language of the transcription, as a two-letter ISO 639-1 code. One of `en` (English), `de` (German), `es` (Spanish), `fr` (French), or `it` (Italian). `null` lets the platform auto-detect the language. CDRRetranscriptionRequest: title: CDRRetranscriptionRequest type: object additionalProperties: false properties: language: $ref: '#/components/schemas/TranscriptionLanguage' webhook_url: type: string description: Webhook URL to receive status updates. example: https://site.webhook TranscriptTurn: title: TranscriptTurn type: object additionalProperties: false properties: type: type: string description: Phone number of the speaker attributed to this turn, in E.164 format. example: '13132847320' s: type: integer description: Start of the `turn`, in milliseconds. The start time is calculated from the moment the call was answered. format: int32 example: 3000 e: type: integer description: End of the `turn`, in milliseconds. The end time is calculated from the moment the call was answered. format: int32 example: 18000 text: type: string description: Transcribed text attributed to the speaker for this turn. example: Hi there, how are you? sentiment: type: string description: Sentiment detected in the speaker's text for this turn, such as `neutral`, `positive`, or `negative`. example: neutral description: Represents a single turn in a call transcript. Each turn carries the text attributed to one speaker, with the start and end times for that text. TranscriptionStatus: title: TranscriptionStatus enum: - completed - failed type: string description: Outcome of the transcription. One of `completed` (the transcript was produced) or `failed` (the transcription could not be produced). CDRTranscriptionResponse: title: CDRTranscriptionResponse required: - transcript - turns - uuid - language - duration - charge - status - transcription_date - call_date - call_uuid - call_score - call_summary type: object additionalProperties: false properties: transcript: type: object description: Mapping of phone numbers in the call to transcript text. additionalProperties: type: string example: '16572026750': '' '16465292513': '' turns: type: array description: List of speaker turns with text and start/end times. items: $ref: '#/components/schemas/TranscriptTurn' example: - type: '46844685344' s: 160 e: 7280 text: Hello, how can I help you? - type: '+16572026750' s: 2400 e: 3280 text: Hello, I have a question about my bill. uuid: type: string description: Transcription ID. example: e84f350f-6da7-4b56-80eb-41dec572626b language: $ref: '#/components/schemas/TranscriptionLanguage' duration: type: integer description: Call duration in seconds. format: int32 example: 102 charge: type: string description: Total charge for the transcription in USD. example: '0.01' status: $ref: '#/components/schemas/TranscriptionStatus' transcription_date: type: string description: Date and time when the transcription was processed in ISO 8601 format. format: date-time example: '2023-01-09T10:04:39.734Z' call_date: type: string description: Date and time when the call was placed or received in ISO 8601 format. format: date-time example: '2023-01-09T10:01:13.394Z' call_uuid: type: string description: Associated call ID. example: bbaa37bf-430a-46da-ade3-c248e4070161 call_score: type: string description: |- Call sentiment score. Indicates negative (1.0-3.0), neutral, or positive (4.0-5.0). example: '3.8' call_summary: type: string description: One- or two-sentence call summary. example: The agent and client discussed billing issues. CDRResponse: title: CDRResponse required: - date - from - to - disposition - duration - destination - per_minute - charge - uuid - call_id type: object additionalProperties: false properties: date: type: - string - 'null' description: Call date and time in ISO 8601 format. format: date-time example: '2023-08-21T06:43:36.000Z' from: type: string description: Caller ID (ANI). example: '14302287001' to: type: string description: Dialed number (DNIS). example: '33170363950' disposition: $ref: '#/components/schemas/CallDisposition' duration: type: integer description: Call duration in seconds. format: int32 example: 6 destination: type: - string - 'null' description: |- Destination of the call. For outbound calls, contains the country name and, optionally, a mobile carrier or city name. For inbound calls, includes the SIP trunk name, SIP URI, or PSTN number the call is forwarded to. example: France per_minute: type: - string - 'null' description: Price per minute in USD. example: '0.027' recording_url: type: - string - 'null' description: |- URL of the recorded call file. Call recording can be enabled on a SIP trunk for outbound calls and on a phone number for inbound calls. example: https://api.wavix.com/v1/recordings/recording_id charge: type: - string - 'null' description: Total charge for the call in USD. example: '0.162' sip_trunk: type: - string - 'null' description: System-generated SIP trunk login. For outbound calls only. example: '32882' forward_fee: type: string description: |- PSTN forwarding price in USD. For inbound calls only when forwarded to PSTN. example: '0.0' uuid: type: string deprecated: true description: Call ID. Deprecated — use `call_id` instead. example: 99df5ffd-962a-410f-bcce-d08f1f7f328c call_id: type: string description: Call ID. Alias of `uuid`. example: 99df5ffd-962a-410f-bcce-d08f1f7f328c parent_uuid: type: - string - 'null' deprecated: true description: Parent call ID. Deprecated — use `parent_call_id` instead. example: 99df5ffd-962a-410f-bcce-d08f1f7f328c parent_call_id: type: - string - 'null' description: Parent call ID. Alias of `parent_uuid`. example: 99df5ffd-962a-410f-bcce-d08f1f7f328c answered_by: type: - string - 'null' description: Who answered the call. Possible values are `human`, `machine`. example: human transcription: $ref: '#/components/schemas/TranscriptionReference' Recording: title: Recording required: - id - created_at - duration - from - to - call_uuid - url type: object additionalProperties: false properties: id: type: integer format: int32 description: Recording ID. example: 123 created_at: type: string format: date-time description: Date and time when the recording was created in ISO 8601 format. example: '2023-06-15T10:30:00Z' duration: type: integer format: int32 description: Recording duration in seconds. example: 120 from: type: string description: Originating phone number. example: '1234567890' to: type: string description: Destination phone number. example: '0987654321' call_uuid: type: string description: Call ID. example: aa566501-c591-4a8b-b3b9-cc1295398b72 url: type: string description: Recording file URL. example: https://api.wavix.com/v1/recordings/uuid description: A call recording response InvalidRecording: title: InvalidRecording type: object additionalProperties: false properties: dids: type: array items: type: string description: Phone number IDs that did not match any recording. example: - invalid_did_1 - invalid_did_2 sip_trunks: type: array items: type: string description: SIP trunk IDs that did not match any recording. example: - invalid_trunk_1 - invalid_trunk_2 description: An invalid recording filter response CallRecordingListResponse: type: object additionalProperties: false properties: recordings: type: array description: Call recordings that match the request. items: $ref: '#/components/schemas/Recording' invalid: $ref: '#/components/schemas/InvalidRecording' pagination: $ref: '#/components/schemas/Pagination' RecordingDeletedErrorResponse: title: RecordingDeletedErrorResponse type: object required: - success - message properties: success: type: boolean description: Indicates whether the request was successful. Always `false` for this error. example: false error: type: boolean description: Error flag. Always `true` for this error. example: true message: type: string description: Human-readable explanation of why the recording is unavailable. example: deleted due to the retention policy settings deleted_at: type: string format: date-time description: Timestamp when the recording was deleted, in ISO 8601 format. example: '2023-06-15T10:30:00Z' SubmitFileTranscriptionResponse: title: SubmitFileTranscriptionResponse required: - file - request_id - success type: object properties: file: type: string description: Uploaded file name. example: file.mp3 request_id: type: string description: Transcription request ID. example: e865ea07-25af-4fdd-876e-04b0d41d5ebd success: type: boolean description: Indicates whether the request was successful. example: true example: file: file.mp3 request_id: e865ea07-25af-4fdd-876e-04b0d41d5ebd success: true FileTranscriptResponse: title: FileTranscriptResponse required: - channel_1 - channel_2 type: object additionalProperties: false properties: channel_1: type: string description: Transcription of speaker one. example: Hi there channel_2: type: string description: Transcription of speaker two. example: Hello FileTranscriptTurn: title: FileTranscriptTurn required: - speaker - s - e - text - sentiment type: object additionalProperties: false properties: speaker: type: string description: Speaker identifier. example: channel_1 s: type: integer description: Turn start time in milliseconds from the beginning of the file. format: int32 example: 3000 e: type: integer description: Turn end time in milliseconds from the beginning of the file. format: int32 example: 18000 text: type: string description: Transcription text attributed to the speaker. example: Hi there, how are you? sentiment: type: string description: Sentiment associated with the turn. Possible values are `positive`, `neutral`, `negative`. example: positive description: Transcription `turn` details, including speaker, timestamps, text, and sentiment. example: speaker: channel_1 s: 600 e: 700 text: Hi there sentiment: positive FileTranscriptionResponse: title: FileTranscriptionResponse required: - transcript - turns - request_id - language - duration - charge - status - transcription_date - transcription_score - transcription_summary - original_file type: object additionalProperties: false properties: transcript: description: Complete transcription text attributed to each channel. oneOf: - $ref: '#/components/schemas/FileTranscriptResponse' - type: 'null' turns: type: - array - 'null' items: $ref: '#/components/schemas/FileTranscriptTurn' description: List of transcription turns, including speaker attribution, timestamps, and sentiment. example: - speaker: channel_1 s: 600 e: 700 text: Hi sentiment: positive request_id: type: string description: Transcription request ID. example: e84f350f-6da7-4b56-80eb-41dec572626b language: allOf: - $ref: '#/components/schemas/TranscriptionLanguage' - description: Transcription language. example: en duration: type: - integer - 'null' description: File duration in seconds. format: int32 example: 102 charge: type: string description: Total transcription charge in USD. example: '0.01' status: allOf: - $ref: '#/components/schemas/TranscriptionStatus' - description: Transcription status. Possible values are `completed`, `failed`. example: completed transcription_date: type: string description: Date and time of the transcription in ISO 8601 format. format: date-time example: '2023-01-09T10:04:39.734Z' transcription_score: type: - string - 'null' description: Conversation sentiment score. Scores from 1.0 to 3.0 are negative; scores from 4.0 to 5.0 are positive. example: '3.8' transcription_summary: type: - string - 'null' description: Transcription summary. example: The agent and client discussed call recording and call transcription original_file: type: string description: Uploaded file URL. example: https://api.wavix.com/v1/files/uuid SpeechAnalyticsRetranscribeRequest: type: object additionalProperties: false required: - callback_url properties: callback_url: type: string description: Callback URL for transcription status updates. example: https://you-site.com/webhook insights: type: boolean description: Indicates whether to enable insights generation. example: true CallWebhookListResponse: title: CallWebhookListResponse type: array description: List of call webhooks configured for the phone number. items: type: object additionalProperties: false required: - event_type - url properties: event_type: type: string description: Type of call event the webhook subscribes to. One of `post-call` (delivered once after the call ends) or `on-call` (delivered for in-call events while the call is active). enum: - post-call - on-call example: post-call url: type: string format: uri description: Webhook URL example: https://your-site.com/webhook CallWebhooksCreateRequest: type: object additionalProperties: false required: - url - event_type properties: url: type: string format: uri description: Webhook URL to send call events to. example: https://you-site.com/webhook event_type: type: string description: |- Allowed values: `on-call`, `post-call`. - `on-call`: Sends real-time status updates when a call starts, is answered, and ends. - `post-call`: Sends a callback after the call ends with disposition, duration, and cost. enum: - post-call - on-call CallWebhook: title: CallWebhook required: - success - event_type - url type: object additionalProperties: false properties: success: type: boolean description: Indicates whether the request was successful. example: true event_type: type: string description: Type of call event the webhook subscribes to. One of `post-call` (delivered once after the call ends) or `on-call` (delivered for in-call events while the call is active). enum: - post-call - on-call example: post-call url: type: string format: uri description: Webhook URL example: https://you-site.com/webhook description: A call webhook response CallDirection: type: string enum: - inbound - outbound description: Direction of the call. One of `inbound` (call received by the account) or `outbound` (call placed by the account). OnCallEventPayload: type: object description: Payload for the `on_call_event` event type. required: - type properties: type: type: string description: Type of in-call sub-event. One of `audio` (audio playback progress) or `collect` (DTMF digit collection progress). enum: - audio - collect example: audio payload: type: - object - 'null' description: |- Sub-event-specific data. Structure depends on the `type` field: - `audio`: `{ "status": "started" | "completed", "playback_id": "" }` - `collect`: `{ "digits": "", "status": "started" | "completed" | "failed" }` example: status: completed playback_id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 Call: type: object additionalProperties: false required: - uuid - id - event_type - event_time - event_payload - from - to - call_started - call_answered - call_completed - machine_detected - tag properties: uuid: type: string format: uuid deprecated: true description: Call ID. Deprecated — use `id` instead. example: 5dccb6b0-f35c-488c-867b-86fb012c4415 id: type: string format: uuid description: Call ID. Alias of `uuid`. example: 5dccb6b0-f35c-488c-867b-86fb012c4415 direction: $ref: '#/components/schemas/CallDirection' event_type: type: string description: |- Most recent lifecycle event for the call. One of: - `call_setup` — the call is being initiated. - `ringing` — the destination is ringing. - `early_media` — early media (such as ringback) is playing before answer. - `answered` — the destination answered the call. - `completed` — the call ended normally. - `busy` — the destination was busy. - `cancelled` — the call was cancelled before answer. - `rejected` — the destination rejected the call. - `on_call_event` — an in-call event occurred (see `event_payload`). enum: - call_setup - ringing - early_media - answered - completed - busy - cancelled - rejected - on_call_event example: call_setup event_time: type: string format: date-time description: Date and time of the latest event in ISO 8601 format. example: '2025-09-22T12:56:38.547Z' event_payload: description: Event-specific metadata. oneOf: - $ref: '#/components/schemas/OnCallEventPayload' - type: 'null' example: type: audio payload: status: completed playback_id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 from: type: string description: Caller ID. example: '+18045961058' to: type: string description: Destination number. example: '17653889567' call_started: type: string format: date-time description: Date and time when the call started in ISO 8601 format. example: '2025-09-22T12:56:38.547Z' call_answered: type: - string - 'null' format: date-time description: Date and time when the call was answered in ISO 8601 format. call_completed: type: - string - 'null' format: date-time description: Date and time when the call ended in ISO 8601 format. machine_detected: type: boolean description: Indicates whether the call was answered by a machine. example: false tag: type: string description: Call metadata example: marketing-campaign CallListResponse: type: object properties: calls: type: array description: List of calls items: $ref: '#/components/schemas/Call' success: type: boolean description: Indicates whether the request was successful. example: true required: - calls - success CallRequest: type: object additionalProperties: false required: - from - to - callback_url properties: from: type: string description: Caller ID. Must be an active or verified phone number on the account. example: '+1234567890' to: type: string description: Destination number in E.164 format example: '+1987654321' callback_url: type: string description: The callback URL where Wavix sends the call status updates example: https://examples.com/callback recording: type: boolean description: Specifies whether to record the call default: false voicemail_detection: type: boolean description: Specifies whether the AMD is turned on for the call default: false tag: type: string description: Call metadata example: marketing-campaign timeout: type: integer description: The ring timeout, in seconds, before the call is considered unanswered. example: 60 CallCreateResponse: type: object additionalProperties: false properties: uuid: type: string format: uuid deprecated: true description: Call ID. Deprecated — use `id` instead. example: 5dccb6b0-f35c-488c-867b-86fb012c4415 id: type: string format: uuid description: Call ID. Alias of `uuid`. example: 5dccb6b0-f35c-488c-867b-86fb012c4415 direction: $ref: '#/components/schemas/CallDirection' event_type: type: string description: |- Most recent lifecycle event for the call. One of: - `call_setup` — the call is being initiated. - `ringing` — the destination is ringing. - `early_media` — early media (such as ringback) is playing before answer. - `answered` — the destination answered the call. - `completed` — the call ended normally. - `busy` — the destination was busy. - `cancelled` — the call was cancelled before answer. - `rejected` — the destination rejected the call. - `on_call_event` — an in-call event occurred (see `event_payload`). enum: - call_setup - ringing - early_media - answered - completed - busy - cancelled - rejected - on_call_event example: call_setup event_time: type: string format: date-time description: Date and time of the latest event example: '2025-09-22T12:56:38.547Z' event_payload: description: Event-specific data oneOf: - $ref: '#/components/schemas/OnCallEventPayload' - type: 'null' example: type: audio payload: status: completed playback_id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 from: type: string description: Caller ID example: '+18045961058' to: type: string description: Destination number example: '17653889567' call_started: type: string format: date-time description: Date and time when the call started example: '2025-09-22T12:56:38.547Z' call_answered: type: - string - 'null' format: date-time description: Date and time when the call was answered call_completed: type: - string - 'null' format: date-time description: Date and time when the call ended machine_detected: type: boolean description: Indicates whether the call was answered by an answering machine example: false tag: type: string description: Call metadata example: '' CallControlValidationErrorResponse: title: CallControlValidationErrorResponse type: object required: - success - message properties: success: type: boolean description: Indicates whether the request was successful. Always `false` for this error. example: false message: type: string description: Human-readable summary of the validation failure. example: Validation error errors: type: object description: | Field-level validation messages, keyed by the offending request field name (snake_case). Absent when the request body could not be parsed at all (for example, malformed JSON). additionalProperties: type: string example: to: required CallResponse: type: object properties: call: $ref: '#/components/schemas/Call' success: type: boolean description: Indicates whether the request was successful. example: true required: - call - success UpdateCallRequest: type: object additionalProperties: false required: - tag properties: tag: type: string description: User-defined label attached to the Call for tracking or reporting. example: marketing-campaign CallStreamType: type: string enum: - oneway - twoway description: Specifies the streaming type. Can be either `oneway` for unidirectional or `twoway` for bidirectional streaming. CallStreamChannel: type: string enum: - inbound - outbound - both description: Specifies which audio channel to stream. Use `inbound` to stream the incoming channel (to Wavix), `outbound` for the outbound channel (from Wavix), or `both` to stream both. For bidirectional call streaming, this setting is ignored and the inbound channel is only streamed. CallAnswerRequest: type: object additionalProperties: false properties: call_recording: type: boolean description: Indicates whether the call should be recorded. default: false call_transcription: type: boolean description: Indicates whether the call should be transcribed after it ends. default: false stream_url: type: string format: uri description: WebSocket URL to stream the call. example: wss://examples.com/stream stream_type: allOf: - $ref: '#/components/schemas/CallStreamType' description: Direction of audio streamed to `stream_url`. example: twoway stream_channel: allOf: - $ref: '#/components/schemas/CallStreamChannel' description: Audio channel streamed to `stream_url`. example: inbound CallStreamCreateRequest: type: object additionalProperties: false required: - stream_url - stream_type - stream_channel properties: stream_url: type: string format: uri description: WebSocket URL for call streaming example: wss://examples.com/stream stream_type: allOf: - $ref: '#/components/schemas/CallStreamType' description: Direction of audio streamed to `stream_url`. example: twoway stream_channel: allOf: - $ref: '#/components/schemas/CallStreamChannel' description: Audio channel streamed to `stream_url`. example: inbound CallStreamResponse: type: object properties: success: type: boolean description: Indicates that the request was successful example: true stream_id: type: string format: uuid description: Stream ID example: 123e4567-e89b-12d3-a456-426614174000 CallAudioPlayRequest: type: object additionalProperties: false required: - audio_file properties: audio_file: type: string description: URL of the audio file to play to the call. example: https://examples.com/audio.wav TTSLanguage: type: string enum: - ru - en - sp - ge description: Language used for text-to-speech synthesis. One of `ru` (Russian), `en` (English), `sp` (Spanish), or `ge` (German). TTSVoiceID: type: string enum: - Ivy - Joanna - Kendra - Kimberly - Salli - Joey - Justin - Matthew - Conchita - Lucia - Enrique - Marlene - Vicki - Hans - Tatyana - Maxim description: Named text-to-speech voice used to read the message. Each value selects a distinct synthesized voice. One of `Ivy`, `Joanna`, `Kendra`, `Kimberly`, `Salli`, `Joey`, `Justin`, or `Matthew` (English voices); `Conchita`, `Lucia`, or `Enrique` (Spanish voices); `Marlene`, `Vicki`, or `Hans` (German voices); or `Tatyana` or `Maxim` (Russian voices). CallDtmfCollectRequest: type: object additionalProperties: false properties: max_digits: type: integer description: Maximum number of digits to collect. minimum: 1 maximum: 20 example: 5 timeout: type: integer description: Timeout for digit collection in seconds. minimum: 1 maximum: 60 example: 10 termination_character: type: string description: DTMF character that ends input collection. example: '#' max_attempts: type: integer description: Maximum number of attempts. example: 3 prompt: type: object description: |- Prompt to play before collecting digits. Play a prerecorded audio file or use Wavix Text-To-Speech. properties: play: type: string description: Audio file URL. example: https://examples.com/prompt.wav say: type: object description: Text to speak and voice to use. required: - text - voice properties: text: type: string description: Text to speak. example: Please enter your PIN language: $ref: '#/components/schemas/TTSLanguage' voice: $ref: '#/components/schemas/TTSVoiceID' WebRTCToken: title: WebRTCToken description: Represents a WebRTC token that authorizes the Wavix embeddable widget to register against a SIP trunk. type: object additionalProperties: false required: - uuid - sip_trunk properties: uuid: type: string description: Unique identifier of the WebRTC token. example: 550e8400-e29b-41d4-a716-446655440000 sip_trunk: type: string description: Name of the SIP trunk the token authenticates against. example: my-sip-trunk payload: type: - object - 'null' description: Arbitrary client-defined data associated with the token. example: {} ttl: type: - integer - 'null' minimum: 1 description: Time to live, in seconds. `null` means no expiration. example: 3600 WebRTCTokensListResponse: type: object description: Paginated list of WebRTC tokens. properties: items: type: array description: WebRTC tokens on the current page. items: $ref: '#/components/schemas/WebRTCToken' pagination: $ref: '#/components/schemas/Pagination' WebRTCTokenCreateRequest: title: WebRTCTokenCreateRequest type: object additionalProperties: false required: - sip_trunk - ttl properties: sip_trunk: type: string description: Name of the SIP trunk the token authenticates against. example: my-sip-trunk payload: type: - object - 'null' description: Arbitrary client-defined data to associate with the token. example: {} ttl: type: - integer - 'null' minimum: 1 description: Time to live in seconds. Pass `null` for no expiration. example: 3600 WebRTCTokenResponse: title: WebRTCTokenResponse type: object additionalProperties: false required: - token - uuid - sip_trunk properties: token: type: string description: Signed JWT used by the Wavix embeddable widget to authenticate. example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... uuid: type: string description: Unique identifier of the WebRTC token. example: 550e8400-e29b-41d4-a716-446655440000 sip_trunk: type: string description: Name of the SIP trunk the token authenticates against. example: my-sip-trunk payload: type: - object - 'null' description: Arbitrary client-defined data associated with the token. example: {} ttl: type: - integer - 'null' description: Lifetime of the token, in seconds. `null` means the token does not expire. example: 3600 WebRTCTokenUpdateRequest: title: WebRTCTokenUpdateRequest type: object additionalProperties: false required: - payload properties: payload: type: object description: Arbitrary client-defined data to associate with the token, replacing the existing payload. example: {} SenderIDType: title: SenderIDType enum: - numeric - alphanumeric type: string description: Format of the Sender ID. One of `numeric` (a phone number) or `alphanumeric` (a text sender name). SenderID: title: SenderID required: - id - sender_id - type - allowlisted_in type: object additionalProperties: false properties: id: type: string description: Sender ID ID. example: 3c7a5a90-43e0-43e0-b006-fdfea30c5a7c sender_id: type: string description: Sender ID name. example: Wavix type: $ref: '#/components/schemas/SenderIDType' allowlisted_in: type: array items: type: string description: Two-letter ISO country codes where the Sender ID is allowlisted. usecase: type: string description: Primary use case declared for the Sender ID, such as `transactional`, `promo`, or `authentication`. example: promo samples: description: Message samples. type: array items: type: string example: sample description: SMS Sender ID. SenderIDListResponse: title: SenderIDListResponse required: - items type: object additionalProperties: false properties: items: type: array items: $ref: '#/components/schemas/SenderID' description: List of Sender IDs. SenderIDCreateRequest: title: SenderIDCreateRequest required: - sender_id - type - countries - usecase type: object additionalProperties: false properties: sender_id: type: string description: Sender ID name. Can be either an alphanumeric string or a phone number. example: Wavix type: $ref: '#/components/schemas/SenderIDType' countries: type: array items: type: string description: Two-letter ISO country codes where the Sender ID is allowlisted. usecase: type: string description: Primary use case for the Sender ID. One of `transactional` (account or order notifications), `promo` (marketing and promotional messages), or `authentication` (one-time passcodes and verification codes). enum: - transactional - promo - authentication example: transactional monthly_volume: type: string description: Expected number of messages sent per month from the Sender ID. One of `1-1000`, `1001-20000`, `20001-50000`, `50001-100000`, or `More than 100000`. Each value is the message-count band for the month. enum: - 1-1000 - 1001-20000 - 20001-50000 - 50001-100000 - More than 100000 example: 1001-20000 samples: type: array items: type: string description: Message samples. example: - Sample message 1 - Sample message 2 SenderIDDetails: title: SenderIDDetails required: - id - sender_id - type - allowlisted_in type: object additionalProperties: false properties: id: type: string description: Sender ID ID. example: 3c7a5a90-43e0-43e0-b006-fdfea30c5a7c sender_id: type: string description: Sender ID name. example: Wavix type: $ref: '#/components/schemas/SenderIDType' allowlisted_in: type: array items: type: string description: List of countries where the Sender ID is allowlisted. usecase: type: string description: Primary use case declared for the Sender ID, such as `transactional`, `promo`, or `authentication`. example: promo samples: type: array items: type: string description: Message samples. example: - Sample message 1 - Sample message 2 SenderIDResponse: type: object additionalProperties: false properties: id: type: string format: uuid description: Sender ID ID. example: 3c7a5a90-43e0-43e0-b006-fdfea30c5a7c sender_id: type: string description: Sender ID. example: Wavix type: type: string description: Format of the Sender ID. One of `alphanumeric` (a text sender name), `numeric` (a phone number), or `shortcode` (a short code). enum: - alphanumeric - numeric - shortcode example: alphanumeric usecase: type: string description: Use case for the Sender ID. example: promo samples: type: array description: Message samples. items: type: string example: Sample allowlisted_in: type: array description: List of countries where the Sender ID is allowlisted. items: type: string example: GB required: - id - sender_id - type RecordNotFoundErrorResponse: title: RecordNotFoundErrorResponse required: - success - message type: object properties: success: type: boolean description: Indicates whether the request was successful. Always `false` for this error. example: false message: type: string description: Human-readable error description example: Record not found example: success: false message: Record not found OptOutItem: title: OptOutItem type: object properties: phone_number: type: string description: Opted-out phone number. example: '15551234567' sender_id: type: - string - 'null' description: Sender ID. Contains `null` if the phone number opted out of all messages. example: MySender campaign_id: type: - string - 'null' description: 10DLC campaign ID, if any. example: C123456 created_at: type: string format: date-time description: Opt-out date and time in ISO 8601 format. example: '2024-01-15T10:30:00Z' OptOutsListResponse: title: OptOutsListResponse type: object properties: items: type: array description: Opt-out records that match the request. items: $ref: '#/components/schemas/OptOutItem' pagination: $ref: '#/components/schemas/Pagination' OptOut: title: OptOut required: - number type: object additionalProperties: false properties: number: type: string description: Phone number to opt out. example: '16419252149' sender_id: type: string description: Sender ID. If omitted, the phone number is opted out of all messages. example: '15072429497' example: number: '16419252149' sender_id: '15072429497' OptOutCreateRequest: title: OptOutCreateRequest required: - opt_out type: object additionalProperties: false properties: opt_out: $ref: '#/components/schemas/OptOut' MessageDeliveryStatus: title: MessageDeliveryStatus enum: - accepted - pending - sent - delivered - undelivered - expired - rejected - dlr_expired type: string description: |- Current delivery status of the message. One of: - `accepted` — the message was accepted by the platform for sending. - `pending` — the message is queued and awaiting a carrier response. - `sent` — the message was handed to the carrier. - `delivered` — the carrier confirmed delivery to the handset. - `undelivered` — the carrier reported that delivery failed. - `expired` — the validity period elapsed before the message was sent. - `rejected` — the message was rejected before sending. - `dlr_expired` — no delivery receipt arrived from the carrier within the expected window. MessageBody: title: MessageBody required: - text - media type: object additionalProperties: false properties: text: type: string description: Message text. example: Hi there, this is a sample message media: maxItems: 5 minItems: 0 type: - array - 'null' items: type: string description: |- List of media URLs. If provided, the message is sent as an MMS; otherwise, it is sent as an SMS. example: - https://you-site.com/media Message: title: Message required: - message_id - message_type - from - to - direction - mcc - mnc - message_body - tag - status - segments - charge - submitted_at - sent_at - delivered_at - error_message type: object additionalProperties: false properties: message_id: type: string description: Message ID. example: 871b4eeb-f798-4105-be23-32df9e991456 message_type: type: string description: Message type. Possible values are `sms` or `mms` example: sms from: type: string description: Sender ID. Can be numeric or alphanumeric. example: Wavix to: type: string description: Recipient phone number. example: '447537151866' carrier_fees: type: string description: Carrier fees for the message in USD. format: float example: '0.0' direction: type: string description: Message direction. Possible values are `outbound` or `inbound`. example: outbound mcc: type: - string - 'null' description: Mobile country code. example: '301' mnc: type: - string - 'null' description: Mobile network code. example: '204' message_body: $ref: '#/components/schemas/MessageBody' tag: type: - string - 'null' description: Tag to group messages, such as for a specific campaign. example: Fall sale status: $ref: '#/components/schemas/MessageDeliveryStatus' segments: type: integer description: Number of SMS segments. Always 1 for MMS. format: int32 example: 1 charge: type: string description: Total charge for the message in USD. example: '0.01' submitted_at: type: string description: Date and time the message was accepted in ISO 8601 format. example: '2022-04-14T13:51:16.096Z' sent_at: type: - string - 'null' description: Date and time the message was sent in ISO 8601 format. For mobile terminated messages only. example: '2022-04-14T13:51:16.096Z' delivered_at: type: - string - 'null' description: |- Date and time the message was delivered in ISO 8601 format. Refers to DLR reception for mobile-terminated messages or webhook relay for mobile-originated messages. example: '2022-04-14T13:51:16.096Z' error_message: type: - string - 'null' description: A human-readable error description. description: SMS or MMS message. example: message_id: 871b4eeb-f798-4105-be23-32df9e991456 message_type: sms from: Wavix to: '447537151866' direction: outbound mcc: '301' mnc: '204' message_body: text: Hi there, this a message from Wavix media: null tag: Fall sale status: delivered segments: 1 charge: '0.01' submitted_at: '2022-04-14T13:51:16.096Z' sent_at: '2022-04-14T13:51:16.096Z' delivered_at: '2022-04-14T13:51:16.096Z' error_message: '' MessageListResponse: title: MessageListResponse required: - items - pagination type: object additionalProperties: false properties: items: type: array description: Messages that match the request. items: $ref: '#/components/schemas/Message' pagination: $ref: '#/components/schemas/Pagination' MessageCreateRequest: title: MessageCreateRequest required: - from - to - message_body type: object additionalProperties: false properties: from: type: string description: Sender ID. Numeric or alphanumeric. example: Wavix to: type: string description: Recipient phone number. example: '447537151866' message_body: $ref: '#/components/schemas/MessageBody' callback_url: type: string description: Callback URL for delivery reports. example: https://you-site.com/webhook validity: type: integer description: Message validity period in seconds. Delivery attempts stop after this period expires. format: int32 example: 3600 tag: type: string description: Tag to group messages, such as for a specific campaign. example: Fall sale SendMessagesResponse: type: object additionalProperties: false properties: carrier_fees: type: - string - 'null' description: Mobile carrier fees in USD. example: '0.0' charge: type: string description: Total charge for the message in USD. example: '0.0' direction: type: string description: Message direction. Possible values are `outbound`, `inbound`. example: outbound delivered_at: type: - string - 'null' description: Date and time the message was delivered in ISO 8601 format. format: date-time example: '2024-05-28T12:34:56Z' error_message: type: - string - 'null' description: Error message. from: type: string description: Sender ID. example: Sender ID. mcc: type: - string - 'null' description: Mobile country code. example: '310' mnc: type: - string - 'null' description: Mobile network code. example: '260' message_body: $ref: '#/components/schemas/MessageBody' message_id: type: string description: Message ID. example: abc123de-4567-890f-gh12-ijklmnop3456 message_type: type: string description: Message type. example: mms segments: type: integer description: Number of SMS segments. Always 1 for MMS. example: 1 sent_at: type: - string - 'null' description: Date and time the message was sent in ISO 8601 format. format: date-time example: '2024-05-28T12:34:54Z' status: type: string description: Message status. example: accepted submitted_at: type: string description: Date and time the message was submitted in ISO 8601 format. example: '2025-09-22T09:07:53Z' tag: type: - string - 'null' description: Message tag. example: campaign_test to: type: string description: Recipient phone number. example: '+15551234567' MessageResponse: title: MessageResponse required: - message_id - message_type - from - to - direction - mcc - mnc - message_body - tag - status - segments - charge - submitted_at - sent_at - delivered_at - error_message type: object additionalProperties: false properties: message_id: type: string description: Message ID. example: 871b4eeb-f798-4105-be23-32df9e991456 message_type: type: string description: Message type. Possible values are `sms`, `mms`. example: sms from: type: string description: Sender ID. example: Wavix to: type: string description: Recipient phone number. example: '447537151866' direction: type: string description: Message direction. Possible values are `outbound`, `inbound`. example: outbound mcc: type: - string - 'null' description: Mobile country code. example: '301' mnc: type: - string - 'null' description: Mobile network code. example: '204' message_body: $ref: '#/components/schemas/MessageBody' tag: type: - string - 'null' description: Tag to group messages, such as for a specific campaign. example: Fall sale status: $ref: '#/components/schemas/MessageDeliveryStatus' segments: type: integer description: Number of SMS segments. Always 1 for MMS. format: int32 example: 1 charge: type: string description: Total charge for the message in USD. example: '0.01' submitted_at: type: string description: Date and time the message was accepted in ISO 8601 format. example: '2022-04-14T13:51:16.096Z' sent_at: type: - string - 'null' description: Date and time the message was sent in ISO 8601 format. For mobile-terminated messages only. example: '2022-04-14T13:51:16.096Z' delivered_at: type: - string - 'null' description: |- Date and time the message was delivered in ISO 8601 format. Refers to DLR reception for mobile-terminated messages or webhook relay for mobile-originated messages. example: '2022-04-14T13:51:16.096Z' error_message: type: - string - 'null' description: Human-readable error message. carrier_fees: type: - string - 'null' description: Mobile carrier fees in USD. example: '0.0' TenDLCBrandEntityType: title: TenDLCBrandEntityType enum: - PRIVATE_PROFIT - PUBLIC_PROFIT - NON_PROFIT - GOVERNMENT type: string description: Legal entity type of the 10DLC Brand. One of `PRIVATE_PROFIT` (privately held for-profit company), `PUBLIC_PROFIT` (publicly traded for-profit company), `NON_PROFIT` (non-profit organization), or `GOVERNMENT` (government entity). example: PRIVATE_PROFIT TenDLCBrandIdentityVerificationStatus: title: TenDLCBrandIdentityVerificationStatus enum: - REVIEW - VERIFIED - UNVERIFIED - VETTED_VERIFIED - SUSPENDED type: string description: |- Identity verification status of the 10DLC Brand. One of: - `REVIEW` — verification is in progress. - `VERIFIED` — the Brand passed standard verification. - `UNVERIFIED` — verification has not succeeded. - `VETTED_VERIFIED` — the Brand also passed third-party vetting. - `SUSPENDED` — the Brand is blocked from sending. TenDLCBrand: title: TenDLCBrand required: - brand_id - dba_name - company_name - entity_type - vertical - ein_taxid - ein_taxid_country - status - first_name - last_name - phone_number - email - street_address - city - country - zip - feedback - created_at - updated_at type: object additionalProperties: false properties: brand_id: type: string description: Unique identifier of the Brand assigned by the registry. example: BM20QP9 dba_name: type: string description: Doing-business-as name, or the public-facing brand name. example: Brand company_name: type: string description: Registered legal name of the company that owns the Brand. example: Company entity_type: allOf: - $ref: '#/components/schemas/TenDLCBrandEntityType' - description: Company entity type. example: PRIVATE_PROFIT vertical: type: string description: Industry vertical the Brand operates in. example: HEALTHCARE ein_taxid: type: string description: IRS Employer Identification Number (EIN) or other tax ID of the company. example: '999999999' ein_taxid_country: type: string description: ISO 3166-1 alpha-2 country code where the Tax ID was issued. example: US status: allOf: - $ref: '#/components/schemas/TenDLCBrandIdentityVerificationStatus' - description: Brand identity verification status. example: VERIFIED website: type: - string - 'null' description: Business website URL. example: https://brand.com stock_symbol: type: - string - 'null' description: Stock ticker symbol of the company. Required for publicly traded companies. stock_exchange: type: - string - 'null' description: Code of the stock exchange the company is listed on. Required for publicly traded companies. first_name: type: string description: Business contact first name. example: John last_name: type: string description: Business contact last name. example: Dow phone_number: type: string description: Support contact phone number in E.164 format. example: '12123450099' email: type: string description: Support contact email address. example: support@brand.com street_address: type: string description: Street address of the business. example: 10, City Name city: type: string description: City of the business address. example: Miami state_or_province: type: - string - 'null' description: State or province of the business address. example: FL country: type: string description: ISO 3166-1 alpha-2 country code of the business address. example: US zip: type: string description: ZIP or postal code of the business address. example: '12345' feedback: type: - string - 'null' description: Feedback from the identity verification process explaining the current `status`. mock: type: boolean description: Indicates whether the Brand is a mock brand for testing. default: false example: false created_at: type: string description: Timestamp when the Brand was created, in ISO 8601 format. example: '2024-07-24T08:29:09' updated_at: type: string description: Timestamp when the Brand was last updated, in ISO 8601 format. example: '2024-07-24T08:29:09' description: Represents a 10DLC brand registered for application-to-person messaging. A Brand identifies the business behind one or more messaging campaigns. example: brand_id: BM20QP9 city: Miami company_name: Company legal name country: US created_at: '2024-07-24T08:10:49' dba_name: New Brand ein_taxid: '12345' ein_taxid_country: US email: support@brand.com entity_type: PRIVATE_PROFIT feedback: null first_name: John last_name: Dow mock: false phone_number: '12123450099' state_or_province: FL status: VERIFIED stock_exchange: null stock_symbol: null street_address: 10, Street name updated_at: '2024-07-24T08:29:09' vertical: HEALTHCARE website: https://brand.com zip: '12345' TenDLCBrandListResponse: title: TenDLCBrandListResponse required: - items - pagination type: object additionalProperties: false properties: items: type: array items: $ref: '#/components/schemas/TenDLCBrand' description: A paginated list of 10DLC Brands matching the filter criteria pagination: allOf: - $ref: '#/components/schemas/Pagination' - description: Pagination details description: A list of 10DLC Brands example: items: - brand_id: BM20QP9 city: Miami company_name: Company legal name country: US created_at: '2024-07-24T08:10:49' dba_name: New Brand ein_taxid: '12345' ein_taxid_country: US email: support@brand.com entity_type: PRIVATE_PROFIT feedback: null first_name: John last_name: Dow mock: false phone_number: '12123450099' state_or_province: FL status: VERIFIED stock_exchange: null stock_symbol: null street_address: 10, Street name updated_at: '2024-07-24T08:29:09' vertical: HEALTHCARE website: https://brand.com zip: '12345' pagination: current_page: 1 per_page: 25 total: 1 total_pages: 1 AccountErrorResponse: title: AccountErrorResponse required: - success - message type: object properties: success: type: boolean description: Indicates whether the request was successful example: false message: type: string description: Human-readable error description example: Request failed. The feature is disabled for the account. description: The feature is disabled for the account. TenDLCBrandCreateRequest: title: TenDLCBrandCreateRequest type: object description: 10DLC Brand registration request additionalProperties: false required: - dba_name - company_name - entity_type - vertical - ein_taxid - ein_taxid_country - first_name - last_name - phone_number - email - street_address - city - state_or_province - country - zip properties: dba_name: type: string description: Brand name or DBA maxLength: 255 example: Brand company_name: type: string description: Legal name of the company maxLength: 255 example: Company entity_type: type: string description: Legal entity type of the company. One of `PRIVATE_PROFIT` (privately held for-profit company), `PUBLIC_PROFIT` (publicly traded for-profit company), `NON_PROFIT` (non-profit organization), or `GOVERNMENT` (government entity). enum: - PRIVATE_PROFIT - PUBLIC_PROFIT - NON_PROFIT - GOVERNMENT example: PUBLIC_PROFIT vertical: type: string description: |- Business segment the Brand operates in. One of: - `HEALTHCARE` — healthcare. - `PROFESSIONAL` — professional services. - `RETAIL` — retail. - `TECHNOLOGY` — technology. - `EDUCATION` — education. - `FINANCIAL` — financial services. - `NON_PROFIT` — non-profit organizations. - `GOVERNMENT` — government entities. - `OTHER` — any segment not listed above. enum: - HEALTHCARE - PROFESSIONAL - RETAIL - TECHNOLOGY - EDUCATION - FINANCIAL - NON_PROFIT - GOVERNMENT - OTHER example: PROFESSIONAL ein_taxid: type: string description: IRS Employee Identification Number (EIN) for US-based or foreign companies with EIN. The numeric portion of Tax ID for companies incorporated in other countries. maxLength: 21 example: 12-2142342 ein_taxid_country: type: string description: 2-letter ISO country code of the Tax ID issuing country minLength: 2 maxLength: 2 example: US website: type: string description: The website of the business maxLength: 255 example: Tess.com stock_symbol: type: - string - 'null' description: The stock symbol of the Brand. For PUBLIC_PROFIT Brands only. maxLength: 10 stock_exchange: type: - string - 'null' description: The stock exchange code. For PUBLIC_PROFIT Brands only. maxLength: 10 example: NASDAQ first_name: type: string description: The first name of the business contact maxLength: 100 example: John last_name: type: string description: The last name of the business contact maxLength: 100 example: Dow phone_number: type: string description: The support contact telephone in E.164 format maxLength: 20 example: '12046661776' email: type: string description: The email address of the support contact format: email maxLength: 100 example: support@brand.com street_address: type: string description: Street name and house number maxLength: 100 example: 10, City Name city: type: string description: The city name maxLength: 100 example: Miami state_or_province: type: - string - 'null' description: State or province. For the United States, use 2 character codes. maxLength: 20 example: AL zip: type: string description: The business zip or postal code maxLength: 10 example: '12345' country: type: string description: 2-letter ISO country code the business address minLength: 2 maxLength: 2 example: US mock: type: boolean description: Indicates a mock Brand. Mock Brands are for testing purposes only; production traffic with mock Brands is prohibited. default: false example: false oneOf: - description: PUBLIC_PROFIT brands must provide stock_symbol and stock_exchange. properties: entity_type: const: PUBLIC_PROFIT required: - stock_symbol - stock_exchange - description: Non-PUBLIC_PROFIT brands must not include stock_symbol or stock_exchange. properties: entity_type: enum: - PRIVATE_PROFIT - NON_PROFIT - GOVERNMENT stock_symbol: type: 'null' stock_exchange: type: 'null' example: dba_name: Brand company_name: Company entity_type: PUBLIC_PROFIT vertical: PROFESSIONAL ein_taxid: 12-2142342 ein_taxid_country: US website: Tess.com stock_symbol: null stock_exchange: NASDAQ first_name: John last_name: Doe phone_number: '12046661776' email: support@brand.com street_address: 10, Street name city: Miami state_or_province: AL zip: '12345' country: US mock: false TenDLCBrandUpdateRequest: title: TenDLCBrandUpdateRequest type: object additionalProperties: false description: A request to update a 10DLC Brand details properties: dba_name: type: string description: Brand name or DBA maxLength: 255 example: Brand company_name: type: string description: Legal name of the company maxLength: 255 example: Company entity_type: type: string description: Legal entity type of the company. One of `PRIVATE_PROFIT` (privately held for-profit company), `PUBLIC_PROFIT` (publicly traded for-profit company), `NON_PROFIT` (non-profit organization), or `GOVERNMENT` (government entity). enum: - PRIVATE_PROFIT - PUBLIC_PROFIT - NON_PROFIT - GOVERNMENT example: PRIVATE_PROFIT vertical: type: string description: |- Business segment the Brand operates in. One of: - `HEALTHCARE` — healthcare. - `PROFESSIONAL` — professional services. - `RETAIL` — retail. - `TECHNOLOGY` — technology. - `EDUCATION` — education. - `FINANCIAL` — financial services. - `NON_PROFIT` — non-profit organizations. - `GOVERNMENT` — government entities. - `OTHER` — any segment not listed above. enum: - HEALTHCARE - PROFESSIONAL - RETAIL - TECHNOLOGY - EDUCATION - FINANCIAL - NON_PROFIT - GOVERNMENT - OTHER example: HEALTHCARE ein_taxid: type: string description: IRS Employee Identification Number (EIN) for US-based or foreign companies with EIN. The numeric portion of Tax ID for companies incorporated in other countries. maxLength: 21 example: '999999999' ein_taxid_country: type: string description: 2-letter ISO country code of the Tax ID issuing country minLength: 2 maxLength: 2 example: US website: type: string description: The website of the business maxLength: 255 example: https://brand.com stock_symbol: type: - string - 'null' description: The stock symbol of the Brand. For PUBLIC_PROFIT Brands only. maxLength: 10 stock_exchange: type: - string - 'null' description: The stock exchange code. For PUBLIC_PROFIT Brands only. maxLength: 10 first_name: type: string description: The first name of the business contact maxLength: 100 example: John last_name: type: string description: The last name of the business contact maxLength: 100 example: Dow phone_number: type: string description: The support contact telephone in E.164 format maxLength: 20 example: '12123450099' email: type: string description: The email address of the support contact maxLength: 100 format: email example: support@brand.com street_address: type: string description: Street name and house number maxLength: 100 example: 10, City Name city: type: string description: The city name maxLength: 100 example: Miami state_or_province: type: - string - 'null' description: State or province. For the United States, use 2 character codes. maxLength: 20 example: FL zip: type: string description: The business zip or postal code maxLength: 10 example: '12346' country: type: string description: 2-letter ISO country code the business address minLength: 2 maxLength: 2 example: US mock: type: boolean description: Mock flag for testing (optional, defaults to false) default: false example: false TCRErrorMessage: title: TCRErrorMessage required: - code - message type: object additionalProperties: false properties: code: type: string description: TCR error code message: type: string description: A human-readable error description example: code: TFTI01 message: The submitted US EIN is invalid. TCRFeedbackCategory: title: TCRFeedbackCategory required: - id - display_name - description - fields - errors type: object additionalProperties: false properties: id: type: string description: The submitted appeal category example: VERIFY_TAX_ID display_name: type: string description: The display name of the category example: Verify tax ID description: type: string description: The description of the category example: Select this category if the record is UNVERIFIED due to an inability to match the tax ID. fields: type: - string - 'null' description: An array of Brand attributes errors: type: - array - 'null' items: $ref: '#/components/schemas/TCRErrorMessage' description: An array of verification errors, if any description: TCR returns the feedback per submitted appeal category TCRFeedback: title: TCRFeedback required: - category type: object additionalProperties: false properties: category: type: array items: $ref: '#/components/schemas/TCRFeedbackCategory' description: The feedback category TenDLCBrandAppealOutcome: title: TenDLCBrandAppealOutcome required: - optional_attributes - vetting_status - feedback type: object additionalProperties: false properties: optional_attributes: type: object additionalProperties: false description: An optional attributes that might be returned from TCR vetting_status: allOf: - $ref: '#/components/schemas/TenDLCBrandIdentityVerificationStatus' - description: Brand Identity Verification appeal outcome example: UNVERIFIED feedback: allOf: - $ref: '#/components/schemas/TCRFeedback' - description: Brand Identity Verification appeal feedback, if any TenDLCBrandAppeal: title: TenDLCBrandAppeal required: - categories - created_at - evidence - outcome - status - updated_at - explanation type: object additionalProperties: false properties: categories: type: array items: type: string description: A list of Brand Identity status appeal categories associated with the original request example: - VERIFY_TAX_ID created_at: type: string description: The date and time the appeal request is created format: date-time example: '2024-08-01T14:09:43Z' evidence: type: array items: type: string description: A list of evidence UUIDs to be associated with the appeal example: - 13d8e00c-3cb4-4dc0-9e26-d5057fa938d9 outcome: allOf: - $ref: '#/components/schemas/TenDLCBrandAppealOutcome' - description: The appeal outcome details status: type: string description: The appeal status example: COMPLETED updated_at: type: string description: The date and time the appeal request is updated format: date-time example: '2024-08-01T14:09:43Z' explanation: type: string description: The appeal justification example: Dear partner, please review the uploaded company registration docs. example: categories: - VERIFY_TAX_ID created_at: '2024-08-01T14:09:43Z' evidence: [] explanation: Dear partner, please review the registration docs outcome: optional_attributes: {} feedback: category: [] vetting_status: VERIFIED status: COMPLETE updated_at: '2024-08-01T18:33:15Z' TenDLCBrandAppealCreateRequest: title: TenDLCBrandAppealCreateRequest required: - appeal_categories - evidence type: object additionalProperties: false properties: appeal_categories: type: array items: type: string description: 'List of appeal categories. Allowed values: `VERIFY_TAX_ID`, `VERIFY_NON_PROFIT`, `VERIFY_GOVERNMENT`' example: - VERIFY_TAX_ID evidence: type: array items: type: string description: List of evidence IDs associated with the appeal. example: - 855dff49-c097-4645-3983-08dcb9856232 explanation: type: string description: Appeal comment or justification. example: Find the company incorporation docs attached and please review the Brand Identity status. description: Brand identity verification appeal details. TenDLCBrandEvidence: title: TenDLCBrandEvidence required: - file_name - mime_type - url - uuid type: object additionalProperties: false properties: file_name: type: string description: The uploaded file name example: image.png mime_type: type: string description: The uploaded file media type example: image/png url: type: string description: An URL to the uploaded file example: https://api.wavix.dev/v3/10dlc/brands/B6AI7PA/evidence/191eb205-8357-4d71-b8da-160a25a000d7 uuid: type: string description: The evidence UUID example: 191eb205-8357-4d71-b8da-160a25a000d7 example: file_name: image.png mime_type: image/png url: https://api.wavix.dev/v3/10dlc/brands/B6AI7PA/evidence/191eb205-8357-4d71-b8da-160a25a000d7 uuid: 191eb205-8357-4d71-b8da-160a25a000d7 ListBrandEvidenceResponse: type: object required: - items properties: items: type: array description: List of uploaded evidence files items: $ref: '#/components/schemas/TenDLCBrandEvidence' TenDLCBrandVetting: title: TenDLCBrandVetting description: Represents the result of an external vetting performed on a 10DLC brand. Vetting can raise a Brand's trust score and unlock higher messaging throughput. required: - evp_id - create_date - vetted_date - vetting_id - vetting_token - vetting_score - vetting_class - vetting_status - reasons type: object additionalProperties: false properties: evp_id: type: string description: Code identifying the external vetting provider that performed the vetting. example: AEGIS create_date: type: string description: Timestamp when the vetting request was created, in ISO 8601 format. example: '2024-08-01T14:09:43' vetting_details: type: object description: Additional provider-specific details about the vetting request. additionalProperties: true example: additional_prop1: {} additional_prop2: {} additional_prop3: {} vetted_date: type: - string - 'null' description: Timestamp when the vetting was completed, in ISO 8601 format. Null while the vetting is still in progress. example: '2024-08-01T14:09:43' vetting_id: type: string description: Unique identifier of the vetting request. example: 13d8e00c-3cb4-4dc0-9e26-d5057fa938d9 vetting_token: type: - string - 'null' description: Token issued by the vetting provider that uniquely identifies this vetting result. example: 3oDcE1vq8OR43claMa6Thu/7V4vzZywAfKRgiJnXDjlw+08wpWbGqOssAXKgeZibHCLaGgXvU/yPb7kISeeb5qGdisGRLdhPnSNpvRR82RnCWYNpTp92orlJWjTJU8ZGmNxL5MwK0tt/9SxCha36iTtPV2+4vND8xCPe5suItuQTonG4A3Yi6F1LMqihgwdesRjxJnKqcE7Thcv9ug1NyNPYEZQvPugFj2F2DdU6jFZcOWgXsnE7ucZ+xNaNX9LkF9if3v0hrcviG9L8bUUrpPBGr02txP0i+cPBTLbj4Rq1Ox83R+WUx1gnoXHCIU1ByDGWvQq2Ef4qxGVOwPJHJbja1BovxKBk4YJxiz8OSO68QAIEfxuPTpj5eZz7KEFtFmBIVaVmxBDe4b8Tpl01C2rek7xgPzXaoURvh7CQVnVmJL00DTWKvyOmUOQQW901XEcgcJ7VWgfIvxhIMuXEXXtVDGNowmEc9JQXXYHVlGuN5QicSbApkwwqRZI7TQ4lsS66zCfqomIIJyBNRJpl+8sGwsa2J2h6fEkAD77J9zdUgIKXMFamHbvRadCKMZNIbMrkOC7PuOjZdSiWKh5A8FSjzkv3PlN2hRDqkaODEoodp5pTQeBtNe37+uAMOuHNfsZXlwvfMgCZjiZJ9HQNSLhJBUq7/IvT/EzszUk4HPTj/WFSbT1YrrkDi+zrB20ZDY9lZFWxN1hlYQoNcanDAAWPmw/yW1+8DroL5WIMGsXX3WFGOG7eWB1GHgFQsziAeRQl78u1qOvsRMN08+GrkASBJwqwy5l7xCesUKqbz3O0QA/dwzzsWIDvFPavZpjqMBSjRTurQLFahAaGmdY0BX/Ii+s2+OxfaHQIa1lgucm0P7GPKeZvLX/8boO01Onr/87ra+NX7ABvQb+SXvwsg+Bm5CziWB6DMKDKRD/KQjHxpjIY35UwSEW7G4ixux7ufizXttthHfPJWd/rWFhfYigFhVLgIPCR12smwFVuZwM7ujvY2CIM0X4E0dsX9uVHkgYmqRIdNf5vshpmRuIcHsXZpTJP/tD7zQM6m214c5xkJSfAVIaD7WzRYS4eVL+R3z4u+6n5p6FjuWSjSzuEffUai3HCWjes4JbtDSjIwoG0tOMtBukgPbreH+pjXcvnhU+1QhCV2aIdG6C3FmaI5Uoo/mthJyiFAThwtOpxQ5YkdsRunqVVEFYZfMNEn4Ig2clCFrLOm46JB2wPcLGP2MoH5RqajYzQ6IV8IXIFQVzG0C7HoHsBkVp+GrpnH6N0FCKR+fpbGjigM2lLf4pYBhChUY4ao9hvV1hd8ikS6QoasvDLPytBBa1YAwbSa8d7YdwO6fXfQqetfS8S9gbHD0zxazw5p9Lp5fXFmajDNkD2voYNMzOHJMMHG/49pWV2 vetting_score: type: - integer - 'null' description: Score assigned to the Brand by the vetting provider. Null until vetting completes. format: int32 example: 80 vetting_class: type: string description: Class of vetting performed, such as `STANDARD` or `ENHANCED`. example: STANDARD vetting_status: type: string description: Current status of the vetting request, such as `PENDING` or `ACTIVE`. example: PENDING reasons: type: - array - 'null' description: Reasons explaining the assigned `vetting_score`. Null when no reasons are provided. items: type: string example: - 'Company size as reported by government or business sources resulted in a score deduction: size range 6-10' TenDLCBrandVettingImportRequest: title: TenDLCBrandVettingImportRequest required: - evp_id - vetting_id - vetting_token type: object additionalProperties: false properties: evp_id: type: string description: Code identifying the external vetting provider that issued the vetting. example: AEGIS vetting_id: type: string description: Unique identifier of the vetting request to import. example: 13d8e00c-3cb4-4dc0-9e26-d5057fa938d9 vetting_token: type: string description: Token issued by the vetting provider that uniquely identifies the vetting result to import. example: 3oDcE1vq8OR43claMa6Thu/7V4vzZywAfKRgiJnXDjlw+08wpWbGqOssAXKgeZibHCLaGgXvU/yPb7kISeeb5qGdisGRLdhPnSNpvRR82RnCWYNpTp92orlJWjTJU8ZGmNxL5MwK0tt/9SxCha36iTtPV2+4vND8xCPe5suItuQTonG4A3Yi6F1LMqihgwdesRjxJnKqcE7Thcv9ug1NyNPYEZQvPugFj2F2DdU6jFZcOWgXsnE7ucZ+xNaNX9LkF9if3v0hrcviG9L8bUUrpPBGr02txP0i+cPBTLbj4Rq1Ox83R+WUx1gnoXHCIU1ByDGWvQq2Ef4qxGVOwPJHJbja1BovxKBk4YJxiz8OSO68QAIEfxuPTpj5eZz7KEFtFmBIVaVmxBDe4b8Tpl01C2rek7xgPzXaoURvh7CQVnVmJL00DTWKvyOmUOQQW901XEcgcJ7VWgfIvxhIMuXEXXtVDGNowmEc9JQXXYHVlGuN5QicSbApkwwqRZI7TQ4lsS66zCfqomIIJyBNRJpl+8sGwsa2J2h6fEkAD77J9zdUgIKXMFamHbvRadCKMZNIbMrkOC7PuOjZdSiWKh5A8FSjzkv3PlN2hRDqkaODEoodp5pTQeBtNe37+uAMOuHNfsZXlwvfMgCZjiZJ9HQNSLhJBUq7/IvT/EzszUk4HPTj/WFSbT1YrrkDi+zrB20ZDY9lZFWxN1hlYQoNcanDAAWPmw/yW1+8DroL5WIMGsXX3WFGOG7eWB1GHgFQsziAeRQl78u1qOvsRMN08+GrkASBJwqwy5l7xCesUKqbz3O0QA/dwzzsWIDvFPavZpjqMBSjRTurQLFahAaGmdY0BX/Ii+s2+OxfaHQIa1lgucm0P7GPKeZvLX/8boO01Onr/87ra+NX7ABvQb+SXvwsg+Bm5CziWB6DMKDKRD/KQjHxpjIY35UwSEW7G4ixux7ufizXttthHfPJWd/rWFhfYigFhVLgIPCR12smwFVuZwM7ujvY2CIM0X4E0dsX9uVHkgYmqRIdNf5vshpmRuIcHsXZpTJP/tD7zQM6m214c5xkJSfAVIaD7WzRYS4eVL+R3z4u+6n5p6FjuWSjSzuEffUai3HCWjes4JbtDSjIwoG0tOMtBukgPbreH+pjXcvnhU+1QhCV2aIdG6C3FmaI5Uoo/mthJyiFAThwtOpxQ5YkdsRunqVVEFYZfMNEn4Ig2clCFrLOm46JB2wPcLGP2MoH5RqajYzQ6IV8IXIFQVzG0C7HoHsBkVp+GrpnH6N0FCKR+fpbGjigM2lLf4pYBhChUY4ao9hvV1hd8ikS6QoasvDLPytBBa1YAwbSa8d7YdwO6fXfQqetfS8S9gbHD0zxazw5p9Lp5fXFmajDNkD2voYNMzOHJMMHG/49pWV2 TenDLCBrandVettingCreateRequest: title: TenDLCBrandVettingCreateRequest required: - evp_id - vetting_class type: object additionalProperties: false properties: evp_id: type: string description: Code identifying the external vetting provider to perform the vetting. example: AEGIS vetting_class: type: string description: Class of vetting to request, such as `STANDARD` or `ENHANCED`. example: STANDARD TenDLCBrandVettingAppealOutcomeReason: title: TenDLCBrandVettingAppealOutcomeReason required: - reasons type: object additionalProperties: false properties: reasons: type: array items: type: string description: An list of human-readable explanations returned by TCR example: - 'Company size as reported by government or business sources resulted in a score deduction: size range 6-10.' example: reasons: - 'Company size as reported by government or business sources resulted in a score deduction: size range 6-10.' TenDLCBrandVettingAppealOutcome: title: TenDLCBrandVettingAppealOutcome required: - vet_status - vet_score - feedback type: object additionalProperties: false properties: vet_status: type: string description: Current status of the Brand vetting example: ACTIVE vet_score: type: integer description: The Brand vetting score format: int32 example: 80 feedback: allOf: - $ref: '#/components/schemas/TenDLCBrandVettingAppealOutcomeReason' - description: The feedback provided by the external vetting provider example: vet_status: ACTIVE vet_score: 80 feedback: reasons: - 'Company size as reported by government or business sources resulted in a score deduction: size range 6-10.' TenDLCBrandVettingAppeal: title: TenDLCBrandVettingAppeal description: Represents an appeal against a 10DLC brand vetting result. An appeal asks the vetting provider to reconsider the assigned score. required: - appeal_outcome - appeal_status - appeal_status_update_date - attachment_uuid_list - brand_id - category_list - create_date - explanation - evp_id - vetting_class - vetting_id type: object additionalProperties: false properties: appeal_outcome: allOf: - $ref: '#/components/schemas/TenDLCBrandVettingAppealOutcome' - description: Outcome of the appeal, including the revised vetting status and score. example: vet_status: ACTIVE vet_score: 80 feedback: reasons: - 'Company size as reported by government or business sources resulted in a score deduction: size range 6-10.' appeal_status: type: string description: Current status of the appeal, such as `PENDING` or `COMPLETE`. example: COMPLETE appeal_status_update_date: type: string description: Timestamp when the appeal status was last updated, in ISO 8601 format. format: date-time example: '2024-08-15T08:42:31Z' attachment_uuid_list: type: array items: type: string description: UUIDs of the evidence files submitted in support of the appeal. example: [] brand_id: type: string description: Unique identifier of the Brand the appeal is associated with. example: BMQFB7X category_list: type: array items: type: string description: Categories that classify the appeal, such as `LOW_SCORE`. example: - LOW_SCORE create_date: type: string description: Timestamp when the appeal was created, in ISO 8601 format. example: '2024-08-15T08:41:05' explanation: type: string description: Justification provided for the appeal. example: Please review the Brand score evp_id: type: string description: Code identifying the external vetting provider that handled the appeal. example: AEGIS vetting_class: type: string description: Class of the vetting being appealed, such as `STANDARD` or `ENHANCED`. example: STANDARD vetting_id: type: string description: Unique identifier of the vetting request being appealed. example: 48c0ffaa-4e51-4d44-3982-08dcb9856232 example: appeal_outcome: vet_status: ACTIVE vet_score: 80 feedback: reasons: - 'Company size as reported by government or business sources resulted in a score deduction: size range 6-10.' appeal_status: COMPLETE appeal_status_update_date: '2024-08-15T08:42:31Z' attachment_uuid_list: [] brand_id: BMQFB7X category_list: - LOW_SCORE create_date: '2024-08-15T08:41:05' evp_id: AEGIS explanation: Please review the Brand score vetting_class: STANDARD vetting_id: 48c0ffaa-4e51-4d44-3982-08dcb9856232 TenDLCBrandVettingAppealCreateRequest: title: TenDLCBrandVettingAppealCreateRequest required: - appeal_categories - evidence type: object additionalProperties: false properties: appeal_categories: type: array items: type: string description: 'List of appeal categories. Allowed values: `VERIFY_TAX_ID`, `VERIFY_NON_PROFIT`, `VERIFY_GOVERNMENT`, `LOW_SCORE`.' example: - VERIFY_TAX_ID evidence: type: array items: type: string description: List of evidence IDs associated with the appeal. example: - 855dff49-c097-4645-3983-08dcb9856232 explanation: type: string description: Appeal comment or justification. example: Find the company incorporation docs attached and please review the Brand Identity status. evp_id: type: string description: EVP ID. example: AEGIS vetting_id: type: string description: Vetting ID. example: 48c0ffaa-4e51-4d44-3982-08dcb9856232 description: Brand external vetting appeal details. TenDLCMNOMetadata: title: TenDLCMNOMetadata required: - att_mms_tpm - att_msg_class - att_sms_tpm - att_tpm_scope - help_required - optin_required - optout_required - min_msg_samples - mno - mno_qualify - mno_review - mno_support - no_embedded_links - no_embedded_phone - tmobile_brand_dcap - tmobile_brand_tier type: object additionalProperties: false description: Represents per-MNO 10DLC requirements and throughput limits that apply to a campaign use case. properties: att_mms_tpm: type: - integer - 'null' description: MMS throughput per minute allowed on the AT&T network. format: int32 att_msg_class: type: - string - 'null' description: Message class assigned by AT&T. att_sms_tpm: type: - integer - 'null' description: SMS throughput per minute allowed on the AT&T network. format: int32 att_tpm_scope: type: - string - 'null' description: Scope of the AT&T throughput-per-minute allocation. format: int32 help_required: type: boolean description: Indicates whether help keywords and an acknowledgement are mandatory for the use case. example: true optin_required: type: boolean description: Indicates whether an opt-in mechanism is mandatory for the use case. example: true optout_required: type: boolean description: Indicates whether an opt-out mechanism is mandatory for the use case. example: false min_msg_samples: type: integer description: Minimum number of message samples the MNO requires for the use case. format: int32 example: 1 mno: type: string description: Name of the mobile network operator (MNO) these requirements apply to. example: T-Mobile mno_qualify: type: boolean description: Indicates whether the Brand qualifies with the MNO for the selected use case. example: true mno_review: type: boolean description: Indicates whether the MNO requires a post-approval review of the use case. example: false mno_support: type: boolean description: Indicates whether the MNO supports the use case. example: true no_embedded_links: type: boolean description: Indicates whether embedded links are prohibited in message content for the use case. example: false no_embedded_phone: type: boolean description: Indicates whether embedded phone numbers are prohibited in message content for the use case. example: false tmobile_brand_dcap: type: - integer - 'null' description: Daily message cap allowed on the T-Mobile network. format: int32 example: 2000 tmobile_brand_tier: type: - string - 'null' description: Brand tier assigned on the T-Mobile network, such as `LOW`. example: LOW example: att_mms_tpm: null att_msg_class: null att_sms_tpm: null att_tpm_scope: null help_required: true min_msg_samples: 1 mno: T-Mobile mno_qualify: true mno_review: false mno_support: true no_embedded_links: false no_embedded_phone: false optin_required: true optout_required: false tmobile_brand_dcap: 2000 tmobile_brand_tier: LOW TenDLCBrandQualificationResult: title: TenDLCBrandQualificationResult required: - mno_metadata - monthly_fee - usecase type: object additionalProperties: false properties: mno_metadata: type: array items: $ref: '#/components/schemas/TenDLCMNOMetadata' description: An array MNO-specific attributes (e.g. AT&T message class) for every MNO the Brand is qualified to run a Campaign with the specified use case. monthly_fee: type: number description: Monthly fee associated with any Campaign with this use case example: 10 usecase: type: string description: The use case name example: 2FA example: mno_metadata: - att_mms_tpm: null att_msg_class: null att_sms_tpm: null att_tpm_scope: null help_required: true min_msg_samples: 1 mno: T-Mobile mno_qualify: true mno_review: false mno_support: true no_embedded_links: false no_embedded_phone: false optin_required: true optout_required: false tmobile_brand_dcap: 2000 tmobile_brand_tier: LOW monthly_fee: 10 usecase: 2FA TenDLCCampaign: title: TenDLCCampaign required: - affiliate_marketing - age_gated - auto_renewal - last_bill_date - next_bill_date - direct_lending - embedded_links - embedded_phones - embedded_link_sample - brand_id - campaign_id - description - optin_workflow - feedback - help - help_keywords - help_message - optin - optin_keywords - optin_message - optout - optout_keywords - optout_message - name - created_at - sample1 - sample2 - sample3 - sample4 - sample5 - updated_at - mock - usecase - monthly_fee - terms_conditions - privacy_policy - status - phone_numbers type: object additionalProperties: false properties: affiliate_marketing: type: boolean description: Indicates whether the Campaign is used for affiliate marketing. example: false age_gated: type: boolean description: Indicates whether the Campaign messages contain age-gated content. example: false auto_renewal: type: boolean description: Indicates whether the Campaign should be automatically renewed. example: true last_bill_date: type: - string - 'null' description: Date and time the Campaign was last billed in ISO 8601 format. `null` if the Campaign has never been billed. example: '2024-08-14T11:57:42' next_bill_date: type: - string - 'null' description: Date and time the Campaign will be billed next in ISO 8601 format. `null` if the next billing date is not scheduled. example: '2024-08-14T11:57:42' direct_lending: type: boolean description: Indicates whether the Campaign messages contain direct lending content. example: true embedded_links: type: boolean description: Indicates whether the Campaign messages contain embedded links. example: true embedded_phones: type: boolean description: Indicates whether the Campaign messages contain embedded phone numbers. example: true embedded_link_sample: type: - string - 'null' description: Sample of an embedded link used in Campaign messages. brand_id: type: string description: Unique identifier of the Brand that owns the Campaign. example: BM20QP9 campaign_id: type: string description: Unique identifier of the Campaign assigned by the registry. example: CKLCK95 description: type: - string - 'null' description: Description of the Campaign and its messaging purpose. example: Our campaign aims to … optin_workflow: type: - string - 'null' description: Description of the workflow through which subscribers opt in to the Campaign. example: Our SMS ... feedback: type: - string - 'null' description: Feedback from the registry explaining the current `status`. help: type: boolean description: 'Indicates whether the campaign includes a help system (for example, keyword: HELP, INFO).' example: true help_keywords: type: string description: Comma-separated list of help keywords. Keywords are case-insensitive. example: help help_message: type: - string - 'null' description: Help message sent upon receiving a help keyword. example: For help, please visit www.site.com. To opt out, reply STOP. optin: type: boolean description: Indicates whether the Campaign requires subscriber opt-in. example: true optin_keywords: type: string description: Comma-separated list of opt-in keywords. Keywords are case-insensitive. example: begin,start optin_message: type: - string - 'null' description: Opt-in message sent upon receiving an opt-in keyword. example: You are now opted-in for help please reply HELP, to stop please reply STOP optout: type: boolean description: 'Indicates whether the campaign includes an opt-out system (for example, keyword: STOP, QUIT).' example: true optout_keywords: type: string description: Comma-separated list of opt-out keywords. Keywords are case-insensitive. example: stop,quit,unsubscribe optout_message: type: - string - 'null' description: Opt-out message sent upon receiving an opt-out keyword. example: You are now opted out and will receive no further messages name: type: string description: Display name of the Campaign. example: My first campaign created_at: type: string description: Timestamp when the Campaign was created, in ISO 8601 format. example: '2024-08-14T11:57:41' sample1: type: - string - 'null' description: Sample message demonstrating the content sent through the Campaign. example: Your verification code is XXXXXX sample2: type: - string - 'null' description: Sample message demonstrating the content sent through the Campaign. sample3: type: - string - 'null' description: Sample message demonstrating the content sent through the Campaign. sample4: type: - string - 'null' description: Sample message demonstrating the content sent through the Campaign. sample5: type: - string - 'null' description: Sample message demonstrating the content sent through the Campaign. updated_at: type: string description: Timestamp when the Campaign was last updated, in ISO 8601 format. example: '2024-08-14T11:57:47' mock: type: boolean description: Indicates whether the Campaign is a mock campaign used for testing. Mock campaigns cannot send production traffic. example: false usecase: type: string description: Registered use case for the Campaign, such as `2FA` or `MARKETING`. example: 2FA monthly_fee: type: string description: Recurring monthly fee charged for the Campaign, as a decimal string. example: '10.0' privacy_policy: type: - string - 'null' description: Privacy policy URL. example: https://site.com/privacy-policy terms_conditions: type: - string - 'null' description: Terms and conditions URL. example: https://site.com/terms-and-conditions status: type: string description: Current registration status of the Campaign, such as `APPROVED` or `PENDING`. example: APPROVED phone_numbers: type: array items: type: string description: Phone numbers assigned to the Campaign, in E.164 format. example: - '14358684439' - '13193337776' - '12673296046' description: Represents a 10DLC campaign registered under a Brand. A Campaign defines the messaging use case, opt-in and opt-out flows, and the phone numbers permitted to send its traffic. example: affiliate_marketing: false age_gated: false auto_renewal: false brand_id: BM20QP9 campaign_id: CKLCK95 created_at: '2024-08-14T11:57:41' description: Our campaign aims to … direct_lending: false embedded_link_sample: null embedded_links: false embedded_phones: false feedback: null help: true help_keywords: help help_message: For help, please visit www.site.com. To opt-out, reply STOP. last_bill_date: '2024-08-14T11:57:42' mock: false monthly_fee: '10.0' name: My first campaign next_bill_date: '2024-11-14T00:00:00' optin: true optin_keywords: begin,start optin_message: You are now opted-in for help please reply HELP, to stop please reply STOP optin_workflow: Our SMS ... optout: true optout_keywords: stop,quit,unsubscribe optout_message: You are now opted out and will receive no further messages privacy_policy: https://site.com/privacy-policy sample1: Your verification code is XXXXXX sample2: XXXX is your verification code sample3: null sample4: null sample5: null status: APPROVED terms_conditions: https://site.com/terms-and-conditions updated_at: '2024-08-14T11:57:47' usecase: 2FA phone_numbers: - '14358684439' - '13193337776' - '12673296046' TenDLCCampaignListResponse: title: TenDLCCampaignListResponse required: - items - pagination type: object additionalProperties: false properties: items: type: array items: $ref: '#/components/schemas/TenDLCCampaign' description: 10DLC Campaigns on the current page that match the filter criteria. pagination: allOf: - $ref: '#/components/schemas/Pagination' - description: Pagination metadata for the result set. description: Paginated list of 10DLC Campaigns. example: items: - affiliate_marketing: false age_gated: false auto_renewal: false brand_id: BM20QP9 campaign_id: CKLCK95 created_at: '2024-08-14T11:57:41' description: Our campaign aims to … direct_lending: false embedded_link_sample: null embedded_links: false embedded_phones: false feedback: null help: true help_keywords: help help_message: For help, please visit www.site.com. To opt-out, reply STOP. last_bill_date: '2024-08-14T11:57:42' mock: false monthly_fee: '10.0' name: My first campaign next_bill_date: '2024-11-14T00:00:00' optin: true optin_keywords: begin,start optin_message: You are now opted-in for help please reply HELP, to stop please reply STOP optin_workflow: Our SMS ... optout: true optout_keywords: stop,quit,unsubscribe optout_message: You are now opted out and will receive no further messages privacy_policy: https://site.com/privacy-policy sample1: Your verification code is XXXXXX sample2: XXXX is your verification code sample3: null sample4: null sample5: null status: APPROVED terms_conditions: https://site.com/terms-and-conditions updated_at: '2024-08-14T11:57:47' usecase: 2FA phone_numbers: - '14358684439' - '13193337776' - '12673296046' pagination: current_page: 1 per_page: 25 total: 1 total_pages: 1 TenDLCCampaignCreateRequest: title: TenDLCCampaignCreateRequest required: - affiliate_marketing - age_gated - auto_renewal - direct_lending - embedded_links - embedded_phones - embedded_link_sample - description - optin_workflow - help - help_keywords - help_message - optin - optin_keywords - optin_message - optout - optout_keywords - optout_message - name - sample1 - sample2 - sample3 - sample4 - sample5 - mock - usecase - terms_conditions type: object additionalProperties: false properties: affiliate_marketing: type: boolean description: Indicates whether the Campaign is used for affiliate marketing. example: false age_gated: type: boolean description: Indicates whether the Campaign messages contain age-gated content. example: false auto_renewal: type: boolean description: Indicates whether the Campaign is automatically renewed at the end of each billing period. example: true direct_lending: type: boolean description: Indicates whether the Campaign messages contain direct lending content. example: true embedded_links: type: boolean description: Indicates whether the Campaign messages contain embedded links. example: true embedded_phones: type: - boolean - 'null' description: Indicates whether the Campaign messages contain embedded phone numbers. example: true embedded_link_sample: type: - string - 'null' description: Sample of an embedded link used in Campaign messages. description: type: string description: Description of the Campaign and its messaging purpose. example: Our campaign aims to … optin_workflow: type: string description: Description of the workflow through which subscribers opt in to the Campaign. example: Our SMS ... help: type: boolean description: Indicates whether the Campaign provides a help system that subscribers can trigger with a keyword such as HELP or INFO. example: true help_keywords: type: string description: Comma-separated list of help keywords. Keywords are case-insensitive. example: help help_message: type: string description: Acknowledgement sent when a subscriber texts a help keyword. example: For help, please visit www.site.com. To opt out, reply STOP. optin: type: boolean description: Indicates whether the Campaign requires subscribers to opt in before receiving messages. example: true optin_keywords: type: string description: Comma-separated list of opt-in keywords. Keywords are case-insensitive. example: begin,start optin_message: type: string description: Acknowledgement sent when a subscriber texts an opt-in keyword. example: You are now opted-in for help please reply HELP, to stop please reply STOP optout: type: boolean description: Indicates whether the Campaign provides an opt-out system that subscribers can trigger with a keyword such as STOP or QUIT. example: true optout_keywords: type: string description: Comma-separated list of opt-out keywords. Keywords are case-insensitive. example: stop,quit,unsubscribe optout_message: type: string description: Acknowledgement sent when a subscriber texts an opt-out keyword. example: You are now opted out and will receive no further messages name: type: string description: Display name of the Campaign. example: My first campaign sample1: type: string description: Sample message demonstrating the content sent through the Campaign. example: Your verification code is XXXXXX sample2: type: - string - 'null' description: Sample message demonstrating the content sent through the Campaign. sample3: type: - string - 'null' description: Sample message demonstrating the content sent through the Campaign. sample4: type: - string - 'null' description: Sample message demonstrating the content sent through the Campaign. sample5: type: - string - 'null' description: Sample message demonstrating the content sent through the Campaign. mock: type: boolean description: Indicates whether the Campaign is a mock campaign used for testing. Mock campaigns cannot send production traffic. example: false usecase: type: string description: Registered use case for the Campaign, such as `2FA` or `MARKETING`. example: 2FA privacy_policy: type: string description: URL of the Campaign privacy policy. example: https://site.com/privacy-policy terms_conditions: type: string description: URL of the Campaign terms and conditions. example: https://site.com/terms-and-conditions example: affiliate_marketing: false age_gated: false auto_renewal: false description: Our campaign aims to … direct_lending: false embedded_link_sample: https://site.com/verify embedded_links: false embedded_phones: false help: true help_keywords: help help_message: For help, please visit www.site.com. To opt-out, reply STOP. mock: false name: My first campaign optin: true optin_keywords: begin,start optin_message: You are now opted-in for help please reply HELP, to stop please reply STOP optin_workflow: Our SMS ... optout: true optout_keywords: stop,quit,unsubscribe optout_message: You are now opted out and will receive no further messages privacy_policy: https://site.com/privacy-policy sample1: Your verification code is XXXXXX sample2: XXXX is your verification code sample3: Your code is XXXXXX, valid for 10 minutes sample4: Use code XXXXXX to confirm your login sample5: XXXXXX is your one-time passcode terms_conditions: https://site.com/terms-and-conditions usecase: 2FA TenDLCCampaignUpdateRequest: title: TenDLCCampaignUpdateRequest type: object additionalProperties: false properties: name: type: string description: Display name of the Campaign. maxLength: 120 example: Campaign usecase: type: string description: | Registered use case for the Campaign. One of `CUSTOMER_CARE` (customer support messaging), `MARKETING` (promotional content), `ACCOUNT_NOTIFICATION` (account-related alerts), `FRAUD_ALERT` (fraud and suspicious-activity warnings), `PUBLIC_SERVICE_ANNOUNCEMENT` (public-interest notices), or `SECURITY_ALERT` (security-related warnings). enum: - CUSTOMER_CARE - MARKETING - ACCOUNT_NOTIFICATION - FRAUD_ALERT - PUBLIC_SERVICE_ANNOUNCEMENT - SECURITY_ALERT example: MARKETING description: type: string description: Description of the Campaign and its messaging purpose. minLength: 40 maxLength: 4096 example: Explain how users opt in (e.g., via website or paid ads), specify the message frequency, and clearly state that opting in to messages is optional and not required to use the service. embedded_links: type: boolean description: Indicates whether the Campaign messages contain embedded links. default: false example: false embedded_phones: type: boolean description: Indicates whether the Campaign messages contain embedded phone numbers. default: false example: false age_gated: type: boolean description: Indicates whether the Campaign messages contain age-gated content. default: false example: false direct_lending: type: boolean description: Indicates whether the Campaign messages contain direct lending content. default: false example: false optin: type: boolean description: Indicates whether the Campaign requires subscribers to opt in before receiving messages. default: false example: true optout: type: boolean description: Indicates whether the Campaign provides an opt-out system that subscribers can trigger with a keyword. default: false example: true help: type: boolean description: Indicates whether the Campaign provides a help system that subscribers can trigger with a keyword. default: false example: true sample1: type: string description: Sample message demonstrating the content sent through the Campaign. minLength: 20 maxLength: 1024 example: Example of message sample for campaign 1 sample2: type: string description: Sample message demonstrating the content sent through the Campaign. minLength: 20 maxLength: 1024 example: Example of message sample for campaign 2 sample3: type: string description: Sample message demonstrating the content sent through the Campaign. minLength: 20 maxLength: 1024 example: Example of message sample for campaign 3 sample4: type: string description: Sample message demonstrating the content sent through the Campaign. minLength: 20 maxLength: 1024 example: Example of message sample for campaign 4 sample5: type: string description: Sample message demonstrating the content sent through the Campaign. minLength: 20 maxLength: 1024 example: Example of message sample for campaign 5 optin_workflow: type: string description: Description of the workflow through which subscribers opt in to the Campaign. minLength: 40 maxLength: 4096 example: Our SMS campaign uses a double opt-in workflow where customers reply START to begin help_message: type: string description: Acknowledgement sent when a subscriber texts a help keyword. minLength: 20 maxLength: 320 example: For help, please visit www.site.com. To opt out, reply STOP. optin_message: type: string description: Acknowledgement sent when a subscriber texts an opt-in keyword. minLength: 20 maxLength: 320 example: You have opted in to our campaign. Reply HELP for assistance or STOP to unsubscribe. optout_message: type: string description: Acknowledgement sent when a subscriber texts an opt-out keyword. minLength: 20 maxLength: 320 example: A comma-separated list of OPT-OUT keywords. The OPT-OUT keywords are case-insensitive. auto_renewal: type: boolean description: Indicates whether the Campaign is automatically renewed at the end of each billing period. default: true example: true optin_keywords: type: string description: Comma-separated list of opt-in keywords. Keywords are case-insensitive. maxLength: 255 example: start,optin help_keywords: type: string description: Comma-separated list of help keywords. Keywords are case-insensitive. maxLength: 255 default: HELP example: help optout_keywords: type: string description: Comma-separated list of opt-out keywords. Keywords are case-insensitive. maxLength: 255 example: optout,discard terms_conditions: type: string description: URL of the Campaign terms and conditions. maxLength: 255 example: https://site.com/terms-and-conditions privacy_policy: type: string description: URL of the Campaign privacy policy. maxLength: 255 example: PROFESSIONAL embedded_link_sample: type: string description: Sample of an embedded link used in Campaign messages. maxLength: 255 example: https://example.com TenDLCEventSubscription: title: TenDLCEventSubscription required: - subscription_category - url type: object additionalProperties: false properties: subscription_category: type: string description: Category of 10DLC events to subscribe to. One of `brand` (brand status changes), `campaign` (campaign status changes), or `number` (number provisioning changes). example: brand url: type: string description: Webhook URL that events in this category are delivered to. example: https://webhook.url description: Represents a subscription that delivers 10DLC lifecycle events to a webhook URL. example: subscription_category: brand url: https://webhook.url TenDLCCampaignNumber: title: TenDLCCampaignNumber required: - number - status type: object additionalProperties: false properties: number: type: string description: Phone number assigned to the 10DLC Campaign, in E.164 format. example: '17029641104' status: type: string description: Provisioning status of the phone number, such as `APPROVED`. Only `APPROVED` numbers can be used as Sender IDs. example: APPROVED TenDLCCampaignNumberListResponse: title: TenDLCCampaignNumberListResponse required: - brand_id - campaign_id - numbers type: object additionalProperties: false properties: brand_id: type: string description: Unique identifier of the 10DLC Brand that owns the Campaign. campaign_id: type: string description: Unique identifier of the 10DLC Campaign the numbers belong to. numbers: type: array items: $ref: '#/components/schemas/TenDLCCampaignNumber' description: Phone numbers assigned to the Campaign, with their provisioning status. TenDLCCampaignNudgeRequest: title: TenDLCCampaignNudgeRequest required: - nudge_intent - description type: object additionalProperties: false properties: nudge_intent: type: string description: |- Nudge intent. Allowed values: `REVIEW`, `APPEAL_REJECTION`. Use `nudge_intent` to specify the action: - `REVIEW`: Request review for a pending Campaign. - `APPEAL_REJECTION`: Appeal a rejected Campaign. example: REVIEW description: type: string description: Description of the nudge request. example: Please review the campaign. description: Nudge configuration. Set the nudge intent to `REVIEW` to request action on a pending approval, or to `APPEAL_REJECTION` to submit an appeal for a rejected campaign. PhoneNumberValidationType: title: PhoneNumberValidationType enum: - format - analysis - validation type: string description: Depth of validation to perform on the phone number. One of `format` (checks number syntax only), `analysis` (returns number metadata such as type and country), or `validation` (performs a live network lookup of the number's current status). PhoneValidationResponse: title: PhoneValidationResponse required: - phone_number - valid - country_code - e164_format - national_format - charge - error_code type: object additionalProperties: false properties: phone_number: type: string description: Phone number. example: '971569483322' valid: type: boolean description: Indicates whether the phone number is valid. example: true country_code: type: - string - 'null' description: |- ISO 3166-1 alpha-2 country code of the phone number. `null` if the number is invalid. example: AE e164_format: type: string description: Phone number in international E.164 format. example: '+971569483322' national_format: type: string description: Phone number in the national format of the identified country. example: 056 948 3322 ported: type: - boolean - 'null' description: Indicates whether the phone number was ported or not. `null` if the phone number is invalid. example: false mcc: type: - string - 'null' description: Mobile Country Code of the phone number carrier. For mobile phone numbers only. `null` if the phone number is invalid. example: '424' mnc: type: - string - 'null' description: Mobile Network Code of the phone number carrier. For mobile phone numbers only. `null` if the phone number is invalid example: '004' number_type: type: - string - 'null' description: Number type. Possible values are `mobile`, `landline`, or `toll-free`. `null` if the phone number is invalid. example: mobile carrier_name: type: - string - 'null' description: Name of the phone number carrier. `null` if the phone number is invalid. example: Etisalat risky_destination: type: - boolean - 'null' description: Indicates whether the phone number belongs to a number range associated with traffic pumping. `null` if the number is invalid. example: false unallocated_range: type: - boolean - 'null' description: Indicates whether the phone number belongs to an unallocated number range. `null` if the number is invalid example: false reachable: type: - boolean - 'null' description: Indicates whether the number is registered in a mobile network. For mobile phone numbers only. `null` if the number is invalid example: true roaming: type: - boolean - 'null' description: Indicates whether the number is roaming. For mobile phone numbers only. `null` if the number is invalid example: false timezone: type: - string - 'null' description: |- Time zone based on the phone number's country and area code. `null` if the number is invalid. example: UTC+04:00 charge: type: string description: Charge for the validation. example: '0.015' error_code: type: string description: |- Error code for the request. `000` indicates success. Possible values: - `013`: — Internal service error - `021`: — Invalid phone number length or format - `041`: — Request timeout - `042`: — Request failed - `091`: — Insufficient funds example: '000' PhoneValidationRequest: title: PhoneValidationRequest required: - phone_numbers - type - async - force type: object additionalProperties: false properties: phone_numbers: type: array items: type: string description: List of phone numbers to get detailed information about. example: - '971501390098' - '971504359195' type: $ref: '#/components/schemas/PhoneNumberValidationType' async: type: boolean description: Indicates whether the request should be executed asynchronously. If `true`, the response will include a `request_uuid` that can be used to poll for results. If `false`, the response will include validation results directly. example: true force: type: boolean description: Indicates whether to force a fresh validation instead of returning a previously cached result. example: true PhoneValidationResultResponse: title: PhoneValidationResultResponse required: - phone_number - valid - country_code - e164_format - national_format - charge - error_code type: object additionalProperties: false properties: phone_number: type: string description: Phone number. example: '971569483322' valid: type: boolean description: Indicates whether the phone number is valid. example: true country_code: type: - string - 'null' description: Phone number country code in ISO 3166-1 alpha-2 format. `null` if the number is invalid. example: AE e164_format: type: string description: Phone number in international E.164 format. example: '+971569483322' national_format: type: string description: Phone number in the national format of the identified country. example: 056 948 3322 ported: type: - boolean - 'null' description: Indicates whether the phone number is ported. `null` if the phone number is invalid. example: false mcc: type: - string - 'null' description: Mobile Country Code (MCC). Applies to mobile numbers only. `null` if the phone number is invalid. example: '424' mnc: type: - string - 'null' description: Mobile Network Code (MNC). Applies to mobile numbers only. `null` if the phone number is invalid. example: '004' number_type: type: - string - 'null' description: 'Phone number type. Allowed values: `mobile`, `landline`, `toll-free`. `null` if the phone number is invalid.' example: mobile carrier_name: type: - string - 'null' description: Carrier name. `null` if the phone number is invalid. example: Etisalat risky_destination: type: - boolean - 'null' description: Indicates whether the phone number belongs to a range associated with traffic pumping. `null` if the phone number is invalid. example: false unallocated_range: type: - boolean - 'null' description: |- Indicates whether the phone number belongs to an unallocated range. `null` if the phone number is invalid. example: false reachable: type: - boolean - 'null' description: Indicates whether the number is registered in a mobile network. Applies to mobile numbers only. `null` if the phone number is invalid. example: true roaming: type: - boolean - 'null' description: |- Indicates whether the number is roaming. Applies to mobile numbers only. `null` if the phone number is invalid. example: false timezone: type: - string - 'null' description: Time zone identified based on the country and area code. `null` if the phone number is invalid. example: UTC+04:00 charge: type: string description: Charge for the validation. example: '0.015' error_code: type: string description: |- Result code for the validation. `000` indicates success. Possible values: - `013` — internal service error, uncategorized. - `021` — invalid phone number length or format. - `041` — remote timeout. - `042` — remote query failed. - `091` — insufficient funds. example: '000' description: Number validator response details. PhoneValidationBatchResponse: title: PhoneValidationBatchResponse required: - count - items - status - pending type: object additionalProperties: false properties: status: type: string description: Validation request status. example: success pending: type: integer description: Number of validations still in progress. example: 0 count: type: integer format: int32 description: Total number of phone numbers in the request. example: 1000 items: type: array items: $ref: '#/components/schemas/PhoneValidationResultResponse' description: List of validation results for each phone number. NumberValidatorCreateBulkResponse: anyOf: - $ref: '#/components/schemas/PhoneValidationBatchResponse' - type: object title: Async Request description: Returned when validation runs asynchronously; poll results using `request_id`. properties: request_id: type: string description: Request ID. Use to poll validation results when `async` is `true`. example: 15323ba4-80c1-41be-b8e7-07bb435c7445 PhoneValidationBatchResultResponse: title: PhoneValidationBatchResultResponse required: - status - pending - count - items type: object additionalProperties: false properties: status: type: string description: |- Request status. Possible values are `success` and `in progress`. - `success`: All numbers were processed. - `in progress`: Several numbers are pending validation. example: success pending: type: integer description: The quantity of phone numbers that are pending to be processed. format: int32 example: 10 count: type: integer description: The quantity of phone numbers passed in the request. format: int32 example: 1000 items: type: array items: $ref: '#/components/schemas/PhoneValidationResultResponse' description: |- Array of objects containing details for each phone number. The returned fields depend on the `type` parameter. example: - phone_number: '971501390098' valid: true country_code: AE e164_format: '+971501390098' national_format: 050 139 0098 ported: false mcc: '424' mnc: '02' number_type: mobile carrier_name: Etisalat risky_destination: false unallocated_range: false reachable: true roaming: false timezone: UTC+04:00 charge: '0.015' error_code: '000' - phone_number: '971504359195' valid: true country_code: AE e164_format: '+971504359195' national_format: 050 435 9195 ported: false mcc: '424' mnc: '02' number_type: mobile carrier_name: Etisalat risky_destination: false unallocated_range: false reachable: true roaming: false timezone: UTC+04:00 charge: '0.015' error_code: '000' VoiceCampaignResponse: title: VoiceCampaignResponse description: Represents a voice campaign that places an outbound call running a pre-approved call flow. required: - callflow_id - caller_id - contact type: object additionalProperties: false properties: callflow_id: type: integer description: Unique identifier of the call flow to launch, listed on the Call flows page. Every scenario must be pre-approved by the Wavix Service Operations team before it can be used in production. format: int32 example: 3212 caller_id: type: string description: Phone number on the account used as the Caller ID for the outbound call, in E.164 format. example: '13123310912' contact: type: string description: Destination phone number the outbound call is placed to, in E.164 format. example: '16729923812' callback_url: type: string description: Webhook URL that receives voice campaign status updates. example: https://you-site.com/webhook VoiceCampaignCreateRequest: title: VoiceCampaignCreateRequest required: - voice_campaign type: object additionalProperties: false properties: voice_campaign: $ref: '#/components/schemas/VoiceCampaignResponse' VoiceCampaignsCreateResponse: type: object additionalProperties: false properties: voice_campaign: type: object additionalProperties: false properties: id: type: integer description: Unique identifier of the voice campaign. example: 2321423 status: type: string description: Current status of the voice campaign, such as `in_progress`. example: in_progress timestamp: type: string format: date-time description: Timestamp when the voice campaign was created, in ISO 8601 format. example: '2023-08-03T09:04:12.000Z' caller_id: type: string description: Phone number used as the Caller ID for the outbound call, in E.164 format. example: '13123310912' contact: type: string description: Destination phone number the outbound call is placed to, in E.164 format. example: '16729923812' VoiceCampaignsGetResponse: type: object additionalProperties: false properties: voice_campaign: type: object additionalProperties: false properties: id: type: integer description: Unique identifier of the voice campaign. example: 2321423 status: type: string description: Current status of the voice campaign, such as `in_progress`. example: in_progress timestamp: type: string format: date-time description: Timestamp when the voice campaign was created, in ISO 8601 format. example: '2023-08-03T09:04:12.000Z' caller_id: type: string description: Phone number used as the Caller ID for the outbound call, in E.164 format. example: '13123310912' contact: type: string description: Destination phone number the outbound call is placed to, in E.164 format. example: '16729923812' ShortLinkCreateRequest: title: ShortLinkCreateRequest required: - link type: object additionalProperties: false properties: link: type: string description: Target URL to shorten. example: https://your-site.com/long-url expiration_time: type: string format: date-time description: Expiration date and time in ISO 8601 format. example: '2023-07-19T18:18:34.235Z' fallback_url: type: string description: Fallback URL for expired or invalid links. example: https://examples.com/fallback phone: type: string description: Phone number for the short link. example: '15155982927' utm_campaign: type: string description: UTM campaign name for tracking insights. example: summer_promo ShortLinkResponse: title: ShortLinkResponse required: - short_link type: object additionalProperties: false properties: short_link: type: string description: Generated short URL. example: https://wx.com/hd82Jhs21 ShortLinkMetricsItem: title: ShortLinkMetricsItem required: - latitude - longitude - operating_system - browser - language - phone - utm_campaign - created_at - user_id - link_hash type: object additionalProperties: false properties: latitude: type: - number - 'null' description: |- Latitude of the location derived from the IP address used to open the short link. example: 59.3247 longitude: type: - number - 'null' description: |- Longitude of the location derived from the IP address used to open the short link. example: 18.056 operating_system: type: - string - 'null' description: Operating system of the device that opened the short link. example: Mac OS X 10.15 browser: type: - string - 'null' description: Browser used to open the short link. example: Firefox language: type: - string - 'null' description: Browser language preference. example: English phone: type: - string - 'null' description: Phone number associated with the short link. example: '12762025555' utm_campaign: type: - string - 'null' description: UTM campaign name associated with the short link. example: summer created_at: type: string description: Date and time when short link was opened. example: '2023-07-19 18:23:42.120Z' link_hash: type: string description: Hash of the short link. example: hd82Jhs21 user_id: type: integer description: Account ID. example: 100017 ShortLinkMetricsResponse: title: ShortLinkMetricsResponse required: - metrics - pagination type: object additionalProperties: false properties: metrics: type: array items: $ref: '#/components/schemas/ShortLinkMetricsItem' description: List of short link metrics matching search criteria. pagination: $ref: '#/components/schemas/Pagination' TwoFactorVerificationCreateRequest: title: TwoFactorVerificationCreateRequest required: - service_id - to - channel type: object additionalProperties: false properties: service_id: type: string description: Unique Wavix 2FA Service ID. Available on the Wavix portal. example: 7204a030201211ee9fb47d093f2f127c to: type: string description: End user's phone number to which the verification code will be sent. The phone number must be in E.164 format. example: '447919433768' channel: type: string description: Channel used to deliver the verification code. One of `sms` (sent as a text message) or `voice` (read aloud over a phone call). example: sms PhoneLookupDetails: title: PhoneLookupDetails required: - number_type - country - current_carrier type: object additionalProperties: false properties: number_type: type: string description: The destination phone number type example: mobile country: type: string description: The destination phone number's 2-letter ISO country code example: GB current_carrier: type: string description: The carrier name the phone number currently belongs to example: Vodafone TwoFactorVerificationResponse: title: TwoFactorVerificationResponse required: - success - service_id - session_url - session_id - destination - created_at - number_lookup type: object additionalProperties: false properties: success: type: boolean description: Indicates whether the 2FA Verification was successfully created example: true service_id: type: string description: Unique identifier of the Wavix 2FA Service example: 7204a030201211ee9fb47d093f2f127c session_url: type: string description: Automatically generated 2FA Verification URL. The URL can be used to resend or validate the OTP. example: https://api.wavix.com/v1/two-fa/verification/2953d4308f2e11ecb75fcdafd6d2d687 session_id: type: string description: Unique identifier of the Wavix 2FA Verification example: 2953d4308f2e11ecb75fcdafd6d2d687 destination: type: string description: The end user's phone number. example: '447919433768' created_at: type: string description: Date and time the 2FA Verification is created format: date-time example: '2022-02-16T13:41:38.000Z' number_lookup: $ref: '#/components/schemas/PhoneLookupDetails' ListSessionsResponseItem: type: object additionalProperties: false properties: created_at: type: string format: date-time description: Date and time the 2FA Verification was created in ISO 8601 format. example: '2022-02-16T13:41:38.000Z' session_id: type: string description: 2FA Verification ID. example: 2953d4308f2e11ecb75fcdafd6d2d687 phone_number: type: string description: Destination phone number. example: '447919433768' destination_country: type: string description: Country code of the destination phone number in ISO 3166-1 alpha-2 format. example: GB status: type: string description: Status of the 2FA Verification. example: verified charge: type: string description: Charge for the 2FA Verification. example: '0.01' service_id: type: string description: 2FA Service ID. example: 7204a030201211ee9fb47d093f2f127c service_name: type: string description: 2FA Service name. example: Wavix 2FA Service TwoFactorVerificationResendRequest: title: TwoFactorVerificationResendRequest required: - channel type: object additionalProperties: false properties: channel: type: string description: Channel used to resend the verification code. One of `sms` (sent as a text message) or `voice` (read aloud over a phone call). enum: - sms - voice example: voice TwoFactorVerificationResendResponse: title: TwoFactorVerificationResendResponse required: - success - channel - destination - created_at type: object properties: success: type: boolean description: Indicates whether the verification code was successfully sent example: true channel: type: string description: Indicates whether the code was sent via an SMS or a voice call example: voice destination: type: string description: The destination phone number the code was sent to example: '447919433768' created_at: type: string description: Date and time the code was sent format: date-time example: '2022-02-16T13:41:38.000Z' TwoFactorVerificationCheckRequest: title: TwoFactorVerificationCheckRequest required: - code type: object additionalProperties: false properties: code: type: string description: The code entered by an end user example: '123456' TwoFactorVerificationCheckResponse: title: TwoFactorVerificationCheckResponse required: - is_valid type: object additionalProperties: false properties: is_valid: type: boolean description: Indicates whether the entered code is valid example: true TwoFactorVerificationEvent: title: TwoFactorVerificationEvent required: - created_at - event - status - charge - error type: object additionalProperties: false properties: created_at: type: string description: Date and time of the event format: date-time example: '2022-02-16T13:41:38.000Z' event: type: string description: |- Human-readable event description. One of the following values: - `Number lookup` — the Wavix platform checked whether the destination phone number is valid. Returned only when number validation is enabled for the 2FA Service. - `Code sent via SMS` — a code was sent via SMS. - `Code sent via voice` — a code was sent via a voice call. - `Verification` — a code verification attempt. example: Code sent via SMS status: type: string description: Status of an action associated with the event. Can be either `success`, `failed`, or `pending`. example: success charge: type: string description: Cost of an operation associated with the event, in USD example: '0.005' error: type: - string - 'null' description: Error description, if any TransactionType: title: TransactionType enum: - 0 - 2 - 3 - 6 - 11 - 14 - 15 - 19 - 20 - 23 - 24 - 25 - 26 - 29 - 30 - 31 - 32 - 33 - 34 - 35 - 36 - 37 - 38 - 39 - 40 - 41 - 42 - 43 - 44 - 45 - 46 - 47 - 48 - 49 - 50 - 51 - 52 - 53 - 54 - 55 - 56 - 57 - 58 - 59 - 60 type: integer description: |- Transaction type: * 0 - Payment adjustment * 2 - Phone number activation fee * 3 - Phone number monthly fees * 6 - Phone number forwarding * 11 - PSTN forwarding fee * 14 - Outbound call * 15 - Outbound SMS * 19 - Credit card payment * 20 - Payment fee * 23 - Porting fee * 24 - Inbound SMS * 25 - Admin payment * 26 - Subscription payment * 29 - Number validator * 30 - Call recording * 31 - Storage charge * 32 - Campaign builder * 33 - Voicemail detection * 34 - Sender ID registration * 35 - Sender ID monthly fee * 36 - 2FA * 37 - IVR * 38 - E911 activation * 39 - Outbound MMS * 40 - Inbound MMS * 41 - Call transcription * 42 - 10DLC Brand registration * 43 - 10DLC Campaign registration * 44 - Phone number order * 45 - Adjustment in * 46 - URL shortener * 47 - 10DLC Brand update * 48 - 10DLC Brand appeal * 49 - Audio transcription * 50 - 10DLC Brand vetting * 51 - 10DLC Brand vetting appeal * 52 - Outbound SMS carrier fee * 53 - Inbound SMS carrier fee * 54 - Outbound MMS carrier fee * 55 - Inbound MMS carrier fee * 57 - Outbound SMS segment * 58 - Inbound SMS segment * 59 - Outbound MMS segment * 60 - Inbound MMS segment TransactionStatus: title: TransactionStatus enum: - Created - Pending - Committed - Reverted type: string description: Current status of the transaction. One of `Created` (the transaction was created but not yet processed), `Pending` (the transaction is being processed), `Committed` (the transaction was applied to the balance), or `Reverted` (the transaction was rolled back). FinancialTransaction: title: FinancialTransaction required: - id - date - amount - balance_after - details - status - type - show_invoice type: object additionalProperties: false properties: id: type: integer description: Transaction ID. format: int64 example: 24789389 date: type: string description: Creation date and time in ISO 8601 format. format: date-time example: '2023-08-29T14:48:38.000Z' amount: type: number format: float description: Transaction amount. Negative values decrease balance. example: -0.99 balance_after: type: number format: float description: Account balance after the transaction. example: 309.0601 details: type: string description: Transaction details. example: Monthly fee for 16419252149 status: $ref: '#/components/schemas/TransactionStatus' type: $ref: '#/components/schemas/TransactionType' show_invoice: type: boolean description: |- Indicates whether a transaction receipt is available. Receipts are available only for transaction types 0, 8, 9, 19, 23, and 25. example: false description: Financial transaction. example: id: 24789389 date: '2023-08-29T14:48:38.000Z' amount: -0.99 balance_after: 309.0601 details: Monthly fee for 16419252149 status: Committed type: 3 show_invoice: false BillingTransactionListResponse: title: BillingTransactionListResponse required: - is_empty - transactions - pagination type: object additionalProperties: false properties: is_empty: type: boolean description: Indicates whether there are no transactions. example: false transactions: type: array items: $ref: '#/components/schemas/FinancialTransaction' description: List of transactions. example: - id: 24789389 amount: -0.99 balance_after: 309.0601 date: '2023-08-29T14:48:38.000Z' details: Monthly fee for 16419252149 status: Committed type: 3 show_invoice: false pagination: $ref: '#/components/schemas/Pagination' Invoice: title: Invoice required: - id - amount - from_date - to_date type: object additionalProperties: false properties: id: type: integer description: Unique identifier of the statement format: int32 example: 43209 amount: type: string description: Statement amount example: '7.72' from_date: type: string description: Start of the billing period format: date example: '2023-07-01' to_date: type: string description: End of the billing period format: date example: '2023-07-31' description: An account financial statement InvoiceListResponse: title: InvoiceListResponse required: - is_empty - invoices - pagination type: object additionalProperties: false properties: is_empty: type: boolean description: Indicates whether the statement list is empty. example: false invoices: type: array description: Auto-generated statements for the account. items: $ref: '#/components/schemas/Invoice' pagination: $ref: '#/components/schemas/Pagination' ProfileResponse: title: ProfileResponse required: - id - email - first_name - last_name - phone - additional_info - contact_email - timezone - job_title - default_short_link_endpoint - default_destinations - company_info type: object additionalProperties: false properties: id: type: integer description: Account ID. format: int32 example: 1 email: type: string description: Email associated with the account. example: info@awesome.com first_name: type: - string - 'null' description: Account owner's first name. example: Jason last_name: type: - string - 'null' description: Account owner's last name. example: Androux phone: type: - string - 'null' description: Account owner's phone number. example: '13291019312' additional_info: type: - string - 'null' description: Additional info associated with the account. example: Additional info contact_email: type: - string - 'null' description: Additional email address for billing notifications. example: billing@awesome.com timezone: type: string description: Timezone configured on the account. example: Pacific/Wallis job_title: type: - string - 'null' description: Account owner's job title. example: Manager default_short_link_endpoint: type: - string - 'null' description: Default short link endpoint. example: https://short.examples.com default_destinations: type: array items: type: object additionalProperties: false properties: transport: type: string description: Transport type. example: sms value: type: string description: Destination value example: https://webhook.address.com/inboundSMS description: Default destinations configured for the account. example: - transport: sms value: https://webhook.address.com/inboundSMS company_info: type: - object - 'null' additionalProperties: false description: Company details. properties: name: type: - string - 'null' description: Company name. example: Awesome company industry: type: - string - 'null' enum: - telecommunications - information technology and services - fintech and finance - healthcare and pharmaceuticals - ecommerce and retail - education and research - pickup and delivery - transportation and logistics - media and entertainment - travel and hospitality - non-profit and charity organizations - manufacturing and industrial goods - other - null description: Industry the company operates in. One of `telecommunications`, `information technology and services`, `fintech and finance`, `healthcare and pharmaceuticals`, `ecommerce and retail`, `education and research`, `pickup and delivery`, `transportation and logistics`, `media and entertainment`, `travel and hospitality`, `non-profit and charity organizations`, `manufacturing and industrial goods`, or `other`. Each value names the company's sector. `null` when the industry is not set. example: telecommunications address: type: - string - 'null' description: Company address. example: Baker street attn_contact_name: type: - string - 'null' description: Billing contact name. example: James Scott vat_number: type: - string - 'null' description: VAT number. example: VAT123456789 country: type: object additionalProperties: false description: Country. properties: country_name: type: - string - 'null' description: Country name. example: United States country_id: type: - integer - 'null' description: Country ID. example: 1 ProfileUpdateRequest: title: ProfileUpdateRequest type: object additionalProperties: false properties: additional_info: type: string description: Additional information associated with the account. contacts: type: string description: Email associated with the account. default_short_link_endpoint: type: string description: Default short link endpoint. first_name: type: string description: Account owner's first name. last_name: type: string description: Account owner's last name. phone: type: string description: Account owner's phone number sms_relay_url: type: string description: Callback URL to forward inbound SMS to. dlr_relay_url: type: string description: Callback URL to forward message delivery reports (DLRs) to. time_zone: type: string description: Timezone configured on the account. example: UTC job_title: type: string description: Account owner's job title. company_info: type: object additionalProperties: false properties: name: type: string description: Company name. industry: type: string enum: - telecommunications - information technology and services - fintech and finance - healthcare and pharmaceuticals - ecommerce and retail - education and research - pickup and delivery - transportation and logistics - media and entertainment - travel and hospitality - non-profit and charity organizations - manufacturing and industrial goods - other description: Industry the company operates in. One of `telecommunications`, `information technology and services`, `fintech and finance`, `healthcare and pharmaceuticals`, `ecommerce and retail`, `education and research`, `pickup and delivery`, `transportation and logistics`, `media and entertainment`, `travel and hospitality`, `non-profit and charity organizations`, `manufacturing and industrial goods`, or `other`. Each value names the company's sector. example: telecommunications billing_address: type: string description: Billing address. attn_contact_name: type: string description: Billing contact name. vat_number: type: string description: VAT number. country_code: type: string description: Country code. AccountLimits: title: AccountLimits required: - max_call_duration - max_sip_channels - max_call_rate type: object additionalProperties: false properties: max_call_duration: type: integer description: Maximum outbound call duration, in seconds format: int32 example: 3600 max_sip_channels: type: integer description: Maximum number of concurrent outbound calls. format: int32 example: 2 max_call_rate: type: string description: Maximum outbound call rate, in cents example: '0.18' ProfileConfigResponse: title: ProfileConfigResponse required: - balance - global_limits type: object additionalProperties: false properties: balance: type: string description: Funds available on the account balance, in USD example: '100' global_limits: $ref: '#/components/schemas/AccountLimits' SubOrganizationResponse: title: SubOrganizationResponse required: - id - created_at - name - api_key - master_organization - status - default_destinations type: object description: Sub-account details including API key and webhook configurations. additionalProperties: false properties: id: type: integer format: int32 description: Sub-account ID. example: 123 created_at: type: string format: date-time description: Date and time the sub-account was created in ISO 8601 format. example: '2023-06-15T10:30:00Z' name: type: string description: Sub-account name. example: My sub-account api_key: type: string description: Sub-account API key. example: abc123def456 master_organization: type: integer format: int32 description: Master account ID. example: 456 status: type: string description: Status of the subaccount. One of `enabled` (the subaccount is active and can be used) or `disabled` (the subaccount is suspended). enum: - enabled - disabled example: enabled default_destinations: type: object additionalProperties: false description: Default webhook URLs for inbound messages and delivery reports. required: - sms_endpoint - dlr_endpoint properties: sms_endpoint: type: string format: uri description: Inbound messages webhook URL. example: https://examples.com/sms dlr_endpoint: type: string format: uri description: Delivery report webhook URL. example: https://examples.com/dlr example: id: 123 created_at: '2023-06-15T10:30:00Z' name: My sub-account api_key: abc123def456 master_organization: 456 status: enabled default_destinations: sms_endpoint: https://examples.com/sms dlr_endpoint: https://examples.com/dlr SubAccountsListResponse: type: object additionalProperties: false properties: sub_organizations: type: array description: Subaccounts belonging to the authenticated account. items: $ref: '#/components/schemas/SubOrganizationResponse' pagination: $ref: '#/components/schemas/Pagination' SubAccountsCreateRequest: type: object additionalProperties: false required: - name properties: name: type: string description: Sub-account name. maxLength: 255 example: Company name default_destinations: type: object additionalProperties: false description: Default webhook URLs for inbound messages and delivery reports. properties: sms_endpoint: type: string format: uri description: Inbound messages webhook URL. example: https://examples.com/sms dlr_endpoint: type: string format: uri description: Delivery report webhook URL. example: https://examples.com/dlr SubAccountsUpdateRequest: type: object additionalProperties: false required: - name properties: name: type: string description: Sub-account name. maxLength: 255 example: Updated Company Name status: type: string description: Status of the subaccount. One of `enabled` (the subaccount is active and can be used) or `disabled` (the subaccount is suspended). enum: - enabled - disabled example: enabled default_destinations: type: object additionalProperties: false description: Default webhook URLs for inbound messages and delivery reports. properties: sms_endpoint: type: string format: uri description: Inbound messages webhook URL. example: https://examples.com/sms dlr_endpoint: type: string format: uri description: Delivery report webhook URL. example: https://examples.com/dlr SubAccountsTransactionsListResponse: type: object additionalProperties: false properties: transactions: type: array description: Financial transactions for the subaccount. items: type: object additionalProperties: false properties: amount: type: number format: float description: Transaction amount. example: 10.5 balance_after: type: number format: float description: Sub-account balance after the transaction. example: 100 date: type: string description: Transaction date and time in ISO 8601 format. format: date-time example: '2023-06-15T10:30:00Z' details: type: string description: Transaction details. example: Account top-up status: type: string description: Transaction status. example: committed type: type: integer description: Transaction type. example: 1 pagination: $ref: '#/components/schemas/Pagination' CallStatusWebhook: title: CallStatusWebhook required: - direction - uuid - destination - duration - charge - date - disposition - from - to - per_minute type: object additionalProperties: false properties: direction: type: string description: Direction of the call. One of `inbound` (call received by the account) or `outbound` (call placed by the account). enum: - inbound - outbound example: outbound uuid: type: string description: Call ID example: 99df5ffd-962a-410f-bcce-d08f1f7f328c destination: type: - string - 'null' description: Destination of the call. For outbound calls, it contains the country name and, optionally, a mobile carrier or city name. For inbound calls, the destination includes the user-defined SIP trunk name, SIP URI, or PSTN number that the call is forwarded to. example: France duration: type: integer description: Duration of the call, in seconds format: int32 example: 6 charge: type: string description: Total charge for the call, in USD example: '0.822' date: type: string description: Date and time of the call format: date-time example: '2023-08-21T06:43:36.000Z' disposition: $ref: '#/components/schemas/CallDisposition' from: type: - string - 'null' description: ANI/From attribute of the call example: '14302287001' to: type: - string - 'null' description: DNIS/To attribute of the call example: '33170363950' per_minute: type: string description: Price per minute, in USD example: '0.027' description: Post-call webhook payload FileTranscriptionCompletedWebhook: title: FileTranscriptionCompletedWebhook required: - request_id - status - error type: object additionalProperties: false properties: request_id: type: string description: Transcription request ID example: e865ea07-25af-4fdd-876e-04b0d41d5ebd status: type: string description: Outcome of the transcription. One of `completed` (the transcript was produced) or `failed` (the transcription could not be produced). example: completed error: type: - string - 'null' description: A human-readable error description, if any CDRTranscriptionCompletedWebhook: title: CDRTranscriptionCompletedWebhook required: - uuid - status type: object additionalProperties: false properties: uuid: type: string description: Call UUID example: 99df5ffd-962a-410f-bcce-d08f1f7f328c status: type: string description: Outcome of the transcription. One of `completed` (the transcript was produced) or `failed` (the transcription could not be produced). enum: - completed - failed example: completed MessagesDeliveryReport: title: MessagesDeliveryReport required: - message_id - message_type - from - to - status - sent - segments_count - charge - carrier_fees type: object description: Message delivery report (DLR). additionalProperties: false properties: message_id: type: string description: Message ID. example: 871b4eeb-f798-4105-be23-32df9e991456 message_type: type: string description: Type of message. Possible values are `sms`, `mms`. example: sms from: type: string description: Sender ID. Can be numeric or alphanumeric. example: Wavix to: type: string description: Destination phone number. example: '+447537151866' tag: type: - string - 'null' description: Tag to identify a group of messages, such as those associated with a campaign. example: Fall sale status: $ref: '#/components/schemas/MessageDeliveryStatus' segments_count: type: integer description: Number of message segments for SMS. For MMS, the value is always 1. format: int32 example: 1 sent: type: - string - 'null' description: Date and time the message was accepted in ISO 8601 format. format: date-time example: '2024-05-28T12:34:54Z' delivered: type: - string - 'null' description: Date and time when the final status was received in ISO 8601 format. format: date-time example: '2024-05-28T12:34:56Z' error: type: - string - 'null' description: Human-readable error description. charge: type: string description: Total charge for the message in USD. example: '0.01' carrier_fees: type: string description: Mobile carrier fees in USD. example: '0.0' InboundMessage: title: SMSorMMSmessage required: - message_id - from - to - message_body - received_at type: object additionalProperties: false properties: message_id: type: string description: Unique identifier of the message generated by the platform example: 871b4eeb-f798-4105-be23-32df9e991456 from: type: string description: Sender ID used to send the message. Can be numeric or alphanumeric. example: Wavix to: type: string description: Phone number on the account that received the message. example: '447537151866' message_body: $ref: '#/components/schemas/MessageBody' received_at: type: string description: Timestamp the messages is received by Wavix format: date-time example: '2022-04-14T13:51:16.096Z' description: An inbound message BrandStatusUpdatedWebhook: type: object additionalProperties: false required: - brand_id - status properties: brand_id: type: string description: Unique identifier of the 10DLC Brand. example: BX12JH90 status: type: string description: Current verification status of the 10DLC Brand. One of `SELF_DECLARED`, `UNVERIFIED`, `VERIFIED`, `VETTED_VERIFIED`, `REVIEW`, or `SUSPENDED`. `SELF_DECLARED` means the Brand registered without external verification; `UNVERIFIED` means verification has not yet succeeded; `VERIFIED` means the Brand passed standard verification; `VETTED_VERIFIED` means the Brand also passed third-party vetting; `REVIEW` means verification is in progress; `SUSPENDED` means the Brand is blocked from sending. enum: - SELF_DECLARED - UNVERIFIED - VERIFIED - VETTED_VERIFIED - REVIEW - SUSPENDED example: VERIFIED CampaignStatusUpdatedWebhook: type: object additionalProperties: false required: - campaign_id - brand_id - status properties: brand_id: type: string description: Unique identifier of a 10DLC Brand example: BX12JH90 campaign_id: type: string description: Unique identifier of a 10DLC Campaign example: CX34KL56 status: type: string description: |- Current status of the 10DLC Campaign. One of: - `REVIEW` — the campaign is under review. - `APPROVED` — the campaign was approved and can send. - `DECLINED` — the campaign was rejected during review. - `DELETED` — the campaign was removed. - `EXPIRED` — the campaign registration lapsed. - `SUSPENDED` — the campaign is blocked from sending. - `PORTED_OUT` — the campaign was migrated to another provider. enum: - REVIEW - APPROVED - DECLINED - DELETED - EXPIRED - SUSPENDED - PORTED_OUT example: APPROVED NumberStatusUpdatedWebhook: type: object additionalProperties: false required: - number - campaign_id - brand_id - status properties: brand_id: type: string description: 10DLC Brand ID. example: BX12JH90 campaign_id: type: string description: 10DLC Campaign ID. example: CX34KL56 number: type: string description: Phone number associated with a 10DLC Campaign. example: '17029641104' status: type: string description: Status of the phone number's assignment to the 10DLC Campaign. One of `APPROVED` (the number is registered to the campaign), `PENDING` (registration is in progress), or `REJECTED` (registration was declined). enum: - APPROVED - PENDING - REJECTED example: APPROVED responses: UnauthorizedErrorResponse: description: Unauthorized headers: {} content: application/json: schema: $ref: '#/components/schemas/UnauthorizedErrorResponse' ForbiddenErrorResponse: description: Request failed. The feature is disabled for your account. headers: {} content: application/json: schema: $ref: '#/components/schemas/ForbiddenErrorResponse' BadRequestErrorResponse: description: Request failed. Missing or invalid parameter headers: {} content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' NotFoundErrorResponse: description: Request failed. An object with the specified ID is not found. headers: {} content: application/json: schema: $ref: '#/components/schemas/NotFoundErrorResponse' ValidationErrorResponse: description: Validation error headers: {} content: application/json: schema: $ref: '#/components/schemas/ValidationErrorResponse' CountryHasNoRegionsErrorResponse: description: Country has no states or provinces headers: {} content: application/json: schema: $ref: '#/components/schemas/CountryHasNoRegionsErrorResponse'