Optus · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Optus Messages API

12 actions 12 updates documentation extends openapi/optus-messages-api-openapi.yml
Derived by API Evangelist Built from the contracts Optus publishes. Optus did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-notesummaryx-action-classx-consequencex-apievangelist-providerx-apievangelist-repox-apievangelist-recommendedx-white-label-operator

Targets 9

$.info
$.paths['/messages'].post
$.paths['/messages'].get
$.components.securitySchemes.GatewayAuthorizer
$.components.schemas.StatusCallback
$.paths['/messages/broadcast'].post
$.paths['/messages/{messageid}'].get
$.components.schemas.MessageCommon
$.components.schemas.DefaultError

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Optus Messages API
  version: 1.0.0
extends: openapi/optus-messages-api-openapi.yml
x-apievangelist:
  generated: '2026-10-21'
  method: generated
  source: openapi/optus-messages-api-openapi.yml + overlays carried forward from the 2026-07-25 overlays
    on openapi/_original/ (rest-v2, rest-v1)
  note: Additive only; never mutates the extended document. Actions whose targets no longer exist in the
    split document were dropped, Swagger 2.0 $.definitions targets were rebased to $.components.schemas,
    and operationId updates were removed because the split document already declares its own operationIds.
actions:
- target: $.info
  update:
    x-apievangelist-provider: optus
    x-apievangelist-repo: https://github.com/api-evangelist/optus
    x-apievangelist-recommended: true
    x-white-label-operator: Modica Group
    contact:
      name: The Optus SMS Suite API Support
      url: https://sms.optus.com.au/docs/en/integrations/api-documentation/rest-v2/
      email: optussd@modicagroup.com
    x-artifacts:
      authentication: authentication/optus-authentication.yml
      conventions: conventions/optus-conventions.yml
      errors: errors/optus-error-codes.yml
      lifecycle: lifecycle/optus-lifecycle.yml
      asyncapi: asyncapi/optus-sms-suite-asyncapi.yml
      data_model: data-model/optus-data-model.yml
- target: $.info
  update:
    x-conventions:
      idempotency: none documented - retrying a submit sends another message
      pagination: none
      request_id_header: none
      rate_limits: none published
      timestamps: RFC 3339, not in the past, maximum 60 days ahead
      msisdn_format: E.164 with leading plus
      network_controls: optional per-application IP allowlisting; TLS 1.2 minimum
- target: $.paths['/messages'].post
  update:
    summary: Send an SMS to a single mobile handset
    x-apievangelist-note: The provider spec declares no operationId. This id is an API Evangelist convention
      for tool generation and is NOT a provider-published identifier.
    x-action-class: acting
    x-consequence: write
    x-delivery-outcome: Returns 202 Accepted with a UUID. Delivery success or failure only ever arrives
      on the DLR callback - a 202 is acceptance, not delivery.
- target: $.paths['/messages'].get
  update:
    summary: Retrieve a submitted message by UUID
    x-apievangelist-note: Provider spec declares no operationId; this id is an API Evangelist convention.
    x-action-class: connected
    x-consequence: read
- target: $.components.securitySchemes.GatewayAuthorizer
  update:
    x-actual-scheme: http-basic
    x-apievangelist-note: Modelled as an apiKey in the Authorization header, but the value is a standard
      HTTP Basic credential (base64 of application-name:password). Credentials are issued per application
      at https://sms.optus.com.au/gateway/api_config/restv2.
- target: $.components.schemas.StatusCallback
  update:
    x-apievangelist-note: This schema serves double duty as the 202 submit response body and as the DLR
      callback payload. The DLR documentation publishes only four of the twelve enum values (sent, received,
      rejected, expired); accepted, queued, blocked and deficient appear only here in the spec.
    x-event-catalog: asyncapi/optus-sms-suite-asyncapi.yml
- target: $.info
  update:
    x-rest-v1-apievangelist-provider: optus
    x-rest-v1-apievangelist-repo: https://github.com/api-evangelist/optus
    x-rest-v1-lifecycle-status: superseded
    x-rest-v1-successor: openapi/optus-sms-suite-rest-v2-openapi.yml
    x-rest-v1-apievangelist-note: Not deprecated, but the documentation steers all new integrations to
      REST v2. v1 mints 64-bit integer message IDs; v2 mints UUIDs, and the two id spaces cannot be resolved
      against each other through any published operation.
    x-rest-v1-artifacts:
      authentication: authentication/optus-authentication.yml
      conventions: conventions/optus-conventions.yml
      errors: errors/optus-error-codes.yml
      asyncapi: asyncapi/optus-sms-suite-asyncapi.yml
- target: $.paths['/messages'].post
  update:
    x-rest-v1-note: Provider spec declares no operationId; this id is an API Evangelist convention.
- target: $.paths['/messages/broadcast'].post
  update:
    summary: Send one message body to up to 1000 destinations
    x-apievangelist-note: Provider spec declares no operationId; this id is an API Evangelist convention.
    x-action-class: acting
    x-consequence: write
    x-blast-radius: up to 1000 handsets per call; exceeding the account limit returns broadcast_limit
- target: $.paths['/messages/{messageid}'].get
  update:
    summary: Retrieve a message by its 64-bit message ID
    x-apievangelist-note: Provider spec declares no operationId; this id is an API Evangelist convention.
    x-action-class: connected
    x-consequence: read
- target: $.components.schemas.MessageCommon
  update:
    x-apievangelist-note: '`reference` is a free-text correlation label echoed back on retrieval and on
      DLR/MO callbacks. It is NOT an idempotency key - the API de-duplicates nothing.'
    x-scheduled-limits: RFC 3339 timestamp, must not be in the past, maximum 60 days ahead
- target: $.components.schemas.DefaultError
  update:
    x-error-catalog: errors/optus-error-codes.yml
    x-documented-codes:
    - send_failed
    - invalid_json
    - missing_attrib
    - invalid_attrib
    - broadcast_limit

Work with this as data

Every overlay 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 openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • 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 overlay
curl "https://apis.io/api/v1/overlays/optus-messages-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API 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.