{
  "info": {
    "description": "Multi-region low-latency stream ingestion, gRPC streaming, and telemetry gateway.",
    "title": "Ingest API",
    "version": "2.4.1"
  },
  "openapi": "3.0.3",
  "paths": {
    "/ingest.v1.IngestService/Stream": {
      "post": {
        "description": "Multiplexed gRPC protocol buffer channel for high-throughput telemetry frames.",
        "responses": {
          "200": {
            "description": "gRPC stream status OK"
          }
        },
        "summary": "gRPC bidirectional ingestion pipeline"
      }
    },
    "/v1/health": {
      "get": {
        "responses": {
          "200": {
            "description": "Service is healthy and ready to accept streams"
          }
        },
        "summary": "Health check"
      }
    },
    "/v1/ingest/push/{streamKey}": {
      "post": {
        "description": "Long-lived stream upload channel for high-throughput batch payloads.",
        "parameters": [
          {
            "description": "Stream publishing token (e.g. live-a1b2c3d4)",
            "in": "path",
            "name": "streamKey",
            "required": true,
            "schema": {
              "pattern": "^live-[a-f0-9]{8}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Stream buffer acknowledged"
          }
        },
        "summary": "Batch event stream push"
      }
    },
    "/v1/streams/{streamId}/ws": {
      "get": {
        "description": "Establishes long-lived bidirectional streaming socket.",
        "parameters": [
          {
            "description": "Assigned stream authorization key",
            "in": "path",
            "name": "streamId",
            "required": true,
            "schema": {
              "pattern": "^live-[a-f0-9]{8}$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "101": {
            "description": "Switching protocols to WebSocket stream"
          }
        },
        "summary": "WebSocket telemetry stream channel"
      }
    },
    "/v1/telemetry/events": {
      "post": {
        "description": "Queues client traces and metrics events.",
        "responses": {
          "202": {
            "description": "Events batch accepted and queued"
          },
          "405": {
            "description": "Method Not Allowed - POST required"
          }
        },
        "summary": "Batch telemetry ingest"
      }
    }
  },
  "servers": [
    {
      "description": "Primary Ingest Node (eu-1)",
      "url": "https://ingest-eu-1.pabogate.com"
    }
  ]
}