{
  "info": {
    "name": "Texto SMS API",
    "description": "Australia's simplest SMS API — send, receive, and track SMS for 3¢ per message. Full docs: https://texto.com.au/api",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_postman_id": "b3a1c2d4-5e6f-7890-abcd-ef1234567890"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{api_key}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "base_url",
      "value": "https://api.texto.com.au",
      "type": "string"
    },
    {
      "key": "api_key",
      "value": "YOUR_API_KEY",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "Send single SMS",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/send",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "send"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"to\": \"+61412345678\",\n  \"message\": \"Hello from Texto!\",\n  \"sender\": \"+61400000000\"\n}"
        },
        "description": "Send a single SMS message to an Australian mobile number."
      }
    },
    {
      "name": "Batch send (up to 1,000 recipients)",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{base_url}}/send-batch",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "send-batch"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"recipients\": [\n    { \"phone\": \"+61412345678\", \"merge_data\": { \"name\": \"Alice\" } },\n    { \"phone\": \"0412345679\" }\n  ],\n  \"message\": \"Hi {{name}}, welcome!\",\n  \"sender\": \"+61400000000\"\n}"
        },
        "description": "Send to up to 1,000 recipients per call. Supports {{merge}} placeholders."
      }
    },
    {
      "name": "Get message by ID",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{base_url}}/message/:id",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "message",
            ":id"
          ],
          "variable": [
            {
              "key": "id",
              "value": "8c1f9b2e-1a4c-4f87-9bd2-2d2f6f6f6f6f"
            }
          ]
        },
        "description": "Returns the message with its delivery receipt."
      }
    },
    {
      "name": "Get campaign by ID",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{base_url}}/campaign/:id",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "campaign",
            ":id"
          ],
          "variable": [
            {
              "key": "id",
              "value": "REPLACE_WITH_CAMPAIGN_UUID"
            }
          ]
        },
        "description": "Returns campaign stats and per-message detail."
      }
    },
    {
      "name": "List inbound messages",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{base_url}}/inbox?limit=25&offset=0",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "inbox"
          ],
          "query": [
            {
              "key": "limit",
              "value": "25",
              "description": "1–100 (default 25)"
            },
            {
              "key": "offset",
              "value": "0"
            },
            {
              "key": "from",
              "value": "+614",
              "disabled": true,
              "description": "Partial sender match"
            },
            {
              "key": "date_from",
              "value": "2025-01-01T00:00:00Z",
              "disabled": true
            },
            {
              "key": "date_to",
              "value": "2025-01-31T23:59:59Z",
              "disabled": true
            }
          ]
        },
        "description": "Paginated list of inbound SMS messages."
      }
    },
    {
      "name": "List opted-out numbers",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{base_url}}/optouts",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "optouts"
          ]
        },
        "description": "Account-wide list of numbers that have replied STOP."
      }
    },
    {
      "name": "Check credit balance",
      "request": {
        "method": "GET",
        "header": [],
        "url": {
          "raw": "{{base_url}}/balance",
          "host": [
            "{{base_url}}"
          ],
          "path": [
            "balance"
          ]
        },
        "description": "Returns your remaining SMS credit balance."
      }
    },
    {
      "name": "Account Management",
      "description": "Multi-account endpoints for SaaS platforms, agencies and resellers: sub-accounts, credits, API keys, users, numbers and webhooks. Requires account hierarchy to be enabled.",
      "item": [
        {
          "name": "List accounts",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/accounts",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "accounts"
              ]
            },
            "description": "List your account and all of its sub-accounts."
          }
        },
        {
          "name": "Create sub-account",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/accounts",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "accounts"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"business_name\": \"Client A Pty Ltd\",\n  \"email\": \"ops@clienta.com.au\",\n  \"daily_limit\": 1000,\n  \"managed_by_parent\": false,\n  \"team_access_from_parent\": false,\n  \"inherit_parent_senders\": false,\n  \"optout_exempt\": false,\n  \"seed_credits\": 500\n}"
            },
            "description": "Create a sub-account for one of your customers."
          }
        },
        {
          "name": "Get account detail",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/account/:id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "account-uuid"
                }
              ]
            },
            "description": "Balance, limits, status, user and number counts."
          }
        },
        {
          "name": "Update sub-account",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/account/:id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "account-uuid"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"business_name\": \"Client A Group\",\n  \"daily_limit\": 5000,\n  \"team_access_from_parent\": true,\n  \"inherit_parent_senders\": true\n}"
            }
          }
        },
        {
          "name": "Delete sub-account",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{base_url}}/account/:id",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                ":id"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "account-uuid"
                }
              ]
            }
          }
        },
        {
          "name": "Get sub-account balance",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/account/:id/balance",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                ":id",
                "balance"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "account-uuid"
                }
              ]
            }
          }
        },
        {
          "name": "Allocate credits to sub-account",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/account/:id/credits/allocate",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                ":id",
                "credits",
                "allocate"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "account-uuid"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 500\n}"
            }
          }
        },
        {
          "name": "Recall credits from sub-account",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/account/:id/credits/recall",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                ":id",
                "credits",
                "recall"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "account-uuid"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": 200\n}"
            }
          }
        },
        {
          "name": "List account API keys",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/account/:id/keys",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                ":id",
                "keys"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "account-uuid"
                }
              ]
            }
          }
        },
        {
          "name": "Provision API key",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/account/:id/key",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                ":id",
                "key"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "account-uuid"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Client A production\"\n}"
            },
            "description": "The full key is returned once and cannot be retrieved again."
          }
        },
        {
          "name": "Revoke API key",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{base_url}}/account/:id/key/:keyId",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                ":id",
                "key",
                ":keyId"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "account-uuid"
                },
                {
                  "key": "keyId",
                  "value": "uuid"
                }
              ]
            }
          }
        },
        {
          "name": "List account users",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/account/:id/users",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                ":id",
                "users"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "account-uuid"
                }
              ]
            }
          }
        },
        {
          "name": "Invite user to account",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/account/:id/users",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                ":id",
                "users"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "account-uuid"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"newuser@clienta.com.au\",\n  \"name\": \"Sam\",\n  \"can_send\": true,\n  \"can_billing\": false\n}"
            }
          }
        },
        {
          "name": "Remove user from account",
          "request": {
            "method": "DELETE",
            "header": [],
            "url": {
              "raw": "{{base_url}}/account/:id/users/:memberId",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                ":id",
                "users",
                ":memberId"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "account-uuid"
                },
                {
                  "key": "memberId",
                  "value": "uuid"
                }
              ]
            }
          }
        },
        {
          "name": "Get account access settings",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/account/:id/access",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                ":id",
                "access"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "account-uuid"
                }
              ]
            }
          }
        },
        {
          "name": "Update account access settings",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/account/:id/access",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                ":id",
                "access"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "account-uuid"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"managed_by_parent\": true,\n  \"team_access_from_parent\": true\n}"
            }
          }
        },
        {
          "name": "List parent team users",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/team",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "team"
              ]
            }
          }
        },
        {
          "name": "List your numbers",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/numbers",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "numbers"
              ]
            }
          }
        },
        {
          "name": "List group numbers",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/numbers/group",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "numbers",
                "group"
              ]
            }
          }
        },
        {
          "name": "Browse available numbers",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/numbers/available?country=AU&limit=20&offset=0",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "numbers",
                "available"
              ],
              "query": [
                {
                  "key": "country",
                  "value": "AU"
                },
                {
                  "key": "limit",
                  "value": "20"
                },
                {
                  "key": "offset",
                  "value": "0"
                }
              ]
            }
          }
        },
        {
          "name": "List sub-account numbers",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/account/:id/numbers",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                ":id",
                "numbers"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "account-uuid"
                }
              ]
            }
          }
        },
        {
          "name": "Assign numbers to sub-account",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/account/:id/numbers/assign",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                ":id",
                "numbers",
                "assign"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "account-uuid"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"numbers\": [\n    \"+61480123456\"\n  ]\n}"
            }
          }
        },
        {
          "name": "Recall numbers from sub-account",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/account/:id/numbers/recall",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                ":id",
                "numbers",
                "recall"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "account-uuid"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"numbers\": [\n    \"+61480123456\"\n  ]\n}"
            }
          }
        },
        {
          "name": "Get webhook configuration",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/webhooks",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "webhooks"
              ]
            }
          }
        },
        {
          "name": "Set delivery receipt webhook",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/webhooks/delivery",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "webhooks",
                "delivery"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://yourapp.com/hooks/dlr\",\n  \"enabled\": true\n}"
            }
          }
        },
        {
          "name": "Rotate delivery webhook secret",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{base_url}}/webhooks/delivery",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "webhooks",
                "delivery"
              ]
            }
          }
        },
        {
          "name": "Set inbound webhook",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/webhooks/inbound",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "webhooks",
                "inbound"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://yourapp.com/hooks/inbound\",\n  \"enabled\": true\n}"
            }
          }
        },
        {
          "name": "Rotate inbound webhook secret",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{base_url}}/webhooks/inbound",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "webhooks",
                "inbound"
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Reporting",
      "description": "Usage reporting for your account, a single sub-account, or the whole hierarchy.",
      "item": [
        {
          "name": "Account usage report",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/report?from=2026-01-01&to=2026-01-31&direction=all",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "report"
              ],
              "query": [
                {
                  "key": "from",
                  "value": "2026-01-01"
                },
                {
                  "key": "to",
                  "value": "2026-01-31"
                },
                {
                  "key": "direction",
                  "value": "all"
                }
              ]
            },
            "description": "Usage summary for your own account. Optional filters: status, country, campaign_id, keyword, number."
          }
        },
        {
          "name": "Sub-account usage report",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/account/:id/report?from=2026-01-01&to=2026-01-31",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "account",
                ":id",
                "report"
              ],
              "query": [
                {
                  "key": "from",
                  "value": "2026-01-01"
                },
                {
                  "key": "to",
                  "value": "2026-01-31"
                }
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "account-uuid"
                }
              ]
            }
          }
        },
        {
          "name": "Group usage report",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/report/group?from=2026-01-01&to=2026-01-31",
              "host": [
                "{{base_url}}"
              ],
              "path": [
                "report",
                "group"
              ],
              "query": [
                {
                  "key": "from",
                  "value": "2026-01-01"
                },
                {
                  "key": "to",
                  "value": "2026-01-31"
                }
              ]
            },
            "description": "Per-account usage across your hierarchy plus a grand total."
          }
        }
      ]
    }
  ]
}