{
  "openapi": "3.1.0",
  "info": {
    "title": "SMS Philippines Broadcast API",
    "version": "1.0.0",
    "description": "Send one-off SMS blasts to one or more mobile numbers and look up delivery history for your account.",
    "contact": { "url": "https://smsphilippines.com/developers" }
  },
  "externalDocs": { "url": "https://smsphilippines.com/developers" },
  "servers": [{ "url": "https://api.sms-broadcast.smsphilippines.com" }],
  "security": [{ "bearerAuth": [] }],
  "paths": {
    "/": {
      "post": {
        "operationId": "sendBroadcast",
        "summary": "Send a broadcast",
        "description": "Sends one message to one or more comma-separated mobile numbers. Philippine numbers may be in +63, 63 or 09 format (+63 recommended). For international numbers, use the country code prefix (e.g. +1, +44). sender_name must be registered and approved on your account.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": ["mobiles", "message", "sender_name"],
                "properties": {
                  "mobiles": { "type": "string", "description": "Comma-separated mobile numbers." },
                  "message": { "type": "string" },
                  "sender_name": { "type": "string" }
                }
              },
              "example": { "mobiles": "639171234567,639181234567", "message": "Hello from SMS Philippines!", "sender_name": "ZENGLOBAL" }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Broadcast queued.",
            "content": {
              "application/json": {
                "example": {
                  "success": true,
                  "data": { "batch_id": "9c2b6e3e-0e59-4a1a-9d0e-2b6e3e0e59a1", "credits_deducted": 2, "queued_count": 2, "sender_name": "ZENGLOBAL" },
                  "error": null
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/BadRequest" },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "429": { "$ref": "#/components/responses/TooManyRequests" }
        }
      }
    },
    "/history": {
      "servers": [{ "url": "https://api.sms-broadcast-history.smsphilippines.com" }],
      "get": {
        "operationId": "listSendHistory",
        "summary": "List send history",
        "description": "Returns your recent sends, newest first. Mobile numbers are masked and messages truncated; this endpoint confirms delivery outcomes, not full content.",
        "responses": {
          "200": {
            "description": "Recent sends.",
            "content": {
              "application/json": {
                "example": {
                  "data": [
                    { "mobile_number": "0917****567", "message": "Hello from SMS Philippines!", "status": "sent" },
                    { "mobile_number": "0918****567", "message": "Hello from SMS Philippines!", "status": "sent" }
                  ],
                  "page": { "limit": 25, "count": 2, "has_more": false, "next_cursor": null }
                }
              }
            }
          },
          "401": { "$ref": "#/components/responses/Unauthorized" },
          "429": { "$ref": "#/components/responses/TooManyRequests" }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": { "type": "http", "scheme": "bearer", "description": "Your API key from the SMS Philippines dashboard." }
    },
    "responses": {
      "BadRequest": { "description": "Missing or invalid fields, e.g. MISSING_SENDER_NAME, SENDER_NAME_NOT_FOUND." },
      "Unauthorized": { "description": "Missing or invalid API key (MISSING_AUTH)." },
      "TooManyRequests": { "description": "Rate limit exceeded. Retry after the indicated delay." }
    }
  }
}
