Telstra Provisioning API
Create, retrieve, and delete dedicated number subscriptions.
Create, retrieve, and delete dedicated number subscriptions.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/telstra:telstra-provisioning-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Telstra Messaging Provisioning 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: Provisioning
description: Create, retrieve, and delete dedicated number subscriptions.
paths:
/messages/provisioning/subscriptions:
post:
summary: Telstra Create Subscription
description: Provision a dedicated virtual number subscription for the calling application, allowing inbound replies.
operationId: createSubscription
tags:
- Provisioning
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSubscriptionRequest'
responses:
'201':
description: Subscription provisioned.
content:
application/json:
schema:
$ref: '#/components/schemas/Subscription'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
get:
summary: Telstra Get Subscription
description: Retrieve the current dedicated virtual number subscription for the authenticated application.
operationId: getSubscription
tags:
- Provisioning
responses:
'200':
description: Current subscription details.
content:
application/json:
schema:
$ref: '#/components/schemas/Subscription'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
delete:
summary: Telstra Delete Subscription
description: Release the dedicated virtual number subscription for the authenticated application.
operationId: deleteSubscription
tags:
- Provisioning
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
emptyArr:
type: integer
description: Sentinel field required by the API; pass 0 to confirm deletion.
responses:
'204':
description: Subscription released.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
schemas:
ErrorResponse:
type: object
required:
- status
- code
- message
properties:
status:
type: string
code:
type: string
message:
type: string
CreateSubscriptionRequest:
type: object
properties:
activeDays:
type: integer
description: How many days the dedicated number remains active (1 to 1825).
minimum: 1
maximum: 1825
default: 30
notifyURL:
type: string
format: uri
description: HTTPS callback URL for inbound message notifications.
callbackData:
type: string
description: Optional opaque value passed through to the notify URL.
Subscription:
type: object
required:
- destinationAddress
properties:
destinationAddress:
type: string
description: The dedicated virtual number assigned to the application.
activeDays:
type: integer
notifyURL:
type: string
format: uri
expiryDate:
type: string
format: date-time
responses:
Unauthorized:
description: Unauthorized.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
NotFound:
description: Not Found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
BadRequest:
description: Bad Request.
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.