--- 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/v1 description: https://api.wavix.com/v1 variables: {} paths: /api-keys: get: summary: List API keys description: >- Returns a list of API keys on the account. You can optionally filter the results by label using the label query parameter. tags: - API Keys parameters: - in: query name: label schema: type: string description: Filter API keys by label (partial match) example: 'production' responses: '200': description: Request successful. Returns a list of API keys. content: application/json: schema: type: array items: $ref: '#/components/schemas/ApiKey' example: - id: 123 label: 'Production API Key' value: 'abc123def456ghi789jkl012mno345pqr678stu901vwx234yz' is_active: true is_restriction: false permitted_ips: - '192.168.1.1' - '10.0.0.1' created_at: '2024-01-15T10:30:00Z' '403': $ref: "#/components/schemas/ForbiddenErrorResponse" post: summary: Create a new API key description: >- Creates a new API key for your account. You can optionally specify IP restrictions by providing a list of permitted IP addresses. If IP restrictions are enabled, the API key will only work when requests are made from the specified IP addresses. tags: - API Keys requestBody: content: application/json: schema: $ref: '#/components/schemas/ApiKeyCreate' example: label: 'Production API Key' is_active: true is_restriction: true permitted_ips: - '192.168.1.1' - '10.0.0.1' responses: '200': description: The API key was created successfully. content: application/json: schema: $ref: '#/components/schemas/ApiKey' example: id: 123 label: 'Production API Key' value: 'abc123def456ghi789jkl012mno345pqr678stu901vwx234yz' is_active: true is_restriction: true permitted_ips: - '192.168.1.1' - '10.0.0.1' created_at: '2024-01-15T10:30:00Z' '403': $ref: "#/components/schemas/ForbiddenErrorResponse" "422": description: Failed to create an API key content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: 'IP address has an incorrect format' /api-keys/{id}: delete: summary: Delete an API key description: >- Deletes an API key. The API key will be soft-deleted and can no longer be used for authentication. This action cannot be undone. tags: - API Keys parameters: - in: path name: id schema: type: integer required: true description: The unique ID of the API key on the Wavix platform example: 123 responses: '200': description: The API key was deleted successfully. content: application/json: schema: type: object properties: success: type: boolean example: true '403': $ref: "#/components/schemas/ForbiddenErrorResponse" '404': $ref: "#/components/responses/NotFoundError" /api-keys/{id}/activate: patch: summary: Activate an API key description: >- Activates a previously deactivated API key. Once activated, the API key can be used for authentication again. tags: - API Keys parameters: - in: path name: id schema: type: integer required: true description: The unique ID of the API key on the Wavix platform example: 123 responses: '200': description: The API key was activated successfully. content: application/json: schema: type: object properties: success: type: boolean example: true '403': $ref: "#/components/schemas/ForbiddenErrorResponse" '404': $ref: "#/components/responses/NotFoundError" /api-keys/{id}/deactivate: patch: summary: Deactivate an API key description: >- Deactivates an API key. Once deactivated, the API key cannot be used for authentication until it is activated again. tags: - API Keys parameters: - in: path name: id schema: type: integer required: true description: The unique ID of the API key on the Wavix platform example: 123 responses: '200': description: The API key was deactivated successfully. content: application/json: schema: type: object properties: success: type: boolean example: true '403': $ref: "#/components/schemas/ForbiddenErrorResponse" '404': $ref: "#/components/responses/NotFoundError" /trunks: get: tags: - SIP trunks summary: List SIP trunks on the account description: Use this method to list SIP trunks on your account. By default, results are paginated with 25 records per page. operationId: ListSIPtrunksontheaccount parameters: - name: page in: query description: Requested page style: form schema: type: integer format: int32 - name: per_page in: query description: Number of records per page style: form schema: type: integer format: int32 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/SIPtrunklist" "401": $ref: "#/components/responses/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" deprecated: false post: tags: - SIP trunks summary: Create a new SIP trunk description: Use this method to create a new SIP trunk on your account. operationId: CreateanewSIPtrunk parameters: [] requestBody: description: A new SIP trunk configuration parameters content: application/json: schema: $ref: "#/components/schemas/CreateSIPTrunkRequest" required: true responses: "201": description: A created SIP trunk details headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/TrunksResponse" "400": $ref: "#/components/responses/ValidationError" "401": $ref: "#/components/responses/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" "422": description: Failed to create a SIP trunk content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Caller ID must be a verified number in E.164 format deprecated: false "/trunks/{id}": get: tags: - SIP trunks summary: Get a SIP trunk configuration description: Use this method to get a specific SIP trunk configuration details. operationId: GetSIPtrunkconfiguration parameters: - name: id in: path description: SIP trunk ID required: true style: simple schema: type: integer format: int32 example: 3107 responses: "200": description: SIP trunk details headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/TrunksResponse" "403": $ref: "#/components/responses/ForbiddenError" "404": description: An object with the specified ID is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/ForbiddenErrorResponse" deprecated: false put: tags: - SIP trunks summary: Update a SIP trunk configuration description: Use this method to update a specific SIP trunk configuration. operationId: UpdateaSIPtrunk parameters: - name: id in: path description: SIP trunk ID required: true style: simple schema: type: integer format: int32 example: 3107 requestBody: description: Request body containing the required parameters. content: application/json: schema: $ref: "#/components/schemas/CreateSIPTrunkRequest" required: true responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/TrunksResponse" "400": $ref: "#/components/responses/ValidationError" "401": $ref: "#/components/responses/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" deprecated: false delete: tags: - SIP trunks summary: Delete a SIP trunk description: Use this method to delete a SIP trunk from your account. operationId: DeleteaSIPtrunk parameters: - name: id in: path description: SIP trunk ID required: true style: simple schema: type: integer format: int32 example: 3107 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/OperationSuccessfulRepose" "401": $ref: "#/components/responses/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" deprecated: false /buy/countries: get: tags: - Buy summary: Get a list of countries description: Use this method to retrieve a list of countries where phone numbers are available to purchase. operationId: Getalistofcountries parameters: - name: text_enabled_only in: query description: Retrieve countries with text-enabled phone numbers only style: form explode: true schema: type: boolean responses: "200": headers: {} description: Request successful. content: application/json: schema: allOf: - $ref: "#/components/schemas/BuyCountriesResponse" - example: countries: - id: 8669 has_provinces_or_states: false name: Argentina - id: 8650 has_provinces_or_states: true name: Australia example: countries: - id: 8669 has_provinces_or_states: false name: Argentina - id: 8650 has_provinces_or_states: true name: Australia "403": $ref: "#/components/responses/ForbiddenError" deprecated: false "/buy/countries/{country}/regions": get: tags: - Buy summary: Get a list of regions description: Use this method to retrieve a list of states or provinces for countries where `has_provinces_or_states` is `true`. operationId: Getalistofregions parameters: - name: country in: path description: Country unique ID required: true style: simple schema: type: integer format: int32 example: 1892 - name: text_enabled_only in: query description: Retrieves only regions that offer text-enabled numbers style: form explode: true schema: type: boolean responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/BuyCountriesRegionsResponse" - example: regions: - id: 13 name: Alabama - id: 15 name: Arizona - id: 16 name: Arkansas - id: 17 name: California "400": $ref: "#/components/responses/BadRequestError" "403": $ref: "#/components/responses/ForbiddenError" "404": description: Record not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: An object with the specified ID is not found "422": $ref: "#/components/responses/CountryNoRegionsError" deprecated: false "/buy/countries/{country}/cities": get: tags: - Buy summary: Get a list of cities in a country description: Use this method to retrieve a list of cities for countries where `has_provinces_or_states` is `false`. operationId: Getalistofcitiesinacountry parameters: - name: country in: path description: Country ID required: true style: simple schema: type: integer format: int32 example: 1891 - name: text_enabled_only in: query description: Retrieve only cities with text-enabled numbers style: form explode: true schema: type: boolean responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/BuyCountriesCitiesResponse" - 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 "400": $ref: "#/components/responses/BadRequestError" "403": $ref: "#/components/responses/ForbiddenError" "404": description: Record not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: An object with the specified ID is not found deprecated: false "/buy/countries/{country}/regions/{region}/cities": get: tags: - Buy summary: Get a list of cities in a region description: Use this method to retrieve a list of cities for countries where `has_provinces_or_states` is `true`. operationId: Getalistofcitiesinaregion parameters: - name: country in: path description: Country ID required: true style: simple schema: type: integer format: int32 example: 1891 - name: region in: path description: Region ID required: true style: simple schema: type: integer format: int32 example: 821 - name: text_enabled_only in: query description: Retrieve only cities with text-enabled numbers style: form explode: true schema: type: boolean responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/BuyCountriesCitiesResponse" - 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 "400": $ref: "#/components/responses/BadRequestError" "403": $ref: "#/components/responses/ForbiddenError" "404": description: Record not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: An object with the specified ID is not found deprecated: false "/buy/countries/{country}/cities/{city}/dids": get: tags: - Buy summary: Get numbers available for purchase description: Use this method to retrieve a paginated list of phone numbers available for purchase. operationId: Getnumbersavailableforpurchase parameters: - name: country in: path description: Country ID required: true style: simple schema: type: integer format: int32 - name: city in: path description: City ID required: true style: simple schema: type: integer format: int32 - name: text_enabled_only in: query description: Retrieve only text-enabled numbers style: form explode: true schema: type: boolean - name: page in: query description: Requested page style: form explode: true schema: type: integer format: int32 - name: per_page in: query description: Number of records per page style: form explode: true schema: type: integer format: int32 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/BuyCountriesCitiesDidsResponse" - 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 "400": $ref: "#/components/responses/BadRequestError" "403": $ref: "#/components/responses/ForbiddenError" "404": description: Record not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: An object with the specified ID is not found deprecated: false /buy/cart: put: tags: - Cart summary: Add phone numbers to the cart description: Use this method to add phone numbers to the cart in your account. After adding numbers, you can complete the purchase by checking out the cart. operationId: AddDIDnumberstothecart parameters: [] requestBody: description: Array of phone numbers to add to the cart content: application/json: schema: type: object additionalProperties: false required: - ids properties: ids: type: array description: Comma-separated list of numbers to add to the cart items: type: string example: - "541139862174" - "541139862175" required: true responses: "200": description: A list of phone numbers added to 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.0" 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.0" "400": $ref: "#/components/responses/BadRequestError" "403": $ref: "#/components/responses/ForbiddenError" "404": description: Record not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: At least one DID with ID specified in the request was not found deprecated: false get: tags: - Cart summary: Get cart content description: Use this method to get a list of phone numbers that were previously added to the cart. This method does not require any parameters. operationId: Getcartcontent parameters: [] responses: "200": description: Cart content headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/BuyCartResponse" - 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.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 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.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/BadRequestError" "403": $ref: "#/components/responses/ForbiddenError" deprecated: false delete: tags: - Cart summary: Remove numbers from the cart description: Use this method to remove phone numbers from the cart in your account. operationId: Removenumbersfromthecart requestBody: required: true content: application/json: schema: type: object properties: ids: type: array items: type: string description: Comma-separated list of phone numbers to remove example: - "541139862174" - "541139862175" responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/SuccessfulRequest" - example: success: true example: success: true "400": $ref: "#/components/responses/BadRequestError" "403": $ref: "#/components/responses/ForbiddenError" "404": description: Record not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: At least one DID with ID specified in the request was not found deprecated: false /buy/cart/checkout: post: tags: - Cart summary: Check out numbers description: >- Use this method to check out phone numbers currently in the cart. The activation and monthly fee will be automatically deducted from your balance. Ensure you have sufficient funds on your account or a primary card linked with enough balance to complete the purchase. operationId: CheckoutDIDnumbers parameters: [] requestBody: description: Request body containing the required parameters. content: application/json: schema: type: object additionalProperties: false required: - ids properties: ids: type: array description: List of phone numbers to check out from the cart items: type: string example: - "541139862174" - "541139862175" required: true responses: "201": description: Resource created successfully. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/OperationSuccessfulRepose" - example: success: true "403": $ref: "#/components/responses/ForbiddenError" "404": description: Record not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: At least one DID with ID specified in the request was not found deprecated: false /mydids: get: tags: - My numbers summary: Get numbers on the account description: Use this method to list phone numbers on your account. By default, results are paginated with 25 records per page. operationId: GetDIDsontheaccount parameters: - name: city_id in: query description: Filter numbers by city or rate center. style: form explode: true schema: type: integer format: int32 example: 123 - name: search in: query description: Filter numbers by digits in the phone number. You can provide a full number or part of it. style: form explode: true schema: type: string example: "256537" - name: label in: query description: Filter phone numbers by label. Only exact matches are returned. style: form explode: true schema: type: string example: ALEX - name: label_present in: query description: If true, returns only phone numbers with a label. If false, returns only phone numbers without a label. When this parameter is used, the `label` parameter is ignored. style: form explode: true schema: type: boolean example: true - name: page in: query description: Requested page style: form explode: true schema: type: integer format: int32 example: 2 - name: per_page in: query description: The number of records per page style: form explode: true schema: type: integer format: int32 example: 50 responses: "200": description: Request successful. headers: {} content: application/json: schema: $ref: "#/components/schemas/MydidsResponse" deprecated: false delete: tags: - My numbers summary: Return numbers to stock description: Use this method to return phone numbers to stock. operationId: ReturnDIDstostock parameters: - name: ids in: query description: An array of phone number IDs to release from your account required: false schema: type: array items: type: integer example: - 47832123321 - 47832123324 - 478321233215 style: form explode: true - name: dids in: query description: A comma-separated string of phone numbers to release from your account (e.g., "47832123321,47832123324,47832123325") required: false schema: type: string example: 47832123321,47832123324,478321233215 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/OperationSuccessfulRepose" - example: success: true example: success: true "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "422": description: Did not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: DID with id=1848 not found deprecated: false "/mydids/{id}": get: tags: - My numbers summary: Get a specific number details description: Use this method to get a specific phone number details. operationId: GetaspecificDID parameters: - name: id in: path description: Phone number ID required: true style: simple schema: type: integer format: int32 example: 123 responses: "200": description: Request successful. headers: {} content: application/json: schema: $ref: "#/components/schemas/DIDontheAccount" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" deprecated: false put: tags: - My numbers summary: Update a specific number description: Use this method to update a specific phone number configuration settings. operationId: UpdateaspecificDID parameters: - name: id in: path description: Phone number ID required: true style: simple schema: type: integer format: int32 example: 123 requestBody: content: application/json: schema: type: object additionalProperties: false properties: call_recording_enabled: type: boolean description: Turn call recording on or off for the number. example: true transcription_enabled: type: boolean description: Turn transcription on or off for the number. example: true transcription_threshold: type: integer description: Transcription threshold, in seconds. example: 30 sms_relay_url: type: string description: >- SMS relay URL for the number. Incoming SMS and MMS messages will be sent to this URL as HTTP POST requests. If the number isn't SMS-enabled, setting the `sms_relay_url` returns the `HTTP 422 Unprocessable Content` error. To remove inbound message routing for this number, set the value to `null`. Messages will then be forwarded only to the `sms_relay_url` configured on the account. example: https://you-site.com/sms call_status_url: type: string description: Call status callback URL for the number. Status updates are sent to this URL as HTTP POST requests. example: https://your-site.com/calls required: false responses: "200": description: Request successful. headers: {} content: application/json: schema: $ref: "#/components/schemas/DIDontheAccount" "400": $ref: "#/components/responses/BadRequestError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" deprecated: false /mydids/update-sms-enabled: put: tags: - My numbers summary: SMS-enable a specific number description: >- Use this method to enable or disable inbound SMS support on a specific phone number. **Note**: Inbound SMS can only be activated on US and CA numbers. operationId: UpdateSMSenabledstatusforaDID requestBody: content: application/json: schema: type: object additionalProperties: false required: - sms_enabled - id properties: sms_enabled: type: boolean description: Turn inbound SMS support on or off for the number. example: true id: type: integer format: int32 example: 123 description: Phone number ID. required: false responses: "200": description: Inbound SMS support turned on or off successfully. headers: {} content: application/json: schema: type: object properties: success: type: boolean example: true example: success: true "400": $ref: "#/components/responses/BadRequestError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "422": description: Inbound SMS can only be activated on US and CA phone numbers content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Inbound SMS can only be activated on US and CA phone numbers deprecated: false /mydids/update-destinations: post: tags: - My numbers summary: Update inbound call destinations description: >- Use this method to update inbound call routing for phone numbers. You can route calls to a SIP URI, PSTN number, or SIP trunk on the platform. This method allows you to add multiple inbound call destinations for a phone number. Destinations for several phone numbers can be updated with a single request. operationId: UpdateDIDdestinations parameters: [] requestBody: description: Inbound call routing to be configured content: application/json: schema: allOf: - $ref: "#/components/schemas/MydidsUpdateDestinationsRequest" - description: Inbound call routing to be configured required: true responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/OperationSuccessfulRepose" - example: success: true example: success: true "400": $ref: "#/components/responses/BadRequestError" "403": $ref: "#/components/responses/ForbiddenError" "404": description: Request failed. An object with the specified ID is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" example: success: false message: Request failed. An object with the specified ID is not found. deprecated: false /mydids/papers: post: tags: - My numbers summary: Upload a document for numbers description: |- Use this method to upload a 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: UploadadocumentfortheDID 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: A comma-separated list of phone number IDs the document applies to. example: "2321" doc_attachment: type: string description: Path to the document to be uploaded. format: binary doc_id: $ref: "#/components/schemas/Documenttypes" required: false responses: "200": description: Document uploaded successfully. The response includes a list of documents uploaded for the specified phone numbers. content: application/json: schema: type: array items: type: object additionalProperties: false properties: allow_replace: type: boolean description: Indicates whether the document can be replaced. example: false did_number: type: string description: Phone number the document was applied to. example: "+14062355770" doc_content_type: type: string description: MIME type of the uploaded document. example: image/png doc_file_name: type: string description: Name of the uploaded document. example: user-id-card.png doc_type_id: $ref: "#/components/schemas/Documenttypes" id: type: integer description: Document ID. example: 101 status: type: string description: Document review status. example: pending url: type: string description: URL to access the uploaded document example: https://api.wavix.com/v1/mydids/1001/papers/101 example: - 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/mydids/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/mydids/1002/papers/102 "400": $ref: "#/components/responses/BadRequestError" "403": $ref: "#/components/responses/ForbiddenError" deprecated: false /cdr: get: tags: - CDRs summary: Get CDRs on the account description: Use this method to retrieve a list of CDRs for inbound and outbound calls. The records can be filtered by date, phone number, destination or call type. By default, the results are paginated, with 25 records per page. operationId: GetCDRsontheaccount parameters: - name: from in: query description: Start date of your search time range, in `yyyy-mm-dd` format required: true style: form explode: true schema: type: string format: date example: "2023-01-01" - name: to in: query description: End date of your search time range, in `yyyy-mm-dd` format. required: true style: form explode: true schema: type: string format: date example: "2023-09-01" - name: type in: query description: Use `placed` to get CDRs for outbound calls or `received` for inbound calls. required: true style: form explode: true schema: type: string example: received - name: disposition in: query description: Filter calls by disposition. In case the parameter is not specified, only answered calls are returned. To get all calls regardless their disposition pass `all` as the parameter value style: form explode: true schema: allOf: - $ref: "#/components/schemas/Calldisposition" - description: Filter calls by disposition. In case the parameter is not specified, only answered calls are returned. To get all calls regardless their disposition pass `all` as the parameter value - name: from_search in: query description: Filter results by the originating phone number. The parameter can be either full phone number or a part of it. style: form explode: true schema: type: string example: "13524815863" - name: to_search in: query description: Filter results by destination phone number. The parameter can be either full phone number or a part of it. style: form explode: true schema: type: string example: "12565378257" - name: sip_trunk in: query description: Filter results by the unique SIP trunk login used to place an outbound call. For inbound calls, this parameter is ignored. style: form explode: true schema: type: string example: "12321" - name: uuid in: query description: Filter results by Call ID style: form explode: true schema: type: string example: 99df5ffd-962a-410f-bcce-d08f1f7f328c - name: page in: query description: Requested page style: form explode: true schema: type: integer format: int32 example: 1 - name: per_page in: query description: Number of records per page style: form explode: true schema: type: integer format: int32 default: 25 example: 25 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/CdrResponse" "400": $ref: "#/components/responses/BadRequestError" deprecated: false post: tags: - CDRs summary: Search for calls containing specific keywords or phrases description: >- Use this method to search for call transcriptions containing specific keywords or phrases. Wavix automatically labels speakers as an agent and a customer based on the call direction. You can search for phrases said by an agent, a customer, or both. By default, the results are paginated, with 25 records per page. operationId: Searchforcallscontainingspecifickeywordsorphrases parameters: [] requestBody: description: Request body containing the required parameters. content: application/json: schema: $ref: "#/components/schemas/CdrRequest" required: true responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/CDRswithtranscription" deprecated: false "/cdr/{cdr_uuid}/retranscribe": put: tags: - CDRs summary: Transcribe a single call description: >- Use this method to submit a specific call recording for transcription. The processing time depends on the call length and the number of recordings in the queue. Most calls are transcribed within 10 minutes. To receive a notification when the transcription completed, provide a webhook address in the `webhook_url` parameter. Wavix will send a status update to this address. The method responses with the `HTTP 200 OK` status code and no content. After the transcription is completed, the service sends a POST callback to the specified webhook: ```json { "uuid": "123", "status": "completed" } ``` - uuid - the unique identifier of the recorded call - status - status of the operation. Can be either `completed` indicating the recorded call was successfully transcribed or `failed` which indicates that there was an error while transcribing the call. operationId: Transcribeasinglecall parameters: - name: cdr_uuid in: path description: Unique identifier of a call required: true style: simple schema: type: string example: bbaa37bf-430a-46da-ade3-c248e407016 requestBody: description: Transcribe a call request content: application/json: schema: allOf: - $ref: "#/components/schemas/CdrRetranscribeRequest" - description: Transcribe a call request required: true responses: "200": description: Indicates successful request content: application/json: schema: type: object additionalProperties: false properties: success: type: boolean example: true required: - success example: success: true "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "422": $ref: "#/components/responses/ValidationError" deprecated: false "/cdr/{cdr_uuid}/transcription": get: tags: - CDRs summary: Request transcription for a specific call description: > Use this method to retrieve transcription for a specific recorded call. The response contains a JSON object with an array of `turn` objects. Each `turn` contains: - The text spoken by a particular speaker - The start and end times for that text, calculated from the moment the call was answered For convenience, the response also provides the full text for each speaker. operationId: Requesttranscriptionforaspecificcall parameters: - name: cdr_uuid in: path description: Unique identifier of a call required: true style: simple schema: type: string example: bbaa37bf-430a-46da-ade3-c248e407016 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/Calltranscription" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" deprecated: false "/cdr/{uuid}": get: tags: - CDRs summary: Get details of a specific call description: Use this method to retrieve specific outbound or inbound call details. operationId: Getcalldetailsofaspecificcall parameters: - name: uuid in: path description: Unique identifier of a call required: true style: simple schema: type: string example: aa566501-c591-4a8b-b3b9-cc1295398b72 - name: show_transcription in: query description: Include transcription information in the response style: form explode: true schema: type: boolean example: true responses: "200": description: Specific call details headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/GetCdrResponse" "404": $ref: "#/components/responses/NotFoundError" deprecated: false /cdr/all: get: tags: - CDRs summary: Get CDRs in NDJSON format description: Use this method to retrieve Call Detail Records (CDRs) in Newline-Delimeted JSON (NDJSON) format. Useful for bulk data export. operationId: GetallCDRrecordsasNDJSONstream parameters: - name: from in: query description: Start date of your search time range, in `yyyy-mm-dd` format required: true style: form explode: true schema: type: string format: date example: "2023-01-01" - name: to in: query description: End date of your search time range, in `yyyy-mm-dd` format. required: true style: form explode: true schema: type: string format: date example: "2023-09-01" - name: type in: query description: Use `placed` to get CDRs for outbound calls or `received` for inbound calls. required: true style: form explode: true schema: type: string example: received - name: disposition in: query description: Filter calls by disposition. In case the parameter is not specified, only answered calls are returned. To get all calls regardless their disposition pass `all` as the parameter value style: form explode: true schema: allOf: - $ref: "#/components/schemas/Calldisposition" - description: Filter calls by disposition. In case the parameter is not specified, only answered calls are returned. To get all calls regardless their disposition pass `all` as the parameter value - name: from_search in: query description: Filter results by the originating phone number. The parameter can be either full phone number or a part of it. style: form explode: true schema: type: string example: "13524815863" - name: to_search in: query description: Filter results by destination phone number. The parameter can be either full phone number or a part of it. style: form explode: true schema: type: string example: "12565378257" - name: sip_trunk in: query description: Filter results by the unique SIP trunk login used to place an outbound call. For inbound calls, this parameter is ignored. style: form explode: true schema: type: string example: "12321" - name: uuid in: query description: Filter results by Call ID style: form explode: true schema: type: string example: 99df5ffd-962a-410f-bcce-d08f1f7f328c - name: page in: query description: Requested page style: form explode: true schema: type: integer format: int32 example: 1 - name: per_page in: query description: Number of records per page style: form explode: true schema: type: integer format: int32 default: 25 example: 25 responses: "200": description: Streaming NDJSON response with CDR records. headers: Content-Type: description: application/x-ndjson schema: type: string example: application/x-ndjson Last-Modified: description: Last modified timestamp schema: type: string example: "0" ETag: description: Entity tag schema: type: string example: "0" content: application/x-ndjson: schema: type: string description: NDJSON stream of CDR records, one JSON object 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/ForbiddenError" deprecated: false /recordings: get: tags: - Call recording summary: List call recordings description: Use this method to retrieve a list of call recordings. By default, the results are paginated, with 25 records per page. operationId: Getcallrecordings parameters: - name: from_date in: query description: Start date of your search time range, in `yyyy-mm-dd` format. required: false style: form explode: true schema: type: string format: date example: "2023-01-01" - name: to_date in: query description: End date of your search time range, in `yyyy-mm-dd` format. required: false style: form explode: true schema: type: string format: date example: "2023-12-31" - name: from in: query description: Filter results by Caller ID. required: false style: form explode: true schema: type: string example: "1234567890" - name: to in: query description: Filter results by destination phone number. The parameter can be either full phone number or a part of it. required: false style: form explode: true schema: type: string example: "1987654321" - name: call_uuid in: query description: Filter results by call ID. required: false style: form explode: true schema: type: string example: aa566501-c591-4a8b-b3b9-cc1295398b72 - name: sip_trunks in: query description: Filter results by SIP trunk IDs. required: false style: form explode: true schema: type: array items: type: string example: - "123" - "456" - name: dids in: query description: Filter results by DIDs required: false style: form explode: true schema: type: array items: type: string example: - "12344213" responses: "200": description: A list of recorded calls matching the filter criteria. headers: {} content: application/json: schema: type: object additionalProperties: false properties: recordings: type: array items: $ref: "#/components/schemas/CallRecordingResponse" invalid: type: object items: $ref: "#/components/schemas/InvalidRecordingResponse" pagination: $ref: "#/components/schemas/Pagination" "401": $ref: "#/components/responses/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" deprecated: false "/recordings/{cdr_uuid}": get: tags: - Call recording summary: Get a specific call recording description: Use this method to retrieve a specific call recording. operationId: Getcallrecordingbycdruuid parameters: - name: cdr_uuid in: path description: Call ID. required: true style: simple explode: false schema: type: string example: aa566501-c591-4a8b-b3b9-cc1295398b72 responses: "200": description: Redirects to the recording file URL. headers: Location: description: URL to the recording file schema: type: string example: https://api.wavix.com/v1/recordings/uuid "400": description: Recording was deleted headers: {} content: application/json: schema: type: object properties: message: type: string example: deleted due to the retention policy settings deleted_at: type: string format: date-time example: 2023-06-15T10:30:00Z "401": $ref: "#/components/responses/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" deprecated: false "/recordings/{id}": delete: tags: - Call recording summary: Delete a specific recording description: Use this method to delete a specific recording. operationId: Deletecallrecording parameters: - name: id in: path description: Call recording ID required: true style: simple explode: false schema: type: integer format: int32 example: 123 responses: "200": description: The recording was deleted successfully. headers: {} content: application/json: schema: type: object properties: success: type: boolean example: true example: success: true "400": description: Recording was previously deleted. headers: {} content: application/json: schema: type: object properties: message: type: string example: deleted by user deleted_at: type: string format: date-time example: 2023-06-15T10:30:00Z "401": $ref: "#/components/responses/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" deprecated: false /speech-analytics: post: tags: - Speech Analytics summary: Upload a file for transcription description: > Use this method to upload a file and submit it for transcription. When the transcription is completed, Wavix sends a POST callback to the webhook specified in the request. Callback example: ```json { "request_id": "e865ea07-25af-4fdd-876e-04b0d41d5ebd", "status": "completed", "error": null } ``` - request_id - the unique identifier of the transcription request - status - status of the operation. Can be either `completed` indicating the file was successfully transcribed or `failed` which indicates that there was an error while transcribing the file. - error - in case the transcription failed, this field contains a description of the error that occurred. If the transcription was successful, this field is null. operationId: Submitafilefortranscription parameters: [] requestBody: content: multipart/form-data: encoding: {} schema: required: - file - callback_url type: object additionalProperties: false properties: file: type: string description: Binary file content to submit for transcription. The file must be 25 MB or less. Only WAV, MP3, and MP4 stereo files are supported. format: binary callback_url: type: string description: Webhook URL where transcription status updates are sent example: https://you-site.com/webhook insights: type: boolean description: Enable insights generation for the transcription example: true required: false responses: "200": description: The file successfully submitted headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/SubmitaFileforTranscriptionResponse" - example: file: file.mp3 request_id: e865ea07-25af-4fdd-876e-04b0d41d5ebd success: true example: file: file.mp3 request_id: e865ea07-25af-4fdd-876e-04b0d41d5ebd success: true "400": description: Invalid parameter content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Request failed. Missing or invalid parameter "422": description: The callback_url must be a valid URL address content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: The callback_url must be a valid URL address deprecated: false "/speech-analytics/{uuid}": get: tags: - Speech Analytics summary: Query a specific transcription description: Use this method to retrieve a specific file transcription. operationId: Queryaspecifictranscription parameters: - name: uuid in: path description: Transcription request ID required: true style: simple schema: type: string example: e865ea07-25af-4fdd-876e-04b0d41d5ebd responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/FileTranscription" - 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 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 "202": description: Transcription is still pending headers: {} content: application/json: schema: type: object properties: success: type: boolean example: true message: type: string example: The transcription is still pending example: success: true message: The transcription is still pending "404": description: Record not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Request failed. An object with the specified ID is not found. deprecated: false put: tags: - Speech Analytics summary: Retranscribe an uploaded file description: Use this method to retranscribe an uploaded audio file. operationId: Retranscribeaudiofile parameters: - name: uuid in: path description: Unique identifier of the transcription request required: true style: simple schema: type: string example: e865ea07-25af-4fdd-876e-04b0d41d5ebd requestBody: content: application/json: schema: type: object additionalProperties: false required: - callback_url properties: callback_url: type: string description: Webhook URL where transcription status updates are sent example: https://you-site.com/webhook insights: type: boolean description: Enable insights generation for the transcription example: true required: false responses: "200": description: Request successfully submitted headers: {} content: application/json: schema: type: object properties: success: type: boolean example: true example: success: true "400": description: Request failed. Missing or invalid parameter content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Request failed. Missing or invalid parameter "404": description: Record not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Request failed. An object with the specified ID is not found. "422": description: The callback_url must be a valid URL address content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: The callback_url must be a valid URL address deprecated: false "/speech-analytics/{uuid}/file": get: tags: - Speech Analytics summary: Retrieve the original file description: Use this method to retrieve the original file that was submitted for transcription. operationId: Gettranscriptionfile parameters: - name: uuid in: path description: Unique identifier of the transcription request required: true style: simple schema: type: string example: e865ea07-25af-4fdd-876e-04b0d41d5ebd responses: "200": description: Request successful. content: audio/wav: schema: type: string format: binary audio/mpeg: schema: type: string format: binary audio/mp4: schema: type: string format: binary "404": description: Record not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Request failed. An object with the specified ID is not found. deprecated: false /call/webhooks: get: tags: - Call webhooks summary: List configured webhooks description: >- Use this method to retrieve a list of configured call webhooks. Wavix sends POST callbacks to your webhook URL for on-call and post-call events. - The `on-call` callback includes real-time call status updates. It's triggered when a call is initiated, answered, and ends. - The `post-call` callback includes details such as call disposition, duration, and cost. It's triggered after the call ends. operationId: Getcallwebhooks parameters: [] responses: "200": description: A list of webhooks headers: {} content: application/json: schema: $ref: "#/components/schemas/GetCallWebhookResponse" example: - 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/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" deprecated: false post: tags: - Call webhooks summary: Create a webhook description: >- Use this method to create a call webhook. Wavix sends POST callbacks to your webhook URL for on-call and post-call events. - Use `on-call` webhook to receive real-time call status updates. It's triggered when a call is initiated, answered, and ends. - The `post-call` webhook is triggered after the call ends. The callback includes details such as call disposition, duration, and cost. operationId: Createcallwebhook parameters: [] requestBody: description: Webhook configuration content: application/json: schema: 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: >- Use `on-call` to receive real-time status updates. Callbacks are sent when the call is initiated, answered, and ended. Use `post-call` to receive a callback after the call ends. The callback includes details such as call disposition, duration, and cost. enum: - post-call - on-call example: post-call example: url: https://you-site.com/webhook event_type: post-call required: true responses: "201": description: Webhook successfully created headers: {} content: application/json: schema: $ref: "#/components/schemas/CallWebhookResponse" example: success: true event_type: post-call url: https://you-site.com/webhook "400": description: Request failed. Missing or invalid parameter headers: {} content: application/json: schema: type: object properties: message: type: string example: Missing or invalid parameter url example: message: Missing or invalid parameter url "401": $ref: "#/components/responses/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" deprecated: false delete: tags: - Call webhooks summary: Delete a webhook description: Use this method to delete a call webhook configuration. operationId: Deletecallwebhook parameters: - name: event_type in: query description: Type of call events webhook to delete required: true style: form explode: true schema: type: string enum: - post-call - on-call description: |- Use `post-call` to stop receiving post-call callbacks. Use `on-call` to stop receiving real-time call status updates. example: post-call responses: "200": description: Webhook successfully deleted headers: {} content: application/json: schema: type: object properties: success: type: boolean example: true example: success: true "400": description: Request failed. Missing or invalid parameter headers: {} content: application/json: schema: type: object properties: message: type: string example: Missing or invalid parameter event_type example: message: Missing or invalid parameter event_type "401": $ref: "#/components/responses/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" "422": $ref: "#/components/responses/ValidationError" deprecated: false /call: post: tags: - Call control summary: Start a new call description: Use this method to start a new outbound call. operationId: StartCall parameters: [] requestBody: description: Call parameters content: application/json: schema: $ref: "#/components/schemas/CallRequest" required: true responses: "200": description: Call started successfully content: application/json: schema: $ref: "#/components/schemas/CallResponse" "400": description: Validation error content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Validation error errors: type: object properties: to: type: string example: required "401": description: Access denied content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Access Denied deprecated: false get: tags: - Call control summary: Fetch active calls description: Use this method to retrieve all active calls on your account. operationId: GetUserCalls parameters: [] responses: "200": description: A list of active calls content: application/json: schema: $ref: "#/components/schemas/CallsInfoResponse" "401": description: Access denied content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Access Denied deprecated: false "/call/{uuid}": get: tags: - Call control summary: Get a specific call details description: Use this method to retrieve a specific call details. operationId: GetUserCall parameters: - name: uuid in: path description: Call ID. required: true schema: type: string format: uuid responses: "200": description: Call details successfully retrieved. content: application/json: schema: $ref: "#/components/schemas/GetCallResponse" "401": description: Access denied content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Access Denied "404": description: Call not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Call not found deprecated: false delete: tags: - Call control summary: End a call description: Use this method to end an active call. operationId: TerminateCall parameters: - name: uuid in: path description: Call ID. required: true schema: type: string format: uuid responses: "200": description: Call successfully ended. content: application/json: schema: type: object properties: success: type: boolean example: true "401": description: Access denied content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Access Denied "404": description: Call not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Call 5dccb6b0-f35c-488c-867b-86fb01c4415 not found deprecated: false "/call/{uuid}/answer": post: tags: - Call control summary: Answer an inbound call description: >- Use this method to programmatically answer an inbound call. Make sure you've configured the inbound call webhook on a number using [API](/api-reference/my-numbers/update-a-specific-number) or GUI. If configured, Wavix posts call status updates to the webhook associated with the number. Optionally, you can immediately start call media streaming when the inbound call is answered. To start streaming, paste the following JSON in the request body. Wavix will start media streaming to a WebSocket URL specified in the request. ```json { "stream_channel": "inbound", "stream_type": "twoway", "stream_url": "wss://your-websocket-server-url-and-port" } ``` operationId: AnswerCall parameters: - name: uuid in: path description: Call ID. required: true schema: type: string format: uuid requestBody: description: Answer call request parameters content: application/json: schema: $ref: "#/components/schemas/AnswerCallRequest" required: true responses: "200": description: Call successfully answered. content: application/json: schema: type: object properties: success: type: boolean example: true "400": description: Validation error content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Validation error errors: type: object properties: stream_url: type: string example: Stream URL must be a valid WebSocket URL (ws:// or wss://) stream_type: type: string example: Stream type must be 'oneway' or 'twoway' stream_channel: type: string example: Stream channel must be 'inbound', 'outbound', or 'both' "401": description: Access denied content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Access Denied "404": description: Call not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Call with ID=5dcb6b0-f35c-488c-867b-86fb012c4415 not found deprecated: false "/call/{uuid}/streams": post: tags: - Call control summary: Start call streaming description: >- Use this method to start call streaming. Wavix Call Media Streaming allows you to stream inbound (to Wavix), outbound (from Wavix), or both channels. Wavix also supports unidirectional streaming when your WebSocket only receives media from the platform, and bi-directional streaming when your WebSocket can send back audio and commands to Wavix. **Note**. You can have up to 5 unidirectional streams for a call. Only one bi-directional stream can be created. operationId: StartCallStreaming parameters: - name: uuid in: path description: Call ID. required: true schema: type: string format: uuid requestBody: description: Streaming configuration content: application/json: schema: $ref: "#/components/schemas/StreamCallRequest" required: true responses: "200": description: Streaming started successfully content: application/json: schema: $ref: "#/components/schemas/StartCallStreamingResponse" "400": description: Validation error content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Validation error errors: type: object properties: stream_url: type: string example: Stream URL must be a valid WebSocket URL (ws:// or wss://) stream_type: type: string example: Stream type must be 'oneway' or 'twoway' stream_channel: type: string example: Stream channel must be 'inbound', 'outbound', or 'both' "401": description: Access denied content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Access Denied deprecated: false "/call/{uuid}/streams/{stream_uuid}": delete: tags: - Call control summary: Stop call streaming description: Use this method to stop call media streaming. operationId: DeleteCallStream parameters: - name: uuid in: path description: Call ID. required: true schema: type: string format: uuid - name: stream_uuid in: path description: Stream ID. required: true schema: type: string format: uuid responses: "200": description: Stream successfully stopped. content: application/json: schema: $ref: "#/components/schemas/DeleteCallStreamResponse" "401": description: Access denied content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Access Denied deprecated: false "/call/{uuid}/play": post: tags: - Call control summary: Play audio during a call description: Use this method to play an audio in an active call. operationId: PlayAudio parameters: - name: uuid in: path description: Call ID. required: true schema: type: string format: uuid requestBody: description: Audio playback parameters content: application/json: schema: $ref: "#/components/schemas/PlayAudioRequest" required: true responses: "200": description: Audio playback successfully started content: application/json: schema: type: object properties: success: type: boolean example: true "400": description: Validation error content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Validation error errors: type: object properties: audio_file: type: string example: required "401": description: Access denied content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Access denied "404": description: Call not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: call not found deprecated: false "/call/{uuid}/audio": delete: tags: - Call control summary: Stop audio playback description: Use this method to stop audio that's currently playing in an active call. operationId: StopAudio parameters: - name: uuid in: path description: Call ID. required: true schema: type: string format: uuid responses: "200": description: Audio playback successfully stopped. content: application/json: schema: type: object properties: success: type: boolean example: true "401": description: Access denied content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Access denied "404": description: Call not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Call not found deprecated: false "/call/{uuid}/collect": post: tags: - Call control summary: Collect DTMF input description: Use this method to collect DTMF (dual-tone multi-frequency) input in an active call. operationId: CollectDtmf parameters: - name: uuid in: path description: Call ID. required: true schema: type: string format: uuid requestBody: description: DTMF collection parameters content: application/json: schema: $ref: "#/components/schemas/CollectDtmfRequest" required: true responses: "200": description: DTMF collection successfully started. content: application/json: schema: type: object properties: success: type: boolean example: true "400": description: Validation error content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Invalid JSON format "401": description: Access denied content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Access denied "404": description: Call not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Call not found deprecated: false /webrtc/tokens: post: tags: - Wavix Embeddable summary: Generate a Wavix Embeddable Widget token description: Use this method to generate a Wavix Embeddable Widget token for SIP trunk integration. operationId: GenerateWidgetToken parameters: [] requestBody: description: Widget token generation parameters content: application/json: schema: $ref: "#/components/schemas/GenerateWidgetTokenRequest" required: true responses: "201": description: Widget token generated successfully content: application/json: schema: $ref: "#/components/schemas/WidgetTokenResponse" "400": description: Bad request content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Request failed. Missing or invalid parameter sip_trunk. "401": description: Unauthorized content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Auth error "403": description: Feature disabled content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Request failed. The feature is disabled for the account. "404": description: SIP trunk not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Request failed. SIP trunk with ID sip_trunk is not found. servers: - url: https://api.wavix.com/v2 variables: {} deprecated: false get: tags: - Wavix Embeddable summary: Get active widget tokens description: Use this method to list all active Wavix Embeddable widget tokens on your account. By default, results are paginated with 25 items per page. operationId: GetActiveWidgetTokens parameters: [] responses: "200": description: A list of active widget tokens content: application/json: schema: type: object properties: items: type: array items: $ref: "#/components/schemas/WidgetTokenInfo" pagination: $ref: "#/components/schemas/WebrtcPagination" "401": description: Unauthorized content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Unauthorized "403": description: The feature is disabled for the account. content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Request failed. The feature is disabled for the account. servers: - url: https://api.wavix.com/v2 variables: {} deprecated: false "/webrtc/tokens/{uuid}": get: tags: - Wavix Embeddable summary: Get a Wavix Embeddable Widget token description: Use this method to get detailed information about a specific Wavix Embeddable Widget token. operationId: GetWidgetTokenInfo parameters: - name: uuid in: path description: Token ID. required: true schema: type: string format: uuid responses: "200": description: The widget token content: application/json: schema: $ref: "#/components/schemas/WidgetTokenInfo" "401": description: Unauthorized content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Auth error "403": description: The feature is disabled for the account content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Request failed. The feature is disabled for the account. "404": description: The widget token not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Request failed. Widget token with ID uuid is not found. servers: - url: https://api.wavix.com/v2 variables: {} deprecated: false put: tags: - Wavix Embeddable summary: Update a widget token payload description: Use this method to update the payload associated with a Wavix Embeddable Widget token. This method updates the payload only. The existing payload linked to the token is replaced with the new one. operationId: ManageWidgetTokenPayload parameters: - name: uuid in: path description: Token ID required: true schema: type: string format: uuid requestBody: description: New payload data content: application/json: schema: $ref: "#/components/schemas/UpdateWidgetTokenPayloadRequest" required: true responses: "200": description: The widget token payload successfully updated content: application/json: schema: $ref: "#/components/schemas/WidgetTokenInfo" "400": description: Bad request content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Request failed. Missing or invalid parameter payload. "401": description: Unauthorized content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Unauthorized "403": description: The feature is disabled for the account content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Request failed. The feature is disabled for the account. "404": description: Widget token not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Request failed. Widget token with ID uuid is not found. servers: - url: https://api.wavix.com/v2 variables: {} deprecated: false delete: tags: - Wavix Embeddable summary: Delete a Wavix Embeddable Widget token description: Use this method to delete a Wavix Embeddable Widget token. After deletion, the token can't be used to authenticate widget sessions, and any active session associated with it will be terminated. operationId: DeleteWidgetToken parameters: - name: uuid in: path description: Token ID required: true schema: type: string format: uuid responses: "200": description: Widget token successfully deleted content: application/json: schema: type: object properties: success: type: boolean example: true "401": description: Unauthorized content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Unauthorized "403": description: The feature is disabled for the account content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Request failed. The feature is disabled for the account. "404": description: Widget token not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Request failed. Widget token with ID uuid is not found. servers: - url: https://api.wavix.com/v2 variables: {} deprecated: false /messages/sender_ids: get: tags: - SMS and MMS summary: List Sender IDs description: Use this method to get a list of all Sender IDs and their details. operationId: ListSenderIDsontheaccount parameters: [] responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/MessagesSenderIdsResponse" "403": $ref: "#/components/responses/ForbiddenError" deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} post: tags: - SMS and MMS summary: Create a new Sender ID description: >- Use this method to create a new Sender ID.\After you create the sender ID, wait for it to be allowlisted for the destination countries. To check the status, use the [Get a sender ID](https://wavix.com) method. **Important** To create Sender IDs in the US, use the 10DLC API. operationId: ProvisionanewSenderID parameters: [] requestBody: description: Request body containing the required parameters. content: application/json: schema: $ref: "#/components/schemas/MessagesSenderIdsRequest" required: true responses: "201": description: Resource created successfully. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/MessagesSenderIdsResponse1" "400": description: Alphanumeric Sender ID cannot be allow listed in US via API content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Alphanumeric Sender ID cannot be allow listed in US via API "403": $ref: "#/components/responses/ForbiddenError" deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} "/messages/sender_ids/{id}": get: tags: - SMS and MMS summary: Get a Sender ID description: Use this method to retrieve details of a specific Sender ID. operationId: GetSenderIDById parameters: - name: id in: path required: true description: Unique identifier of a Sender ID schema: type: string format: uuid responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/MessagesSenderIdResponse" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} delete: tags: - SMS and MMS summary: Delete a Sender ID description: >- Use this method to delete a Sender ID. **Important** Use carefully. Deleting a Sender ID is irreversible. Any attempts to send messages carrying the deleted Sender ID will fail. operationId: DeleteaSenderID parameters: - name: id in: path description: Unique identifier of the Sender ID to delete required: true style: simple schema: type: string example: fc34ba88-1eee-476e-b09e-dae63dc441e0 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/OperationSuccessfulRepose" - example: success: true "403": $ref: "#/components/responses/ForbiddenError" "404": description: An object with the specified ID is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" "422": description: Sender ID not found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Sender ID not found deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} /messages/opt_outs: get: tags: - SMS and MMS summary: Get a list of opted-out phone numbers description: Use this method to retrieve a list of phone numbers that opted out of receiving SMS and MMS messages. By default, the results are paginated, with 25 records per page. operationId: ListOptOuts parameters: - in: query name: sender_id schema: type: string description: Return only the phone numbers that opted out of a specific Sender ID. example: 'MySender' - in: query name: campaign_id schema: type: string description: Return only the phone numbers that opted out of a specific 10DLC Campaign. example: 'C123456' - in: query name: created_after schema: type: string format: date description: Start date of your search time range, in 'yyyy-mm-dd' format. example: '2024-01-01' - in: query name: created_before schema: type: string format: date description: End date of your search time range, in 'yyyy-mm-dd' format. example: '2024-12-31' - in: query name: page schema: type: integer minimum: 1 description: Requested page example: 1 - in: query name: per_page schema: type: integer minimum: 1 maximum: 100 description: Number of records per page. example: 25 responses: "200": description: A paginated list of opted-out phone numbers that match the filter criteria. content: application/json: schema: $ref: "#/components/schemas/OptOutsListResponse" example: 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/BadRequestError" "403": $ref: "#/components/responses/ForbiddenError" "422": description: Invalid date range content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: "Invalid date range. The created_before must be later than created_after." deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} post: tags: - SMS and MMS summary: Unsubscribe a phone number from SMS messages description: >- Use this method to opt out a phone number from receiving SMS and MMS messages. You can either: - Opt out a phone number for a specific Sender ID. - Block all outbound messages sent to the phone number. operationId: Opt-outaphonenumberofSMSmessages parameters: [] requestBody: description: A request to opt out a phone number from receiving further communications content: application/json: schema: allOf: - $ref: "#/components/schemas/MessagesOptOutsRequest" - description: A request to opt out a phone number from receiving further communications example: phone_number: "+15551234567" sender_id: fc34ba88-1eee-476e-b09e-dae63dc441e0 required: true responses: "201": description: Resource created successfully. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/OperationSuccessfulRepose" - example: success: true example: success: true "400": $ref: "#/components/responses/BadRequestError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "422": $ref: "#/components/responses/ValidationError" deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} /messages: post: tags: - SMS and MMS summary: Send SMS or MMS message description: >- Send SMS or MMS messages to your users. SMS messages can use any numeric or alphanumeric Sender ID registered in Wavix. MMS messages are available for U.S. numbers only and require a 10-digit numeric or toll-free Sender ID. Specify a `callback_url` to receive delivery reports when messages reach their destination. **Rate limit**: You can send up to 20 messages per phone number in 24 hours. operationId: SendSMSorMMSmessage parameters: [] requestBody: description: An SMS or MMS message to be sent content: application/json: schema: allOf: - $ref: "#/components/schemas/MessagesRequest" - description: An SMS or MMS message to be sent 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: The message successfully submitted. headers: {} content: application/json: schema: type: object additionalProperties: false properties: carrier_fees: type: string description: Carrier fees applied to the message example: "0.0" charge: type: string description: Total charge for the message example: "0.0" direction: type: string description: Message direction. Can be either inbound or outbound. example: outbound delivered_at: type: string description: Timestamp when the message was delivered format: date-time example: null error_message: type: string nullable: true description: Error message, if any. example: null from: type: string description: Sender of the message example: Sender mcc: type: string description: Mobile country code example: "310" mnc: type: string description: Mobile network code example: "260" message_body: type: object additionalProperties: false properties: text: type: string description: Text content of the message example: This is a test MMS message with multiple media attachments. media: type: array items: type: string format: uri example: https://api.examples.com/v3/messages/attachments/abc123/file1.mp3 message_id: type: string description: Unique identifier of the message example: abc123de-4567-890f-gh12-ijklmnop3456 message_type: type: string description: Type of the message example: mms segments: type: integer description: Number of message segments example: 1 sent_at: type: string description: Timestamp when the message was sent format: date-time example: null status: type: string description: Current status of the message example: accepted submitted_at: type: string description: Timestamp when the message was submitted example: 2025-09-22T09:07:53Z tag: type: string description: Optional tag for the message example: campaign_test to: type: string description: Recipient phone number example: "+15551234567" example: carrier_fees: "0.0" charge: "0.0" delivered_at: null 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: null status: accepted submitted_at: 2025-09-22T09:07:53 tag: campaign_test to: "+15551234567" "400": $ref: "#/components/responses/BadRequestError" "403": $ref: "#/components/responses/ForbiddenError" deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} get: tags: - SMS and MMS summary: Get messages on your account description: >- Use this method to retrieve outbound and inbound SMS or MMS. Messages can be filtered by date, originating (Sender ID), destination phone numbers, or message `tag`. By default, the results are paginated with 25 records per page. operationId: Getmessagesonyouraccount parameters: - name: sent_after in: query description: Start date of your search time range, in `yyyy-mm-dd` format. style: form explode: true schema: type: string example: 2023-04-10 - name: sent_before in: query description: End date of your search time range, in `yyyy-mm-dd` format. style: form explode: true schema: type: string example: 2023-04-13 - name: type in: query description: Filter messages by the direction of the traffic, i.e. `inbound` or `outbound` required: true style: form explode: true schema: type: string example: outbound - name: from in: query description: Filter messages by SMS sender. For `outbound` message contains a Sender ID used to sent the message, for `inbound` message contains a phone number originated the message. style: form explode: true schema: type: string example: "15072429497" - name: to in: query description: Filter messages by destination phone number. For `outbound` message contains phone number the message was sent to, for `inbound` message contains a SMS-enabled DID on the Wavix platform. style: form explode: true schema: type: string example: "16419252149" - name: status in: query description: Filter messages by message delivery status. style: form explode: true schema: allOf: - $ref: "#/components/schemas/Messagedeliverystatus" - description: Filter messages by delivery status. - name: tag in: query description: Filter messages by `tag`. For outbound SMS and MMS messages only, for inbound messages the parameter is ignored. style: form explode: true schema: type: string example: campaignX - name: message_type in: query description: Filter messages by message type (SMS or MMS) style: form explode: true schema: type: string enum: - sms - mms example: sms - name: page in: query description: Requested page style: form explode: true schema: type: integer format: int32 example: 2 - name: per_page in: query description: Number of records per page style: form explode: true schema: type: integer format: int32 example: 50 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/MessagesResponse1" - example: items: - charge: "0.0475" delivered_at: 2023-08-29T12:32:45.000Z direction: outbound error_message: null from: SenderName 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/BadRequestError" "403": $ref: "#/components/responses/ForbiddenError" deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} "/messages/{id}": get: tags: - SMS and MMS summary: Get a specific message description: Use this method to retrieve a specific SMS or MMS message details. operationId: Getaspecificmessage parameters: - name: id in: path description: Unique identifier of the message required: true style: simple explode: false schema: type: string example: 3a525ca2-6909-4c72-9399-905adf7f3a74 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/MessagesResponse" - 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 "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} /messages/all: get: tags: - SMS and MMS summary: Get messages in NDJSON format description: Use this method to retrieve outbound and inbound SMS or MMS messages in Newline-Delimited JSON (NDJSON) format. Useful for bulk data export. operationId: Getallmessages parameters: - name: sent_after in: query description: Start date of your search time range, in `yyyy-mm-dd HH:MM:SS` format. style: form explode: true schema: type: string example: 2023-04-10 00:00:00 - name: sent_before in: query description: End date of your search time range, in `yyyy-mm-dd HH:MM:SS` format. style: form explode: true schema: type: string example: 2023-04-13 23:59:59 - name: type in: query description: Filter messages by the direction of SMS traffic, i.e. `inbound` or `outbound` required: true style: form explode: true schema: type: string example: outbound - name: from in: query description: Filter messages by SMS sender. For `outbound` message contains a Sender ID used to sent the message, for `inbound` message contains a phone number originated the message. style: form explode: true schema: type: string example: "15072429497" - name: to in: query description: Filter messages by destination phone number. For `outbound` message contains phone number the message was sent to, for `inbound` message contains a SMS-enabled DID on the Wavix platform. style: form explode: true schema: type: string example: "16419252149" - name: status in: query description: Filter messages by message delivery status. style: form explode: true schema: allOf: - $ref: "#/components/schemas/Messagedeliverystatus" - description: Filter messages by message delivery status. - name: tag in: query description: Filter messages by tag. For outbound SMS and MMS messages only, for inbound messages the parameter is ignored. style: form explode: true schema: type: string example: campaignX - name: message_type in: query description: Filter messages by message type (sms or mms) style: form explode: true schema: type: string enum: - sms - mms example: sms responses: "200": description: Request successful. headers: Content-Type: description: application/x-ndjson schema: type: string example: application/x-ndjson Last-Modified: description: Last modification time schema: type: string example: "0" ETag: description: Entity tag schema: type: string example: "0" content: application/x-ndjson: schema: type: string description: Newline-delimited JSON stream of message objects 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/ForbiddenError" deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} /10dlc/brands: get: tags: - 10DLC summary: List 10DLC Brands on your account description: >- Use this method to query a list of 10DLC Brands on your account. The results can be filtered by date, brand name, company legal name, and status. By default, the results are paginated, with 25 records per page. The response contains a paginated list of Brand objects that match the search criteria. operationId: List10DLCBrandsonyouraccount parameters: - name: dba_name in: query description: Filter results by the brand name style: form explode: true schema: type: string example: Brand - name: company_name in: query description: Filter results by the company legal name style: form explode: true schema: type: string example: Company - name: entity_type in: query description: Filter results by the business entity type style: form explode: true schema: type: string example: PRIVATE_PROFIT - name: status in: query description: Filter results by Brand Identity verification status style: form explode: true schema: type: string example: VERIFIED - name: country in: query description: Filter results by a Brand’s registration country style: form explode: true schema: type: string example: US - name: show_deleted in: query description: Use `true` to query active and deleted brands. By default, the deleted Brands are excluded from the results. style: form explode: true schema: type: boolean default: false example: false - name: ein_taxid in: query description: ein_taxid style: form explode: true schema: type: string example: "999999999" - name: mock in: query description: Use `true` to query the mock Brands on your account only style: form explode: true schema: type: boolean default: false example: false - name: created_before in: query description: Filter results by specifying the end date for the Brand creation date range in the `yyyy-mm-dd` format style: form explode: true schema: type: string example: 2024-08-22 - name: created_after in: query description: Filter results by specifying the start date for the Brand creation date range in the `yyyy-mm-dd` format style: form explode: true schema: type: string example: 2024-08-22 - name: page in: query description: The page number style: form explode: true schema: type: integer format: int32 example: 1 - name: per_page in: query description: The number of records per page style: form explode: true schema: type: integer format: int32 example: 25 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/Listof10DLCBrands" - 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 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 "400": $ref: "#/components/responses/BadRequestError" "403": description: Request failed. The feature is disabled for your account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} post: tags: - 10DLC summary: Register a 10DLC Brand description: >- Use this method to register a new 10DLC Brand on your account. Upon completing the Brand registration request, each Brand will automatically undergo an Identity Verification process. During this process, TCR verifies the EIN, legal company name, and legal company address against third-party independent sources and confirms the Brand's existence by assigning an 'Identity Status.' **NOTE** Identity Verification is a crucial step for every registered Brand. Ensure that the information provided is accurate and up-to-date to facilitate prompt verification. Only Brands with an 'Identity Status' of `VERIFIED` or `VETTED_VERIFIED` are eligible to register 10DLC Campaigns. operationId: Registera10DLCBrand parameters: [] requestBody: description: Request body containing the required parameters. content: application/json: schema: $ref: "#/components/schemas/10DLCBrandregistrationrequest" required: true responses: "201": description: Resource created successfully. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/10DLCBrand" - 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" 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" "400": $ref: "#/components/responses/BadRequestError" "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} "/10dlc/brands/{brand_id}": get: tags: - 10DLC summary: Query a specific 10DLC Brand on your account description: Use this method to query specific 10DLC Brands on your account. operationId: Queryaspecific10DLCBrandonyouraccount parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: BM20QP9 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/10DLCBrand" - 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" "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} put: tags: - 10DLC summary: Update a 10DLC Brand description: >- Use this method to update the details of a registered 10DLC Brand. Please note that Brands in the 'REVIEW' status cannot be updated. **Important.** Updating any of the following parameters — `company_name`, `ein_taxid`, `ein_taxid_country`, or `entity_type` — will reset the Brand status to 'UNVERIFIED,' and the Brand will be automatically re-submitted for verification. These parameters cannot be updated for Brands with a 'VETTED_VERIFIED' identity status or Brands with active Campaigns. operationId: Updatea10DLCBrand parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: BM20QP9 requestBody: description: Request body containing the required parameters. content: application/json: schema: $ref: "#/components/schemas/10DLCBrandupdaterequest" required: true responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/10DLCBrand" - 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" 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" "400": $ref: "#/components/responses/BadRequestError" "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. "422": description: Invalid parameters headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: 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 servers: - url: https://api.wavix.com/v3 variables: {} delete: tags: - 10DLC summary: Delete a 10DLC Brand description: Use this method to delete a 10DLC Brand. Brands with active Campaigns cannot be deleted. You must delete Campaigns first. operationId: Deletea10DLCBrand parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: BM20QP9 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/SuccessfulRequest" - example: success: true example: success: true "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} "/10dlc/brands/{brand_id}/appeals": post: tags: - 10DLC summary: Appeal a 10DLC Brand Identity verification description: >- Use this method to appeal a 10DLC Brand Identity verification. You may need to provide any additional documentation you have for the Brand. The following appeal categories are allowed: - **VERIFY_TAX_ID** - Use this category if the Brand is UNVERIFIED due to an inability to match the tax ID. Private companies, public companies, non-profit organizations, and Government Brands may submit this appeal category. - **VERIFY_NON_PROFIT** - Use this category if the Brand was submitted as a Non-Profit Organization is UNVERIFIED or VERIFIED and is missing a “Tax Exempt Status”. - **VERIFY_GOVERNMENT** - Select this category if the record submitted as a Government entity type is UNVERIFIED or VERIFIED and is missing a “Government Entity” status. operationId: Appeala10DLCBrandIdentityverification parameters: - name: brand_id in: path description: Unique identifier of the Brand required: true style: simple schema: type: string example: BM20QP9 requestBody: description: The appeal request content: application/json: schema: allOf: - $ref: "#/components/schemas/BrandIdentityverificationappealrequest" - description: The appeal request required: true responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/SuccessfulRequest" - example: success: true example: success: true "400": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. "422": description: Brand appeal request declined content: application/json: schema: type: object required: - success - message properties: success: type: boolean example: false message: type: string example: The Brand appeal request is declined. The appeal is only allowed for unverified Brands. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} get: tags: - 10DLC summary: List a 10DLC Brand Identity verification appeals description: >- Use this method to retrieve a list of Brand Identity verification appeals. The response will include a list of appeal objects, each detailing the status of the appeal and its outcome. operationId: Lista10DLCBrandIdentityverificationappeals parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: BM20QP9 responses: "200": description: Request successful. headers: {} content: application/json: schema: type: array items: $ref: "#/components/schemas/10DLCBrandIdentityverificationappeal" example: - categories: - VERIFY_TAX_ID created_at: 2024-08-01T14:09:43 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:15 example: - categories: - VERIFY_TAX_ID created_at: 2024-08-01T14:09:43 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:15 "400": description: Request failed. Invalid Request headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Invalid Request "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} "/10dlc/brands/{brand_id}/evidence": post: tags: - 10DLC summary: Upload a 10DLC Brand evidence description: >- Use this method to upload a 10DLC Brand evidence. Wavix supports supports file uploads in the following formats: .jpg, .jpeg, .png, .bmp, .raw, .tiff, .pdf, .docx, .htm, .odt, .rtf, .txt, and .xml. The file size must be less than 10MB. The uploaded evidence can be used to appeal the Brand Identity status and Brand vetting. The response contains the uploaded evidence details and its UUID. operationId: Uploada10DLCBrandevidence parameters: - name: brand_id in: path description: Unique identifier of a 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: The file to upload format: binary required: false responses: "201": description: Resource created successfully. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/10DLCBrandappealevidence" - 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 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 "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. "422": description: Request failed. File missing. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: File missing deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} get: tags: - 10DLC summary: List a 10DLC Brand appeal evidence description: Use this method to list previously uploaded Brand appeal evidence. operationId: Lista10DLCBrandappealevidence parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: B6AI7PA responses: "200": description: Request successful. headers: {} content: application/json: schema: type: object required: - items properties: items: type: array description: List of uploaded evidence files items: $ref: "#/components/schemas/10DLCBrandappealevidence" example: 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: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} "/10dlc/brands/{brand_id}/evidence/{uuid}": get: tags: - 10DLC summary: Download a specific 10DLC Brand appeal evidence description: Use this method to download a specific 10DLC Brand appeal evidence. operationId: Downloadaspecific10DLCBrandappealevidence parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: B6AI7PA - name: uuid in: path description: Evidence UUID required: true style: simple schema: type: string example: 191eb205-8357-4d71-b8da-160a25a000d7 responses: "200": description: Request successful. headers: {} content: application/octet-stream: schema: type: string format: binary "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} delete: tags: - 10DLC summary: Delete a 10DLC Brand appeal evidence description: Use this method to delete a specific 10DLC Brand appeal evidence. operationId: Deletea10DLCBrandappealevidence parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: B6AI7PA - name: uuid in: path description: Evidence UUID required: true style: simple schema: type: string example: 191eb205-8357-4d71-b8da-160a25a000d7 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/SuccessfulRequest" - example: success: true example: success: true "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} "/10dlc/brands/{brand_id}/vettings": post: tags: - 10DLC summary: Request external vetting for a 10DLC Brand description: |- Use this method to request external vetting for a 10DLC Brand. The following external vetting providers' codes are supported: - **AEGIS** - The Aegis Mobile, the default external vetting provider. - **CV** - The Campaign Verify. - **WMC** - WMC Global. Wavix supports the following vetting classes: - **STANDARD** - **STANDARD** - **ENHANCED** operationId: Requestexternalvettingfora10DLCBrand parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: B6AI7PA requestBody: description: Request body containing the required parameters. content: application/json: schema: $ref: "#/components/schemas/10DLCBrandexternalvettingrequest" required: true responses: "200": description: Request successful. headers: {} content: application/json: schema: $ref: "#/components/schemas/10DLCBrandexternalvetting" "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} put: tags: - 10DLC summary: Import an external vetting for a 10DLC Brand description: Use this method to import an existing external vetting for a 10DLC Brand. operationId: Importanexternalvettingfora10DLCBrand parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: B6AI7PA requestBody: description: Request body containing the required parameters. content: application/json: schema: $ref: "#/components/schemas/Importa10DLCBrandexternalvettingrequest" required: true responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/10DLCBrandexternalvetting" "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. "422": description: Request failed. Vetting record import error content: application/json: schema: type: object required: - success - message properties: success: type: boolean example: false message: type: string example: Request failed. The vetting record cannot be imported due to data discrepancies between the vetting report and the brand. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} get: tags: - 10DLC summary: List 10DLC Brand external vettings description: Use this method to list external vettings associated with a 10DLC Brand. operationId: List10DLCBrandexternalvettings parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: B6AI7PA responses: "200": description: Request successful. headers: {} content: application/json: schema: type: array items: $ref: "#/components/schemas/10DLCBrandexternalvetting" "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} "/10dlc/brands/{brand_id}/vettings/appeals": post: tags: - 10DLC summary: Appeal an external vetting for a 10DLC Brand description: Use this method to appeal a Brand’s external vetting. operationId: Appealanexternalvettingfora10DLCBrand parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: B6AI7PA requestBody: description: Request body containing the required parameters. content: application/json: schema: $ref: "#/components/schemas/Brandexternalvettingappealrequest" required: true responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/SuccessfulRequest" - example: success: true example: success: true "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. "422": description: Invalid request by VETTED_VERIFIED entity for VERIFY_TAX_ID category headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Invalid request by VETTED_VERIFIED entity for VERIFY_TAX_ID category deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} get: tags: - 10DLC summary: List external vetting appeals for a 10DLC Brand description: Use this method to query a 10DLC Brand’s external vetting appeals, their statuses, and outcomes. operationId: Listexternalvettingappealsfora10DLCBrand parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: BMQFB7X responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/10DLCBrandexternalvettingappeal" - 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:31 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 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:31 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: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} "/10dlc/brands/{brand_id}/usecases/{use_case}": get: tags: - 10DLC summary: Qualify a 10DLC Brand for a use case description: >- Use this method to qualify a 10DLC Brand for a use case. If the Brand is qualified to run a Campaign across one or more MNOs, the API will return a list of MNO-specific attributes (e.g., AT&T message class), restrictions, and pre/post-approval validation requirements. Additionally, the response will provide the monthly fee associated with the use case. operationId: Qualifya10DLCBrandforausecase parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: BMQFB7X - name: use_case in: path description: The use case name 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: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/10DLCBrandQualificationresult" - 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 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 "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. "422": description: 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 headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - 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 deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} /10dlc/brands/campaigns: get: tags: - 10DLC summary: List all 10DLC Campaigns on your account description: |- Use this method to query all 10DLC Campaigns on your account. The results are paginated with 25 records per page by default. operationId: Listall10DLCCampaignsonyouraccount parameters: - name: name in: query description: Filter results by the Campaign name style: form explode: true schema: type: string example: Name - name: usecase in: query description: Filter results by the use case style: form explode: true schema: type: string example: 2FA - name: status in: query description: Filter results by Campaign status style: form explode: true schema: type: string example: APPROVED - name: mock in: query description: Show only mock Campaigns style: form explode: true schema: type: boolean default: false example: true - name: created_before in: query description: Filter results by specifying the end date of the Campaign creation date range in the `yyyy-mm-dd` format style: form explode: true schema: type: string format: date example: "2024-08-22" - name: created_after in: query description: Filter results by specifying the start date for the Campaign creation date range in the `yyyy-mm-dd` format style: form explode: true schema: type: string format: date example: "2024-08-22" - name: page in: query description: The requested page style: form explode: true schema: type: integer format: int32 example: 1 - name: per_page in: query description: The number of records per page style: form explode: true schema: type: integer format: int32 example: 25 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/Listof10DLCCampaigns" - 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 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 "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} "/10dlc/brands/{brand_id}/campaigns": get: tags: - 10DLC summary: List all 10DLC Campaigns associated with a Brand description: |- Use this method to query all 10DLC Campaigns associated with a Brand. The results are paginated with 25 records per page by default. operationId: Listall10DLCCampaignsassociatedwithaBrand parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: BM20QP9 - name: name in: query description: Filter results by the Campaign name style: form explode: true schema: type: string example: Name - name: usecase in: query description: Filter results by the use case style: form explode: true schema: type: string example: 2FA - name: status in: query description: Filter results by Campaign status style: form explode: true schema: type: string example: APPROVED - name: mock in: query description: Show only mock Campaigns style: form explode: true schema: type: boolean default: false example: true - name: created_before in: query description: Filter results by specifying the end date for the Campaign creation date range in the `yyyy-mm-dd` format style: form explode: true schema: type: string format: date example: "2024-08-22" - name: created_after in: query description: Filter results by specifying the start date for the Campaign creation date range in the `yyyy-mm-dd` format style: form explode: true schema: type: string format: date example: "2024-08-22" - name: page in: query description: The requested page style: form explode: true schema: type: integer format: int32 example: 1 - name: per_page in: query description: The number of records per page style: form explode: true schema: type: integer format: int32 example: 25 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/Listof10DLCCampaigns" - 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 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 "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} post: tags: - 10DLC summary: Register a 10DLC Campaign description: Use this method to update a 10DLC Campaign. operationId: Registera10DLCCampaign parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: BM20QP9 requestBody: description: Request body containing the required parameters. content: application/json: schema: $ref: "#/components/schemas/10DLCCampaignregistrationrequest" required: true responses: "201": description: Resource created successfully. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/10DLCCampaign" - 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: [] 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: [] "400": $ref: "#/components/responses/BadRequestError" "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} "/10dlc/brands/{brand_id}/campaigns/{campaign_id}": get: tags: - 10DLC summary: Query a specific 10DLC Campaign description: Use this method to query a specific 10DLC Campaign details. operationId: Queryaspecific10DLCCampaign parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: BM20QP9 - name: campaign_id in: path description: Unique identifier of a Campaign required: true style: simple schema: type: string example: CKLCK95 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/10DLCCampaign" - 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" 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" "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} put: tags: - 10DLC summary: Update a 10DLC Campaign description: Use this method to update a 10DLC Campaign. operationId: Updatea10DLCCampaign parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: BM20QP9 - name: campaign_id in: path description: Unique identifier of a Campaign required: true style: simple schema: type: string example: CKLCK95 requestBody: description: Request body containing the required parameters. content: application/json: schema: $ref: "#/components/schemas/10DLCCampaignupdaterequest" required: true responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/10DLCCampaign" - 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: [] 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: [] "400": $ref: "#/components/responses/BadRequestError" "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} delete: tags: - 10DLC summary: Delete a 10DLC Campaign description: >- Use this method to delete a 10DLC Campaign. **Note** You will not be able to use any phone number associated with the Campaign as a Sender IDs once it is deleted. operationId: Deletea10DLCCampaign parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: BM20QP9 - name: campaign_id in: path description: Unique identifier of a Campaign required: true style: simple schema: type: string example: CKLCK95 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/SuccessfulRequest" - example: success: true example: success: true "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} /10dlc/subscriptions: post: tags: - 10DLC summary: Subscribe to Wavix 10DLC events description: Use this method to subscribe to Wavix 10DLC events. operationId: SubscribetoWavix10DLCevents parameters: [] requestBody: description: Request body containing the required parameters. content: application/json: schema: $ref: "#/components/schemas/10DLCeventssubscription" required: true responses: "201": description: Resource created successfully. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/10DLCeventssubscription" - example: subscription_category: brand url: https://webhook.url example: subscription_category: brand url: https://webhook.url "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} get: tags: - 10DLC summary: List Wavix 10DLC event subscriptions description: Use this method to list all 10DLC event subscriptions on your account. operationId: ListWavix10DLCeventsubscriptions parameters: [] responses: "200": description: Request successful. headers: {} content: application/json: schema: type: array items: $ref: "#/components/schemas/10DLCeventssubscription" example: - subscription_category: brand url: https://webhook.url example: - subscription_category: brand url: https://webhook.url "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} delete: tags: - 10DLC summary: Delete a Wavix 10DLC event subscription description: Use this method to delete a Wavix 10DLC event subscription from your account. operationId: DeleteaWavix10DLCeventsubscription parameters: - name: subscription_category in: query description: The Wavix 10DLC event category you want to unsubscribe from required: true style: form explode: true schema: type: string example: number responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/SuccessfulRequest" - example: success: true example: success: true "400": $ref: "#/components/responses/BadRequestError" "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} "/10dlc/brands/{brand_id}/campaigns/{campaign_id}/numbers/{number}": post: tags: - 10DLC summary: Link a number to a 10DLC Campaign description: >- Use this method to link a phone number to a 10DLC Campaign. Wavix will automatically create a Sender ID associated with the number, once it is successfully approved. The Sender ID will be allowed-listed for the U.S. operationId: Linkanumbertoa10DLCCampaign parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: B9FXYNH - name: campaign_id in: path description: Unique identifier of a Campaign required: true style: simple schema: type: string example: CSJ4TV0 - name: number in: path description: The phone number to associate with the Campaign required: true style: simple schema: type: string example: "17029641104" responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/SuccessfulRequest" - example: success: true example: success: true "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. Phone number not allowed content: application/json: schema: type: object required: - success - message properties: success: type: boolean example: false message: type: string example: Request failed. Only active phone numbers on your account are allowed. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} delete: tags: - 10DLC summary: Delete a number from a 10DLC Campaign description: >- Use this method to remove a number from a Campaign. After the phone number is deleted from the Campaign, the Sender ID associated with the number will also be automatically deleted. operationId: Deleteanumberfroma10DLCCampaign parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: B9FXYNH - name: campaign_id in: path description: Unique identifier of a Campaign required: true style: simple schema: type: string example: CSJ4TV0 - name: number in: path description: A phone number to be deleted from the Campaign required: true style: simple schema: type: string example: "17029641104" responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/SuccessfulRequest" - example: success: true example: success: true "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. Phone number not found content: application/json: schema: type: object required: - success - message properties: success: type: boolean example: false message: type: string example: Request failed. The phone number is not associated with the Campaign. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} "/10dlc/brands/{brand_id}/campaigns/{campaign_id}/numbers": get: tags: - 10DLC summary: List numbers associated with a 10DLC Campaign description: Use this method to query a list of phone numbers associated with a 10DLC Campaign. operationId: Listnumbersassociatedwitha10DLCCampaign parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: B9FXYNH - name: campaign_id in: path description: Unique identifier of a Campaign required: true style: simple schema: type: string example: CSJ4TV0 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/10DLCCampaignNumbers" - example: brand_id: B9FXYNH campaign_id: CSJ4TV0 numbers: - number: "17029641104" status: APPROVED "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. Phone number not found content: application/json: schema: type: object required: - success - message properties: success: type: boolean example: false message: type: string example: Request failed. The phone number is not associated with the Campaign. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} "/10dlc/brands/{brand_id}/campaigns/{campaign_id}/nudge": post: tags: - 10DLC summary: Nudge a carrier to review the campaign description: >- Use this method to prompt the intended party to take action on a campaign. You can nudge for review if the approval process is delayed or appeal if the campaign has been rejected. Set the ***nudge_intent*** parameter to ```REVIEW``` to request action on a pending approval, or to ```APPEAL_REJECTION``` to submit an appeal for a rejected campaign. Note: - You can only request action on campaigns that are at least 72 hours old. - Only one nudge request per campaign is allowed within a 24-hour period. operationId: Nudgeacarriertoreviewthecampaign parameters: - name: brand_id in: path description: Unique identifier of a Brand required: true style: simple schema: type: string example: B9FXYNH - name: campaign_id in: path description: Unique identifier of a Campaign required: true style: simple schema: type: string example: CSJ4TV0 requestBody: description: The nudge request content: application/json: schema: allOf: - $ref: "#/components/schemas/Nudgerequest" - description: The nudge request required: true responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/SuccessfulRequest" "400": $ref: "#/components/responses/BadRequestError" "403": description: Request failed. The feature is disabled for the account. content: application/json: schema: $ref: "#/components/schemas/AccountLevelException" "404": description: Request failed. The Brand is not found. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Request failed. The Brand is not found. "429": description: Request failed. Campaign too recent content: application/json: schema: type: object required: - success - message properties: success: type: boolean example: false message: type: string example: Request failed. The campaign should be older than 72 hours. example: success: false message: Request failed. The campaign should be older than 72 hours. deprecated: false servers: - url: https://api.wavix.com/v3 variables: {} /validation: get: tags: - Number Validator summary: Validate a single phone number description: Use this method to get extended information about a single phone number. The information returned varies based on the `type` parameter. operationId: Validateasinglephonenumber parameters: - name: phone_number in: query description: Phone number to validate. May be formatted with or without the “+” leading sign. required: true style: form explode: true schema: type: string example: "971569483322" - name: type in: query description: Validation type required: true style: form explode: true schema: allOf: - $ref: "#/components/schemas/Phonenumbervalidationtype" - description: Validation type responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/ValidationResponse" - 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" "400": $ref: "#/components/responses/BadRequestError" "403": description: The feature disabled for the account content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: The feature disabled for the account error_code: type: string example: "012" deprecated: false post: tags: - Number Validator summary: Validate multiple phone numbers description: >- Use this method to get detailed information about several phone numbers with a single request. Under most circumstances, it takes about 30 seconds to validate a batch of 1,000 phone numbers. We recommend using `async:true` if you plan to validate more than 1,000 numbers. A maximum of 100,000 phone numbers per request is allowed. When you execute the request asynchronously, Wavix immediately starts to validate the phone numbers and returns a token that needs to be used to poll the results. ``` { "request_uuid": "12542c5c-1a17-4d12-a163-5b68543e75f6" } ``` operationId: Validatemultiplephonenumbers parameters: [] requestBody: description: Async validation request content: application/json: schema: allOf: - $ref: "#/components/schemas/ValidationRequest" - description: Async validation request required: true responses: "200": description: Request successful. headers: {} content: application/json: schema: anyOf: - $ref: "#/components/schemas/Validatemultiplenumbersresponse" - type: object properties: request_uuid: type: string description: Request UUID example: 15323ba4-80c1-41be-b8e7-07bb435c7445 "400": $ref: "#/components/responses/BadRequestError" "403": description: The feature disabled for the account content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: The feature disabled for the account error_code: type: string example: "012" "404": $ref: "#/components/responses/NotFoundError" deprecated: false "/validation/{uuid}": get: tags: - Number Validator summary: Get asynchronous validation results description: Use this method to poll asynchronous validation results. operationId: Getasynchronousvalidationresults parameters: - name: uuid in: path description: Unique validation token required: true style: simple schema: type: string example: 12542c5c-1a17-4d12-a163-5b68543e75f6 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/ValidationResponse2" "403": description: The feature disabled for the account content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: The feature disabled for the account error_code: type: string example: "012" "404": description: Number validation with UUID 0c122055a-2dbf-4f59-8f20-b3c2d9401fbd cannot be found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Number validation with UUID 0c122055a-2dbf-4f59-8f20-b3c2d9401fbd cannot be found error_code: type: string example: "011" deprecated: false /voice-campaigns: post: tags: - Voice campaigns summary: Trigger a scenario description: >- The Wavix's Visual Campaign builder allows you to create custom scenarios for outbound calls using an intuitive, drag-and-drop user interface. Use this method to trigger automatic calls that are programmed to follow your specific scenario. operationId: Triggerascenario parameters: [] requestBody: description: Trigger an automatic call request content: application/json: schema: allOf: - $ref: "#/components/schemas/VoiceCampaignsRequest1" - description: Trigger an automatic call request required: true responses: "201": description: A launched voice campaign object headers: {} content: application/json: schema: type: object additionalProperties: false properties: voice_campaign: type: object additionalProperties: false properties: id: type: integer example: 2321423 description: Unique identifier of the voice campaign status: type: string example: in_progress description: The status of the voice campaign timestamp: type: string format: date-time example: 2023-08-03T09:04:12.000Z description: The timestamp when the voice campaign was created caller_id: type: string example: "13123310912" description: The caller ID used for the voice campaign contact: type: string example: "16729923812" description: The number called using the voice campaign "400": $ref: "#/components/responses/BadRequestError" "403": $ref: "#/components/responses/ForbiddenError" "422": description: Request failed. Insufficient funds headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" - example: success: false message: Insufficient funds example: success: false message: Insufficient funds deprecated: false "/voice-campaigns/{id}": get: tags: - Voice campaigns summary: Get a specific voice campaign description: Use this method to get details of a specific voice campaign. operationId: Getaspecificvoicecampaign parameters: - name: id in: path description: Voice campaign ID required: true style: simple schema: type: integer format: int32 example: 2321423 responses: "200": description: Request successful. headers: {} content: application/json: schema: type: object additionalProperties: false properties: voice_campaign: type: object additionalProperties: false properties: id: type: integer example: 2321423 description: Unique identifier of the voice campaign status: type: string example: in_progress description: The status of the voice campaign timestamp: type: string format: date-time example: 2023-08-03T09:04:12.000Z description: The timestamp when the voice campaign was created caller_id: type: string example: "13123310912" description: The caller ID used for the voice campaign contact: type: string example: "16729923812" description: The number called using the voice campaign "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" deprecated: false /short-links: post: tags: - Link shortener summary: Create a short link description: >- By utilizing the Wavix Short Links API, you have the capability to transform lengthy URLs into concise and user-friendly links, resulting in reduced character usage and enhanced user experience. The generated short URLs not only serve as a more compact representation but also provide valuable insights into user engagement. Additionally, the API allows you to set an expiration time for the short link and specify the redirection URL. Use this method to generate a shortened link from a lengthy URL. It offers the flexibility to customize various parameters such as the expiration time, fallback URL, and UTM parameter containing the campaign name. operationId: Createashortlink parameters: [] requestBody: description: Link details content: application/json: schema: allOf: - $ref: "#/components/schemas/ShortlinkRequest" - description: Link details required: true responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/ShortlinkResponse" "400": $ref: "#/components/responses/BadRequestError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "422": description: Invalid params headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" example: success: false message: Expiration time can't be in the past deprecated: false /short-links/metrics: get: tags: - Link shortener summary: Get metrics for short links description: Using this method, you gain the ability to access metrics related to clicked short links. Queries can be made based on parameters such as phone number, campaign name, or date, enabling you to retrieve specific information about the link's performance. operationId: Getmetricsforshortlinks parameters: - name: from in: query description: Start date of your search time range, in `yyyy-mm-dd` format. required: true style: form explode: true schema: type: string example: 2023-05-01 - name: to in: query description: End date of your search time range, in `yyyy-mm-dd` format. required: true style: form explode: true schema: type: string example: 2023-05-31 - name: phone in: query description: Filter results by the phone number associated with the short links. style: form explode: true schema: type: string example: "1872025555" - name: utm_campaign in: query description: Filter results by the UTM campaign parameter. You can use this parameter to group the tracking insights by campaign. style: form explode: true schema: type: string example: summer - name: page in: query description: The page number style: form explode: true schema: type: integer format: int32 example: 1 - name: per_page in: query description: The number of records per page style: form explode: true schema: type: integer format: int32 example: 25 responses: "200": description: Short link metrics headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/ShortlinkMetricsResponse" "400": $ref: "#/components/responses/BadRequestError" "403": $ref: "#/components/responses/ForbiddenError" deprecated: false /two-fa/verification: post: tags: - 2FA summary: Create a new 2FA Verification description: >- Before sending and validating a one-time password (OTP), you must create a 2FA Service using the Wavix portal. The service must be created only once, you can use it to generate and validate as many OTPs as needed. In order to send and verify an OTP, you must: 1. Create a new 2FA Verification using this API. The Wavix platform will automatically generate a random code and send it to the phone number specified in the request. 2. In cases when an end user requests a new OTP, you can reuse the same 2FA Verification to resend the code. 3. Validate the OTP using the Wavix 2FA API. Use this method to create a new Wavix 2FA Verification. Once the Verification is created, Wavix will automatically generate a new random verification code and send it to the end user's phone number via the communication channel specified in the request. operationId: Createanew2FAVerification parameters: [] requestBody: description: Request body containing the required parameters. content: application/json: schema: $ref: "#/components/schemas/Create2FAVerificationRequest" required: true responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/Create2FAVerificationResponse" - 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 "400": description: 2FA service with ID=7204a030201211ee9fb47d093f2f127c cannot be found content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: 2FA service with ID=7204a030201211ee9fb47d093f2f127c cannot be found "403": description: Access denied content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Access Denied error_code: type: string example: "012" deprecated: false "/two-fa/service/{service_uuid}/sessions": get: tags: - 2FA summary: List Wavix 2FA Verifications description: Use this method to retrieve active Wavix 2FA Verifications on your account. The list can be filtered by the unique identifier of the Wavix 2FA Service and the date. operationId: ListWavix2FAVerifications parameters: - name: service_uuid in: path description: Wavix 2FA Service ID required: true style: simple schema: type: string example: 7204a030201211ee9fb47d093f2f127c - name: from in: query description: Start date of your search time range, in `yyyy-mm-dd` format required: true style: form explode: true schema: type: string format: date example: "2022-01-01" - name: to in: query description: End date of your search time range, in `yyyy-mm-dd` format required: true style: form explode: true schema: type: string format: date example: "2022-01-31" responses: "200": description: "A list of 2FA Verification session" headers: {} content: application/json: schema: type: array items: type: object additionalProperties: false properties: created_at: type: string format: date-time description: Timestamp when the 2FA Verification was created example: 2022-02-16T13:41:38.000Z session_id: type: string description: Unique identifier of the 2FA Verification example: 2953d4308f2e11ecb75fcdafd6d2d687 phone_number: type: string description: Destination phone number for the 2FA Verification example: "447919433768" destination_country: type: string description: The phone number country of origin 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: Unique identifier of the Wavix 2FA Service example: 7204a030201211ee9fb47d093f2f127c service_name: type: string description: Name of the Wavix 2FA Service example: Wavix 2FA Service 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 "400": description: 'Request validation errors: Field "to" is required' content: application/json: schema: $ref: "#/components/schemas/ValidationErrorResponse" example: success: false message: 'Request validation errors: Field "to" is required' "403": description: Access denied content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Access Denied error_code: type: string example: "012" "404": description: Sessions not found" content: application/json: schema: $ref: "#/components/schemas/ValidationErrorResponse" example: success: false message: Sessions not found deprecated: false "/two-fa/verification/{session_uuid}": post: tags: - 2FA summary: Resend a verification code description: Use this method to resend a verification code using the same or a different communication channel. Each time you use this method, the Wavix platform generates a new random verification code and sends it using the communication channel specified in the request. Any codes sent previously will be automatically invalidated. Validation of such codes will be unsuccessful. operationId: Resendaverificationcode parameters: - name: session_uuid in: path description: Wavix 2FA Verification ID required: true style: simple schema: type: string example: 2953d4308f2e11ecb75fcdafd6d2d687 requestBody: description: Request body containing the required parameters. content: application/json: schema: $ref: "#/components/schemas/ResendOTPRequest" required: true responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/ResendOTPResponse" - example: success: true channel: voice destination: "447919433768" created_at: 2022-02-16T13:41:38.000Z "400": description: 'Request validation errors: Field "channel" is required' content: application/json: schema: $ref: "#/components/schemas/ValidationErrorResponse" example: success: false message: 'Request validation errors: Field "channel" is required' "403": description: Access denied content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Access Denied error_code: type: string example: "012" deprecated: false "/two-fa/verification/{session_uuid}/check": post: tags: - 2FA summary: Validate a code description: >- To validate an OTP, an end user must enter the received code into your service or application and submit it for validation. Once the code is submitted, use this method to check whether the code is valid. Pass the entered code and the 2FA Verification ID to verify whether the entered code matches the latest one sent to the end user's phone number within the specified 2FA Verification. operationId: Validateacode parameters: - name: session_uuid in: path description: Wavix 2FA Verification ID required: true style: simple schema: type: string example: 2953d4308f2e11ecb75fcdafd6d2d687 requestBody: description: Request body containing the required parameters. content: application/json: schema: $ref: "#/components/schemas/ValidateOTPRequest" required: true responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/ValidateOTPResponse" - example: is_valid: true "400": description: 'Request validation errors: Field "code" is required' content: application/json: schema: $ref: "#/components/schemas/ValidationErrorResponse" example: success: false message: 'Request validation errors: Field "code" is required' "403": description: Access denied content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Access Denied error_code: type: string example: "012" deprecated: false "/two-fa/verification/{session_uuid}/cancel": patch: tags: - 2FA summary: Cancel a 2FA Verification description: Use this method to explicitly cancel a 2FA Verification. Once the verification is canceled, no further codes will be sent and you won't be able to validate any codes sent previously. You'll need to create a new Verification to send a new code. operationId: Cancela2FAVerification parameters: - name: session_uuid in: path description: Wavix 2FA Verification ID required: true style: simple schema: type: string example: 2953d4308f2e11ecb75fcdafd6d2d687 responses: "200": description: Request successful. headers: {} content: application/json: schema: type: object properties: success: type: boolean example: true "400": description: 'Request validation errors: Field "code" is required' content: application/json: schema: $ref: "#/components/schemas/ValidationErrorResponse" example: success: false message: 'Request validation errors: Field "code" is required' "403": description: Access denied content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Access Denied error_code: type: string example: "012" "404": description: Wavix 2FA Verification with ID={session_uuid} not found headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" example: success: false message: Two FA session is not canceled deprecated: false "/two-fa/session/{session_uuid}/events": get: tags: - 2FA summary: List Wavix 2FA Verification events description: Use this method to retrieve a list of events associated with a 2FA Verification. The resulting list provides detailed information about each event within the Verification, including associated costs. operationId: ListWavix2FAVerificationevents parameters: - name: session_uuid in: path description: Wavix 2FA Verification ID required: true style: simple schema: type: string example: 8753d4308f2e11ecb75fcdafd6d2d690 responses: "200": description: Request successful. headers: {} content: application/json: schema: type: array items: $ref: "#/components/schemas/2FAVerificationEvent" description: List of 2FA verification events. 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 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 "403": description: Access denied content: application/json: schema: type: object properties: success: type: boolean example: false message: type: string example: Access Denied error_code: type: string example: "012" "404": description: Wavix 2FA Verification with ID={session_uuid} not found headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/NotFoundException" example: success: false message: 2FA verification session with ID=1c7d5259092eb11f083eed7e070f20a2b cannot be found deprecated: false /billing/transactions: get: tags: - Billing summary: Get transactions on the account description: Use this method to retrieve a list of financial transactions on your account. By default, results are limited to 25 records per page. You can filter the results by date range, transaction type, and comment text. operationId: Gettransactionsontheaccount parameters: - name: from_date in: query description: Start date of the search time range, in `yyyy-mm-dd` format. required: true style: form explode: true schema: type: string example: 2023-08-01 - name: to_date in: query description: End date of the search time range, in `yyyy-mm-dd` format. required: true style: form explode: true schema: type: string example: 2023-08-31 - name: type in: query style: form explode: true schema: allOf: - $ref: "#/components/schemas/Transactiontype" - name: details_contains in: query description: Transaction comment style: form explode: true schema: type: string example: monthly - name: payments in: query description: Retrieve a list of account top-ups only style: form explode: true schema: type: boolean example: true - name: page in: query description: Requested page style: form explode: true schema: type: integer format: int32 example: 1 - name: per_page in: query description: Number of records per page style: form explode: true schema: type: integer format: int32 example: 25 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/BillingTransactionsResponse" - 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 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 "400": $ref: "#/components/responses/BadRequestError" "403": $ref: "#/components/responses/ForbiddenError" "503": description: Service Unavailable content: application/json: schema: type: object properties: success: type: boolean example: true message: type: string example: Failed to load the transaction list. Please try again later deprecated: false /billing/invoices: get: tags: - Billing summary: Get statements on the account description: Use this method to retrieve a list of all financial statements on your account. The results are paginated with 25 records per page by default. operationId: Getinvoicesontheaccount parameters: - name: page in: query description: Requested page style: form explode: true schema: type: integer format: int32 example: 1 - name: per_page in: query description: Number of records per page style: form explode: true schema: type: integer format: int32 example: 25 responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/BillingInvoicesResponse" - 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 "403": $ref: "#/components/responses/ForbiddenError" deprecated: false "/billing/invoices/{id}": get: tags: - Billing summary: Download a statement description: Use this method to download a system-generated financial statement as a PDF file. operationId: Downloadaninvoice parameters: - name: id in: path description: Unique identifier of the statement required: true style: simple schema: type: integer format: int32 example: 123 responses: "200": description: Request successful. headers: {} content: application/pdf: schema: type: string format: binary "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" deprecated: false /profile: put: tags: - Profile summary: Update customer info description: Use this method to update personal and billing information in your account. You can also use this method to change the webhook address for forwarding inbound SMS and MMS messages sent to SMS-enabled phone numbers in your account. operationId: Updatecustomerinfo parameters: [] requestBody: description: New profile details content: application/json: schema: allOf: - $ref: "#/components/schemas/ProfileRequest" - description: New profile details required: true responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/ProfileResponse" "422": $ref: "#/components/responses/ValidationError" deprecated: false get: tags: - Profile summary: Get customer info description: Use this method to return the personal and billing information for your account. The response also includes the webhook address used to forward inbound SMS and MMS messages sent to SMS-enabled phone numbers in the account. operationId: Getcustomerinfo parameters: [] responses: "200": description: Request successful. headers: {} content: application/json: schema: allOf: - $ref: "#/components/schemas/ProfileResponse" deprecated: false /profile/config: get: tags: - Profile summary: Get account settings description: Use this method to retrieve account balance and configuration details. The response includes available funds and account limits, such as maximum call length, maximum call price, and the number of concurrent calls allowed. operationId: Getaccountsettings parameters: [] responses: "200": description: Request successful. 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" example: balance: "309.06" global_limits: max_call_duration: 3600 max_sip_channels: 8 max_call_rate: "99.0" deprecated: false /sub-organizations: get: tags: - Sub-accounts summary: Get sub-accounts description: Use this method to retrieve a list of your sub-accounts. operationId: Getusers parameters: - name: status in: query description: Filter by account status required: false style: form explode: true schema: type: string enum: - enabled - disabled example: enabled responses: "200": description: A list of sub-accounts headers: {} content: application/json: schema: type: object additionalProperties: false properties: sub_organizations: type: array items: $ref: "#/components/schemas/UserResponse" pagination: $ref: "#/components/schemas/Pagination" "401": $ref: "#/components/responses/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" deprecated: false post: tags: - Sub-accounts summary: Create a new sub-account description: Use this method to create a new sub-account. You can specify the sub-account's name and default webhook URLs for inbound messages and delivery reports. operationId: Createuser parameters: [] requestBody: description: A new sub-account details content: application/json: schema: type: object additionalProperties: false required: - name properties: name: type: string description: Company 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 example: name: Company default_destinations: sms_endpoint: https://examples.com/sms dlr_endpoint: https://examples.com/dlr required: true responses: "200": description: A sub-account craeted headers: {} content: application/json: schema: $ref: "#/components/schemas/UserResponse" "400": description: Request failed. Missing or invalid parameter headers: {} content: application/json: schema: $ref: "#/components/schemas/ValidationErrorResponse" "403": description: Request failed. The feature is disabled for your account. headers: {} content: application/json: schema: $ref: "#/components/schemas/ForbiddenErrorResponse" "422": description: Validation error headers: {} content: application/json: schema: type: object properties: message: type: string example: Company name is too long (maximum is 255 characters) deprecated: false "/sub-organizations/{id}": get: tags: - Sub-accounts summary: Get a specific sub-account description: Use this method to retrieve a specific sub-account details. operationId: Getuserbyid parameters: - name: id in: path description: Sub-account ID required: true style: simple explode: false schema: type: integer format: int32 example: 123 responses: "200": description: Sub-account details headers: {} content: application/json: schema: $ref: "#/components/schemas/UserResponse" "401": $ref: "#/components/responses/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" deprecated: false put: tags: - Sub-accounts summary: Update a sub-account description: Use this method to updates sub-account details. You can change the sub-account's name, status, and default inbound messages and DLR webhook URLs. operationId: Updateuser parameters: - name: id in: path description: Sub-account ID required: true style: simple explode: false schema: type: integer format: int32 example: 123 requestBody: description: Sub-account details content: application/json: schema: type: object additionalProperties: false required: - name properties: name: type: string description: Company name maxLength: 255 example: Updated Company Name status: type: string description: User status 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 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: Sub-account updated headers: {} content: application/json: schema: $ref: "#/components/schemas/UserResponse" "400": $ref: "#/components/responses/ValidationError" "401": $ref: "#/components/responses/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "422": description: Validation error headers: {} content: application/json: schema: type: object properties: message: type: string example: Company name is too long (maximum is 255 characters) deprecated: false "/sub-organizations/{id}/billing/transactions": get: tags: - Sub-accounts summary: List transactions for a sub-account description: Use this method to list transactions for a specific sub-account. By default, results are limited to 25 records per page. You can filter the transactions by date range and type. operationId: Getusertransactions parameters: - name: id in: path description: Sub-account ID required: true style: simple explode: false schema: type: integer format: int32 example: 123 - name: from_date in: query required: true description: Start date of your search time range, in `yyyy-mm-dd` format style: form explode: true schema: type: string format: date example: "2023-01-01" - name: to_date in: query description: End date of your search time range, in `yyyy-mm-dd` format required: true style: form explode: true schema: type: string format: date example: "2023-12-31" - name: type in: query description: Transaction type(s) required: false style: form explode: true schema: oneOf: - type: integer format: int32 example: 1 - type: array items: type: integer format: int32 example: - 1 - 2 - 3 responses: "200": description: Request successful. headers: {} content: application/json: schema: type: object additionalProperties: false properties: transactions: type: array description: A list of transactions for the specified sub-account items: type: object additionalProperties: false properties: amount: type: number format: float description: Transaction amount example: "10.50" balance_after: type: number format: float description: Sub-account's balance after the transaction is applied example: "100.00" date: type: string description: Date and time of the transaction 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: type: object additionalProperties: false description: Pagination details properties: current_page: type: integer description: Current page number example: 1 per_page: type: integer description: Number of records per page example: 25 total: type: integer description: Total number of records example: 1 total_pages: description: Total number of pages type: integer "401": $ref: "#/components/responses/UnauthorizedError" "403": $ref: "#/components/responses/ForbiddenError" "404": $ref: "#/components/responses/NotFoundError" "503": description: Failed to load the transaction list. Please try again later.' headers: {} content: application/json: schema: type: object properties: message: type: string example: Failed to load the transaction list. Please try again later. deprecated: false webhooks: On-call-event: post: description: The `on-call` callback includes real-time call status updates. It's triggered when a call is initiated, answered, and ends. tags: - Call webhooks requestBody: content: application/json: schema: $ref: "#/components/schemas/CallInfo" responses: "200": description: Return a 200 status to indicate that the data was successfully received Post-call-event: post: 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: content: application/json: schema: $ref: "#/components/schemas/CallDetailedRecord" responses: "200": description: Return a 200 status to indicate that the data was successfully received Transcription-completed: post: description: A POST callback triggered when transcription is complete. tags: - Speech Analytics requestBody: content: application/json: schema: $ref: "#/components/schemas/TranscriptionCompletedCallback" responses: "200": description: Return a 200 status to indicate that the data was successfully received Delivery-report: post: description: The delivery report callback provides real-time updates on the delivery status of SMS and MMS messages sent from your account. It's triggered when a message is successfully delivered, fails to deliver, or sent. tags: - SMS and MMS requestBody: content: application/json: schema: $ref: "#/components/schemas/MessagesDeliveryReport" responses: "200": description: Return a 200 status to indicate that the data was successfully received Inbound-message: post: description: >- When a message is received by an SMS-enabled phone number on your Wavix account, Wavix forwards it to the webhook registered for that number, if one is set. If no webhook is registered to the number, the message is forwarded to the account-level webhook instead. tags: - SMS and MMS requestBody: content: application/json: schema: $ref: "#/components/schemas/InboundSMSorMMSmessage" responses: "200": description: Return a 200 status to indicate that the data was successfully received Brand-status-changed: post: description: The webhook is triggered when a Brand's status is updated in TCR. tags: - 10DLC requestBody: content: application/json: schema: $ref: "#/components/schemas/BrandStatusUpdatedWebhook" responses: "200": description: Return a 200 status to indicate that the data was successfully received Campaign-status-changed: post: description: The webhook is triggered when a Campaign's 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 Number-status-changed: post: description: >- The webhook is triggered when the status of a phone number is updated. - If the status changes to `APPROVED`, Wavix automatically creates a Sender ID for the number. - If the status changes to `REJECTED`, Wavix blocks the associated Sender ID. tags: - 10DLC requestBody: content: application/json: schema: $ref: "#/components/schemas/NumberStatusUpdatedWebhook" responses: "200": description: Return a 200 status to indicate that the data was successfully received components: schemas: ApiKey: type: object properties: id: type: integer description: Unique identifier of the API key example: 123 label: type: string description: User-defined label for the API key example: 'Production API Key' value: type: string description: The API key value used for authentication example: 'abc123def456ghi789jkl012mno345pqr678stu901vwx234yz' is_active: type: boolean description: Indicates if the API key is currently active example: true is_restriction: type: boolean description: >- Indicates if IP restrictions are enabled for this API key. When enabled, the API key will only work from the IP addresses listed in permitted_ips. example: true permitted_ips: type: array items: type: string description: >- List of IP addresses from which this API key can be used. Empty array means no IP restrictions (if is_restriction is false) or all IPs are restricted (if is_restriction is true). example: - '192.168.1.1' - '10.0.0.1' created_at: type: string format: date-time description: Date and time when the API key was created example: '2024-01-15T10:30:00Z' ApiKeyCreate: type: object properties: label: type: string description: User-defined label for the API key is_active: type: boolean description: Whether the API key should be active upon creation default: true example: true is_restriction: type: boolean description: >- Whether to enable IP restrictions for this API key. When enabled, only requests from IP addresses listed in permitted_ips will be allowed. default: false example: true permitted_ips: type: array items: type: string description: >- List of IP addresses from which this API key can be used. Each IP address must be in valid IPv4 format. Required if is_restriction is true. example: - '192.168.1.1' - '10.0.0.1' ErrorResponse: type: object properties: success: type: boolean example: false error: type: boolean example: true message: type: string description: Error message describing what went wrong example: 'IP address has an incorrect format' City: title: City required: - id - name - area_code type: object additionalProperties: false properties: id: type: integer description: City unique ID format: int32 example: 3213 name: type: string description: Name of the city example: Paris area_code: type: number description: Rate center FinancialTransaction: title: FinancialTransaction required: - id - date - amount - balance_after - details - status - type - show_invoice type: object additionalProperties: false properties: id: type: integer description: Unique ID of the transaction format: int64 example: 24789389 date: type: string description: Date and time the transaction was created format: date-time example: 2023-08-29T14:48:38.000Z amount: type: number format: float description: Transaction amount. Negative transaction amount indicates balance reduction. example: -0.99 balance_after: type: number format: float description: The account balance after the transaction is created example: 309.0601 details: type: string description: Detailed description of the transaction example: Monthly fee for 16419252149 status: $ref: "#/components/schemas/Transactionstatus" type: $ref: "#/components/schemas/Transactiontype" show_invoice: type: boolean description: Indicates if there's a transaction receipt associated with the transaction. Transaction receipts are only available if the transaction type is one of the following [0, 8, 9, 19, 23,25] example: false description: A financial transaction on the account 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 Country: title: Country required: - id - name - has_provinces_or_states type: object additionalProperties: false properties: id: type: integer description: Country unique identifier format: int32 name: type: string description: Country name example: France has_provinces_or_states: type: boolean description: Indicates whether the country has states or provinces example: false SMSorMMSmessage: title: SMSorMMSmessage 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: Unique identifier of the message generated by the platform example: 871b4eeb-f798-4105-be23-32df9e991456 message_type: type: string description: Type of the message sent or received. Can be either `sms` or `mms` example: sms from: type: string description: Sender ID used to send the message. Can be numeric or alphanumeric. example: Wavix to: type: string description: Destination phone number example: "447537151866" carrier_fees: type: string format: float example: "0.0" direction: type: string description: Message direction. Can be either `outbound` or `inbound` example: outbound mcc: type: string description: Mobile country code of the destination phone number. nullable: true example: "301" mnc: type: string description: Mobile network code of the destination phone number. nullable: true example: "204" message_body: $ref: "#/components/schemas/MessageBody1" tag: type: string description: An optional field normally used to identify a group of SMS, e.g. messages associated with a certain campaign. nullable: true example: Fall sale status: $ref: "#/components/schemas/Messagedeliverystatus" segments: type: integer description: Number of message segments, for SMS only. For MMS messages segments is always 1. format: int32 example: 1 charge: type: string description: Total price of the message example: "0.01" submitted_at: type: string description: Timestamp the messages is accepted by the platform example: 2022-04-14T13:51:16.096Z sent_at: type: string description: Timestamp the messages is sent, for mobile terminated messages only. For mobile originated messages the parameter is not returned. nullable: true example: 2022-04-14T13:51:16.096Z delivered_at: type: string description: Timestamp DLR is received for mobile terminated messages or timestamp the messages was successfully relayed to a webhook for mobile originated messages. nullable: true example: 2022-04-14T13:51:16.096Z error_message: type: string description: A human-readable error description, if any nullable: true description: A message on the Wavix platform 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: "" InboundSMSorMMSmessage: title: SMSorMMSmessage required: - message_id - message_type - 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 message_type: type: string description: Type of the message sent or received. Can be either `sms` or `mms` example: sms from: type: string description: Sender ID used to send the message. Can be numeric or alphanumeric. example: Wavix to: type: string description: A number on your Wavix account that received the message example: "447537151866" message_body: $ref: "#/components/schemas/MessageBody1" 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 DocumentType: title: DocumentType required: - id - name - title type: object additionalProperties: false properties: id: type: integer description: Unique ID of the document type format: int32 example: 2 name: type: string description: Name of the document type example: address title: type: string description: Human-readable description of the document type example: Proof of address description: Describes a type of a document required to activate a phone number Optout: title: Optout required: - number type: object additionalProperties: false properties: number: type: string description: Phone number to be opted out. Mandatory parameter. example: "16419252149" sender_id: type: string description: Sender ID to opt out from, optional. If not specified, the phone number is opted out of all messages. example: "15072429497" example: number: "16419252149" sender_id: "15072429497" CreateSIPTrunkRequest: title: CreateSIPTrunkRequest 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. Use a strong password to help keep your SIP 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 your account. example: "13132847320" multiple_numbers: type: boolean description: Indicates whether any active or verified phone number in your 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 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 example: 127.0.0.1 nullable: true 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: A maximum call duration for the SIP trunk, in seconds. Must not exceed the maximum duration set for your 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 your 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 example: true ValidationErrorResponse: title: ValidationErrorResponse type: object properties: success: type: boolean description: Success flag example: false message: type: string description: Missing or invalid parameter example: Missing or invalid parameter UnauthorizedErrorResponse: title: UnauthorizedErrorResponse type: object properties: success: type: boolean description: Success flag example: false error: type: boolean description: Error flag example: true message: type: string description: Unauthorized example: Unauthorized ForbiddenErrorResponse: title: ForbiddenErrorResponse type: object properties: success: type: boolean description: Success flag example: false message: type: string description: The service is not provisioned for your account. example: The service is not provisioned for your account. NotFoundErrorResponse: title: NotFoundErrorResponse type: object properties: success: type: boolean description: Success flag example: false message: type: string description: An object with the specified ID is not found example: Record not found CountryNoRegionsErrorResponse: title: CountryNoRegionsErrorResponse type: object properties: success: type: boolean description: Success flag example: false message: type: string description: Country has no states or provinces example: Country has no states or provinces DIDAvailableforPurchase: title: DIDAvailableforPurchase 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 unique ID format: int64 example: 541139862174 activation_fee: type: string description: One-time activation fee for a phone number, in USD example: "15.0" monthly_fee: type: string description: Monthly recurring fee for a phone number, in USD. example: "10.0" per_min: type: string description: Price per inbound minute, in USD example: "0.01" channels: type: string description: Number of inbound channels format: int32 example: "4" city: type: string description: A city the phone number originates from example: Buenos Aires country: type: string description: A county the phone number originates from example: Argentina country_short_name: type: string description: 2-letter ISO code of the country the phone number originates from example: AR cnam: type: boolean nullable: true description: Indicates if CNAM can be activated on the phone number example: false free_min: type: integer description: Number of free inbound minutes format: int32 example: 0 number: type: string description: The phone number in E.164 format example: "541139862174" require_docs: type: array items: type: integer format: int32 description: A list of documents required to activate the phone number, if any 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 example: 0.25 domestic_cli: type: boolean example: true description: Indicates whether the number can be used as the Caller ID for local calls description: A phone number available for purchase 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 - DID activation fee * 3 - DID monthly fees * 6 - DID 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 - DID 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 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 DIDs with several destinations, sets the order of the destination the platform routes inbound calls to. The lesser the value, the higher the priority is. format: int32 example: 1 transport: $ref: "#/components/schemas/Inboundcalltransport" trunk_id: type: integer description: Unique identified of a SIP trunk on the platform. In cases when `transport:5`, otherwise, `null` format: int32 nullable: true example: 23123 srtp: type: boolean example: false trunk_label: type: string description: A user-defined name of a SIP trunk on the platform. In cases when `transport:5`, otherwise, `null` nullable: true example: My trunk description: Inbound call destination DIDontheAccount: title: DIDontheAccount 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 description: Unique identifier of the DID format: int32 example: 123 number: type: string description: The phone number example: "12565378257" activation_fee: type: string description: The phone number activation fee, in USD example: "0.99" monthly_fee: type: string description: Recurring phone number monthly fee, in USD example: "0.99" per_min: type: string description: Price per inbound minute, in USD example: "0.0059" city: type: string description: The name of a city or a rate center for the phone number example: DETROIT, MI state: type: string country: type: string description: The originating country of the phone number example: United States country_short_name: type: string description: 2-letter ISO code of the originating country of the phone number example: US destination: type: array items: $ref: "#/components/schemas/InboundCallDestination" description: Inbound call destinations configured for the phone number channels: type: integer description: Number of inbound channels on the phone number format: int32 example: 24 require_docs: type: array items: type: string description: A list of document required to activate the phone number example: - "1" documents: type: array items: $ref: "#/components/schemas/DIDDocument" description: Documents uploaded for the phone number domestic_cli: type: boolean description: Domestic cli free_min: type: integer description: Free minute unlimited: type: boolean label: type: string nullable: true description: Label assigned to the phone number status: type: string description: Status of the phone number. Can be either `active` indicating the phone number is active can can receive inbound calls, or `inactive` seconds: type: string description: Duration of all inbound calls to the phone number in the current month, in seconds added: type: string description: Date and time the phone number was added to the account format: date-time example: 2023-04-10T06:42:59.000Z paid_until: type: string description: The date when the next monthly phone number charge is due format: date example: "2023-12-07" sms_enabled: type: boolean description: Indicates if the phone number is SMS-enabled example: false sms_relay_url: type: string description: A webhook URL to forward inbound messages to nullable: true example: https://your-website.com/webhook cnam: type: boolean nullable: true description: Indicates if CNAM storage is activated for the phone number example: true call_recording_enabled: type: boolean description: Indicates if call recording is activated for the phone number. For `Flex Pro` accounts only. example: true transcription_enabled: type: boolean description: Indicates if automatic call transcription is activated on the phone number. For `Flex Pro` accounts only. example: true transcription_threshold: type: integer description: The minimal inbound call duration to automatically generate transcription for, in seconds. For `Flex Pro` accounts only. format: int32 example: 6 call_status_url: type: string nullable: true description: Call status url example: https://example.com description: A phone number on the account SenderIDtype: title: SenderIDtype enum: - numeric - alphanumeric type: string description: Sender ID type SenderID: title: SenderID required: - id - sender_id - type - allowlisted_in type: object additionalProperties: false properties: id: type: string description: Unique identifier of the Sender ID example: 3c7a5a90-43e0-43e0-b006-fdfea30c5a7c sender_id: type: string description: Name of the Sender ID. Can be either an alphanumeric string or a DID number. example: Wavix type: $ref: "#/components/schemas/SenderIDtype" allowlisted_in: type: array items: type: string description: An array of 2 letter ISO codes of the countries the Sender ID is allow listed in usecase: type: string example: promo samples: type: array items: type: string example: sample description: SMS Sender ID registered on the platform Messagedeliverystatus: title: Messagedeliverystatus enum: - accepted - pending - sent - delivered - undelivered - expired - rejected - dlr_expired type: string description: Message delivery status CallDetailedRecord: title: CallDetailedRecord required: - date - from - to - disposition - duration - destination - per_minute - charge - uuid type: object additionalProperties: false properties: 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, the mobile carrier or city name. For inbound calls, it contains the user-defined name of a SIP trunk, a SIP URI, or a PSTN number to which the call was forwarded. 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 description: System-generated login of a SIP trunk. 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 description: Call ID example: 99df5ffd-962a-410f-bcce-d08f1f7f328c parent_uuid: type: string description: Parent UUID nullable: true example: 99df5ffd-962a-410f-bcce-d08f1f7f328c answered_by: type: string nullable: true description: Answered by example: human description: A CDR of a single call Inboundcalltransport: title: Inboundcalltransport enum: - 1 - 4 - 5 type: integer description: Inbound call transport DIDdestination: title: DIDdestination required: - destination - priority - transport type: object additionalProperties: false properties: 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 DIDs with several destinations, sets the order of the destination the platform routes inbound calls to. The lesser the value, the higher the priority is. format: int32 example: 1 transport: $ref: "#/components/schemas/Inboundcalltransport" trunk_id: type: integer description: Unique identified of a SIP trunk on the platform. In cases when `transport:5`, otherwise, `null` format: int32 nullable: true example: 23123 description: Inbound call destination example: destination: "32882" priority: 1 transport: 5 trunk_id: 3107 DIDDocument: title: DIDDocument 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 if the document can be replaced. You can only replace documents with `rejected` status. 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/Documenttypes" 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/mydids/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/mydids/24882/papers/1 WebrtcPagination: title: Pagination required: - current_page - limit - total - total_pages type: object additionalProperties: false properties: current_page: type: integer description: Current page number format: int32 example: 2 limit: 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 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 Transactionstatus: title: Transactionstatus enum: - Created - Pending - Committed - Reverted type: string description: Status of a transaction on the account SIPTrunkShort: title: SIPTrunkShort required: - id - name - callerid - multiple_numbers - label - auth_method - host_request - status - talk_time - charge 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 description: Caller ID associated with the SIP trunk. Contains 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: string description: For SIP trunks with IP-based authentication, contains the status of the IP authentication request. nullable: true 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 media enecryption (SRTP) is enabled for the SIP trunk example: true description: A SIP trunk associated with your account example: id: 3107 label: My trunk name: "32882" auth_method: Digest callerid: "14302287001" host_request: null passthrough: false passthrough_request: null status: active charge: "24.637" talk_time: 65 machine_detection_enabled: true call_recording_enabled: true transcription_enabled: true transcription_threshold: 6 Calldisposition: title: Calldisposition enum: - answered - noanswer - busy - failed - all type: string description: Call disposition AllowedIPs: title: AllowedIPs type: array items: type: object additionalProperties: false required: - id - ip properties: id: type: integer description: Unique identifier of the IP address in the list format: int32 example: 6712 ip: type: string description: Public static IP address example: 127.0.0.1 Region: title: Region required: - id - name type: object additionalProperties: false properties: id: type: integer description: State or province unique ID format: int32 example: 17 name: type: string description: Name of the state or province example: California description: A state or a province for countries containing states or provinces 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 Documenttypes: title: Documenttypes 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. SIPtrunklist: title: SIPtrunklist required: - sip_trunks - pagination type: object additionalProperties: false properties: sip_trunks: type: array items: $ref: "#/components/schemas/SIPTrunkShort" description: A list of SIP trunks associated with your account nullable: true 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 pagination: current_page: 1 total: 1 per_page: 25 total_pages: 1 CDRwithTranscription: title: CDRwithTranscription required: - date - from - to - disposition - duration - destination - per_minute - charge - uuid - transcription type: object additionalProperties: false properties: answered_by: type: string nullable: true description: Answered by 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, the mobile carrier or city name. For inbound calls, it contains the user-defined name of a SIP trunk, a SIP URI, or a PSTN number to which the call was forwarded. 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 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 description: Call ID example: 99df5ffd-962a-410f-bcce-d08f1f7f328c parent_uuid: type: string nullable: true description: Parent UUID example: 99df5ffd-962a-410f-bcce-d08f1f7f328c transcription: $ref: "#/components/schemas/Transcription1" description: A CDR of a single call with call transcription MessagesAsyncRequest: title: MessagesAsyncRequest required: - from - to - message_body type: object additionalProperties: false properties: from: type: string description: Sender ID registered on your account. Can be numeric or alphanumeric. example: Wavix to: type: string description: Destination phone number example: "447537151866" message_body: $ref: "#/components/schemas/MessageBody1" callback_url: type: string description: Callback URL for delivery reports. example: https://you-site.com/webhook validity: type: integer description: Validity period of the message, in seconds. The platform stops sending the message after the validity period expires. format: int32 example: 3600 tag: type: string description: An optional field normally used to identify a group of SMS, e.g. messages associated with a certain campaign. example: Fall sale MydidsUpdateDestinationsRequest: title: MydidsUpdateDestinationsRequest required: - ids - destinations - sms_relay_url type: object additionalProperties: false properties: ids: type: array items: type: integer format: int32 description: An array of unique identifiers of DIDs to update example: - 1 - 2 - 3 destinations: type: array items: $ref: "#/components/schemas/DIDdestination" description: An array of inbound call destinations to be set up on the phone number sms_relay_url: type: string format: uri description: The URL to which SMS messages will be relayed for the specified DIDs example: https://examples.com/sms-webhook Transcript: title: Transcript required: - phone_number_1 - phone_number_2 type: object additionalProperties: false properties: phone_number_1: type: string description: Text representation of words and phrases said by the speaker one example: Hi there phone_number_2: type: string description: Text representation of words and phrases said by the speaker one example: Hello ShortlinkMetricsResponse: title: ShortlinkMetricsResponse required: - metrics - pagination type: object additionalProperties: false properties: metrics: type: array items: $ref: "#/components/schemas/ShortlinkMetricsItem" description: Short link metrics that match the search criteria pagination: $ref: "#/components/schemas/Pagination" BuyCountriesCitiesResponse: title: BuyCountriesCitiesResponse required: - cities type: object additionalProperties: false properties: cities: type: array items: $ref: "#/components/schemas/City" description: A list of cities and rate centers with phone numbers available to purchase MessagesOptOutsRequest: title: MessagesOptOutsRequest required: - opt_out type: object additionalProperties: false properties: opt_out: $ref: "#/components/schemas/Optout" OptOutsListResponse: title: OptOutsListResponse type: object properties: items: type: array items: $ref: "#/components/schemas/OptOutItem" pagination: $ref: "#/components/schemas/Pagination" OptOutItem: title: OptOutItem type: object properties: phone_number: type: string description: Opted out phone number example: "15551234567" sender_id: type: string nullable: true description: The Sender ID the phone number opted out of. 'null' if the number opted out of all messages sent from your account. example: "MySender" campaign_id: type: string nullable: true description: The 10DLC Campaign the phone number opted out of, if any. example: "C123456" created_at: type: string format: date-time description: The date the phone number opted out, in 'yyyy-mm-dd' format. example: "2024-01-15T10:30:00Z" Transcriptionlanguage: title: Transcriptionlanguage nullable: true enum: - en - de - es - fr - it type: string description: Transcription language NotFoundException: title: NotFoundException required: - success - message type: object properties: success: type: boolean description: Indicates a successful request example: false message: type: string description: Human-readable error description example: Record not found example: success: false message: Record not found Create2FAVerificationRequest: title: Create2FAVerificationRequest required: - service_id - to - channel type: object additionalProperties: false properties: service_id: type: string description: Unique Wavix 2FA Service ID. Find your 2FA Service ID 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: The communication channel you want to use. Can be either `sms` or `voice`. example: sms ValidateOTPResponse: title: ValidateOTPResponse required: - is_valid type: object additionalProperties: false properties: is_valid: type: boolean description: Indicates whether the entered code is valid example: true CdrRetranscribeRequest: title: CdrRetranscribeRequest type: object additionalProperties: false properties: language: $ref: "#/components/schemas/Transcriptionlanguage" webhook_url: type: string description: Webhook URL to send status update to example: https://site.webhook MessagesSenderIdsRequest: title: MessagesSenderIdsRequest required: - sender_id - type - countries - usecase type: object additionalProperties: false properties: sender_id: type: string description: Name of the Sender ID. Can be either an alphanumeric string or a phone number on the account. example: Wavix type: $ref: "#/components/schemas/SenderIDtype" countries: type: array items: type: string description: An array of 2 letter ISO codes of the countries the Sender ID to be allow listed in usecase: type: string description: Use case for the Sender ID enum: - transactional - promo - authentication example: transactional monthly_volume: type: string description: Expected monthly volume enum: - 1-1000 - 1001-20000 - 20001-50000 - 50001-100000 - More than 100000 example: 1001-20000 samples: type: array items: type: string description: Sample messages for the Sender ID example: - Sample message 1 - Sample message 2 Calltranscription: title: Calltranscription 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 their transcript text additionalProperties: type: string example: "41562494023": "" "390240325335": "" turns: type: array description: An array of turn objects. Each object contains text attributed to a particular speaker, along with the start and end times for that text. items: $ref: "#/components/schemas/Turn" example: - type: "46844685344" s: 160 e: 7280 text: Three, four five, I'm F. good bye. - type: "+16572026750" s: 2400 e: 3280 text: text uuid: type: string description: Unique identifier of the transcription example: e84f350f-6da7-4b56-80eb-41dec572626b language: $ref: "#/components/schemas/Transcriptionlanguage" duration: type: integer description: Call duration format: int32 example: 102 charge: type: string description: Full charge for the transcription example: 0.01 status: $ref: "#/components/schemas/Transcriptionstatus" transcription_date: type: string description: Date and time the transcription was processed format: date-time example: 2023-01-09T10:04:39.734Z call_date: type: string description: Date and time the call was placed or received format: date-time example: 2023-01-09T10:01:13.394Z call_uuid: type: string description: Unique identifier of the call the transcription is associated with example: bbaa37bf-430a-46da-ade3-c248e4070161 call_score: type: string description: The call score indicates whether the call was positive, negative, or neutral, with scores ranging from 1.0 to 3.0 for negative and 4.0 to 5.0 for positive. example: "3.8" call_summary: type: string description: A brief, one or two sentences long summary of the call example: The agent and client discussed call recording and call transcription GlobalLimits: title: GlobalLimits 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" 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: Unique identifier of the account format: int32 example: 1 email: type: string description: User's email address example: info@awesome.com first_name: type: string description: Account owner's first name example: Jason last_name: type: string description: Account owner's last name example: Androux phone: type: string description: Account owner's phone number example: "13291019312" additional_info: type: string description: Account additional info specified by the account owner example: Additional info contact_email: type: string description: User's contact email example: billing@awesome.com timezone: type: string description: User's timezone example: Pacific/Wallis job_title: type: string description: User's job title example: Manager default_short_link_endpoint: type: string 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 on the account example: - transport: sms value: https://webhook.address.com/inboundSMS company_info: type: object additionalProperties: false description: Company information properties: name: type: string description: Company name example: Awesome company 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: Company industry example: telecommunications address: type: string description: Company address example: Baker street attn_contact_name: type: string description: Billing contact name example: James Scott vat_number: type: string description: VAT number example: VAT123456789 country: type: object additionalProperties: false description: Country information properties: country_name: type: string description: Country name example: United States country_id: type: integer description: Country ID example: 1 Create2FAVerificationResponse: title: Create2FAVerificationResponse 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/LookupDetails" ValidateOTPRequest: title: ValidateOTPRequest required: - code type: object additionalProperties: false properties: code: type: string description: The code entered by an end user example: "123456" Transcriptionstatus: title: Transcriptionstatus enum: - completed - failed type: string description: Transcription status SuccessfulRequest: title: SuccessfulRequest required: - success type: object properties: success: type: boolean description: Indicates a successful request example: true example: success: true BillingInvoicesResponse: title: BillingInvoicesResponse required: - is_empty - invoices - pagination type: object additionalProperties: false properties: is_empty: type: boolean description: Indicates an empty invoice list example: false invoices: type: array items: $ref: "#/components/schemas/Invoice" description: A list on invoiced on the account pagination: $ref: "#/components/schemas/Pagination" BuyCountriesResponse: title: BuyCountriesResponse required: - countries type: object additionalProperties: false properties: countries: type: array items: $ref: "#/components/schemas/Country" description: List of countries that match the search criteria CdrRequest: title: CdrRequest required: - type - from - to - page - per_page type: object additionalProperties: false properties: type: type: string description: Mandatory parameter. Use `placed` to search in the outbound call transcriptions or `received` to search in the inbound call transcriptions. example: placed from: type: string description: Mandatory parameter. Filter results by the lower limit on the date the call was placed or received. Has the following format `yyyy-mm-dd` format: date example: "2023-08-01" to: type: string description: Mandatory parameter. Filter results by the upper limit on the date the call was placed or received. Has the following format `yyyy-mm-dd` format: date example: "2023-08-31" from_search: type: string description: Filter results by the originating phone number. The parameter can be either a full phone number or a part of it. example: "4478012" to_search: type: string description: Filter results by destination phone number. The parameter can be either a full phone number or a part of it. example: "44206723" sip_trunk: type: string description: Filter results by the unique SIP trunk ID used to place an outbound call. For inbound calls the parameter is ignored. example: "87095" min_duration: type: integer description: Filter results by minimum call duration, in seconds format: int32 example: 10 transcription: $ref: "#/components/schemas/Transcription" uuid: type: string description: Call ID example: 99df5ffd-962a-410f-bcce-d08f1f7f328c disposition: allOf: - $ref: "#/components/schemas/Calldisposition" - description: > Filter calls by disposition. In case the parameter is not specified, only answered calls are returned. To get all calls regardless their disposition pass `all` as the parameter value page: type: integer description: Requested page format: int32 example: 1 per_page: type: integer description: Number of records per page format: int32 example: 50 MessagesSenderIdsResponse: title: MessagesSenderIdsResponse required: - items type: object additionalProperties: false properties: items: type: array items: $ref: "#/components/schemas/SenderID" description: A list of Sender IDs registered on the account ShortlinkResponse: title: ShortlinkResponse required: - short_link type: object additionalProperties: false properties: short_link: type: string description: The generated short URL example: https://wx.com/hd82Jhs21 2FAVerificationEvent: title: 2FAVerificationEvent 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. Can contain on of the following values: - `Number lookup` for the Wavix platform checked if the destination phone number is valid. You'll see the event only when the Number validation option is activated for your 2FA Service; - `Code sent via SMS` indicates a code was sent via an SMS; - `Code sent via voice` indicates a code was sent via a voice call; - `Verification` indicates the 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 description: Error description, if any nullable: true BillingTransactionsResponse: title: BillingTransactionsResponse required: - is_empty - transactions - pagination type: object additionalProperties: false properties: is_empty: type: boolean description: Indicates if there is no financial transactions on the account example: false transactions: type: array items: $ref: "#/components/schemas/FinancialTransaction" description: A list of financial 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" CdrResponse: title: CdrResponse required: - items - pagination type: object additionalProperties: false properties: items: type: array items: $ref: "#/components/schemas/CallDetailedRecord" description: List of CDRs pagination: $ref: "#/components/schemas/Pagination" MessageBody1: title: MessageBody1 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 items: type: string description: An array of URLs to a media attachments. If the parameters contains any value other that null, the message is considered to be an MMS, SMS otherwise. nullable: true example: - https://you-site.com/media MessagesRequest: title: MessagesRequest required: - from - to - message_body type: object additionalProperties: false properties: from: type: string description: Sender ID registered on your account. Can be numeric or alphanumeric. example: Wavix to: type: string description: Destination phone number example: "447537151866" message_body: $ref: "#/components/schemas/MessageBody1" callback_url: type: string description: Callback URL for delivery reports. example: https://you-site.com/webhook validity: type: integer description: Validity period of the message, in seconds. The platform stops sending the message after the validity period expires. format: int32 example: 3600 tag: type: string description: An optional field normally used to identify a group of SMS, e.g. messages associated with a certain campaign. example: Fall sale MessagesResponse1: title: MessagesResponse1 required: - items - pagination type: object additionalProperties: false properties: items: type: array items: $ref: "#/components/schemas/SMSorMMSmessage" description: A list of messages that match the search criteria pagination: $ref: "#/components/schemas/Pagination" TrunksResponse: title: TrunksResponse 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 description: Caller ID configured on the SIP trunk. In cases when multiple Caller IDs are allowed on the SIP trunk, contains an empty string. 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 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 nullable: true 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 description: A maximum cost of an outbound call, in USD. nullable: true example: "0.18" call_restrict: type: boolean description: Indicates if maximum call duration limit is activated for the SIP trunk. default: false nullable: true example: false call_limit: type: integer 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 nullable: true 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: Host of siptrunk example: dynamic multiple_numbers: type: boolean description: Multiple numbers example: true encrypted_media: type: boolean description: Encrypted media example: true access_token: type: string example: 123easwqe321132 CDRswithtranscription: title: CDRswithtranscription required: - items - pagination type: object additionalProperties: false properties: items: type: array items: $ref: "#/components/schemas/CDRwithTranscription" description: List of CDRs with links to call transcriptions pagination: $ref: "#/components/schemas/Pagination" description: Call detailed records and transcriptions of recorded calls that match the search criteria NumberValidatorResponse: title: NumberValidatorResponse required: - phone_number - valid - country_code - e164_format - national_format - ported - mcc - mnc - number_type - carrier_name - risky_destination - unallocated_range - reachable - roaming - timezone - charge - error_code type: object additionalProperties: false properties: phone_number: type: string description: The phone number sent in the request example: "971569483322" valid: type: boolean description: Indicates if the phone number is valid or not example: true country_code: type: string description: 2-letter ISO code of the country of the phone number. `null` if the phone number is invalid. example: AE e164_format: type: string description: The phone number in the international E.164 format. example: "+971569483322" national_format: type: string description: The phone number in the national format of the identified country. example: 056 948 3322 ported: type: boolean description: Indicates whether the phone number was ported or not. `null` if the phone number is invalid. example: false mcc: type: string 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 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 description: Phone number type. Can be one of `mobile`, `landline`, or `toll-free`. null if the phone number is invalid. example: mobile carrier_name: type: string description: Name of the phone number carrier. null if the phone number is invalid. example: Etisalat risky_destination: type: boolean description: Indicates whether the phone number belongs to a number range associated with traffic pumping. `null` if the phone number is invalid example: false unallocated_range: type: boolean description: Indicates whether the phone number belongs to an unallocated number range. `null` if the phone number is invalid example: false reachable: type: boolean nullable: true description: Indicates whether the number is registered in a mobile network. For mobile phone numbers only. `null` if the phone number is invalid example: true roaming: type: boolean nullable: true description: Indicates whether the number is roaming. For mobile phone numbers only. `null` if the phone number is invalid example: false timezone: type: string description: The time zone identified based on the phone number country and area code. null if the phone number is invalid example: UTC+04:00 charge: type: string description: Price of the validation. example: "0.015" error_code: type: string description: "Contains an error code if any. “000” indicates success. Other possible error_code values: 013 - Internal service error 021 - Invalid phone number length or format 041 - Request timeout 042 - Request failed 091 - Insufficient funds" example: "000" description: Number Validator Response BuyCartResponse: title: BuyCartResponse required: - dids - doc_types type: object additionalProperties: false properties: dids: type: array description: A list of phone numbers in the cart items: $ref: "#/components/schemas/DIDAvailableforPurchase" doc_types: type: array items: $ref: "#/components/schemas/DocumentType" description: Document types required to activate a phone number Phonenumbervalidationtype: title: Phonenumbervalidationtype enum: - format - analysis - validation type: string description: Phone number validation type OperationSuccessfulRepose: title: OperationSuccessfulRepose required: - success type: object properties: success: type: boolean description: Indicates if the operation is successful example: true ValidationRequest: title: ValidationRequest required: - phone_numbers - type - async - force type: object additionalProperties: false properties: phone_numbers: type: array items: type: string description: An array 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. The default value is false. example: true force: type: boolean description: Force example: true MessagesAsyncResponse: title: MessagesAsyncResponse required: - message_id - status type: object additionalProperties: false properties: message_id: type: string description: Unique identifier of the message generated by the platform example: Unique identifier of the message generated by the platform status: type: string description: The message status `queued` indicates that the request is validated and the messages is pending processing and sending example: queued MydidsResponse: title: MydidsResponse required: - items - doc_types - pagination type: object additionalProperties: false properties: items: type: array items: $ref: "#/components/schemas/DIDontheAccount" description: A list of phone numbers on the account doc_types: type: array items: $ref: "#/components/schemas/DocumentType" description: A list document types required to activate a phone number pagination: $ref: "#/components/schemas/Pagination" Transcription: title: Transcription 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 example: - Hello - Thank you 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 match: type: array items: type: string example: Nope example: - Nope - Maybe 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 exclude: type: array items: type: string example: Richard example: - Richard - Issue resolved 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 client: type: object description: Search in an customer's spoken words and phrases properties: must: type: array items: type: string example: Hello example: - Hello - Thank you 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 match: type: array items: type: string example: Nope example: - Nope - Maybe 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 exclude: type: array items: type: string example: Richard example: - Richard - Issue resolved 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 any: type: object description: Search in both speakers' spoken words and phrases properties: must: type: array items: type: string example: Hello example: - Hello - Thank you 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 match: type: array items: type: string example: Nope example: - Nope - Maybe 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 exclude: type: array items: type: string example: Richard example: - Richard - Issue resolved 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 Turn: title: Turn type: object additionalProperties: false properties: type: type: string description: A speaker's phone number 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: The text attributed to the speaker example: Hi there, how are you? sentiment: type: string example: neutral description: Each Turn object contains text attributed to a particular speaker, along with the start and end times for that text. 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 nullable: true description: The latitude of the location associated to the IP address used when the short link was opened example: 59.3247 longitude: type: number nullable: true description: The longitude of the location associated to the IP address used when the short link was opened example: 18.056 operating_system: type: string description: The operating system used by the user when the short link was opened example: Mac OS X 10.15 browser: type: string description: The browser used by the user to open the short link example: Firefox language: type: string description: The language preference of the user browser use to open the short link example: English phone: type: string description: The phone number associated with the metric example: "12762025555" utm_campaign: type: string description: The UTM campaign parameter associated with the metric example: summer created_at: type: string description: The timestamp indicating when a user opened the short link example: 2023-07-19 18:23:42.120Z link_hash: type: string description: Has of the short link example: hd82Jhs21 user_id: type: integer description: User id example: 100017 VoiceCampaignsRequest1: title: VoiceCampaignsRequest1 required: - voice_campaign type: object additionalProperties: false properties: voice_campaign: $ref: "#/components/schemas/VoiceCampaign" Validatemultiplenumbersresponse: title: Validatemultiplenumbersresponse required: - count - items - status - pending type: object additionalProperties: false properties: status: type: string description: status example: success pending: type: integer example: 0 count: type: integer description: The quantity of phone numbers passed in the request. format: int32 example: 1000 items: type: array items: $ref: "#/components/schemas/NumberValidatorResponse" description: An array of JSON objects containing detailed information about each phone number. The list of parameters returned is determined by the `type` parameter passed in the request. ResendOTPRequest: title: ResendOTPRequest required: - channel type: object additionalProperties: false properties: channel: type: string description: The communication channel you want to use. Can be either `sms` or `voice`. enum: - sms - voice example: voice MessagesResponse: title: MessagesResponse 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: Unique identifier of the message generated by the platform example: 871b4eeb-f798-4105-be23-32df9e991456 message_type: type: string description: Type of the message sent or received. Can be either `sms` or `mms` example: sms from: type: string description: Sender ID used to send the message. Can be numeric or alphanumeric. example: Wavix to: type: string description: Destination phone number example: "447537151866" direction: type: string description: Message direction. Can be either `outbound` or `inbound` example: outbound mcc: type: string description: Mobile country code of the destination phone number. nullable: true example: "301" mnc: type: string description: Mobile network code of the destination phone number. nullable: true example: "204" message_body: $ref: "#/components/schemas/MessageBody1" tag: type: string description: An optional field normally used to identify a group of SMS, e.g. messages associated with a certain campaign. nullable: true example: Fall sale status: $ref: "#/components/schemas/Messagedeliverystatus" segments: type: integer description: Number of message segments, for SMS only. For MMS messages segments is always 1. format: int32 example: 1 charge: type: string description: Total price of the message example: "0.01" submitted_at: type: string description: Timestamp the messages is accepted by the platform example: 2022-04-14T13:51:16.096Z sent_at: type: string description: Timestamp the messages is sent, for mobile terminated messages only. For mobile originated messages the parameter is not returned. nullable: true example: 2022-04-14T13:51:16.096Z delivered_at: type: string description: Timestamp DLR is received for mobile terminated messages or timestamp the messages was successfully relayed to a webhook for mobile originated messages. nullable: true example: 2022-04-14T13:51:16.096Z error_message: type: string description: A human-readable error description, if any nullable: true carrier_fees: type: string description: Mobile carrier fees for delivering the message, in USD. nullable: true example: "0.0" MessagesDeliveryReport: title: MessagesDeliveryReport 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: Unique identifier of the message generated by the platform example: 871b4eeb-f798-4105-be23-32df9e991456 message_type: type: string description: Type of the message sent or received. Can be either `sms` or `mms` example: sms from: type: string description: Sender ID used to send the message. Can be numeric or alphanumeric. example: Wavix to: type: string description: Destination phone number example: "447537151866" tag: type: string description: An optional field normally used to identify a group of SMS, e.g. messages associated with a certain campaign. nullable: true example: Fall sale status: $ref: "#/components/schemas/Messagedeliverystatus" segments: type: integer description: Number of message segments, for SMS only. For MMS messages segments is always 1. format: int32 example: 1 sent: type: string description: Timestamp when Wavix submitted the message for delivery format: date-time example: 2022-04-14T13:51:16.096Z delivered: type: string description: Timestamp when final status was received format: date-time nullable: true example: 2022-04-14T13:51:16.096Z error: type: string description: A human-readable error description, if any nullable: true 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/GlobalLimits" ValidationResponse2: title: ValidationResponse2 required: - status - pending - count - items type: object additionalProperties: false properties: status: type: string description: Status of the request. Can be either `success` indicating that all phone numbers have been processed or `in progress` indicating that some phone numbers are not been processed yet. 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/NumberValidatorResponse" description: An array of JSON objects containing detailed information about each phone number. The list of parameters returned is determined by the `type` parameter passed in the request. 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" AccountLevelException: title: AccountLevelException required: - success - message type: object properties: success: type: boolean description: Indicates a successful request 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. BuyCountriesRegionsResponse: title: BuyCountriesRegionsResponse required: - regions type: object additionalProperties: false properties: regions: type: array items: $ref: "#/components/schemas/Region" description: A list of regions that match the search criteria ValidationResponse: title: ValidationResponse required: - phone_number - valid - country_code - e164_format - national_format - ported - mcc - mnc - number_type - carrier_name - risky_destination - unallocated_range - reachable - roaming - timezone - charge - error_code type: object additionalProperties: false properties: phone_number: type: string description: The phone number sent in the request example: "971569483322" valid: type: boolean description: Indicates if the phone number is valid or not example: true country_code: type: string description: 2-letter ISO code of the country of the phone number. `null` if the phone number is invalid. example: AE e164_format: type: string description: The phone number in the international E.164 format. example: "+971569483322" national_format: type: string description: The phone number in the national format of the identified country. example: 056 948 3322 ported: type: boolean description: Indicates whether the phone number was ported or not. `null` if the phone number is invalid. example: false mcc: type: string 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 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 description: Phone number type. Can be one of `mobile`, `landline`, or `toll-free`. null if the phone number is invalid. example: mobile carrier_name: type: string description: Name of the phone number carrier. null if the phone number is invalid. example: Etisalat risky_destination: type: boolean description: Indicates whether the phone number belongs to a number range associated with traffic pumping. `null` if the phone number is invalid example: false unallocated_range: type: boolean description: Indicates whether the phone number belongs to an unallocated number range. `null` if the phone number is invalid example: false reachable: type: boolean description: Indicates whether the number is registered in a mobile network. For mobile phone numbers only. `null` if the phone number is invalid example: true roaming: type: boolean description: Indicates whether the number is roaming. For mobile phone numbers only. `null` if the phone number is invalid example: false timezone: type: string description: The time zone identified based on the phone number country and area code. null if the phone number is invalid example: UTC+04:00 charge: type: string description: Price of the validation. example: "0.015" error_code: type: string description: "Contains an error code if any. “000” indicates success. Other possible error_code values: 013 - Internal service error 021 - Invalid phone number length or format 041 - Request timeout 042 - Request failed 091 - Insufficient funds" example: "000" BuyCountriesCitiesDidsResponse: title: BuyCountriesCitiesDidsResponse required: - dids - pagination type: object additionalProperties: false properties: dids: type: array items: $ref: "#/components/schemas/DIDAvailableforPurchase" description: List of DIDs available for purchase. pagination: $ref: "#/components/schemas/Pagination" MessagesSenderIdsResponse1: title: MessagesSenderIdsResponse1 required: - id - sender_id - type - allowlisted_in type: object additionalProperties: false properties: id: type: string description: Unique identifier of the Sender ID example: 3c7a5a90-43e0-43e0-b006-fdfea30c5a7c sender_id: type: string description: Name of the Sender ID. Can be either an alphanumeric string or a DID number. example: Wavix type: $ref: "#/components/schemas/SenderIDtype" allowlisted_in: type: array items: type: string description: An array of 2 letter ISO codes of the countries the Sender ID is allow listed in usecase: type: string example: promo samples: type: array items: type: string description: Sample messages for the Sender ID example: - Sample message 1 - Sample message 2 MessagesSenderIdsRestrictionsResponse: title: MessagesSenderIdsRestrictionsResponse required: - self_service type: object additionalProperties: false properties: self_service: type: boolean description: Indicates whether the Sender ID can be provisioned via the API example: true LookupDetails: title: LookupDetails 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 ResendOTPResponse: title: ResendOTPResponse 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 FileTranscription: title: FileTranscription required: - transcript - turns - request_id - language - duration - charge - status - transcription_date - transcription_score - transcription_summary - original_file type: object additionalProperties: false properties: transcript: nullable: true allOf: - $ref: "#/components/schemas/FileTranscript" - description: The `transcript` object contains the complete file transcription, with text attributed to each channel. turns: nullable: true type: array items: $ref: "#/components/schemas/FileTurn" description: An array of `turns` objects where each turn contains text attributed to an identified speaker along with the start and end times for that text and identified sentiment example: - speaker: channel_1 s: 600 e: 700 text: Hi sentiment: positive request_id: type: string description: Unique identifier of the transcription request example: e84f350f-6da7-4b56-80eb-41dec572626b language: allOf: - $ref: "#/components/schemas/Transcriptionlanguage" - description: A language used in the transcription example: en duration: nullable: true type: integer description: The duration of the uploaded file, in seconds. format: int32 example: 102 charge: type: string description: The total charge for the transcription, in USD example: "0.01" status: allOf: - $ref: "#/components/schemas/Transcriptionstatus" - description: The status of the transcription, can be one of `completed` or `failed` example: completed transcription_date: type: string description: Date and time the transcription is completed format: date-time example: 2023-01-09T10:04:39.734Z transcription_score: nullable: true type: string description: Indicates whether the conversation was positive, negative, or neutral. Scores ranging from 1.0 to 3.0 indicate negative conversation and 4.0 to 5.0 indicate positive. example: "3.8" transcription_summary: nullable: true type: string description: A concise summary of the transcribed conversation example: The agent and client discussed call recording and call transcription original_file: type: string description: URL to the uploaded file example: https://api.wavix.com/v1/files/uuid Transcription1: title: Transcription1 required: - uuid - url type: object nullable: true additionalProperties: false properties: uuid: type: string description: Unique identifier of the call transcription example: 40d6f322-048d-490b-95c7-4fc5c76a74db url: type: string description: The URL to query the call transcription example: https://api.wavix.com/v1/cdr/40d6f322-048d-490b-95c7-4fc5c76a74db/transcription?appid=secret ShortlinkRequest: title: ShortlinkRequest required: - link type: object additionalProperties: false properties: link: type: string description: The long URL to be shortened example: https://your-site.com/long-url expiration_time: type: string description: The expiration time of the short link format: date-time example: 2023-07-19T18:18:34.235Z fallback_url: type: string description: The URL to redirect to if the short link is expired or invalid example: https://examples.com/fallback phone: type: string description: The phone number associated with the short link example: "15155982927" utm_campaign: type: string description: The UTM campaign parameter; you can use this parameter to group the tracking insight by campaign example: summer_promo ProfileRequest: title: ProfileRequest type: object additionalProperties: false properties: additional_info: type: string description: Account additional info specified by the account owner contacts: type: string description: User's contact email 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: SMS relay URL dlr_relay_url: type: string description: DLR relay URL time_zone: type: string description: User's timezone example: UTC job_title: type: string description: User'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: Company industry 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 VoiceCampaign: title: VoiceCampaign required: - callflow_id - caller_id - contact type: object additionalProperties: false properties: callflow_id: type: integer description: Unique identifier of the Call flow to be launched. You can find it on the Calls flows page. Note that 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: A phone number on your Wavix account. Will be used as Caller ID when placing an outbound call. example: "13123310912" contact: type: string description: A phone number to place an outbound the call to example: "16729923812" callback_url: type: string description: A webhook URL to receive campaign status updates example: https://you-site.com/webhook SubmitaFileforTranscriptionResponse: title: SubmitaFileforTranscriptionResponse required: - file - request_id - success type: object properties: file: type: string description: The name of the uploaded file example: file.mp3 request_id: type: string description: Unique identifier of the transcription request example: e865ea07-25af-4fdd-876e-04b0d41d5ebd success: type: boolean description: Indicates a successful request example: true example: file: file.mp3 request_id: e865ea07-25af-4fdd-876e-04b0d41d5ebd success: true TranscriptionCompletedCallback: title: TranscriptionCompletedCallback 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: The status of the transcription, can be one of `completed` or `failed` example: completed error: type: string description: A human-readable error description, if any example: null GetCdrResponse: title: GetCdrResponse required: - date - from - to - disposition - duration - destination - per_minute - charge - uuid type: object additionalProperties: false properties: 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, the mobile carrier or city name. For inbound calls, it contains the user-defined name of a SIP trunk, a SIP URI, or a PSTN number to which the call was forwarded. example: France per_minute: type: string description: Price per minute, in USD example: "0.027" recording_url: type: string description: An URL to the file containing the recorded call. Call recording can be enabled on a SIP trunk for outbound calls and on a DID for inbound calls. example: https://api.wavix.com/v1/recordings/uuid charge: type: string description: Total charge for the call, in USD sip_trunk: type: string description: System-generated login of a SIP trunk. 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 description: Call ID example: 99df5ffd-962a-410f-bcce-d08f1f7f328c parent_uuid: type: string description: Parent UUID nullable: true example: 99df5ffd-962a-410f-bcce-d08f1f7f328c answered_by: type: string nullable: true description: Answered by example: human FileTurn: title: FileTurn required: - speaker - s - e - text - sentiment type: object additionalProperties: false properties: speaker: type: string description: An identified speacker example: channel_1 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: The text attributed to the speaker example: Hi there, how are you? sentiment: type: string description: "An identified sentiment can be one of the following: `positive`, `neutral`, or `negative`" example: positive description: Each Turn object contains text attributed to a particular speaker, along with the start and end times for that text. example: speaker: channel_1 s: 600 e: 700 text: Hi there sentiment: positive FileTranscript: title: FileTranscript required: - channel_1 - channel_2 type: object additionalProperties: false properties: channel_1: type: string description: Text representation of words and phrases said by the speaker one example: Hi there channel_2: type: string description: Text representation of words and phrases said by the speaker two example: Hello MessagesSenderIdResponse: type: object additionalProperties: false properties: id: type: string format: uuid description: Unique identifier of the Sender ID example: 3c7a5a90-43e0-43e0-b006-fdfea30c5a7c sender_id: type: string description: The Sender ID value example: Wavix type: type: string description: The type of the Sender ID enum: - alphanumeric - numeric - shortcode example: alphanumeric usecase: type: string description: usecase example: promo samples: type: array items: type: string example: Sample allowlisted_in: type: array description: List of countries where this Sender ID is allowlisted items: type: string example: GB required: - id - sender_id - type 10DLCBrandentitytype: title: 10DLCBrandentitytype enum: - PRIVATE_PROFIT - PUBLIC_PROFIT - NON_PROFIT - GOVERNMENT type: string description: Brand entity type example: PRIVATE_PROFIT 10DLCBrandIdentityverificationstatus: title: 10DLCBrandIdentityverificationstatus enum: - REVIEW - VERIFIED - UNVERIFIED - VETTED_VERIFIED type: string description: 10DLC Brand Identity verification status 10DLCBrandregistrationrequest: title: 10DLCBrandregistrationrequest 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: The company entity type enum: - PRIVATE_PROFIT - PUBLIC_PROFIT - NON_PROFIT - GOVERNMENT example: PUBLIC_PROFIT vertical: type: string description: The segment the business operates in 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 description: The stock symbol of the Brand. For PUBLIC_PROFIT Brands only. maxLength: 10 nullable: true example: null stock_exchange: type: string description: The stock exchange code. For PUBLIC_PROFIT Brands only. maxLength: 10 nullable: true 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 description: State or province. For the United States, use 2 character codes. maxLength: 20 nullable: true 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. You can create mock Brands for testing purposes only, production traffic with the 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 10DLCBrand: title: 10DLCBrand 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: TCR Brand unique identified example: BM20QP9 dba_name: type: string description: Brand name or DBA example: Brand company_name: type: string description: Legal name of the company example: Company entity_type: allOf: - $ref: "#/components/schemas/10DLCBrandentitytype" - description: The company entity type example: PRIVATE_PROFIT vertical: type: string description: The segment the business operates in 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. example: "999999999" ein_taxid_country: type: string description: 2-letter ISO country code of the Tax ID issuing country example: US status: allOf: - $ref: "#/components/schemas/10DLCBrandIdentityverificationstatus" - description: Brand identity verification status example: VERIFIED website: type: string description: The website of the business example: https://brand.com stock_symbol: type: string description: The stock symbol of the Brand. For PUBLIC_PROFIT Brands only. nullable: true stock_exchange: type: string description: The stock exchange code. For PUBLIC_PROFIT Brands only. nullable: true first_name: type: string description: The first name of the business contact example: John last_name: type: string description: The last name of the business contact example: Dow phone_number: type: string description: The support contact telephone in E.164 format example: "12123450099" email: type: string description: The email address of the support contact example: support@brand.com street_address: type: string description: Street name and house number example: 10, City Name city: type: string description: The city name example: Miami state_or_province: type: string description: State or province. For the United States, use 2 character codes. nullable: true example: FL country: type: string description: 2-letter ISO country code the business address example: US zip: type: string description: The business zip or postal code example: "12345" feedback: type: string description: The Brand Identity verification feedback, if any nullable: true mock: type: boolean description: Indicates a mock Brand. You can create mock Brands for testing purposes only, production traffic with the mock Brands is prohibited. default: false example: false created_at: type: string description: Date and time the Brand was created example: 2024-07-24T08:29:09 updated_at: type: string description: Date and time the Brand was updated example: 2024-07-24T08:29:09 description: A 10DLC Brand object 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" Listof10DLCBrands: title: Listof10DLCBrands required: - items - pagination type: object additionalProperties: false properties: items: type: array items: $ref: "#/components/schemas/10DLCBrand" 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 10DLCBrandupdaterequest: title: 10DLCBrandupdaterequest 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: The company entity type enum: - PRIVATE_PROFIT - PUBLIC_PROFIT - NON_PROFIT - GOVERNMENT example: PRIVATE_PROFIT vertical: type: string description: The segment the business operates in 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 description: The stock symbol of the Brand. For PUBLIC_PROFIT Brands only. maxLength: 10 nullable: true example: null stock_exchange: type: string description: The stock exchange code. For PUBLIC_PROFIT Brands only. maxLength: 10 nullable: true example: null 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 description: State or province. For the United States, use 2 character codes. maxLength: 20 nullable: true 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 BrandIdentityverificationappealrequest: title: BrandIdentityverificationappealrequest required: - appeal_categories - evidence type: object additionalProperties: false properties: appeal_categories: type: array items: type: string description: "The list of appeal categories. The allowed appeal categories are: `VERIFY_TAX_ID`, `VERIFY_NON_PROFIT`, and `VERIFY_GOVERNMENT`" example: - VERIFY_TAX_ID evidence: type: array items: type: string description: An array of evidence UUIDs to be associated with the appeal example: - 855dff49-c097-4645-3983-08dcb9856232 explanation: type: string description: The appeal comment or justification example: Find the company incorporation docs attached and please review the Brand Identity status. description: Request to appeal a Brand Identity verification decision. 10DLCBrandIdentityverificationappeal: title: 10DLCBrandIdentityverificationappeal 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:43 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/10DLCBrandIdentityStatusappealstatusoutcome" - 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:43 explanation: type: string description: The appeal justification example: Dear partner, please review the uploaded company registration docs. description: Brand Identity verification appeal details and status. example: categories: - VERIFY_TAX_ID created_at: 2024-08-01T14:09:43 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:15 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 description: TCR error message structure. 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 description: An array of Brand attributes nullable: true errors: type: array items: $ref: "#/components/schemas/TCRerrormessage" description: An array of verification errors, if any nullable: true description: TCR returns the feedback per submitted appeal category 10DLCBrandIdentityStatusappealstatusoutcome: title: 10DLCBrandIdentityStatusappealstatusoutcome 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/10DLCBrandIdentityverificationstatus" - description: Brand Identity Verification appeal outcome example: UNVERIFIED feedback: allOf: - $ref: "#/components/schemas/TCRFeedbackobject" - description: Brand Identity Verification appeal feedback, if any description: TCR feedback object containing appeal outcome details. TCRFeedbackobject: title: TCRFeedbackobject required: - category type: object additionalProperties: false properties: category: type: array items: $ref: "#/components/schemas/TCRFeedbackcategory" description: The feedback category description: TCR feedback object with category and optional attributes. 10DLCBrandappealevidence: title: 10DLCBrandappealevidence 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 description: Evidence file attached to a 10DLC Brand appeal. 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 10DLCBrandexternalvetting: title: 10DLCBrandexternalvetting 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: External vetting provider code example: AEGIS create_date: type: string description: The date and time the vetting request is created example: 2024-08-01T14:09:43 vetting_details: type: object description: Additional details of the vetting request additionalProperties: true example: additional_prop1: {} additional_prop2: {} additional_prop3: {} vetted_date: type: string nullable: true description: The date and time the vetting request is competed 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 nullable: true description: Unique vetting token 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 nullable: true description: The assigned Brand vetting score format: int32 example: 80 vetting_class: type: string description: The vetting class example: STANDARD vetting_status: type: string description: Status of the vetting request example: PENDING reasons: type: array nullable: true description: Reason items: type: string example: "Company size as reported by government or business sources resulted in a score deduction: size range 6-10" description: External vetting feedback and score details. 10DLCBrandexternalvettingrequest: title: 10DLCBrandexternalvettingrequest required: - evp_id - vetting_class type: object additionalProperties: false properties: evp_id: type: string description: External vetting provider code example: AEGIS vetting_class: type: string description: The vetting class example: STANDARD description: Request to initiate external vetting for a 10DLC Brand. Importa10DLCBrandexternalvettingrequest: title: Importa10DLCBrandexternalvettingrequest required: - evp_id - vetting_id - vetting_token type: object additionalProperties: false properties: evp_id: type: string description: External vetting provider code example: AEGIS vetting_id: type: string description: Unique identifier of the vetting request example: 13d8e00c-3cb4-4dc0-9e26-d5057fa938d9 vetting_token: type: string description: Unique vetting token 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 description: External vetting request for a 10DLC Brand. Brandexternalvettingappealrequest: title: Brandexternalvettingappealrequest required: - appeal_categories - evidence type: object additionalProperties: false properties: appeal_categories: type: array items: type: string description: "The list of appeal categories. The allowed appeal categories are: `VERIFY_TAX_ID`, `VERIFY_NON_PROFIT`, `VERIFY_GOVERNMENT`, `LOW_SCORE`" example: - VERIFY_TAX_ID evidence: type: array items: type: string description: An array of evidence UUIDs to be associated with the appeal example: - 855dff49-c097-4645-3983-08dcb9856232 explanation: type: string description: The 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: 1 vetting_id: type: string description: The vetting unique identifier example: 48c0ffaa-4e51-4d44-3982-08dcb9856232 description: Request to appeal an external vetting decision for a 10DLC Brand. 10DLCBrandextvettingappealoutcome: title: 10DLCBrandextvettingappealoutcome 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/10DLCBrandextvettingappealoutcomereason" - description: The feedback provided by the external vetting provider description: Outcome of an external vetting appeal including 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." 10DLCBrandextvettingappealoutcomereason: title: 10DLCBrandextvettingappealoutcomereason 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." description: Human-readable feedback reasons from the external vetting provider. example: reasons: - "Company size as reported by government or business sources resulted in a score deduction: size range 6-10." 10DLCBrandexternalvettingappeal: title: 10DLCBrandexternalvettingappeal 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/10DLCBrandextvettingappealoutcome" - description: The appeal outcome 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: The appeal status example: COMPLETE appeal_status_update_date: type: string description: The date and time the appeal status was updated format: date-time example: 2024-08-15T08:42:31 attachment_uuid_list: type: array items: type: string description: A list of evidence UUIDs associated with the appeal example: [] brand_id: type: string description: The unique identifier of the Brand the appeal is associated with example: BMQFB7X category_list: type: array items: type: string description: A list of appeal categories example: - LOW_SCORE create_date: type: string description: Date and time the appeal was created example: 2024-08-15T08:41:05 explanation: type: string description: The appeal justification example: Please review the Brand score evp_id: type: string description: External vetting provider code example: AEGIS vetting_class: type: string description: The vetting class example: STANDARD vetting_id: type: string description: The vetting unique identifier example: 48c0ffaa-4e51-4d44-3982-08dcb9856232 description: External vetting appeal outcome with feedback details. 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:31 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 10DLCMNOmetadata: title: 10DLCMNOmetadata 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 properties: att_mms_tpm: type: integer description: MMS message throughput on the AT&T mobile networks format: int32 nullable: true att_msg_class: type: string description: The message class assigned by AT&T nullable: true att_sms_tpm: type: integer description: MMS message throughput on the AT&T mobile networks format: int32 nullable: true att_tpm_scope: type: string nullable: true description: The message throughput score on the AT&T mobile networks format: int32 help_required: type: boolean description: Indicates whether the HEPL keywords and acknowledgement is mandatory for the use case example: true optin_required: type: boolean description: Indicates whether the opt in mechanism is mandatory for the use case example: true optout_required: type: boolean description: Indicates whether the opt out mechanism is mandatory for the use case example: false min_msg_samples: type: integer description: The minimal number of message samples required by the MNO format: int32 example: 1 mno: type: string description: The MNO name example: T-Mobile mno_qualify: type: boolean description: Indicates whether the Brand is qualified by the MNO for the selected use case example: true mno_review: type: boolean description: Indicates whether the use case post-approval review is request by the MNO example: false mno_support: type: boolean description: Indicates whether the use case is supported by the MNO example: true no_embedded_links: type: boolean description: Indicates whether embedded links are prohibited in the message content for the use case example: false no_embedded_phone: type: boolean description: Indicates whether embedded phone numbers are prohibited in the message content for the use case example: false tmobile_brand_dcap: type: integer description: Message daily cap on the T-Mobile mobile networks format: int32 nullable: true example: 2000 tmobile_brand_tier: type: string description: The Brand tier for the T-Mobile mobile networks example: LOW nullable: true description: 10DLC campaign qualification result with MNO metadata. 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 10DLCBrandQualificationresult: title: 10DLCBrandQualificationresult required: - mno_metadata - monthly_fee - usecase type: object additionalProperties: false properties: mno_metadata: type: array items: $ref: "#/components/schemas/10DLCMNOmetadata" 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 description: 10DLC Brand use case qualification result. 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.0" usecase: 2FA 10DLCCampaign: title: 10DLCCampaign 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 - 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 description: The date and time the Campaign was billed example: 2024-08-14T11:57:42 next_bill_date: type: string description: The date and time the Campaign will be billed next time 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 description: An embedded link sample nullable: true brand_id: type: string description: Unique identified of the Brand the Campaign is associated with example: BM20QP9 campaign_id: type: string description: Unique identified of the Campaign example: CKLCK95 description: type: string description: The Campaign description example: Our campaign aims to … optin_workflow: type: string description: The opt-in workflow - the process through which consumers opt-in to the Campaign example: Our SMS ... feedback: type: string description: The feedback associated with the Campaign, if any nullable: true help: type: boolean description: "Indicates whether the campaign has a help system (e.g. keyword: HELP, INFO) that subscribers can use or not." example: true help_keywords: type: string description: A comma-separated list of HELP keywords. The HELP keywords are case-insensitive. example: help help_message: type: string description: An acknowledgement to be sent when a HELP keyword is received example: For help, please visit www.site.com. To opt out, reply STOP. optin: type: boolean description: Indicates whether the campaign requires a subscriber to opt-in before receiving messages or not. example: true optin_keywords: type: string description: A comma-separated list of OPT-IN keywords. The OPT-IN keywords are case-insensitive. example: begin,start optin_message: type: string description: An acknowledgement to be sent when an OPT-IN keyword is received example: You are now opted-in for help please reply HELP, to stop please reply STOP optout: type: boolean description: "Indicates whether the campaign has an opt-out system (e.g. keyword: STOP, QUIT) that subscribers can use or not." example: true optout_keywords: type: string description: A comma-separated list of OPT-OUT keywords. The OPT-OUT keywords are case-insensitive. example: stop,quit,unsubscribe optout_message: type: string description: An acknowledgement to be sent when an OPT-OUT keyword is received example: You are now opted out and will receive no further messages name: type: string description: A user-defined Campaign name example: My first campaign created_at: type: string description: Date and time the Campaign was created example: 2024-08-14T11:57:41 sample1: type: string description: Message sample example: Your verification code is XXXXXX sample2: type: string description: Message sample nullable: true sample3: type: string description: Message sample nullable: true sample4: type: string description: Message sample nullable: true sample5: type: string description: Message sample nullable: true updated_at: type: string description: Date and time the Campaign was last updated example: 2024-08-14T11:57:47 mock: type: boolean description: Indicates a mock Campaign. The mock Campaigns cannot be used to send production traffic example: false usecase: type: string description: The Campaign use case example: 2FA monthly_fee: type: string description: Monthly fee for the Campaign example: "10.0" privacy_policy: type: string description: A link to the Campaign privacy policy example: https://site.com/privacy-policy terms_conditions: type: string description: A link to the Campaign terms and conditions example: https://site.com/terms-and-conditions status: type: string description: The Campaign status example: APPROVED phone_numbers: type: array items: type: string description: A list of phone numbers associated with the Campaign example: - "14358684439" - "13193337776" - "12673296046" description: 10DLC campaign details including associated numbers. 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" Listof10DLCCampaigns: title: Listof10DLCCampaigns required: - items - pagination type: object additionalProperties: false properties: items: type: array items: $ref: "#/components/schemas/10DLCCampaign" description: A paginated list of 10DLC Campaign matching the filter criteria pagination: allOf: - $ref: "#/components/schemas/Pagination" - description: Pagination details description: A 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 10DLCCampaignregistrationrequest: title: 10DLCCampaignregistrationrequest 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 should be automatically renewed 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 description: Indicates whether the Campaign messages contain embedded phone numbers nullable: true example: true embedded_link_sample: type: string description: An embedded link sample nullable: true description: type: string description: The Campaign description example: Our campaign aims to … optin_workflow: type: string description: The opt-in workflow - the process through which consumers opt-in to the Campaign example: Our SMS ... help: type: boolean description: "Indicates whether the campaign has a help system (e.g. keyword: HELP, INFO) that subscribers can use or not." example: true help_keywords: type: string description: A comma-separated list of HELP keywords. The HELP keywords are case-insensitive. example: help help_message: type: string description: An acknowledgement to be sent when a HELP keyword is received example: For help, please visit www.site.com. To opt out, reply STOP. optin: type: boolean description: Indicates whether the campaign requires a subscriber to opt-in before receiving messages or not. example: true optin_keywords: type: string description: A comma-separated list of OPT-IN keywords. The OPT-IN keywords are case-insensitive. example: begin,start optin_message: type: string description: An acknowledgement to be sent when an OPT-IN keyword is received example: You are now opted-in for help please reply HELP, to stop please reply STOP optout: type: boolean description: "Indicates whether the campaign has an opt-out system (e.g. keyword: STOP, QUIT) that subscribers can use or not." example: true optout_keywords: type: string description: A comma-separated list of OPT-OUT keywords. The OPT-OUT keywords are case-insensitive. example: stop,quit,unsubscribe optout_message: type: string description: An acknowledgement to be sent when an OPT-OUT keyword is received example: You are now opted out and will receive no further messages name: type: string description: A user-defined Campaign name example: My first campaign sample1: type: string description: Message sample example: Your verification code is XXXXXX sample2: type: string description: Message sample nullable: true sample3: type: string description: Message sample nullable: true sample4: type: string description: Message sample nullable: true sample5: type: string description: Message sample nullable: true mock: type: boolean description: Indicates a mock Campaign. The mock Campaigns cannot be used to send production traffic example: false usecase: type: string description: The Campaign use case example: 2FA privacy_policy: type: string description: A link to the Campaign privacy policy example: https://site.com/privacy-policy terms_conditions: type: string description: A link to the Campaign terms and conditions example: https://site.com/terms-and-conditions description: 10DLC campaign registration or update request. example: affiliate_marketing: false age_gated: false auto_renewal: false description: Our campaign aims to … direct_lending: false embedded_link_sample: null 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: null sample4: null sample5: null terms_conditions: https://site.com/terms-and-conditions usecase: 2FA 10DLCCampaignupdaterequest: title: 10DLCCampaignupdaterequest type: object additionalProperties: false properties: name: type: string description: A user-defined Campaign name maxLength: 120 example: Campaign usecase: type: string description: Campaign use case enum: - CUSTOMER_CARE - MARKETING - ACCOUNT_NOTIFICATION - FRAUD_ALERT - PUBLIC_SERVICE_ANNOUNCEMENT - SECURITY_ALERT example: MARKETING description: type: string description: The Campaign description minLength: 40 maxLength: 4096 example: The Campaign description 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 supports opt-in functionality default: false example: true optout: type: boolean description: Indicates whether the Campaign supports opt-out functionality default: false example: true help: type: boolean description: Indicates whether the Campaign provides HELP responses default: false example: true sample1: type: string description: Message sample minLength: 20 maxLength: 1024 example: Example of message sample for campaign 1 sample2: type: string description: Message sample minLength: 20 maxLength: 1024 example: Example of message sample for campaign 2 sample3: type: string description: Message sample minLength: 20 maxLength: 1024 example: Example of message sample for campaign 3 sample4: type: string description: Message sample minLength: 20 maxLength: 1024 example: Example of message sample for campaign 4 sample5: type: string description: Message sample minLength: 20 maxLength: 1024 example: Example of message sample for campaign 5 optin_workflow: type: string description: The opt-in workflow - the process through which consumers opt-in to the Campaign minLength: 40 maxLength: 4096 example: Our SMS ... help_message: type: string description: An acknowledgement to be sent when a HELP keyword is received minLength: 20 maxLength: 320 example: For help, please visit www.site.com. To opt out, reply STOP. optin_message: type: string description: An acknowledgement to be sent when an OPT-IN keyword is received example: begin,start minLength: 20 maxLength: 320 optout_message: type: string description: An acknowledgement to be sent when an OPT-OUT keyword is received 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 should be automatically renewed default: true example: true optin_keywords: type: string description: A comma-separated list of OPT-IN keywords. The OPT-IN keywords are case-insensitive. maxLength: 255 example: start,optin help_keywords: type: string description: A comma-separated list of HELP keywords. The HELP keywords are case-insensitive. maxLength: 255 default: HELP example: help optout_keywords: type: string description: A comma-separated list of OPT-OUT keywords. The OPT-OUT keywords are case-insensitive. maxLength: 255 example: optout,discard terms_conditions: type: string description: A link to the Campaign terms and conditions maxLength: 255 example: https://site.com/terms-and-conditions privacy_policy: type: string description: A link to the Campaign privacy policy maxLength: 255 example: PROFESSIONAL embedded_link_sample: type: string description: An embedded link sample maxLength: 255 example: https://example.com 10DLCeventssubscription: title: 10DLCeventssubscription required: - subscription_category - url type: object additionalProperties: false properties: subscription_category: type: string description: "The Wavix 10DLC event type. Can be one of the following: `brand`, `campaign`, or `number`." example: brand url: type: string description: A webhook URL to send events to example: https://webhook.url description: 10DLC event subscription configuration. example: subscription_category: brand url: https://webhook.url 10DLCNumber: title: 10DLCNumber required: - number - status type: object additionalProperties: false properties: number: type: string description: A phone number associated with a 10DLC Campaign example: "17029641104" status: type: string description: The number provisioning status. Only `APPROVED` numbers can be used as Sender IDs. example: APPROVED description: Phone numbers associated with a 10DLC campaign. 10DLCCampaignNumbers: title: 10DLCCampaignNumbers required: - brand_id - campaign_id - numbers type: object additionalProperties: false properties: brand_id: type: string description: Unique identifier of a 10DLC Brand campaign_id: type: string description: Unique identifier of a 10DLC Campaign numbers: type: array items: $ref: "#/components/schemas/10DLCNumber" description: A list of phone numbers associated with the Campaign Nudgerequest: title: Nudgerequest required: - nudge_intent - description type: object additionalProperties: false properties: nudge_intent: type: string description: The nudge intent. Use ```REVIEW``` to request action on a pending approval, or to ```APPEAL_REJECTION``` to submit an appeal for a rejected campaign. example: REVIEW description: type: string description: The description of the nudge request example: Please review the campaign. description: Use this request to nudge an intended party to review if the approval process is delayed or appeal if the campaign has been rejected. Set the nudge_intent parameter to REVIEW to request action on a pending approval, or to APPEAL_REJECTION to submit an appeal for a rejected campaign. MydidsLocationResponse: title: MydidsLocationResponse required: - city_code - city_id - city_name - country_id - country_name type: object additionalProperties: false properties: city_code: type: integer format: int32 description: City code example: 2802 city_id: type: integer format: int32 description: Unique identifier of the city example: 1 city_name: type: string description: Name of the city example: New York country_id: type: integer format: int32 description: Unique identifier of the country example: 1 country_name: type: string description: Name of the country example: United States description: A location response for MyDIDs cities RecordingMonthStatisticResponse: title: RecordingMonthStatisticResponse required: - id - year - month - average_storage_minutes - recorded_minutes type: object additionalProperties: false properties: id: type: integer format: int32 description: Unique identifier of the statistic example: 123 year: type: string description: Year example: "2023" month: type: string description: Month (formatted with leading zero) example: "06" average_storage_minutes: type: number format: float description: Average storage minutes example: 120.5 total_charge: type: number format: float description: Total charge for the month (in USD) example: 15.5 recorded_minutes: type: integer format: int32 description: Total recorded minutes example: 3600 description: A recording month statistic response CallRecordingResponse: title: CallRecordingResponse required: - id - created_at - duration - from - to - call_uuid - url type: object additionalProperties: false properties: id: type: integer format: int32 description: Unique identifier of the recording example: 123 created_at: type: string format: date-time description: When the recording was created example: 2023-06-15T10:30:00Z duration: type: integer format: int32 description: Duration of the recording in seconds example: 120 from: type: string description: Source phone number example: "1234567890" to: type: string description: Destination phone number example: "0987654321" call_uuid: type: string description: UUID of the call example: aa566501-c591-4a8b-b3b9-cc1295398b72 url: type: string description: URL to the recording file example: https://api.wavix.com/v1/recordings/uuid description: A call recording response InvalidRecordingResponse: title: InvalidRecordingResponse type: object additionalProperties: false properties: dids: type: array items: type: string description: Invalid DID IDs example: - invalid_did_1 - invalid_did_2 sip_trunks: type: array items: type: string description: Invalid SIP trunk IDs example: - invalid_trunk_1 - invalid_trunk_2 description: An invalid recording filter response TrunkResponse: title: TrunkResponse required: - id - recording_enabled type: object additionalProperties: false properties: id: type: string description: SIP trunk ID example: "123" recording_enabled: type: boolean description: Whether recording is enabled for this trunk example: true description: A SIP trunk response for recording settings DidResponse: title: DidResponse required: - id - recording_enabled type: object additionalProperties: false properties: id: type: string description: DID ID example: "789" recording_enabled: type: boolean description: Whether recording is enabled for this DID example: false description: A DID response for recording settings CallWebhookResponse: title: CallWebhookResponse required: - success - event_type - url type: object additionalProperties: false properties: success: type: boolean example: string event_type: type: string description: Type of call events 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 GetCallWebhookResponse: title: GetCallWebhookResponse type: array description: A list of webhook responses for call events items: type: object additionalProperties: false required: - event_type - url properties: event_type: type: string description: Type of call events enum: - post-call - on-call example: post-call url: type: string format: uri description: Webhook URL example: https://your-site.com/webhook UserResponse: title: UserResponse required: - id - created_at - name - api_key - master_organization - status - default_destinations type: object additionalProperties: false properties: id: type: integer format: int32 description: Unique identifier of the user example: 123 created_at: type: string format: date-time description: When the user was created example: 2023-06-15T10:30:00Z name: type: string description: Company name example: Company api_key: type: string description: Active API key for the user example: abc123def456 master_organization: type: integer format: int32 description: ID of the master organization example: 456 status: type: string description: User status enum: - enabled - disabled example: enabled default_destinations: type: object additionalProperties: false description: Default endpoints for SMS and DLR required: - sms_endpoint - dlr_endpoint properties: sms_endpoint: type: string format: uri description: SMS endpoint URL example: https://examples.com/sms dlr_endpoint: type: string format: uri description: DLR endpoint URL example: https://examples.com/dlr example: id: 123 created_at: 2023-06-15T10:30:00Z name: Updated Company Name api_key: abc123def456 master_organization: 456 status: enabled default_destinations: sms_endpoint: https://examples.com/sms dlr_endpoint: https://examples.com/dlr description: A user response for sub-organizations ServiceUnavailableErrorResponse: title: ServiceUnavailableErrorResponse type: object properties: success: type: boolean description: Indicates that the request was successful example: false message: type: string description: Service temporary unavailable example: Service temporary unavailable description: Service temporary unavailable error response GenerateWidgetTokenRequest: title: GenerateWidgetTokenRequest type: object additionalProperties: false required: - sip_trunk properties: sip_trunk: type: string description: SIP trunk name example: my-sip-trunk payload: type: object description: Arbitrary data to be associated with the token nullable: true example: {} ttl: type: integer description: Time to live in seconds nullable: true example: 3600 WidgetTokenResponse: title: WidgetTokenResponse type: object additionalProperties: false required: - token - uuid - sip_trunk properties: token: type: string description: Wavix Embeddable Widget token. example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... uuid: type: string description: Token ID example: 550e8400-e29b-41d4-a716-446655440000 sip_trunk: type: string description: SIP trunk name example: my-sip-trunk payload: type: object description: Arbitrary data associated with the token nullable: true example: {} ttl: type: integer description: Time to live, in seconds nullable: true example: 3600 WidgetTokenInfo: title: WidgetTokenInfo type: object additionalProperties: false required: - uuid - sip_trunk properties: uuid: type: string description: Token ID example: 550e8400-e29b-41d4-a716-446655440000 sip_trunk: type: string description: SIP trunk name example: my-sip-trunk payload: type: object description: Arbitrary data associated with the token nullable: true example: {} ttl: type: integer description: Time to live, in seconds nullable: true example: 3600 UpdateWidgetTokenPayloadRequest: title: UpdateWidgetTokenPayloadRequest type: object additionalProperties: false required: - payload properties: payload: type: object description: Arbitrary data to be associated with the token example: {} CallRequest: type: object additionalProperties: false required: - from - to properties: from: type: string description: Caller ID. Must be an active or verified phone number in your account. example: "+1234567890" to: type: string description: Destination number in E.164 format example: "+1987654321" status_callback: type: string description: Webhook URL to receive call status updates example: https://examples.com/callback call_recording: type: boolean description: Specifies whether to record the call default: false machine_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 max_duration: type: integer description: Maximum call duration, in seconds example: 300 GetCallResponse: type: object properties: call: $ref: "#/components/schemas/CallInfo" success: type: boolean example: true description: Indicates that the request was successful required: - call - success CallResponse: type: object additionalProperties: false properties: uuid: type: string format: uuid description: Call ID example: 5dccb6b0-f35c-488c-867b-86fb012c4415 event_type: type: string description: The latest 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: type: object additionalProperties: false nullable: true description: Event-specific data example: null 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 format: date-time nullable: true description: Date and time when the call was answered example: null call_finished: type: string format: date-time nullable: true description: Date and time when the call ended example: null machine_detected: type: boolean description: Indicates whether the call was answered by an answering machine example: false tag: type: string description: Call metadata example: "" CallInfo: type: object additionalProperties: false properties: uuid: type: string format: uuid description: Call ID example: 5dccb6b0-f35c-488c-867b-86fb012c4415 event_type: type: string description: The latest 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: type: object additionalProperties: false nullable: true description: Event-specific data example: null 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 format: date-time nullable: true description: Date and time when the call was answered example: null call_finished: type: string format: date-time nullable: true description: Date and time when the call ended example: null machine_detected: type: boolean description: Indicates whether the call was answered by an answering machine example: false tag: type: string description: Call metadata example: "" CallsInfoResponse: type: object properties: calls: type: array description: List of calls items: $ref: "#/components/schemas/CallInfo" success: type: boolean description: Indicates the succes request example: true required: - calls - success PlayAudioRequest: type: object additionalProperties: false required: - audio_file properties: audio_file: type: string description: URL of the audio file to play example: https://examples.com/audio.wav delay_before_playing: type: integer description: Delay before playing the audio, in milliseconds minimum: 0 maximum: 10000 example: 1000 CollectDtmfRequest: type: object additionalProperties: false properties: min_digits: type: integer description: Specifies the minimum number of digits to collect minimum: 1 maximum: 20 example: 1 max_digits: type: integer description: Specifies the 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: Character that ends digit collection example: "#" audio: $ref: "#/components/schemas/CollectDtmfAudioRequest" callback_url: type: string description: URL to receive digit collection results example: https://examples.com/dtmf-callback CollectDtmfAudioRequest: type: object additionalProperties: false required: - url properties: url: type: string description: URL of the audio file to play before digit collection example: https://examples.com/prompt.wav stop_on_keypress: type: boolean description: Stop audio playback when a digit is pressed default: true AnswerCallRequest: 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 is transcribed after it ends default: false stream_url: type: string format: uri description: WebSocket URL for call streaming example: wss://examples.com/stream stream_type: type: string enum: - oneway - twoway description: Specifies the streaming type. Can be either `oneway` for unidirectional or `twoway` for bidirectional streaming. example: twoway stream_channel: 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. example: inbound BrandStatusUpdatedWebhook: type: object additionalProperties: false properties: brand_id: type: string description: Unite identifier of a 10DLC Brand example: BX12JH90 status: type: string description: The brand status example: APPROVED CampaignStatusUpdatedWebhook: type: object additionalProperties: false properties: brand_id: type: string description: Unite identifier of a 10DLC Brand example: BX12JH90 campaign_id: type: string description: Unique identifier of a 10DLC Campaign example: CX34KL56 status: type: string description: The campaign status example: APPROVED NumberStatusUpdatedWebhook: type: object additionalProperties: false properties: brand_id: type: string description: Unite identifier of a 10DLC Brand example: BX12JH90 campaign_id: type: string description: Unique identifier of a 10DLC Campaign example: CX34KL56 number: type: string description: A phone number associated with a 10DLC Campaign example: "17029641104" status: type: string description: The number status example: APPROVED StreamCallRequest: 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: type: string enum: - oneway - twoway description: Specifies the streaming type. Can be either `oneway` for unidirectional or `twoway` for bidirectional streaming. example: twoway stream_channel: 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. example: inbound StartCallStreamingResponse: 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 DeleteCallStreamResponse: type: object properties: success: type: boolean description: Indicates that the request was successful example: true securitySchemes: appid: type: http scheme: bearer description: "Bearer token using appid (Authorization: Bearer )" responses: BadRequestError: description: Request failed. Missing or invalid parameter headers: {} content: application/json: schema: $ref: "#/components/schemas/ValidationErrorResponse" UnauthorizedError: description: Unauthorized headers: {} content: application/json: schema: $ref: "#/components/schemas/UnauthorizedErrorResponse" ForbiddenError: description: Request failed. The feature is disabled for your account. headers: {} content: application/json: schema: $ref: "#/components/schemas/ForbiddenErrorResponse" NotFoundError: description: Request failed. An object with the specified ID is not found. headers: {} content: application/json: schema: $ref: "#/components/schemas/NotFoundErrorResponse" ValidationError: description: Validation error headers: {} content: application/json: schema: $ref: "#/components/schemas/ValidationErrorResponse" CountryNoRegionsError: description: Country has no states or provinces headers: {} content: application/json: schema: $ref: "#/components/schemas/CountryNoRegionsErrorResponse" security: - appid: [] tags: - name: SIP trunks description: SIP trunking - name: Buy description: Numbers - name: Cart description: Numbers - name: My numbers description: Numbers - name: Billing description: Billing, transactions, and invoicing - 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 creation and metrics - name: 2FA description: Two-factor authentication verification - name: 10DLC description: 10DLC Campaigns and Brands - name: Call control description: Programmable Voice - name: Call recording description: Call recording management