The intouch API is a REST/JSON API, hosted in AWS Sydney (ap-southeast-2), that sends SMS and MMS over Australian carrier routes, manages wallet passes, and reports delivery back to you. Authentication is OAuth2 client credentials; every send returns a transaction ID you can trace end to end. This page is the technical overview an architect needs for vendor due-diligence — the interactive explorer with the full schema lives at apimobiledigital.com.
Last reviewed: 22 August 2026.
The API uses OAuth2 client-credentials flow. You exchange your client ID and secret at the token endpoint, then send the bearer token on every request:
POST {BASE_URL}/token
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&client_id={ID}&client_secret={SECRET}Authorization: Bearer {ACCESS_TOKEN}Scopes are role-based: read, write and admin cover the core messaging API; the gifting/verification module uses its own scope family (gifting:send, gifting:links, gifting:webhooks and related). A request with a valid token but missing scope returns 403; a missing or expired token returns 401. POST /test-oauth2 exists purely to validate your token before you wire anything else — start there.
| Endpoint | What it does |
|---|---|
| POST /sendSMS | Direct-send an SMS to one recipient |
| POST /sendMMS | Direct-send an MMS (base64 media + text component) |
| POST /sendTemplatedEvent | Trigger a pre-built templated message/event |
| POST /traceTransactionId | Look up the delivery state of a prior send |
| POST /getClickLink | Retrieve click-tracking link data |
| POST /suboptions | Manage subscription/opt-in options |
| POST /getTriggers | List configured automation triggers |
Beyond core messaging, the same API surface exposes wallet endpoints (/wallet/pass-link, /wallet/push, /wallet/audiences — create pass links, push updates to installed passes, manage audiences) and an optional gifting and verification module with fraud-screened delivery links. Those get their own guides; this overview stays on messaging.
Authentication errors are conventional: 401 invalid/missing token, 403 valid token but insufficient scope. Payload validation failures return a result: false body with a reason rather than silently dropping — log log_uuid in your error handler; it's the fastest path for support to find your exact request. Throughput is provisioned per account and route; tell us your peak volumes and we'll size accordingly.