{
  "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."
      }
    }
  ]
}