openapi: 3.0.3
servers:
  - description: Messaging API
    url: https://products.api.telstra.com/messaging/v3
info:
  description: |
    Send and receive SMS & MMS programmatically, leveraging Australia's leading mobile network.
    With Telstra's Messaging API, we take out the complexity to allow seamless messaging integration into your app, with just a few lines of code.
    Our REST API is enterprise grade, allowing you to communicate with engaging SMS & MMS messaging in your web and mobile apps in near real-time on a global scale.

    # Introduction

    # Features

    # Getting Access to the API

    # Getting Started

    # Frequently Asked Questions
  title: Messaging API v3.x
  version: 3.x
  x-apisguru-categories:
    - messaging
  x-logo:
    url: https://telstra.com.au/content/dam/tcom/lego/logo/telstra-logo-656x370.png
  x-origin:
    - format: openapi
      url: https://dev.telstra.com/sites/default/files/Messaging-API-Proxy-OAS3.json
      version: "3.0"
  x-providerName: telstra.com
security:
  - bearer_auth: []
paths:
  /free-trial-numbers:
    get:
      description: |
        Use this endpoint to fetch the Free Trial Number(s) currently assigned to your account. These are the mobile numbers that you can message during the Free Trial.

        If you're using a paid plan, there's no limit to the number of recipients that you can message, so you don't need to register Free Trial Numbers.
      operationId: getTrialNumbers
      parameters:
        - $ref: "#/components/parameters/TelstraAPIVersion"
        - $ref: "#/components/parameters/ContentLanguage"
        - $ref: "#/components/parameters/Authorization"
        - $ref: "#/components/parameters/Accept"
        - $ref: "#/components/parameters/AcceptCharset"
        - $ref: "#/components/parameters/ContentType"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FreeTrialNumbers"
          description: |
            A 200 OK response means your request has been successful. Your Free Trial Number(s) will be returned in the response body.
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Bad Request

            | code | suggested_action |
            | :--- | :--- |
            | FIELD_INVALID | Check the field and the field formatting are correct. |
            | FIELD_LENGTH_ERR | Check the field is within character limits. |
            | FIELD_MISSING | Ensure you've supplied all the required fields. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unauthorized

            | code | suggested_action |
            | :--- | :--- |
            | TOKEN_INVALID | Check the access token. |
            | TOKEN_EXPIRED | Please refresh the token. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "402":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payment Required

            | code | suggested_action |
            | :--- | :--- |
            | ACCOUNT_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | RATE_PLAN_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | ACCOUNT_NOT_LINKED | Check you've registered for the Messaging API [here](https://dev.telstra.com). |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Forbidden

            | code | suggested_action |
            | :--- | :--- |
            | FREE_TRIAL_ERR | This call is only applicable to Free Trial users. Check if the call is required. |
            | RESOURCE_AUTH_ERR | Check the permissions associated with your account. |
            | INSUFFICIENT_SCOPE | The access token you generated does not have sufficient permissions for this request. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Not Found

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_TEMP_ERR | Check the API status page to see if an active incident is causing a temporary issue with the resource. |
            | RESOURCE_NOT_FOUND | Check the endpoint is correct. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Method Not Allowed

            | code | suggested_action |
            | :--- | :--- |
            | METHOD_INVALID | Ensure the method is GET. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Too Many Requests

            | code | suggested_action |
            | :--- | :--- |
            | TOO_MANY_REQUESTS | Reduce the number of concurrent calls. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Retry-After:
              schema:
                example: 3600
                type: number
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Internal Server Error

            | code | suggested_action |
            | :--- | :--- |
            | INTERNAL_TIMEOUT | Try the call again. If the issue persists, check the API [status page](https://dev.telstra.com/api/status) to see if there's an active incident. |
            | INTERNAL_SERVER_ERR | Check the API [status page](https://dev.telstra.com/api/status) to see if an active incident is causing the internal error. |
            | NETWORK_ERR | Please try again later. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unexpected
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
      security:
        - bearer_auth: []
      summary: get all free trial numbers
      tags:
        - free trial numbers
    post:
      description: |
        Your Free Trial Numbers are the 10 recipient mobile numbers that you can message during the Free Trial. The first five numbers you send an SMS/MMS to will automatically be added to your Free Trial Numbers list. After that, you can use this endpoint to register another five. Alternatively, you can use this endpoint to register all 10 numbers.  

        Use this endpoint to register a Free Trial Number to your account. To test out all the features that the trial has to offer, we recommend registering your own mobile number to your Free Trial Numbers list. 

        Note that you can only message mobile numbers that have been added to your Free Trial list and once registered, a Free Trial Number cannot be removed or replaced.
      operationId: createTrialNumbers
      parameters:
        - $ref: "#/components/parameters/TelstraAPIVersion"
        - $ref: "#/components/parameters/ContentLanguage"
        - $ref: "#/components/parameters/Authorization"
        - $ref: "#/components/parameters/Accept"
        - $ref: "#/components/parameters/AcceptCharset"
        - $ref: "#/components/parameters/ContentType"
      requestBody:
        $ref: "#/components/requestBodies/trial-numbers"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FreeTrialNumbers"
          description: |
            A 201 OK response means your request has been successful. Your registered Free Trial Number(s) will be returned in the response.
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Location:
              schema:
                example: /free-trial-numbers/{number}
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Bad Request

            | code | suggested_action |
            | :--- | :--- |
            | FIELD_INVALID | Check the field and the field formatting are correct. |
            | FIELD_LENGTH_ERR | Check the field is within character limits. |
            | FIELD_MISSING | Ensure you've supplied all the required fields. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unauthorized

            | code | suggested_action |
            | :--- | :--- |
            | TOKEN_INVALID | Check the access token. |
            | TOKEN_EXPIRED | Please refresh the token. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "402":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payment Required

            | code | suggested_action |
            | :--- | :--- |
            | FREE_TRIAL_INTERNATIONAL_ERR | Move to a paid plan to send a message to an international destination. | 
            | ACCOUNT_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | RATE_PLAN_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | ACCOUNT_NOT_LINKED | Check you've registered for the Messaging API [here](https://dev.telstra.com). |
            | ACCOUNT_LIMIT_ERROR | You've reached the maximum quota of Free Trial Numbers that can be registered to your account. Upgrade to a paid plan to send a message to this recipient.   |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Forbidden

            | code | suggested_action |
            | :--- | :--- |
            | FREE_TRIAL_ERR | This call is only applicable to Free Trial users. Check if the call is required. |
            | RESOURCE_AUTH_ERR | Check the permissions associated with your account. |
            | INSUFFICIENT_SCOPE | The access token you generated does not have sufficient permissions for this request. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Not Found

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_TEMP_ERR | Check the API status page to see if an active incident is causing a temporary issue with the resource. |
            | RESOURCE_NOT_FOUND | Check the endpoint is correct. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Method Not Allowed

            | code | suggested_action |
            | :--- | :--- |
            | METHOD_INVALID | Ensure the method is POST. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "413":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payload Too Large

            | code | suggested_action |
            | :--- | :--- |
            | PAYLOAD_TOO_LARGE | Reduce body payload size |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Too Many Requests

            | code | suggested_action |
            | :--- | :--- |
            | TOO_MANY_REQUESTS | Reduce the number of concurrent calls. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Retry-After:
              schema:
                example: 3600
                type: number
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Internal Server Error

            | code | suggested_action |
            | :--- | :--- |
            | INTERNAL_TIMEOUT | Try the call again. If the issue persists, check the API [status page](https://dev.telstra.com/api/status) to see if there's an active incident. |
            | INTERNAL_SERVER_ERR | Check the API [status page](https://dev.telstra.com/api/status) to see if an active incident is causing the internal error. |
            | NETWORK_ERR | Please try again later. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unexpected
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
      security:
        - bearer_auth: []
      summary: create free trial number list
      tags:
        - free trial numbers
  /health-check:
    get:
      description: Use this endpoint to check the operational status of the messaging service. A 200 OK response means the service is up. If you receive a 504 response, the service is temporarily down. Check the [API Live Status page] (https://dev.telstra.com/api/status) to see if there's an active incident.
      operationId: healthCheck
      parameters:
        - $ref: "#/components/parameters/TelstraAPIVersion"
        - $ref: "#/components/parameters/Authorization"
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  status:
                    example: up
                    type: string
                type: object
          description: A 200 OK response means the messaging service is up.
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unauthorized

            | code | suggested_action |
            | :--- | :--- |
            | TOKEN_INVALID | Check the access token. |
            | TOKEN_EXPIRED | Please refresh the token. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "402":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payment Required

            | code | suggested_action |
            | :--- | :--- |
            | ACCOUNT_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | ACCOUNT_NOT_LINKED | Check you've registered for the Messaging API [here](https://dev.telstra.com). |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Forbidden

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_AUTH_ERR | Check the permissions associated with your account. |
            | INSUFFICIENT_SCOPE | The access token you generated does not have sufficient permissions for this request. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Not Found

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_TEMP_ERR | Check the API status page to see if an active incident is causing a temporary issue with the resource. |
            | RESOURCE_NOT_FOUND | Check the endpoint is correct. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Method Not Allowed

            | code | suggested_action |
            | :--- | :--- |
            | METHOD_INVALID | Ensure the method is GET. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Too Many Requests

            | code | suggested_action |
            | :--- | :--- |
            | TOO_MANY_REQUESTS | Reduce the number of concurrent calls. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Retry-After:
              schema:
                example: 3600
                type: number
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Internal Server Error

            | code | suggested_action |
            | :--- | :--- |
            | INTERNAL_TIMEOUT | Try the call again. If the issue persists, check the API [status page](https://dev.telstra.com/api/status) to see if there's an active incident. |
            | INTERNAL_SERVER_ERR | Check the API [status page](https://dev.telstra.com/api/status) to see if an active incident is causing the internal error. |
            | NETWORK_ERR | Please try again later. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "504":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Gateway timeout

            | code | suggested_action |
            | :--- | :--- |
            | GATEWAY_TIMEOUT | The service is temporarily down. Check the [API Live Status page] (https://dev.telstra.com/api/status) or [contact support](mailto:telstradev@team.telstra.com). |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unexpected
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
      security:
        - bearer_auth: []
      summary: health check
      tags:
        - health check
  /messages:
    get:
      description: Fetch messages that have been sent from/to your account in the last 30 days.
      operationId: getMessages
      parameters:
        - $ref: "#/components/parameters/TelstraAPIVersion"
        - $ref: "#/components/parameters/ContentLanguage"
        - $ref: "#/components/parameters/Authorization"
        - $ref: "#/components/parameters/Accept"
        - $ref: "#/components/parameters/AcceptCharset"
        - $ref: "#/components/parameters/ContentType"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/offset"
        - $ref: "#/components/parameters/messageDirection"
        - $ref: "#/components/parameters/messageStatus"
        - $ref: "#/components/parameters/messageFilter"
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  messages:
                    description: |
                      The paginated results of your request. To fetch the next set of results, send another request and provide the succeeding offset value.
                    items:
                      $ref: "#/components/schemas/MessageGet"
                    maxItems: 50
                    minItems: 1
                    type: array
                  paging:
                    properties:
                      lastPage:
                        description: The last page of results.
                        type: string
                      nextPage:
                        description: The next page of results.
                        type: string
                      previousPage:
                        description: The previous page of results.
                        type: string
                      totalCount:
                        description: The total number of pages.
                        type: number
                    type: object
                type: object
          description: |
            A 200 response means the call has been successful.
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Bad Request

            | code | suggested_action |
            | :--- | :--- |
            | FIELD_INVALID | Check the field and the field formatting are correct. |
            | FIELD_MISSING | Ensure you've supplied all the required fields. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unauthorized

            | code | suggested_action |
            | :--- | :--- |
            | TOKEN_INVALID | Check the access token. |
            | TOKEN_EXPIRED | Please refresh the token. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "402":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payment Required

            | code | suggested_action |
            | :--- | :--- |
            | ACCOUNT_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | RATE_PLAN_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | ACCOUNT_NOT_LINKED | Check you've registered for the Messaging API [here](https://dev.telstra.com). |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Forbidden

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_AUTH_ERR | Check the permissions associated with your account. |
            | INSUFFICIENT_SCOPE | The access token you generated does not have sufficient permissions for this request. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Method Not Allowed

            | code | suggested_action |
            | :--- | :--- |
            | METHOD_INVALID | Ensure the method is GET. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Too Many Requests

            | code | suggested_action |
            | :--- | :--- |
            | TOO_MANY_REQUESTS | Reduce the number of concurrent calls. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Retry-After:
              schema:
                example: 3600
                type: number
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Internal Server Error

            | code | suggested_action |
            | :--- | :--- |
            | INTERNAL_TIMEOUT | Try the call again. If the issue persists, check the API [status page](https://dev.telstra.com/api/status) to see if there's an active incident. |
            | INTERNAL_SERVER_ERR | Check the API [status page](https://dev.telstra.com/api/status) to see if an active incident is causing the internal error. |
            | NETWORK_ERR | Please try again later. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unexpected
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
      security:
        - bearer_auth: []
      summary: fetch all sent/received messages
      tags:
        - messages
    post:
      description: |
        Send an SMS/MMS to a mobile number, or to multiple mobile numbers.

        Free Trial users can message to up to 10 unique recipient numbers for free. The first five recipients will be automatically added to your Free Trial Numbers list. Need more? Just use the POST /free-trial-numbers call to add another five.
      operationId: sendMessages
      parameters:
        - $ref: "#/components/parameters/TelstraAPIVersion"
        - $ref: "#/components/parameters/ContentLanguage"
        - $ref: "#/components/parameters/Authorization"
        - $ref: "#/components/parameters/Accept"
        - $ref: "#/components/parameters/AcceptCharset"
        - $ref: "#/components/parameters/ContentType"
      requestBody:
        $ref: "#/components/requestBodies/messagePost"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MessageSent"
          description: |
            A 201 Created response means your message has sent.
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Location:
              schema:
                example: /messages/{messageId}
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Bad Request

            | code | suggested_action |
            | :--- | :--- |
            | RECIPIENT_OPTOUT | Use GET/recipient-optouts/{number} to check which numbers have opted out of receiving messages from a Virtual Number. |
            | TAGS_ERR | Ensure you've assigned no more than 10 tags, using up to 64 characters for each. |
            | SENDERNAME_ERR | Email telstradev@team.telstra.com to request approval for this senderName. |
            | MODERATION_ERR | Please remove any swear words or offensive language. |
            | FIELD_INVALID | Check the field and the field formatting are correct. |
            | FIELD_LENGTH_ERR | Check the field is within character limits. |
            | FIELD_MISSING | Ensure you've supplied all the required fields. |
            | MULTIMEDIA_TOO_LARGE | Reduce the multimedia file size and try again. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unauthorized

            | code | suggested_action |
            | :--- | :--- |
            | TOKEN_INVALID | Check the access token. |
            | TOKEN_EXPIRED | Please refresh the token. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "402":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payment Required

            | code | suggested_action |
            | :--- | :--- |
            | ACCOUNT_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | RATE_PLAN_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | ACCOUNT_NOT_LINKED | Check you've registered for the Messaging API [here](https://dev.telstra.com). |
            | ACCOUNT_LIMIT_ERROR | Check the credit and limits on your account [here](https://dev.telstra.com). |
            | FREE_TRIAL_INTERNATIONAL_ERR | Move to a paid plan to send a message to an international destination. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Forbidden

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_AUTH_ERR | Check the permissions associated with your account. |
            | INSUFFICIENT_SCOPE | The access token you generated does not have sufficient permissions for this request. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Not Found

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_TEMP_ERR | Check the API status page to see if an active incident is causing a temporary issue with the resource. |
            | RESOURCE_NOT_FOUND | Check the endpoint is correct. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Method Not Allowed

            | code | suggested_action |
            | :--- | :--- |
            | METHOD_INVALID | Ensure the method is POST. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "413":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payload Too Large

            | code | suggested_action |
            | :--- | :--- |
            | MULTIMEDIA_TOO_LARGE | Reduce multimedia size |
            | PAYLOAD_TOO_LARGE | Reduce body payload size |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Too Many Requests

            | code | suggested_action |
            | :--- | :--- |
            | TOO_MANY_REQUESTS | Reduce the number of concurrent calls. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Retry-After:
              schema:
                example: 3600
                type: number
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Internal Server Error

            | code | suggested_action |
            | :--- | :--- |
            | INTERNAL_TIMEOUT | Try the call again. If the issue persists, check the API [status page](https://dev.telstra.com/api/status) to see if there's an active incident. |
            | INTERNAL_SERVER_ERR | Check the API [status page](https://dev.telstra.com/api/status) to see if an active incident is causing the internal error. |
            | NETWORK_ERR | Please try again later. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unexpected
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
      security:
        - bearer_auth: []
      summary: send messages
      tags:
        - messages
  "/messages/{messageId}":
    delete:
      description: |
        Use this endpoint to delete a message that's been scheduled for sending, but hasn't yet sent.
      operationId: deleteMessageById
      parameters:
        - $ref: "#/components/parameters/TelstraAPIVersion"
        - $ref: "#/components/parameters/ContentLanguage"
        - $ref: "#/components/parameters/Authorization"
        - $ref: "#/components/parameters/Accept"
        - $ref: "#/components/parameters/AcceptCharset"
        - $ref: "#/components/parameters/ContentType"
        - $ref: "#/components/parameters/messageId"
      responses:
        "204":
          description: |
            A 204 response means your message has been deleted.
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Bad Request

            | code | suggested_action |
            | :--- | :--- |
            | DELETE_INVALID_MSG_SENT | The message can't be deleted because it's already been sent. |
            | ID_NOT_ASSIGNED | Ensure the messageId corresponds to a message that has been sent from/to this account. |
            | TIMEFRAME_ERR | Ensure the messageId corresponds to a message that is not more than 30 days old. |
            | FIELD_INVALID | Check the field and the field formatting are correct. |
            | FIELD_MISSING | Ensure you've supplied all the required fields. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unauthorized

            | code | suggested_action |
            | :--- | :--- |
            | TOKEN_INVALID | Check the access token. |
            | TOKEN_EXPIRED | Please refresh the token. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "402":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payment Required

            | code | suggested_action |
            | :--- | :--- |
            | ACCOUNT_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | RATE_PLAN_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | ACCOUNT_NOT_LINKED | Check you've registered for the Messaging API [here](https://dev.telstra.com). |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Forbidden

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_AUTH_ERR | Check the permissions associated with your account. |
            | INSUFFICIENT_SCOPE | The access token you generated does not have sufficient permissions for this request. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Not Found

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_TEMP_ERR | Check the API status page to see if an active incident is causing a temporary issue with the resource. |
            | RESOURCE_NOT_FOUND | Check the endpoint is correct. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Method Not Allowed

            | code | suggested_action |
            | :--- | :--- |
            | METHOD_INVALID | Ensure the method is DELETE. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Too Many Requests

            | code | suggested_action |
            | :--- | :--- |
            | TOO_MANY_REQUESTS | Reduce the number of concurrent calls. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Retry-After:
              schema:
                example: 3600
                type: number
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Internal Server Error

            | code | suggested_action |
            | :--- | :--- |
            | INTERNAL_TIMEOUT | Try the call again. If the issue persists, check the API [status page](https://dev.telstra.com/api/status) to see if there's an active incident. |
            | INTERNAL_SERVER_ERR | Check the API [status page](https://dev.telstra.com/api/status) to see if an active incident is causing the internal error. |
            | NETWORK_ERR | Please try again later. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unexpected
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
      security:
        - bearer_auth: []
      summary: delete a message
      tags:
        - messages
    get:
      description: |
        Use the **messageId** to fetch a message that's been sent from/to your account within the last 30 days.
      operationId: getMessageById
      parameters:
        - $ref: "#/components/parameters/TelstraAPIVersion"
        - $ref: "#/components/parameters/ContentLanguage"
        - $ref: "#/components/parameters/Authorization"
        - $ref: "#/components/parameters/Accept"
        - $ref: "#/components/parameters/AcceptCharset"
        - $ref: "#/components/parameters/ContentType"
        - $ref: "#/components/parameters/messageIdGet"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MessageGet"
          description: |
            A 200 response means the call has been successful.
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Bad Request

            | code | suggested_action |
            | :--- | :--- |
            | ID_NOT_ASSIGNED | Ensure the messageId corresponds to a message that has been sent from/to this account. |
            | FIELD_INVALID | Check the field and the field formatting are correct. |
            | TIMEFRAME_ERR | Ensure the messageId corresponds to a message that is not more than 30 days old. |
            | FIELD_MISSING | Ensure you've supplied all the required fields. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unauthorized

            | code | suggested_action |
            | :--- | :--- |
            | TOKEN_INVALID | Check the access token. |
            | TOKEN_EXPIRED | Please refresh the token. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "402":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payment Required

            | code | suggested_action |
            | :--- | :--- |
            | ACCOUNT_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | RATE_PLAN_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | ACCOUNT_NOT_LINKED | Check you've registered for the Messaging API [here](https://dev.telstra.com). |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Forbidden

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_AUTH_ERR | Check the permissions associated with your account. |
            | INSUFFICIENT_SCOPE | The access token you generated does not have sufficient permissions for this request. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Not Found

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_TEMP_ERR | Check the API status page to see if an active incident is causing a temporary issue with the resource. |
            | RESOURCE_NOT_FOUND | Check the endpoint is correct. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Method Not Allowed

            | code | suggested_action |
            | :--- | :--- |
            | METHOD_INVALID | Ensure the method is GET. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "406":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Media type invalid

            | code | suggested_action |
            | :--- | :--- |
            | MEDIA_TYPE_INVALID | Check the media type in the Accept header. It should be application/json. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "415":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payload media type error

            | code | suggested_action |
            | :--- | :--- |
            | PAYLOAD_MEDIA_TYPE_ERR | Check the media type in the Accept header. It should be application/json. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "422":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Logic error

            | code | suggested_action |
            | :--- | :--- |
            | LOGIC_ERR | Check the logic of the request and try again. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Too Many Requests

            | code | suggested_action |
            | :--- | :--- |
            | TOO_MANY_REQUESTS | Reduce the number of concurrent calls. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Retry-After:
              schema:
                example: 3600
                type: number
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Internal Server Error

            | code | suggested_action |
            | :--- | :--- |
            | INTERNAL_TIMEOUT | Try the call again. If the issue persists, check the API [status page](https://dev.telstra.com/api/status) to see if there's an active incident. |
            | INTERNAL_SERVER_ERR | Check the API [status page](https://dev.telstra.com/api/status) to see if an active incident is causing the internal error. |
            | NETWORK_ERR | Please try again later. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unexpected
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
      security:
        - bearer_auth: []
      summary: fetch a specific message
      tags:
        - messages
    patch:
      description: |
        Use the **messageId** to update the tag(s) assigned to a message. You can use this endpoint any time, even after your message has been delivered.
      operationId: updateMessageTags
      parameters:
        - $ref: "#/components/parameters/TelstraAPIVersion"
        - $ref: "#/components/parameters/ContentLanguage"
        - $ref: "#/components/parameters/Authorization"
        - $ref: "#/components/parameters/Accept"
        - $ref: "#/components/parameters/AcceptCharset"
        - $ref: "#/components/parameters/ContentType"
        - $ref: "#/components/parameters/messageId"
      requestBody:
        $ref: "#/components/requestBodies/messageTags"
      responses:
        "204":
          description: |
            A 204 No Content response means your tag(s) have been successfully updated.
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Bad Request

            | code | suggested_action |
            | :--- | :--- |
            | ID_INVALID | Ensure the messageId corresponds to an outgoing message. |
            | ID_NOT_ASSIGNED | Ensure the messageId corresponds to a message that has been sent from this account. |
            | TAGS_ERR | Ensure you've assigned no more than 10 tags, using up to 64 characters for each. |
            | FIELD_INVALID | Check the field and the field formatting are correct. |
            | FIELD_MISSING | Ensure you've supplied all the required fields. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unauthorized

            | code | suggested_action |
            | :--- | :--- |
            | TOKEN_INVALID | Check the access token. |
            | TOKEN_EXPIRED | Please refresh the token. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "402":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payment Required

            | code | suggested_action |
            | :--- | :--- |
            | ACCOUNT_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | RATE_PLAN_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | ACCOUNT_NOT_LINKED | Check you've registered for the Messaging API [here](https://dev.telstra.com). |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Forbidden

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_AUTH_ERR | Check the permissions associated with your account. |
            | INSUFFICIENT_SCOPE | The access token you generated does not have sufficient permissions for this request. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Not Found

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_TEMP_ERR | Check the API status page to see if an active incident is causing a temporary issue with the resource. |
            | RESOURCE_NOT_FOUND | Check the endpoint is correct. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Method Not Allowed

            | code | suggested_action |
            | :--- | :--- |
            | METHOD_INVALID | Ensure the method is PATCH. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "413":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payload Too Large

            | code | suggested_action |
            | :--- | :--- |
            | PAYLOAD_TOO_LARGE | Reduce body payload size |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Too Many Requests

            | code | suggested_action |
            | :--- | :--- |
            | TOO_MANY_REQUESTS | Reduce the number of concurrent calls. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Retry-After:
              schema:
                example: 3600
                type: number
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Internal Server Error

            | code | suggested_action |
            | :--- | :--- |
            | INTERNAL_TIMEOUT | Try the call again. If the issue persists, check the API [status page](https://dev.telstra.com/api/status) to see if there's an active incident. |
            | INTERNAL_SERVER_ERR | Check the API [status page](https://dev.telstra.com/api/status) to see if an active incident is causing the internal error. |
            | NETWORK_ERR | Please try again later. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unexpected
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
      security:
        - bearer_auth: []
      summary: update message tags
      tags:
        - messages
    put:
      description: |
        Need to update a message that's scheduled for sending? You can change any of the below parameters, as long as the message hasn't been sent yet. This request body will override the original POST/ messages call.
      operationId: updateMessageById
      parameters:
        - $ref: "#/components/parameters/TelstraAPIVersion"
        - $ref: "#/components/parameters/ContentLanguage"
        - $ref: "#/components/parameters/Authorization"
        - $ref: "#/components/parameters/Accept"
        - $ref: "#/components/parameters/AcceptCharset"
        - $ref: "#/components/parameters/ContentType"
        - $ref: "#/components/parameters/messageId"
      requestBody:
        $ref: "#/components/requestBodies/messagePut"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MessageUpdate"
          description: |
            A 200 response means the call has been successful.
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Bad Request

            | code | suggested_action |
            | :--- | :--- |
            | UPDATE_INVALID_MSG_SENT | The message can't be updated because it's already been sent. |
            | ID_INVALID | Ensure the messageId corresponds to an outgoing message. |
            | ID_NOT_ASSIGNED | Ensure the messageId corresponds to a message that has been sent from this account. |
            | RECIPIENT_OPTOUT | The recipient has opted out of receiving messages from this Virtual Number.  |
            | TAGS_ERR | Ensure you've assigned no more than 10 tags, using up to 64 characters for each. |
            | SENDERNAME_ERR | Email (telstradev@team.telstra.com) to request approval for this senderName.|
            | FIELD_INVALID | Check the field and the field formatting are correct. |
            | FIELD_LENGTH_ERR | Check the field is within character limits. |
            | FIELD_MISSING | Ensure you've supplied all the required fields. |
            | MULTIMEDIA_TOO_LARGE | Reduce the multimedia file size and try again. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unauthorized

            | code | suggested_action |
            | :--- | :--- |
            | TOKEN_INVALID | Check the access token. |
            | TOKEN_EXPIRED | Please refresh the token. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "402":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payment Required

            | code | suggested_action |
            | :--- | :--- |
            | ACCOUNT_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | RATE_PLAN_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | ACCOUNT_NOT_LINKED | Check you've registered for the Messaging API [here](https://dev.telstra.com). |
            | FREE_TRIAL_INTERNATIONAL_ERR | Move to a paid plan to send a message to an international destination. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Forbidden

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_AUTH_ERR | Check the permissions associated with your account. |
            | INSUFFICIENT_SCOPE | The access token you generated does not have sufficient permissions for this request. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Not Found

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_TEMP_ERR | Check the API status page to see if an active incident is causing a temporary issue with the resource. |
            | RESOURCE_NOT_FOUND | Check the endpoint is correct. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Method Not Allowed

            | code | suggested_action |
            | :--- | :--- |
            | METHOD_INVALID | Ensure the method is PUT. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "413":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payload Too Large

            | code | suggested_action |
            | :--- | :--- |
            | MULTIMEDIA_TOO_LARGE | Reduce multimedia size |
            | PAYLOAD_TOO_LARGE | Reduce body payload size |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Too Many Requests

            | code | suggested_action |
            | :--- | :--- |
            | TOO_MANY_REQUESTS | Reduce the number of concurrent calls. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Retry-After:
              schema:
                example: 3600
                type: number
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Internal Server Error

            | code | suggested_action |
            | :--- | :--- |
            | INTERNAL_TIMEOUT | Try the call again. If the issue persists, check the API [status page](https://dev.telstra.com/api/status) to see if there's an active incident. |
            | INTERNAL_SERVER_ERR | Check the API [status page](https://dev.telstra.com/api/status) to see if an active incident is causing the internal error. |
            | NETWORK_ERR | Please try again later. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unexpected
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
      security:
        - bearer_auth: []
      summary: update a message
      tags:
        - messages
  /reports:
    get:
      description: |
        Fetch details of all reports recently generated for your account. Use it to check the status of a report, plus fetch the report ID, status, report type and expiry date.
      operationId: getReports
      parameters:
        - $ref: "#/components/parameters/TelstraAPIVersion"
        - $ref: "#/components/parameters/ContentLanguage"
        - $ref: "#/components/parameters/Authorization"
        - $ref: "#/components/parameters/Accept"
        - $ref: "#/components/parameters/AcceptCharset"
        - $ref: "#/components/parameters/ContentType"
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  reports:
                    items:
                      example:
                        reportExpiry: 2023-01-01
                        reportId: 6940c774-4335-4d2b-b758-4ecb19412e85
                        reportStatus: completed
                        reportType: messages
                      properties:
                        reportExpiry:
                          description: |
                            The expiry date of your report. After this date, you will be unable to download your report.
                          format: date
                          type: string
                        reportId:
                          description: |
                            Use this UUID to fetch your report with the GET /reports/{reportId} endpoint.
                          format: uuid
                          maxLength: 36
                          minLength: 36
                          type: string
                        reportStatus:
                          description: |
                            The status of the report. It will be either: 
                                  * **queued** – the report is in the queue for generation. 
                                  * **completed** – the report is ready for download. 
                                  * **failed** – the report failed to generate. Please try again.
                          type: string
                        reportType:
                          description: The type of report generated.
                          type: string
                      type: object
                    type: array
          description: |
            A 200 OK response means the call has been successful. Details of any report(s) generated for your account will be returned in the response.
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unauthorized

            | code | suggested_action |
            | :--- | :--- |
            | TOKEN_INVALID | Check the access token. |
            | TOKEN_EXPIRED | Please refresh the token. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "402":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payment Required

            | code | suggested_action |
            | :--- | :--- |
            | ACCOUNT_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | RATE_PLAN_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Forbidden

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_AUTH_ERR | Check the permissions associated with your account. |
            | INSUFFICIENT_SCOPE | The access token you generated does not have sufficient permissions for this request. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Not Found

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_TEMP_ERR | Check the [API status page](https://dev.telstra.com/api/status) to see if an active incident is causing a temporary issue with the resource. |
            | RESOURCE_NOT_FOUND | Check the endpoint is correct. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Method Not Allowed

            | code | suggested_action |
            | :--- | :--- |
            | METHOD_INVALID | Ensure the method is GET. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Too Many Requests

            | code | suggested_action |
            | :--- | :--- |
            | TOO_MANY_REQUESTS | Reduce the number of concurrent calls. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Retry-After:
              schema:
                example: 3600
                type: number
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Internal Server Error

            | code | suggested_action |
            | :--- | :--- |
            | INTERNAL_TIMEOUT | Try the call again. If the issue persists, check the [API status page](https://dev.telstra.com/api/status) to see if there's an active incident. |
            | INTERNAL_SERVER_ERR | Check the [API status page](https://dev.telstra.com/api/status) to see if an active incident is causing the internal error. |
            | NETWORK_ERR | Please try again later. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unexpected
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
      security:
        - bearer_auth: []
      summary: fetch all reports
      tags:
        - reports
  /reports/messages:
    post:
      description: |
        Request a CSV report of messages (both incoming and outgoing) that have been sent to/from your account within the last three months. You can request details for a specific timeframe, and filter your messages by tags, recipient number or Virtual Number.

        A 201 Created means your report has been queued for generation. Make a note of the reportId returned in the response. You'll need this to check the status of your report and fetch your download link with GET reports/{reportId}. If you supplied a reportCallbackUrl in the request we'll also notify it when your report is ready for download.

        Once your report is generated, it will be available for download for one week. The expiry date is returned in the response.
      operationId: messagesReport
      parameters:
        - $ref: "#/components/parameters/TelstraAPIVersion"
        - $ref: "#/components/parameters/ContentLanguage"
        - $ref: "#/components/parameters/Authorization"
        - $ref: "#/components/parameters/Accept"
        - $ref: "#/components/parameters/AcceptCharset"
        - $ref: "#/components/parameters/ContentType"
      requestBody:
        content:
          application/json:
            schema:
              example:
                endDate: 2022-09-25
                filter: tag1
                reportCallbackUrl: https://www.example.com
                startDate: 2022-08-24
              properties:
                endDate:
                  description: |
                    Type the end date (inclusive) of your reporting period here.

                    Your endDate must be a date in the past, and less than three months from your startDate. Use ISO format(yyyy-mm-dd).
                  format: date
                  maxLength: 10
                  minLength: 10
                  type: string
                filter:
                  description: |
                    Filter your messages report by:
                      * tag - use one of the tags assigned to your message(s)
                      * number - either the Virtual Number used to send the message, or the Recipient Number the message was sent to.
                  type: string
                reportCallbackUrl:
                  description: |
                    Tell us the callbackUrl you want us to notify when your report is ready for download.

                    Sample callback response:

                    <pre><code class="language-sh">{
                      "reportId":"1520b774-46b0-4415-a05f-7bcb1c032c59",
                      "reportStatus":"completed",
                      "timestamp":"2022-11-10T05:06:42.823Z"
                    }</code></pre>
                  type: string
                startDate:
                  description: |
                    Set the time period you want to generate a report for by typing the start date (inclusive) here.

                    Note that we only retain data for three months, so please ensure your startDate is not more than three months old.

                    Use ISO format(yyyy-mm-dd), e.g. 2019-08-24.
                  format: date
                  maxLength: 10
                  minLength: 10
                  type: string
              required:
                - startDate
                - endDate
              type: object
        required: true
      responses:
        "201":
          content:
            application/json:
              schema:
                example:
                  reportCallbackUrl: https://www.example.com
                  reportId: 6940c774-4335-4d2b-b758-4ecb19412e85
                  reportStatus: queued
                properties:
                  reportCallbackUrl:
                    description: If you provided a reportCallbackUrl in your request, it will be returned here.
                    type: string
                  reportId:
                    description: |
                      When your report is ready for download, you can use this UUID to fetch it with the GET /reports/{reportId} endpoint.
                    format: uuid
                    maxLength: 36
                    minLength: 36
                    type: string
                  reportStatus:
                    description: |
                      The status of the report. It will be either: 
                            * **queued** – the report is in the queue for generation. 
                            * **completed** – the report is ready for download. 
                            * **failed** – the report failed to generate. Please try again.
                    type: string
                type: object
          description: |
            A 201 Created response means the call has been successful. Your report is in the queue to be generated.
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Location:
              schema:
                example: /reports/messages
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Bad Request

            | code | suggested_action |
            | :--- | :--- |
            | FIELD_INVALID | Check the field and the field formatting are correct. |
            | FIELD_LENGTH_ERR | Check the field is within character limits. |
            | FIELD_MISSING | Ensure you've supplied all the required fields. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unauthorized

            | code | suggested_action |
            | :--- | :--- |
            | TOKEN_INVALID | Check the access token. |
            | TOKEN_EXPIRED | Please refresh the token. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "402":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payment Required

            | code | suggested_action |
            | :--- | :--- |
            | ACCOUNT_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | RATE_PLAN_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Forbidden

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_AUTH_ERR | Check the permissions associated with your account. |
            | INSUFFICIENT_SCOPE | The access token you generated does not have sufficient permissions for this request. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Not Found

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_TEMP_ERR | Check the [API status page](https://dev.telstra.com/api/status) to see if an active incident is causing a temporary issue with the resource. |
            | RESOURCE_NOT_FOUND | Check the endpoint is correct. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Method Not Allowed

            | code | suggested_action |
            | :--- | :--- |
            | METHOD_INVALID | Ensure the method is POST. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Too Many Requests

            | code | suggested_action |
            | :--- | :--- |
            | TOO_MANY_REQUESTS | Reduce the number of concurrent calls. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Retry-After:
              schema:
                example: 3600
                type: number
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Internal Server Error

            | code | suggested_action |
            | :--- | :--- |
            | INTERNAL_TIMEOUT | Try the call again. If the issue persists, check the [API status page](https://dev.telstra.com/api/status) to see if there's an active incident. |
            | INTERNAL_SERVER_ERR | Check the [API status page](https://dev.telstra.com/api/status) to see if an active incident is causing the internal error. |
            | NETWORK_ERR | Please try again later. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unexpected
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
      security:
        - bearer_auth: []
      summary: submit a request for a messages report
      tags:
        - reports
  "/reports/{reportId}":
    get:
      description: |
        Fetch a download link for a report generated with POST /reports/{reportId} using the **reportId** returned in the response. Once ready, your report will be available for download for one week.
      operationId: getReport
      parameters:
        - $ref: "#/components/parameters/TelstraAPIVersion"
        - $ref: "#/components/parameters/ContentLanguage"
        - $ref: "#/components/parameters/Authorization"
        - $ref: "#/components/parameters/Accept"
        - $ref: "#/components/parameters/AcceptCharset"
        - $ref: "#/components/parameters/ContentType"
        - description: |
            Use the reportId returned in the POST /reports/{reportType} response.
          in: path
          name: reportId
          required: true
          schema:
            format: uuid
            maxLength: 36
            minLength: 36
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                example:
                  reportId: 6940c774-4335-4d2b-b758-4ecb19412e85
                  reportStatus: completed
                  reportUrl: https://www.example.com
                properties:
                  reportId:
                    description: |
                      The UUID assigned to your report.
                    format: uuid
                    maxLength: 36
                    minLength: 36
                    type: string
                  reportStatus:
                    description: |
                      The status of the report. It will be either: 
                            * **queued** – the report is in the queue for generation. 
                            * **completed** – the report is ready for download. 
                            * **failed** – the report failed to generate. Please try again.
                    type: string
                  reportUrl:
                    description: Use this link to download your CSV file.
                    type: string
                type: object
          description: |
            A 200 OK response means the call has been successful. Your download link (reportUrl) will be returned in the response.
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Bad Request

            | code | suggested_action |
            | :--- | :--- |
            | FIELD_INVALID | Check the field and the field formatting are correct. |
            | FIELD_MISSING | Ensure you've supplied all the required fields. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unauthorized

            | code | suggested_action |
            | :--- | :--- |
            | TOKEN_INVALID | Check the access token. |
            | TOKEN_EXPIRED | Please refresh the token. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "402":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payment Required

            | code | suggested_action |
            | :--- | :--- |
            | ACCOUNT_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | RATE_PLAN_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Forbidden

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_AUTH_ERR | Check the permissions associated with your account. |
            | INSUFFICIENT_SCOPE | The access token you generated does not have sufficient permissions for this request. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Not Found

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_TEMP_ERR | Check the [API status page](https://dev.telstra.com/api/status) to see if an active incident is causing a temporary issue with the resource. |
            | RESOURCE_NOT_FOUND | Check the endpoint is correct. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Method Not Allowed

            | code | suggested_action |
            | :--- | :--- |
            | METHOD_INVALID | Ensure the method is GET. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Too Many Requests

            | code | suggested_action |
            | :--- | :--- |
            | TOO_MANY_REQUESTS | Reduce the number of concurrent calls. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Retry-After:
              schema:
                example: 3600
                type: number
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Internal Server Error

            | code | suggested_action |
            | :--- | :--- |
            | INTERNAL_TIMEOUT | Try the call again. If the issue persists, check the [API status page](https://dev.telstra.com/api/status) to see if there's an active incident. |
            | INTERNAL_SERVER_ERR | Check the [API status page](https://dev.telstra.com/api/status) to see if an active incident is causing the internal error. |
            | NETWORK_ERR | Please try again later. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unexpected
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
      security:
        - bearer_auth: []
      summary: fetch a specific report
      tags:
        - reports
  /virtual-numbers:
    get:
      description: |
        Use this endpoint to fetch all Virtual Numbers currently assigned to your account.
      operationId: getNumbers
      parameters:
        - $ref: "#/components/parameters/TelstraAPIVersion"
        - $ref: "#/components/parameters/ContentLanguage"
        - $ref: "#/components/parameters/Authorization"
        - $ref: "#/components/parameters/Accept"
        - $ref: "#/components/parameters/AcceptCharset"
        - $ref: "#/components/parameters/ContentType"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/offset"
        - $ref: "#/components/parameters/numberFilter"
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  paging:
                    $ref: "#/paths/~1messages/get/responses/200/content/application~1json/schema/properties/paging"
                  virtualNumbers:
                    description: |
                      The paginated results of your request. To fetch the next set of results, send another request and provide the succeeding offset value.
                    items:
                      $ref: "#/components/schemas/Virtual-number"
                    maxItems: 50
                    minItems: 0
                    type: array
                type: object
          description: |
            A 200 OK response means your request has been successful. Your Virtual Number(s) will be returned in the response body.
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Bad Request

            | code | suggested_action |
            | :--- | :--- |
            | FIELD_INVALID | Check the field and the field formatting are correct. |
            | FIELD_MISSING | Ensure you've supplied all the required fields. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unauthorized

            | code | suggested_action |
            | :--- | :--- |
            | TOKEN_INVALID | Check the access token. |
            | TOKEN_EXPIRED | Please refresh the token. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "402":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payment Required

            | code | suggested_action |
            | :--- | :--- |
            | ACCOUNT_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | RATE_PLAN_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | ACCOUNT_NOT_LINKED | Check you've registered for the Messaging API [here](https://dev.telstra.com). |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Forbidden

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_AUTH_ERR | Check the permissions associated with your account. |
            | INSUFFICIENT_SCOPE | The access token you generated does not have sufficient permissions for this request. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Not Found

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_TEMP_ERR | Check the API status page to see if an active incident is causing a temporary issue with the resource. |
            | RESOURCE_NOT_FOUND | Check the endpoint is correct. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Method Not Allowed

            | code | suggested_action |
            | :--- | :--- |
            | METHOD_INVALID | Ensure the method is GET. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Too Many Requests

            | code | suggested_action |
            | :--- | :--- |
            | TOO_MANY_REQUESTS | Reduce the number of concurrent calls. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Retry-After:
              schema:
                example: 3600
                type: number
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Internal Server Error

            | code | suggested_action |
            | :--- | :--- |
            | INTERNAL_TIMEOUT | Try the call again. If the issue persists, check the API [status page](https://dev.telstra.com/api/status) to see if there's an active incident. |
            | INTERNAL_SERVER_ERR | Check the API [status page](https://dev.telstra.com/api/status) to see if an active incident is causing the internal error. |
            | NETWORK_ERR | Please try again later. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unexpected
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
      security:
        - bearer_auth: []
      summary: fetch all virtual numbers
      tags:
        - virtual numbers
    post:
      description: |
        When a recipient receives your message, you can choose whether they'll see a privateNumber, Virtual Number or senderName (paid plans only) in the **from** field. If you want to use a Virtual Number, use this endpoint to assign one. Free Trial users can assign one Virtual Number, and those on a paid plan can assign up to 100. 

        Virtual Numbers that have not sent a message in 30 days (Free Trial) or sent/received a message in 18 months (paid plans) will be automatically unassigned from your account. You can check the **lastUse** date of your Virtual Number at any time using GET /virtual-numbers/{virtual-number}.

        Note that Virtual Numbers used in v2 of the Messaging API cannot be used to send messages in v3. Please assign a new Virtual Number instead.
      operationId: assignNumber
      parameters:
        - $ref: "#/components/parameters/TelstraAPIVersion"
        - $ref: "#/components/parameters/ContentLanguage"
        - $ref: "#/components/parameters/Authorization"
        - $ref: "#/components/parameters/Accept"
        - $ref: "#/components/parameters/AcceptCharset"
        - $ref: "#/components/parameters/ContentType"
      requestBody:
        $ref: "#/components/requestBodies/numberPost"
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Virtual-number"
          description: |
            A 201 Created response means a Virtual Number has been assigned to your account. You can find this 10-digit number in the response body.
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Location:
              schema:
                example: /virtual-numbers/{virtual-number}
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Bad Request

            | code | suggested_action |
            | :--- | :--- |
            | TAGS_ERR | Ensure you've assigned no more than 10 tags, using up to 64 characters for each. |
            | FIELD_INVALID | Check the field and the field formatting are correct. |
            | FIELD_MISSING | Ensure you've supplied all the required fields. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unauthorized

            | code | suggested_action |
            | :--- | :--- |
            | TOKEN_INVALID | Check the access token. |
            | TOKEN_EXPIRED | Please refresh the token. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "402":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payment Required

            | code | suggested_action |
            | :--- | :--- |
            | ACCOUNT_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | RATE_PLAN_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | ACCOUNT_NOT_LINKED | Check you've registered for the Messaging API [here](https://dev.telstra.com). |
            | ACCOUNT_LIMIT_ERROR | Check the maximum number of Virtual Numbers that can be assigned to your account. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Forbidden

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_AUTH_ERR | Check the permissions associated with your account. |
            | INSUFFICIENT_SCOPE | The access token you generated does not have sufficient permissions for this request. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Not Found

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_TEMP_ERR | Check the API status page to see if an active incident is causing a temporary issue with the resource. |
            | RESOURCE_NOT_FOUND | Check the endpoint is correct. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Method Not Allowed

            | code | suggested_action |
            | :--- | :--- |
            | METHOD_INVALID | Ensure the method is POST. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "413":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payload Too Large

            | code | suggested_action |
            | :--- | :--- |
            | PAYLOAD_TOO_LARGE | Reduce body payload size |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Too Many Requests

            | code | suggested_action |
            | :--- | :--- |
            | TOO_MANY_REQUESTS | Reduce the number of concurrent calls. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Retry-After:
              schema:
                example: 3600
                type: number
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Internal Server Error

            | code | suggested_action |
            | :--- | :--- |
            | INTERNAL_TIMEOUT | Try the call again. If the issue persists, check the API [status page](https://dev.telstra.com/api/status) to see if there's an active incident. |
            | INTERNAL_SERVER_ERR | Check the API [status page](https://dev.telstra.com/api/status) to see if an active incident is causing the internal error. |
            | NETWORK_ERR | Please try again later. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unexpected
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
      security:
        - bearer_auth: []
      summary: assign a virtual number
      tags:
        - virtual numbers
  "/virtual-numbers/{virtual-number}":
    delete:
      description: |
        Use **virtual-number** to remove a Virtual Number that's been assigned to your account.
      operationId: deleteNumber
      parameters:
        - $ref: "#/components/parameters/TelstraAPIVersion"
        - $ref: "#/components/parameters/ContentLanguage"
        - $ref: "#/components/parameters/Authorization"
        - $ref: "#/components/parameters/Accept"
        - $ref: "#/components/parameters/AcceptCharset"
        - $ref: "#/components/parameters/ContentType"
        - $ref: "#/components/parameters/virtual-number"
      responses:
        "204":
          description: |
            A 204 response means the Virtual Number has been successfully removed from your account.
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Bad Request

            | code | suggested_action |
            | :--- | :--- |
            | VIRTUAL_NUM_INVALID | Check the number is a valid Virtual Number. |
            | VIRTUAL_NUM_UNASSIGNED | Check the number is assigned to your account. |
            | FIELD_INVALID | Check the field and the field formatting are correct. |
            | FIELD_LENGTH_ERR | Check the field is within character limits. | 
            | FIELD_MISSING | Please supply all required fields. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unauthorized

            | code | suggested_action |
            | :--- | :--- |
            | TOKEN_INVALID | Check the access Token. |
            | TOKEN_EXPIRED | Please refresh the token. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "402":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payment Required

            | code | suggested_action |
            | :--- | :--- |
            | ACCOUNT_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | RATE_PLAN_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | ACCOUNT_NOT_LINKED | Check you've registered for the Messaging API [here](https://dev.telstra.com). |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Forbidden

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_AUTH_ERR | Check the permissions associated with your account. |
            | INSUFFICIENT_SCOPE | The access token you generated does not have sufficient permissions for this request. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Not Found

            | code | suggested_action |
            | :--- | :--- |
            | VIRTUAL_NUM_UNKNOWN | Check the number is a valid Virtual Number. |
            | RESOURCE_TEMP_ERR | Check the API status page to see if an active incident is causing a temporary issue with the resource. |
            | RESOURCE_NOT_FOUND | Check the endpoint is correct. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Method Not Allowed

            | code | suggested_action |
            | :--- | :--- |
            | METHOD_INVALID | Ensure the method is DELETE. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Too Many Requests

            | code | suggested_action |
            | :--- | :--- |
            | TOO_MANY_REQUESTS | Reduce the number of concurrent calls. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Retry-After:
              schema:
                example: 3600
                type: number
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Internal Server Error

            | code | suggested_action |
            | :--- | :--- |
            | INTERNAL_TIMEOUT | Try the call again. If the issue persists, check the API [status page](https://dev.telstra.com/api/status) to see if there's an active incident. |
            | INTERNAL_SERVER_ERR | Check the API [status page](https://dev.telstra.com/api/status) to see if an active incident is causing the internal error. |
            | NETWORK_ERR | Please try again later. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unexpected
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
      security:
        - bearer_auth: []
      summary: delete a virtual number
      tags:
        - virtual numbers
    get:
      description: Fetch the tags, replyCallbackUrl and lastUse date for a Virtual Number.
      operationId: getVirtualNumber
      parameters:
        - $ref: "#/components/parameters/TelstraAPIVersion"
        - $ref: "#/components/parameters/ContentLanguage"
        - $ref: "#/components/parameters/Authorization"
        - $ref: "#/components/parameters/Accept"
        - $ref: "#/components/parameters/AcceptCharset"
        - $ref: "#/components/parameters/ContentType"
        - $ref: "#/components/parameters/virtual-number"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Virtual-number"
          description: |
            A 200 OK response means your request has been successful.
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Bad Request

            | code | suggested_action |
            | :--- | :--- |
            | VIRTUAL_NUM_INVALID | Check the number is a valid Virtual Number. |
            | VIRTUAL_NUM_UNASSIGNED | Check the number is assigned to your account. |
            | FIELD_INVALID | Ensure the number is a 10-digit Australian mobile number in national format (e.g. 0412345678). |
            | FIELD_LENGTH_ERR | Ensure the number is 10 digits only (e.g. 0412345678). | 
            | FIELD_MISSING | Please supply the number. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unauthorized

            | code | suggested_action |
            | :--- | :--- |
            | TOKEN_INVALID | Check the access token. |
            | TOKEN_EXPIRED | Please refresh the token. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "402":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payment Required

            | code | suggested_action |
            | :--- | :--- |
            | ACCOUNT_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | RATE_PLAN_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | ACCOUNT_NOT_LINKED | Check you've registered for the Messaging API [here](https://dev.telstra.com). |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Forbidden

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_AUTH_ERR | Check the permissions associated with your account. |
            | INSUFFICIENT_SCOPE | The access token you generated does not have sufficient permissions for this request. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Not Found

            | code | suggested_action |
            | :--- | :--- |
            | VIRTUAL_NUM_UNKNOWN | Check the number is a valid Virtual Number. |
            | RESOURCE_TEMP_ERR | Check the API status page to see if an active incident is causing a temporary issue with the resource. |
            | RESOURCE_NOT_FOUND | Check the endpoint is correct. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Method Not Allowed

            | code | suggested_action |
            | :--- | :--- |
            | METHOD_INVALID | Ensure the method is GET. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Too Many Requests

            | code | suggested_action |
            | :--- | :--- |
            | TOO_MANY_REQUESTS | Reduce the number of concurrent calls. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Retry-After:
              schema:
                example: 3600
                type: number
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Internal Server Error

            | code | suggested_action |
            | :--- | :--- |
            | INTERNAL_TIMEOUT | Try the call again. If the issue persists, check the API [status page](https://dev.telstra.com/api/status) to see if there's an active incident. |
            | INTERNAL_SERVER_ERR | Check the API [status page](https://dev.telstra.com/api/status) to see if an active incident is causing the internal error. |
            | NETWORK_ERR | Please try again later. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unexpected
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
      security:
        - bearer_auth: []
      summary: fetch a virtual number
      tags:
        - virtual numbers
    put:
      description: |
        Use **virtual-number** to update the tags and/or replyCallbackUrl of a Virtual Number.

        This request body will override the original POST/ virtual-numbers call.
      operationId: updateNumber
      parameters:
        - $ref: "#/components/parameters/TelstraAPIVersion"
        - $ref: "#/components/parameters/ContentLanguage"
        - $ref: "#/components/parameters/Authorization"
        - $ref: "#/components/parameters/Accept"
        - $ref: "#/components/parameters/AcceptCharset"
        - $ref: "#/components/parameters/ContentType"
        - $ref: "#/components/parameters/virtual-number"
      requestBody:
        $ref: "#/components/requestBodies/numberPut"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Virtual-number"
          description: |
            A 200 OK response means metadata for the Virtual Number has been successfully updated.
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Bad Request

            | code | suggested_action |
            | :--- | :--- |
            | TAGS_ERR | Ensure you've assigned no more than 10 tags, using up to 64 characters for each. |
            | VIRTUAL_NUM_INVALID | Check the number is a valid Virtual Number. |
            | VIRTUAL_NUM_UNASSIGNED | Check the number is assigned to your account. |
            | FIELD_LENGTH_ERR | Check the field is within character limits. | 
            | FIELD_INVALID | Check the field and the field formatting are correct. |
            | FIELD_MISSING | Please supply all required fields. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unauthorized

            | code | suggested_action |
            | :--- | :--- |
            | TOKEN_INVALID | Check the access Token. |
            | TOKEN_EXPIRED | Please refresh the token. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "402":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payment Required

            | code | suggested_action |
            | :--- | :--- |
            | ACCOUNT_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | RATE_PLAN_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | ACCOUNT_NOT_LINKED | Check you've registered for the Messaging API [here](https://dev.telstra.com). |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Forbidden

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_AUTH_ERR | Check the permissions associated with your account. |
            | INSUFFICIENT_SCOPE | The access token you generated does not have sufficient permissions for this request. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Not Found

            | code | suggested_action |
            | :--- | :--- |
            | VIRTUAL_NUM_UNKNOWN | Check the number is a valid Virtual Number. |
            | RESOURCE_TEMP_ERR | Check the API status page to see if an active incident is causing a temporary issue with the resource. |
            | RESOURCE_NOT_FOUND | Check the endpoint is correct. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Method Not Allowed

            | code | suggested_action |
            | :--- | :--- |
            | METHOD_INVALID | Ensure the method is PUT. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "413":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payload Too Large

            | code | suggested_action |
            | :--- | :--- |
            | PAYLOAD_TOO_LARGE | Reduce body payload size |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Too Many Requests

            | code | suggested_action |
            | :--- | :--- |
            | TOO_MANY_REQUESTS | Reduce the number of concurrent calls. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Retry-After:
              schema:
                example: 3600
                type: number
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Internal Server Error

            | code | suggested_action |
            | :--- | :--- |
            | INTERNAL_TIMEOUT | Try the call again. If the issue persists, check the API [status page](https://dev.telstra.com/api/status) to see if there's an active incident. |
            | INTERNAL_SERVER_ERR | Check the API [status page](https://dev.telstra.com/api/status) to see if an active incident is causing the internal error. |
            | NETWORK_ERR | Please try again later. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unexpected
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
      security:
        - bearer_auth: []
      summary: update a virtual number
      tags:
        - virtual numbers
  "/virtual-numbers/{virtual-number}/optouts":
    get:
      description: |
        Use this endpoint to fetch any mobile number(s) that have opted out of receiving messages from a Virtual Number assigned to your account.

        Recipients can opt out at any time by sending a message with industry standard keywords such as STOP, STOPALL, UNSUBSCRIBE, QUIT, END and CANCEL.
      operationId: getRecipientOptouts
      parameters:
        - $ref: "#/components/parameters/TelstraAPIVersion"
        - $ref: "#/components/parameters/ContentLanguage"
        - $ref: "#/components/parameters/Authorization"
        - $ref: "#/components/parameters/Accept"
        - $ref: "#/components/parameters/AcceptCharset"
        - $ref: "#/components/parameters/ContentType"
        - $ref: "#/components/parameters/limit"
        - $ref: "#/components/parameters/offset"
        - $ref: "#/components/parameters/virtual-number"
      responses:
        "200":
          content:
            application/json:
              schema:
                properties:
                  paging:
                    $ref: "#/paths/~1messages/get/responses/200/content/application~1json/schema/properties/paging"
                  recipientOptouts:
                    description: |
                      The paginated results of your request. To fetch the next set of results, send another request and provide the succeeding offset value.
                    items:
                      $ref: "#/components/schemas/Recipient-optout"
                    maxItems: 50
                    minItems: 0
                    type: array
                type: object
          description: Successful Response
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "400":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Bad Request

            | code | suggested_action |
            | :--- | :--- |
            | VIRTUAL_NUM_INVALID | Check the number is a valid Virtual Number. |
            | VIRTUAL_NUM_UNASSIGNED | Check the number is assigned to your account. |
            | FIELD_INVALID | Ensure the number is a 10-digit Australian mobile number in national format (e.g. 0412345678). |
            | FIELD_LENGTH_ERR | Ensure the number is 10 digits only (e.g. 0412345678). |
            | FIELD_MISSING | Please supply the number. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "401":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unauthorized

            | code | suggested_action |
            | :--- | :--- |
            | TOKEN_INVALID | Check the access token. |
            | TOKEN_EXPIRED | Please refresh the token. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "402":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Payment Required

            | code | suggested_action |
            | :--- | :--- |
            | ACCOUNT_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | RATE_PLAN_ERR | Contact [support](mailto:telstradev@team.telstra.com) for help with your account. |
            | ACCOUNT_NOT_LINKED | Check you've registered for the Messaging API [here](https://dev.telstra.com). |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "403":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Forbidden

            | code | suggested_action |
            | :--- | :--- |
            | RESOURCE_AUTH_ERR | Check the permissions associated with your account. |
            | INSUFFICIENT_SCOPE | The access token you generated does not have sufficient permissions for this request. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "404":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Not Found

            | code | suggested_action |
            | :--- | :--- |
            | VIRTUAL_NUM_UNKNOWN | Check the number is a valid Virtual Number. |
            | RESOURCE_TEMP_ERR | Check the API status page to see if an active incident is causing a temporary issue with the resource. |
            | RESOURCE_NOT_FOUND | Check the endpoint is correct. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "405":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Method Not Allowed

            | code | suggested_action |
            | :--- | :--- |
            | METHOD_INVALID | Ensure the method is GET. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        "429":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Too Many Requests

            | code | suggested_action |
            | :--- | :--- |
            | TOO_MANY_REQUESTS | Reduce the number of concurrent calls. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
            Retry-After:
              schema:
                example: 3600
                type: number
        "500":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Internal Server Error

            | code | suggested_action |
            | :--- | :--- |
            | INTERNAL_TIMEOUT | Try the call again. If the issue persists, check the API [status page](https://dev.telstra.com/api/status) to see if there's an active incident. |
            | INTERNAL_SERVER_ERR | Check the API [status page](https://dev.telstra.com/api/status) to see if an active incident is causing the internal error. |
            | NETWORK_ERR | Please try again later. |
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
        default:
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Errors"
          description: |
            Unexpected
          headers:
            Content-Language:
              schema:
                example: en-au
                type: string
      security:
        - bearer_auth: []
      summary: Get recipient optouts list
      tags:
        - virtual numbers
components:
  parameters:
    Accept:
      in: header
      name: Accept
      required: true
      schema:
        example: application/json
        type: string
    AcceptCharset:
      in: header
      name: Accept-Charset
      required: true
      schema:
        example: utf-8
        type: string
    Authorization:
      in: header
      name: Authorization
      required: true
      schema:
        example: Bearer <access_token>
        type: string
    ContentLanguage:
      in: header
      name: Content-Language
      required: true
      schema:
        example: en-au
        type: string
    ContentType:
      in: header
      name: Content-Type
      required: true
      schema:
        example: application/json
        type: string
    TelstraAPIVersion:
      in: header
      name: Telstra-api-version
      required: false
      schema:
        example: 3.1.0
        type: string
    endDate:
      description: Fetch logs for calls made until a specific time and date. Default value is current time and date
      in: query
      name: endDate
      schema:
        format: date-time
        maxLength: 24
        minLength: 10
        type: string
    limit:
      description: |
        Tell us how many results you want us to return, up to a maximum of 50.
      in: query
      name: limit
      schema:
        default: 10
        format: int32
        maximum: 50
        minimum: 1
        type: integer
    messageDirection:
      description: |
        Filter your messages by direction:
        * **outgoing** – messages sent from your account.
        * **incoming** – messages sent to your account.
      in: query
      name: direction
      schema:
        enum:
          - outgoing
          - incoming
        type: string
    messageFilter:
      description: |
        Filter your messages by:

        * tag - use one of the tags assigned to your message(s)
        * number - either the Virtual Number used to send the message, or the Recipient Number the message was sent to.
      in: query
      name: filter
      schema:
        type: string
    messageId:
      description: |
        When you sent the original message, this is the UUID that was returned in the call response. Use this ID to fetch, update or delete a message with the appropriate endpoints.
      in: path
      name: messageId
      required: true
      schema:
        format: uuid
        maxLength: 36
        minLength: 36
        type: string
    messageIdGet:
      description: |
        When you sent the original message, this is the UUID that was returned in the response. Use this ID to fetch, update or delete a message with the appropriate endpoints. 

        Incoming messages are also assigned a messageId. Use this ID with GET/ messages/{messageId} to fetch the message later.
      in: path
      name: messageId
      required: true
      schema:
        format: uuid
        maxLength: 36
        minLength: 36
        type: string
    messageStatus:
      description: |
        Filter your messages by one of the statuses below:

        * **queued** – messages queued for sending or still in transit.
        * **sent** – messages that have been sent from the server.
        * **delivered** – messages successful delivered to the recipient's device. Note that we will only be able to return this status if you set deliveryNotification to **true** (paid feature). 
        * **expired** – message that couldn't be sent within the **retryTimeout** timeframe.
      in: query
      name: status
      schema:
        enum:
          - queued
          - sent
          - delivered
          - expired
        type: string
    numberFilter:
      description: Filter your Virtual Numbers by tag or by number.
      in: query
      name: filter
      schema:
        type: string
    offset:
      description: |
        Use the offset to navigate between the response results. An offset of 0 will display the first page of results, and so on.
      in: query
      name: offset
      schema:
        default: 0
        format: int32
        maximum: 999999
        minimum: 0
        type: integer
    recipientOptoutFilter:
      description: filter return numbers by number value
      in: query
      name: filter
      schema:
        type: string
    startDate:
      description: Fetch logs for calls made from a specific time and date. Default value is events logged within the last week.
      in: query
      name: startDate
      schema:
        format: date-time
        maxLength: 24
        minLength: 10
        type: string
    virtual-number:
      description: |
        Write the Virtual Number here, using national format (e.g. 0412345678).
      in: path
      name: virtual-number
      required: true
      schema:
        example: "0412345678"
        maxLength: 10
        minLength: 10
        type: string
  requestBodies:
    messagePost:
      content:
        application/json:
          schema:
            properties:
              deliveryNotification:
                default: false
                description: |
                  To receive a notification when your SMS has been delivered, set this parameter to **true** and make sure you provide a **statusCallbackUrl** (paid feature).
                type: boolean
              from:
                description: |
                  When the recipient receives your message, you can choose whether they'll see a privateNumber, virtualNumber or senderName (paid plans only) in the **from** field.  

                  * privateNumber: Use this string to have the message appear on the recipient's device as from "anonymous", "private" or similar.  
                  * 04xxxxxxxx: Use one of the Virtual Numbers associated with your account. You'll also be able to receive SMS replies to this number. 
                  * senderName: Choose a unique alphanumeric string of up to 11 characters (paid feature).
                maxLength: 13
                minLength: 1
                type: string
              messageContent:
                description: |
                  Use this field to send an SMS. Your text message goes here.   

                  Note: either messageContent or multimedia are required, or you can use both field if you want to send multimedia with text.
                maxLength: 1600
                minLength: 1
                type: string
              multimedia:
                description: |
                  Use this field to send an MMS. Add your image, video or audio content here. 

                  Note: either messageContent or multimedia are required, or you can use both field if you want to send multimedia with text.

                  Include a JSON payload with:

                  type: the type of multimedia content file you're sending (image, audio or video) followed by the file type. Use the format "multimedia type/file type", e.g. "image/PNG" or "audio/MP3". Supported file types: JPEG, BMP, GIF87a, GIF89a, PNG, MP3, WAV, MPEG, MPG, MP4, 3GP and US-ASCII.

                  fileName: the name of your multimedia file.

                  payload: the base64 encoded content. You can use [this online tool](https://elmah.io/tools/base64-image-encoder/) to encode an image, or [Base64 Guru](https://base64.guru/) to encode a video or audio file.
                items:
                  $ref: "#/components/schemas/Multimedia"
                maxItems: 5
                minItems: 1
                type: array
              retryTimeout:
                default: 10
                description: |
                  If the message is queued or unable to reach the recipient's device, tell us how many minutes the network should keep trying. Use an integer between 1 and 1440. If you don't set a value, we'll try for 10 minutes.
                format: int32
                maximum: 1440
                minimum: 1
                type: integer
              scheduleSend:
                description: |
                  Don't want to send the message right away? Tell us what time you want to add it to the queue for sending instead.

                  Set the time in London Greenwich Mean Time (adjusting for any time difference) and use ISO format, e.g. "2019-08-24T15:39:00Z".

                  You can schedule a message up to 10 days into the future. If you specify a timestamp outside of this limit, the API will return a FIELD_INVALID error.
                format: date-time
                maxLength: 24
                minLength: 10
                type: string
              statusCallbackUrl:
                description: |
                  Tell us the URL you want the API to call when the status of your SMS updates. 

                  To receive a status update, this field must be provided and deliveryNotification must be set to **true**. 

                  The status will be either:  
                  * **queued** – the message is in the queue for sending (default).
                  * **sent** – your message has been sent from the server.
                  * **expired** – we weren't able to send the message within the **retryTimeout** timeframe.
                  * **delivered** – the message has successfully reached the recipient's device. Note that we will only be able to return this status if you set **deliveryNotification** to **true** (paid feature).
                  * **undeliverable** – the delivery of your message failed (paid feature).

                  Sample callback response:

                  <pre><code class="language-sh">{
                    "to":"0476543210", 
                    "from":"0401234567",  
                    "timestamp":"2022-11-10T05:06:42.823Z", 
                    "messageId":"1520b774-46b0-4415-a05f-7bcb1c032c59", 
                    "status":"delivered" 
                  }</code></pre>
                example: http://www.example.com
                type: string
              tags:
                description: |
                  Create your own tags and use them to fetch and sort your messages through our other endpoints. You can assign up to 10 tags per message.
                items:
                  maxLength: 64
                  minLength: 1
                  type: string
                maxItems: 10
                minItems: 1
                type: array
              to:
                description: |
                  This is the mobile number you want to send your message to. Write Australian numbers in national format (e.g. 0412345678) and international numbers (paid plans only) in E.164 format (e.g. +441234567890). 

                  Use a string for a single recipient, and an array of string of multiple recipients, e.g. "to": ["0412345678", "+441234567890"]. If you're using the Free Trial, you can include up to 5 recipient numbers in the array. If you're using a paid plan, you can bulk send up to 500 messages at once.
                oneOf:
                  - items:
                      maxLength: 16
                      minLength: 5
                      type: string
                    maxItems: 500
                    minItems: 1
                    type: array
                  - maxLength: 16
                    minLength: 5
                    type: string
            required:
              - to
              - from
            type: object
      required: true
    messagePut:
      content:
        application/json:
          schema:
            properties:
              deliveryNotification:
                default: false
                description: |
                  To receive a notification when your SMS has been delivered, set this parameter to **true** and make sure you provide a **statusCallbackUrl** (paid feature).
                type: boolean
              from:
                description: |
                  When the recipient receives your message, you can choose whether they'll see a privateNumber, virtualNumber or senderName (paid plans only) in the **from** field.

                  * privateNumber: Use this string to have the message appear on the recipient's device as from "anonymous", "private" or similar.
                  * 04xxxxxxxx: Use one of the Virtual Numbers associated with your account. You'll also be able to receive SMS replies to this number.
                  * senderName: Choose a unique alphanumeric string of up to 11 characters (paid feature).
                maxLength: 13
                minLength: 1
                type: string
              messageContent:
                description: |
                  Use this field to send an SMS. Your text message goes here. 

                  Note: either messageContent or multimedia are required, or you can use both field if you want to send multimedia with text.
                maxLength: 1600
                minLength: 1
                type: string
              multimedia:
                description: |
                  Use this field to send an MMS. Add your image, video or audio content here. 

                  Note: either messageContent or multimedia are required, or you can use both fields if you want to send multimedia with text. 

                  Include a JSON payload with:

                  type: the type of multimedia content file you're sending (image, audio or video) followed by the file type. Use the format 'multimedia type/file type', e.g. "image/PNG" or "audio/MP3". Supported file types: JPEG, BMP, GIF87a, GIF89a, PNG, MP3, WAV, MPEG, MPG, MP4, 3GP and US-ASCII.

                  fileName: the name of your multimedia file. 

                  payload: the base64 encoded content. You can use [this online tool](https://elmah.io/tools/base64-image-encoder/) to encode an image, or [Base64 Guru](https://base64.guru/) to encode a video or audio file.
                items:
                  $ref: "#/components/schemas/Multimedia"
                maxItems: 5
                minItems: 1
                type: array
              retryTimeout:
                default: 10
                description: |
                  If the message is queued or unable to reach the recipient's device, tell us how many minutes the network should keep trying. Use an integer between 1 and 1440. If you don't set a value, we'll try for 10 minutes.
                format: int32
                maximum: 1440
                minimum: 1
                type: integer
              scheduleSend:
                description: |
                  Don't want to send the message right away? Tell us what time you want to add it to the queue for sending instead.

                  Set the time in London Greenwich Mean Time (adjusting for any time difference) and use ISO format, e.g. "2019-08-24T15:39:00Z".

                  You can schedule a message up to 10 days into the future. If you specify a timestamp outside of this limit, the API will return a FIELD_INVALID error.
                format: date-time
                maxLength: 24
                minLength: 10
                type: string
              statusCallbackUrl:
                description: |
                  Tell us the URL you want the API to call when the status of your SMS updates. 

                  To receive a status update, this field must be provided and deliveryNotification must be set to **true**. 

                  The status will be either:  
                  * **queued** – the message is in the queue for sending (default).
                  * **sent** – your message has been sent from the server.
                  * **expired** – we weren't able to send the message within the **retryTimeout** timeframe.
                  * **delivered** – the message has successfully reached the recipient's device. Note that we will only be able to return this status if you set **deliveryNotification** to **true** (paid feature).
                  * **undeliverable** – the delivery of your message failed (paid feature).

                  Sample callback response:

                  <pre><code class="language-sh">{
                    "to":"0476543210", 
                    "from":"0401234567", 
                    "timestamp":"2022-11-10T05:06:42.823Z", 
                    "messageId":"1520b774-46b0-4415-a05f-7bcb1c032c59", 
                    "status":"delivered" 
                  }</code></pre>
                example: http://www.example.com
                type: string
              tags:
                description: |
                  Create your own tags and use them to fetch and sort your messages through our other endpoints. You can assign up to 10 tags per message.
                items:
                  maxLength: 64
                  minLength: 1
                  type: string
                maxItems: 10
                minItems: 1
                type: array
              to:
                description: |
                  This is the mobile number you want to send your message to. Write Australian numbers in national format (e.g. 0412345678) and international numbers (paid plans only) in E.164 format (e.g. +441234567890).

                  Use a string for a single recipient, and an array of strings for multiple recipients, e.g. "to": ["0412345678", "+441234567890"]. If you're using the Free Trial, you can include up to 5 recipient numbers in the array. If you're using a paid plan, you can bulk send up to 500 messages at once.
                maxLength: 16
                minLength: 5
                type: string
            required:
              - to
              - from
            type: object
      required: true
    messageTags:
      content:
        application/json:
          schema:
            properties:
              tags:
                description: |
                  Write the updated list of tag(s) here. You can assign up to 10 tags per message.

                  Note that if you provide an empty array, any pre-existing tags will be wiped.
                example:
                  - marketing
                  - SMS
                items:
                  maxLength: 64
                  minLength: 1
                  type: string
                maxItems: 10
                minItems: 0
                type: array
            required:
              - tags
            type: object
      required: true
    numberPost:
      content:
        application/json:
          schema:
            properties:
              replyCallbackUrl:
                description: |
                  Tell us the URL that replies to the Virtual Number should be sent to.

                  Sample callback response:

                  <pre><code class="language-sh">{
                    "to":"0476543210", 
                    "from":"0401234567", 
                    "timestamp":"2022-11-10T05:06:42.823Z", 
                    "messageId":"75f263c0-60b5-11ed-8456-71ae4c63550d", 
                    "messageContent":"Hi, example message", 
                    "multimedia": { 
                      "fileName:"image.jpeg" 
                      "type:"image/jpeg" 
                      "payload":"base64 payload"
                    }
                  }</code></pre>
                example: http://www.example.com
                type: string
              tags:
                description: |
                  Create your own tags and use them to fetch, sort and report on your Virtual Numbers through our other endpoints. You can assign up to 10 tags per number.
                items:
                  maxLength: 64
                  minLength: 1
                  type: string
                maxItems: 10
                minItems: 1
                type: array
            type: object
      required: true
    numberPut:
      content:
        application/json:
          schema:
            properties:
              replyCallbackUrl:
                description: |
                  Tell us the URL that replies to the Virtual Number should be sent to.

                  Note that if you don't include this field, any pre-existing replyCallbackUrl will be wiped.

                  Sample callback response:

                  <pre><code class="language-sh">{
                    "to":"0476543210", 
                    "from":"0401234567", 
                    "timestamp":"2022-11-10T05:06:42.823Z",
                    "messageId":"75f263c0-60b5-11ed-8456-71ae4c63550d", 
                    "messageContent":"Hi, example message", 
                    "multimedia": { 
                      "fileName:"image.jpeg" 
                      "type:"image/jpeg" 
                      "payload":"base64 payload" 
                    }
                  }</code></pre>
                example: http://www.example.com
                type: string
              tags:
                description: |
                  Create your own tags and use them to fetch, sort and report on your Virtual Numbers through our other endpoints. You can assign up to 10 tags per number. 

                  Note that if you don't include this field, any pre-existing tags will be wiped.
                items:
                  maxLength: 64
                  minLength: 1
                  type: string
                maxItems: 10
                minItems: 1
                type: array
            type: object
      required: true
    trial-numbers:
      content:
        application/json:
          schema:
            properties:
              freeTrialNumbers:
                description: |
                  These are the mobile numbers you want to message during your Free Trial. Write Australian numbers in national format (e.g. "0412345678"). Use a string for a single recipient, and an array of strings for multiple recipients, (e.g. ["0412345678", "0487654321"]).
                oneOf:
                  - example:
                      - "0412345678"
                      - "0487654321"
                    items:
                      maxLength: 10
                      minLength: 10
                      type: string
                    maxItems: 10
                    minItems: 1
                    type: array
                  - maxLength: 10
                    minLength: 10
                    type: string
            required:
              - freeTrialNumbers
            type: object
      required: true
  schemas:
    Error:
      properties:
        code:
          description: Unique code of the error
          maxLength: 100
          minLength: 1
          type: string
        field:
          description: The field that caused the error
          maxLength: 99999
          minLength: 1
          type: string
        issue:
          description: The reason for the error
          maxLength: 99999
          minLength: 1
          type: string
        link:
          description: URI for detailed information related to this error for the developer.
          maxLength: 99999
          minLength: 1
          type: string
        location:
          description: The location of the field that caused the error.
          enum:
            - body
            - path
            - query
          type: string
        suggested_action:
          description: Suggest practical actions for this particular issue.
          maxLength: 99999
          minLength: 1
          type: string
        value:
          description: The value of the field that caused the error
          maxLength: 99999
          minLength: 1
          type: string
      required:
        - code
        - issue
        - suggested_action
      type: object
    Errors:
      properties:
        errors:
          items:
            $ref: "#/components/schemas/Error"
          maxItems: 100
          minItems: 1
          type: array
      type: object
    FreeTrialNumbers:
      properties:
        freeTrialNumbers:
          description: |
            The recipient number(s) registered to your Free Trial Numbers List. These are the mobile numbers that you can message during the Free Trial.
          example:
            - "0412345678"
            - "0487654321"
          items:
            maxLength: 10
            minLength: 10
            type: string
          maxItems: 10
          minItems: 0
          type: array
      required:
        - freeTrialNumbers
      type: object
    MessageGet:
      properties:
        createTimestamp:
          description: The time you submitted the message to the queue for sending.
          format: date-time
          maxLength: 24
          minLength: 24
          type: string
        deliveryNotification:
          default: false
          description: If set to **true**, you will receive a notification to the statusCallbackUrl when your message is delivered (paid feature).
          type: boolean
        direction:
          description: |
            * **outgoing** – messages sent from your account.
            * **incoming** – messages sent to your account.
          enum:
            - outgoing
            - incoming
          type: string
        from:
          description: This will be either "privateNumber", one of your Virtual Numbers or your senderName.
          maxLength: 13
          minLength: 1
          type: string
        messageContent:
          description: The content of the message.
          maxLength: 1600
          minLength: 1
          type: string
        messageId:
          description: Use this UUID with our other endpoints to fetch, update or delete the message.
          format: uuid
          maxLength: 36
          minLength: 36
          type: string
        multimedia:
          description: |
            The multimedia content of the message (MMS only). It will include:
          items:
            $ref: "#/components/schemas/MultimediaGet"
          maxItems: 5
          minItems: 1
          type: array
        queuePriority:
          default: 2
          description: The priority assigned to the message.
          example: 2
          format: int32
          maximum: 3
          minimum: 1
          type: integer
        receivedTimestamp:
          description: The time the message was received by the recipient's device.
          format: date-time
          maxLength: 24
          minLength: 24
          type: string
        retryTimeout:
          default: 10
          description: How many minutes you asked the server to keep trying to send the message.
          format: int32
          maximum: 1440
          minimum: 1
          type: integer
        scheduleSend:
          description: The time the message is scheduled to send.
          format: date-time
          maxLength: 24
          minLength: 10
          type: string
        sentTimestamp:
          description: The time the message was sent from the server.
          format: date-time
          maxLength: 24
          minLength: 24
          type: string
        status:
          description: The status will be either queued, sent, delivered, expired or undeliverable.
          enum:
            - queued
            - sent
            - delivered
            - expired
            - undeliverable
          type: string
        statusCallbackUrl:
          description: The URL the API will call when the status of the message changes.
          type: string
        tags:
          description: Any customisable tags assigned to the message.
          items:
            maxLength: 64
            minLength: 1
            type: string
          maxItems: 10
          minItems: 0
          type: array
        to:
          description: The recipient's mobile number.
          maxLength: 16
          minLength: 5
          type: string
      type: object
    MessageSent:
      properties:
        deliveryNotification:
          default: false
          description: If set to **true**, you will receive a notification to the statusCallbackUrl when your SMS is delivered (paid feature).
          type: boolean
        from:
          description: This will be either "privateNumber", one of your Virtual Numbers or your senderName.
          maxLength: 13
          minLength: 1
          type: string
        messageContent:
          description: The content of the message.
          maxLength: 1600
          minLength: 1
          type: string
        messageId:
          description: Use this UUID with our other endpoints to fetch, update or delete the message.
          oneOf:
            - items:
                format: uuid
                maxLength: 36
                minLength: 36
                type: string
              type: array
            - format: uuid
              maxLength: 36
              minLength: 36
              type: string
        multimedia:
          description: |
            The multimedia content of the message (MMS only). It will include:
          items:
            $ref: "#/components/schemas/MultimediaGet"
          maxItems: 5
          minItems: 1
          type: array
        retryTimeout:
          description: How many minutes you asked the server to keep trying to send the message.
          maximum: 1440
          minimum: 1
          type: integer
        scheduleSend:
          description: The time (in Central Standard Time) the message is scheduled to send.
          format: date-time
          maxLength: 24
          minLength: 10
          type: string
        status:
          description: The status will be either queued, sent, delivered, expired or undeliverable.
          enum:
            - queued
            - sent
            - delivered
            - expired
            - undeliverable
          type: string
        statusCallbackUrl:
          description: The URL the API will call when the status of the message changes.
          type: string
        tags:
          description: Any customisable tags assigned to the message.
          items:
            maxLength: 64
            minLength: 1
            type: string
          maxItems: 10
          minItems: 0
          type: array
        to:
          description: The recipient's mobile number(s).
          oneOf:
            - items:
                maxLength: 16
                minLength: 5
                type: string
              maxItems: 500
              minItems: 1
              type: array
            - maxLength: 16
              minLength: 5
              type: string
      type: object
    MessageUpdate:
      properties:
        deliveryNotification:
          default: false
          description: If set to **true**, you will receive a notification to the statusCallbackUrl when your message is delivered (paid feature).
          type: boolean
        from:
          description: This will be either "privateNumber", one of your Virtual Numbers or your senderName.
          maxLength: 13
          minLength: 1
          type: string
        messageContent:
          description: The content of the message.
          maxLength: 1600
          minLength: 1
          type: string
        messageId:
          description: Use this UUID with our other endpoints to fetch, update or delete the message.
          format: uuid
          maxLength: 36
          minLength: 36
          type: string
        multimedia:
          description: |
            The multimedia content of the message (MMS only). It will include:
          items:
            $ref: "#/components/schemas/MultimediaGet"
          maxItems: 5
          minItems: 1
          type: array
        queuePriority:
          default: 2
          description: The priority assigned to the message.
          example: 2
          format: int32
          maximum: 3
          minimum: 1
          type: integer
        retryTimeout:
          description: How many minutes you asked the server to keep trying to send the message.
          maximum: 1440
          minimum: 1
          type: integer
        scheduleSend:
          description: The time the message is scheduled to send.
          format: date-time
          maxLength: 24
          minLength: 10
          type: string
        status:
          description: The status will be either queued, sent, delivered, expired or undeliverable.
          enum:
            - queued
            - sent
            - delivered
            - expired
            - undeliverable
          type: string
        statusCallbackUrl:
          description: The URL the API will call when the status of the message changes.
          type: string
        tags:
          description: Any customisable tags assigned to the message.
          items:
            maxLength: 64
            minLength: 1
            type: string
          maxItems: 10
          minItems: 0
          type: array
        to:
          description: The recipient's mobile number.
          maxLength: 16
          minLength: 5
          type: string
      type: object
    Multimedia:
      properties:
        fileName:
          description: The name of the multimedia file.
          example: image/jpeg
          maxLength: 100
          minLength: 1
          type: string
        payload:
          description: |
            The base64 encoded content. You can use [this online tool](https://elmah.io/tools/base64-image-encoder/) to encode an image, or [Base64 Guru](https://base64.guru/) to encode a video or audio file.
          example: iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==
          maxLength: 999999
          minLength: 1
          type: string
        type:
          description: the type of multimedia content file you're sending (image, audio or video) followed by the file type. Use the format "multimedia type/file type", e.g. "image/PNG" or "audio/MP3". Supported file types:JPEG, BMP, GIF87a, GIF89a, PNG, MP3, WAV, MPEG, MPG, MP4, 3GP and US-ASCII.
          example: image/jpeg
          maxLength: 100
          minLength: 1
          type: string
      required:
        - type
        - fileName
        - payload
      type: object
    MultimediaGet:
      properties:
        fileName:
          description: The name of the multimedia file.
          example: image.jpeg
          maxLength: 100
          minLength: 1
          type: string
        type:
          description: The type of multimedia content (image, audio or video) followed by the type (e.g. jpeg, png, text).
          example: image/jpeg
          maxLength: 100
          minLength: 1
          type: string
      required:
        - type
        - fileName
      type: object
    Recipient-optout:
      properties:
        createTimestamp:
          description: The date and time we received the optout request.
          format: date-time
          maxLength: 24
          minLength: 24
          type: string
        optoutNumber:
          description: The mobile number that sent the optout request.
          maxLength: 16
          minLength: 5
          type: string
      type: object
    Virtual-number:
      properties:
        lastUse:
          description: The last time the Virtual Number was used to send a message.
          format: date-time
          maxLength: 24
          minLength: 24
          type: string
        replyCallbackUrl:
          description: The URL that replies to the Virtual Number will be posted to.
          example: http://www.example.com
          type: string
        tags:
          description: |
            Any customisable tags assigned to the Virtual Number.
          items:
            maxLength: 64
            minLength: 1
            type: string
          maxItems: 10
          minItems: 0
          type: array
        virtualNumber:
          description: |
            The Virtual Number assigned to your account.
          example: 401234567
          maxLength: 10
          minLength: 10
          type: string
      type: object
  securitySchemes:
    bearer_auth:
      flows:
        clientCredentials:
          scopes:
            free-trial-numbers:read: read information for free trial numbers
            free-trial-numbers:write: write information for free trial numbers
            messages:read: read information for messages
            messages:write: write information for messages
            reports:read: read information for reports
            reports:write: write information for reports
            virtual-numbers:read: read information for virtual-numbers
            virtual-numbers:write: write information for virtual numbers
          tokenUrl: https://products.api.telstra.com/v2/oauth/token
      type: oauth2
