Telstra MMS API

Send, retrieve, and check status of MMS messages.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/telstra-mms-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

telstra-mms-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Telstra Messaging Authentication MMS API
  description: 'The Telstra Messaging API provides programmatic SMS and MMS messaging

    services in Australia and select international destinations. Built on

    the Telstra mobile network, the API supports outbound and inbound

    SMS/MMS, delivery status callbacks, virtual numbers, and provisioning

    workflows. Authentication uses OAuth 2.0 client credentials with the

    NSMS scope.

    '
  version: 2.2.10
  contact:
    name: Telstra Developer Support
    url: https://dev.telstra.com
  termsOfService: https://www.telstra.com.au/business-enterprise/legal/messaging-api-terms-of-service
  license:
    name: Telstra Developer License
    url: https://github.com/telstra/tdev-doc-license
  x-logo:
    url: https://www.telstra.com.au/etc/designs/telstrav8/clientlibs/img/Telstra_Symbol.svg
servers:
- url: https://tapi.telstra.com/v2
  description: Production Server
security:
- OAuth2ClientCredentials:
  - NSMS
tags:
- name: MMS
  description: Send, retrieve, and check status of MMS messages.
paths:
  /messages/mms:
    post:
      summary: Telstra Send MMS
      description: Send an MMS containing one or more multimedia parts (image, audio, video, vCard, or text) to a destination number.
      operationId: sendMms
      tags:
      - MMS
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendMmsRequest'
      responses:
        '201':
          description: MMS accepted for delivery.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SendMessageResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '413':
          description: Payload too large.
        '429':
          $ref: '#/components/responses/RateLimited'
    get:
      summary: Telstra Get MMS Replies
      description: Retrieve queued inbound MMS replies for the authenticated dedicated virtual number.
      operationId: getMmsReplies
      tags:
      - MMS
      responses:
        '200':
          description: Inbound MMS payload (empty if no replies queued).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InboundMessage'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /messages/mms/{messageId}/status:
    get:
      summary: Telstra Get MMS Status
      description: Retrieve the current delivery status for a previously sent MMS by message ID.
      operationId: getMmsStatus
      tags:
      - MMS
      parameters:
      - name: messageId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Current delivery status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageStatus'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    MessageReceipt:
      type: object
      required:
      - to
      - deliveryStatus
      - messageId
      properties:
        to:
          type: string
        deliveryStatus:
          type: string
          enum:
          - MessageWaiting
          - DeliveredToNetwork
          - MessageBuffered
          - DeliveredToTerminal
          - DeliveryImpossible
          - Rejected
        messageId:
          type: string
        messageStatusURL:
          type: string
          format: uri
    InboundMessage:
      type: object
      properties:
        status:
          type: string
          enum:
          - EMPTY
          - RECEIVED
        destinationAddress:
          type: string
        senderAddress:
          type: string
        message:
          type: string
        messageId:
          type: string
        sentTimestamp:
          type: string
          format: date-time
        apiMsgId:
          type: string
    SendMessageResponse:
      type: object
      required:
      - messages
      properties:
        messages:
          type: array
          items:
            $ref: '#/components/schemas/MessageReceipt'
        country:
          type: array
          items:
            type: object
        messageType:
          type: string
        numberSegments:
          type: integer
        numberNationalDestinations:
          type: integer
        numberInternationalDestinations:
          type: integer
    ErrorResponse:
      type: object
      required:
      - status
      - code
      - message
      properties:
        status:
          type: string
        code:
          type: string
        message:
          type: string
    MmsContentPart:
      type: object
      required:
      - type
      - payload
      properties:
        type:
          type: string
          description: MIME type (image/jpeg, image/png, image/gif, audio/amr, text/plain, application/smil).
        filename:
          type: string
        payload:
          type: string
          format: byte
          description: Base64-encoded content payload.
    MessageStatus:
      type: object
      required:
      - to
      - sentTimestamp
      - status
      properties:
        to:
          type: string
        sentTimestamp:
          type: string
          format: date-time
        receivedTimestamp:
          type: string
          format: date-time
        status:
          type: string
          enum:
          - MessageWaiting
          - DeliveredToNetwork
          - MessageBuffered
          - DeliveredToTerminal
          - DeliveryImpossible
          - Rejected
    SendMmsRequest:
      type: object
      required:
      - to
      - subject
      - MMSContent
      properties:
        to:
          type: string
          description: Destination MSISDN in E.164 format.
        subject:
          type: string
          description: MMS subject line (max 64 chars).
          maxLength: 64
        from:
          type: string
        notifyURL:
          type: string
          format: uri
        replyRequest:
          type: boolean
        priority:
          type: boolean
        MMSContent:
          type: array
          description: One or more MMS content parts; base64 encoded payloads.
          items:
            $ref: '#/components/schemas/MmsContentPart'
  responses:
    NotFound:
      description: Not Found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    RateLimited:
      description: Too Many Requests.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Bad Request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Unauthorized.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    OAuth2ClientCredentials:
      type: oauth2
      description: OAuth 2.0 client credentials grant against https://tapi.telstra.com/v2/oauth/token with the NSMS scope.
      flows:
        clientCredentials:
          tokenUrl: https://tapi.telstra.com/v2/oauth/token
          scopes:
            NSMS: Send and receive SMS/MMS through Telstra Messaging.