{
  "info": {
    "name": "SMSRay API v1",
    "description": "Requests for every public SMSRay v1 endpoint, generated from https://smsray.com/docs (updated 2026-10-10). Set the apiKey variable to your key (ls_live_…).",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "apikey",
    "apikey": [
      {
        "key": "key",
        "value": "x-api-key",
        "type": "string"
      },
      {
        "key": "value",
        "value": "{{apiKey}}",
        "type": "string"
      },
      {
        "key": "in",
        "value": "header",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.smsray.com/api/sms/v1"
    },
    {
      "key": "apiKey",
      "value": "ls_live_your_key_here"
    }
  ],
  "item": [
    {
      "name": "Send an SMS — POST /sms/send",
      "request": {
        "method": "POST",
        "description": "Queue one SMS to one mobile number, as free text or from an approved template. The cost is reserved from your workspace balance at accept time and the message goes straight into delivery.\n\nDocs: https://smsray.com/docs/send-sms",
        "header": [
          {
            "key": "content-type",
            "value": "application/json"
          },
          {
            "key": "Idempotency-Key",
            "value": "{{$guid}}",
            "description": "Reuse the same value when retrying."
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/sms/send",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "sms",
            "send"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"to\": \"+9779801234567\",\n  \"text\": \"Your order #1042 has shipped.\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "Send an OTP — POST /sms/otp/send",
      "request": {
        "method": "POST",
        "description": "Generate a 6-digit code, send it as a branded one-segment SMS, and store only its SHA-256 hash. The code is valid for 5 minutes.\n\nDocs: https://smsray.com/docs/otp",
        "header": [
          {
            "key": "content-type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/sms/otp/send",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "sms",
            "otp",
            "send"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"to\": \"+9779801234567\",\n  \"purpose\": \"login\",\n  \"ip\": \"203.0.113.7\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "Verify an OTP — POST /sms/otp/verify",
      "request": {
        "method": "POST",
        "description": "Check the code your user typed against the latest active code for the same number and purpose. Codes are single use.\n\nDocs: https://smsray.com/docs/otp",
        "header": [
          {
            "key": "content-type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/sms/otp/verify",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "sms",
            "otp",
            "verify"
          ]
        },
        "body": {
          "mode": "raw",
          "raw": "{\n  \"to\": \"+9779801234567\",\n  \"purpose\": \"login\",\n  \"code\": \"482913\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      }
    },
    {
      "name": "Retrieve a message — GET /sms/messages/:id",
      "request": {
        "method": "GET",
        "description": "Fetch the current state of a message sent with this API key: status, encoding, segments, cost and timestamps.\n\nDocs: https://smsray.com/docs/messages",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/sms/messages/:id",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "sms",
            "messages",
            ":id"
          ],
          "variable": [
            {
              "key": "id",
              "value": "2b1f6c1e-8d4f-4c55-9a51-0d2b0b7f3a11",
              "description": "The messageId returned by /sms/send or /sms/otp/send."
            }
          ]
        }
      }
    },
    {
      "name": "Retrieve balance — GET /sms/balance",
      "request": {
        "method": "GET",
        "description": "Read your workspace balance, per-type rates, allowed message types and this API client's counters.\n\nDocs: https://smsray.com/docs/balance",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/sms/balance",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "sms",
            "balance"
          ]
        }
      }
    },
    {
      "name": "Retrieve coverage — GET /sms/coverage",
      "request": {
        "method": "GET",
        "description": "Where this API key can send today: your workspace's country, the destinations allowed for it, and the countries SMSRay delivers to now or soon.\n\nDocs: https://smsray.com/docs/coverage",
        "header": [],
        "url": {
          "raw": "{{baseUrl}}/sms/coverage",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "sms",
            "coverage"
          ]
        }
      }
    }
  ]
}