vee3-io · Schema

ScreenshotRequest

CompanyArtificial IntelligenceAgentsPlatformMCP

Properties

Name Type Description
url string Public http or https URL to capture. Private, localhost, and internal network addresses are blocked.
full_page object Capture the full scrollable page. When false, only the viewport area is captured.
viewport_width object Browser viewport width in pixels.
viewport_height object Browser viewport height in pixels.
wait_until string When to take the screenshot: 'load' (load event), 'domcontentloaded' (DOM ready, faster; use with post_load_wait to let the page settle), or 'networkidle' (no network activity for 500ms; can time out
timeout_seconds object Maximum seconds to wait for the page to load before failing.
post_load_wait object Extra seconds to wait after wait_until before capturing. Only valid when wait_until is domcontentloaded. Use this instead of networkidle when pages keep network activity.
format string Output image format. 'png' preserves lossless quality (default). 'jpeg' produces smaller files.
quality object JPEG compression quality from 0 (smallest) to 100 (best). Only applies when format is 'jpeg'; ignored for PNG.
dark_mode object When true, emulate prefers-color-scheme: dark so sites with dark-mode CSS render in dark mode. Has no effect on sites without dark-mode styling.
block_cookie_banners object When true, attempt to dismiss common cookie consent banners and overlays before capture. Best-effort - custom or first-party banners may remain.
file_name object Optional account-relative storage path for the screenshot. If omitted, the file is stored under downloads/ with a generated name.
View JSON Schema on GitHub

JSON Schema

vee3-io-screenshot-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/vee3-io/json-schema/vee3-io-screenshot-request-schema.json",
  "title": "ScreenshotRequest",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/vee3-io-openapi.json#/components/schemas/ScreenshotRequest",
  "properties": {
    "url": {
      "type": "string",
      "maxLength": 2048,
      "title": "Url",
      "description": "Public http or https URL to capture. Private, localhost, and internal network addresses are blocked."
    },
    "full_page": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Full Page",
      "description": "Capture the full scrollable page. When false, only the viewport area is captured.",
      "default": false
    },
    "viewport_width": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 3840.0,
          "minimum": 320.0
        },
        {
          "type": "null"
        }
      ],
      "title": "Viewport Width",
      "description": "Browser viewport width in pixels.",
      "default": 1280
    },
    "viewport_height": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 2160.0,
          "minimum": 240.0
        },
        {
          "type": "null"
        }
      ],
      "title": "Viewport Height",
      "description": "Browser viewport height in pixels.",
      "default": 720
    },
    "wait_until": {
      "type": "string",
      "enum": [
        "load",
        "domcontentloaded",
        "networkidle"
      ],
      "title": "Wait Until",
      "description": "When to take the screenshot: 'load' (load event), 'domcontentloaded' (DOM ready, faster; use with post_load_wait to let the page settle), or 'networkidle' (no network activity for 500ms; can time out on pages with ongoing requests).",
      "default": "domcontentloaded"
    },
    "timeout_seconds": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 60.0,
          "minimum": 5.0
        },
        {
          "type": "null"
        }
      ],
      "title": "Timeout Seconds",
      "description": "Maximum seconds to wait for the page to load before failing.",
      "default": 30
    },
    "post_load_wait": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 20.0,
          "minimum": 0.0
        },
        {
          "type": "null"
        }
      ],
      "title": "Post Load Wait",
      "description": "Extra seconds to wait after wait_until before capturing. Only valid when wait_until is domcontentloaded. Use this instead of networkidle when pages keep network activity.",
      "default": 0
    },
    "format": {
      "type": "string",
      "enum": [
        "png",
        "jpeg"
      ],
      "title": "Format",
      "description": "Output image format. 'png' preserves lossless quality (default). 'jpeg' produces smaller files.",
      "default": "png"
    },
    "quality": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 100.0,
          "minimum": 0.0
        },
        {
          "type": "null"
        }
      ],
      "title": "Quality",
      "description": "JPEG compression quality from 0 (smallest) to 100 (best). Only applies when format is 'jpeg'; ignored for PNG.",
      "default": 80
    },
    "dark_mode": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Dark Mode",
      "description": "When true, emulate prefers-color-scheme: dark so sites with dark-mode CSS render in dark mode. Has no effect on sites without dark-mode styling.",
      "default": false
    },
    "block_cookie_banners": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Block Cookie Banners",
      "description": "When true, attempt to dismiss common cookie consent banners and overlays before capture. Best-effort - custom or first-party banners may remain.",
      "default": false
    },
    "file_name": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 255
        },
        {
          "type": "null"
        }
      ],
      "title": "File Name",
      "description": "Optional account-relative storage path for the screenshot. If omitted, the file is stored under downloads/ with a generated name."
    }
  },
  "type": "object",
  "required": [
    "url"
  ]
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/vee3-io-screenshot-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.