{
  "openapi": "3.0.3",
  "info": {
    "title": "WebsiteScreen.com Screenshot API",
    "version": "1.0.0",
    "description": "Capture a public website as a PNG or JPEG with a WebsiteScreen.com client API key."
  },
  "servers": [
    {"url": "https://websitescreen.com"}
  ],
  "paths": {
    "/api/": {
      "get": {
        "summary": "Capture a website screenshot",
        "parameters": [
          {"name": "url", "in": "query", "required": true, "schema": {"type": "string", "format": "uri"}},
          {"name": "userkey", "in": "query", "required": true, "schema": {"type": "string"}},
          {"name": "width", "in": "query", "schema": {"type": "integer", "minimum": 240, "maximum": 2000, "default": 1280}},
          {"name": "height", "in": "query", "schema": {"type": "integer", "minimum": 0, "maximum": 20000, "default": 1024}},
          {"name": "zoom", "in": "query", "schema": {"type": "integer", "minimum": 100, "maximum": 500, "default": 100}},
          {"name": "scaled_width", "in": "query", "schema": {"type": "integer", "minimum": 24, "maximum": 2000, "default": 1280}},
          {"name": "full_size", "in": "query", "schema": {"type": "boolean", "default": false}},
          {"name": "format", "in": "query", "schema": {"type": "string", "enum": ["PNG", "JPEG"], "default": "PNG"}},
          {"name": "response_type", "in": "query", "schema": {"type": "string", "enum": ["image", "json"], "default": "image"}}
        ],
        "responses": {
          "200": {
            "description": "Captured screenshot",
            "content": {
              "image/png": {"schema": {"type": "string", "format": "binary"}},
              "image/jpeg": {"schema": {"type": "string", "format": "binary"}},
              "application/json": {"schema": {"type": "object"}}
            }
          },
          "400": {"description": "Invalid capture request"},
          "401": {"description": "Invalid or inactive API key"},
          "502": {"description": "Screenshot provider error"}
        }
      }
    }
  }
}
