Skip to main content
Glama

HTML/CSS to Image API

Create an OG Configuration

create_og_config

Saves a new Open Graph (social preview) image configuration for pages on an HTTPS website. Use config_type: html_css to render source pages with default rendering options, or templated to render an existing template using values extracted from page metadata. Returns the saved configuration in item, including id for later management and domain_id for its Open Graph image URLs. Requires a plan that supports OG configurations. Use create_url_image for a single page screenshot and update_og_config to change an existing configuration.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
contentYesConfiguration name, HTTPS base_url origin, and config_type. For html_css, supply default_options as needed and enable extract_values to let page metadata override them. For templated, supply an existing template_id and any template_values_mapping. Set disabled: true to save it without enabling image serving.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemNoOperation result. Check success before using this value.
errorNoError details when the operation failed; null on success.
successNoWhether the operation succeeded. If false, inspect error before retrying.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / content / anyOf
      Previous value: -[
      -  {
      -    "description": "Settings for an Open Graph configuration that renders page HTML/CSS.",
      -    "properties": {
      -      "base_url": {
      -        "description": "HTTPS origin of the source website, such as https://example.com. Do not include a path, query string, fragment, or credentials.",
      -        "maxLength": 2048,
      -        "type": "string"
      -      },
      -      "config_type": {
      -        "const": "html_css"
      -      },
      -      "default_options": {
      -        "description": "Default image rendering options for pages served by this configuration. Any extracted values will override these defaults.",
      -        "properties": {
      -          "additional_header_origins": {
      -            "description": "Additional exact HTTP or HTTPS origins allowed to receive custom headers. Supports up to 20 unique origins of up to 512 UTF-8 bytes each. Origins must use the format scheme://host[:port] without a path; duplicates are ignored. For GET and form-encoded requests, repeat this parameter for each origin.",
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": [
      -              "array",
      -              "null"
      -            ]
      -          },
      -          "block_consent_banners": {
      -            "description": "Attempt to block cookie/consent banners from displaying.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "color_scheme": {
      -            "description": "Sets Chrome's preferred color scheme. Valid values: light or dark.",
      -            "enum": [
      -              "light",
      -              "dark",
      -              null
      -            ],
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "css": {
      -            "description": "CSS injected into the loaded page to override its styles.",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "device_scale": {
      -            "description": "Adjusts the pixel ratio used for the screenshot. Minimum: 0.1. Maximum: 3. HTML and template renders default to 2; URL renders default to 1.",
      -            "maximum": 3,
      -            "minimum": 0.1,
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          },
      -          "disable_twemoji": {
      -            "description": "Disables the Twemoji fallback and renders emoji using native fonts instead.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "headers": {
      -            "additionalProperties": {
      -              "type": "string"
      -            },
      -            "description": "HTTP headers to include on top-level page navigations to the requested URL's origin and any additional_header_origins. Supports up to 20 headers with names up to 512 ASCII characters and values up to 8192 UTF-8 bytes. For GET and form-encoded requests, repeat this parameter using the format `headers=name:value`.",
      -            "type": [
      -              "object",
      -              "null"
      -            ]
      -          },
      -          "identify_as_hcti": {
      -            "description": "Identify the top-level page navigation as an HCTI screenshot request using the X-HCTI-SCREENSHOT header.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "include_headers_on_subrequests": {
      -            "description": "Include custom headers on subrequests to the requested URL's origin and any additional_header_origins. Defaults to false. Requires at least one header.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "max_wait_ms": {
      -            "description": "Sets a limit on how long to wait before taking the screenshot when the page continues loading irrelevant content. Minimum: 500. Maximum: 10000 and subject to the account plan limit.",
      -            "maximum": 10000,
      -            "minimum": 500,
      -            "type": [
      -              "integer",
      -              "null"
      -            ]
      -          },
      -          "media_type": {
      -            "description": "Sets the CSS media type used while rendering the page. Valid values: print or screen.",
      -            "enum": [
      -              "print",
      -              "screen",
      -              null
      -            ],
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "ms_delay": {
      -            "description": "Adds extra time in milliseconds before taking the screenshot so JavaScript can execute. Minimum: 0. Maximum: 10000.",
      -            "maximum": 10000,
      -            "minimum": 0,
      -            "type": [
      -              "integer",
      -              "null"
      -            ]
      -          },
      -          "proxy_id": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "render_when_ready": {
      -            "description": "Waits until the page signals that the screenshot is ready. The image fails if the readiness signal is never sent.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "selector": {
      -            "description": "A CSS selector for an element in the HTML. We’ll crop the image to this specific element.",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "storage_destination_id": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "timezone": {
      -            "description": "Sets the IANA timezone used by Chrome while rendering. Must be a recognized IANA timezone identifier.",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "transparent_background": {
      -            "description": "Specifies whether the image is rendered with a transparent background.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "viewport_height": {
      -            "description": "Sets the height of Chrome's viewport and disables automatic cropping. Minimum: 1. Maximum: 6000. Both viewport dimensions must be supplied together.",
      -            "maximum": 6000,
      -            "minimum": 1,
      -            "type": [
      -              "integer",
      -              "null"
      -            ]
      -          },
      -          "viewport_landscape": {
      -            "description": "Specifies whether the emulated viewport is in landscape orientation.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "viewport_mobile": {
      -            "description": "Specifies whether the page uses mobile viewport behavior, including its viewport meta tag.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "viewport_touch": {
      -            "description": "Specifies whether the emulated viewport supports touch events.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "viewport_width": {
      -            "description": "Sets the width of Chrome's viewport and disables automatic cropping. Minimum: 1. Maximum: 6000. Both viewport dimensions must be supplied together.",
      -            "maximum": 6000,
      -            "minimum": 1,
      -            "type": [
      -              "integer",
      -              "null"
      -            ]
      -          }
      -        },
      -        "type": [
      -          "object",
      -          "null"
      -        ]
      -      },
      -      "description": {
      -        "description": "Optional description of the configuration, up to 1023 characters.",
      -        "maxLength": 1023,
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "disabled": {
      -        "description": "Whether this configuration is disabled from serving Open Graph images. Defaults to false.",
      -        "type": "boolean"
      -      },
      -      "extract_values": {
      -        "description": "Whether to extract image options from page metadata. When disabled, only the configured defaults are used.",
      -        "type": "boolean"
      -      },
      -      "name": {
      -        "description": "Display name for the configuration, up to 255 characters.",
      -        "maxLength": 255,
      -        "type": "string"
      -      },
      -      "optimization_mode": {
      -        "description": "How images are sized for social platforms: keep their original dimensions, adapt them after rendering, or set the viewport before rendering. Defaults to post_process.",
      -        "enum": [
      -          "no_optimization",
      -          "post_process",
      -          "set_viewport"
      -        ],
      -        "type": "string"
      -      },
      -      "refresh_interval_s": {
      -        "description": "Interval in seconds before cached images are eligible for refresh. The minimum depends on your plan; the maximum is one year.",
      -        "maximum": 31536000,
      -        "minimum": 1800,
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "name",
      -      "base_url"
      -    ]
      -  },
      -  {
      -    "description": "Settings for an Open Graph configuration that renders a template using values extracted from page metadata.",
      -    "properties": {
      -      "additional_header_origins": {
      -        "description": "Additional exact HTTP or HTTPS origins allowed to receive custom headers. Supports up to 20 unique origins of up to 512 UTF-8 bytes each. Origins must use the format scheme://host[:port] without a path; duplicates are ignored.",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "base_url": {
      -        "description": "HTTPS origin of the source website, such as https://example.com. Do not include a path, query string, fragment, or credentials.",
      -        "maxLength": 2048,
      -        "type": "string"
      -      },
      -      "config_type": {
      -        "const": "templated"
      -      },
      -      "description": {
      -        "description": "Optional description of the configuration, up to 1023 characters.",
      -        "maxLength": 1023,
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "disabled": {
      -        "description": "Whether this configuration is disabled from serving Open Graph images. Defaults to false.",
      -        "type": "boolean"
      -      },
      -      "headers": {
      -        "additionalProperties": {
      -          "type": "string"
      -        },
      -        "description": "HTTP headers to include on top-level page navigations to the requested URL's origin and any additional_header_origins. Supports up to 20 headers with names up to 512 ASCII characters and values up to 8192 UTF-8 bytes.",
      -        "type": [
      -          "object",
      -          "null"
      -        ]
      -      },
      -      "name": {
      -        "description": "Display name for the configuration, up to 255 characters.",
      -        "maxLength": 255,
      -        "type": "string"
      -      },
      -      "optimization_mode": {
      -        "description": "How images are sized for social platforms: keep their original dimensions, adapt them after rendering, or set the viewport before rendering. Defaults to post_process.",
      -        "enum": [
      -          "no_optimization",
      -          "post_process",
      -          "set_viewport"
      -        ],
      -        "type": "string"
      -      },
      -      "refresh_interval_s": {
      -        "description": "Interval in seconds before cached images are eligible for refresh. The minimum depends on your plan; the maximum is one year.",
      -        "maximum": 31536000,
      -        "minimum": 1800,
      -        "type": "integer"
      -      },
      -      "template_id": {
      -        "description": "ID of the template used to render images.",
      -        "type": "string"
      -      },
      -      "template_values_mapping": {
      -        "description": "Up to 32 mappings from page metadata to template fields. Each mapping supplies either a meta_key or a fallback.",
      -        "items": {
      -          "description": "Maps page metadata to a template field. Supply exactly one of meta_key or fallback.",
      -          "properties": {
      -            "fallback": {
      -              "description": "Use the page's available title or description metadata. Supply this or meta_key, not both.",
      -              "enum": [
      -                "titles",
      -                "descriptions",
      -                null
      -              ],
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "meta_key": {
      -              "description": "Meta tag name or property, such as og:title or twitter:description. Supply this or fallback, not both.",
      -              "maxLength": 136,
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "template_key": {
      -              "description": "Template field path to populate, up to 128 characters.",
      -              "maxLength": 128,
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "template_key"
      -          ],
      -          "type": "object"
      -        },
      -        "maxItems": 32,
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "template_version": {
      -        "description": "Template version to use. Omit or set to null to use the latest version.",
      -        "type": [
      -          "integer",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "template_id",
      -      "name",
      -      "base_url"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "description": "Settings for an Open Graph configuration that renders page HTML/CSS.",
      +    "properties": {
      +      "base_url": {
      +        "description": "HTTPS origin of the source website, such as https://example.com. Do not include a path, query string, fragment, or credentials.",
      +        "maxLength": 2048,
      +        "type": "string"
      +      },
      +      "config_type": {
      +        "const": "html_css"
      +      },
      +      "default_options": {
      +        "description": "Default image rendering options for pages served by this configuration. Any extracted values will override these defaults.",
      +        "properties": {
      +          "additional_header_origins": {
      +            "description": "Additional exact HTTP or HTTPS origins allowed to receive custom headers. Supports up to 20 unique origins of up to 512 UTF-8 bytes each. Origins must use the format scheme://host[:port] without a path; duplicates are ignored. For GET and form-encoded requests, repeat this parameter for each origin.",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": [
      +              "array",
      +              "null"
      +            ]
      +          },
      +          "block_consent_banners": {
      +            "description": "Attempt to block cookie/consent banners from displaying.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "color_scheme": {
      +            "description": "Sets Chrome's preferred color scheme. Valid values: light or dark.",
      +            "enum": [
      +              "light",
      +              "dark",
      +              null
      +            ],
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "css": {
      +            "description": "CSS injected into the loaded page to override its styles.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "device_scale": {
      +            "description": "Adjusts the pixel ratio used for the screenshot. Minimum: 0.1. Maximum: 3. HTML and template renders default to 2; URL renders default to 1.",
      +            "maximum": 3,
      +            "minimum": 0.1,
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "disable_twemoji": {
      +            "description": "Set explicitly to false to inject Twemoji into the captured URL page. Omitted, null, or true leaves the page's emoji handling unchanged and does not disable the website's own emoji scripts.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "headers": {
      +            "additionalProperties": {
      +              "type": "string"
      +            },
      +            "description": "HTTP headers to include on top-level page navigations to the requested URL's origin and any additional_header_origins. Supports up to 20 headers with names up to 512 ASCII characters and values up to 8192 UTF-8 bytes. For GET and form-encoded requests, repeat this parameter using the format `headers=name:value`.",
      +            "type": [
      +              "object",
      +              "null"
      +            ]
      +          },
      +          "identify_as_hcti": {
      +            "description": "Identify the top-level page navigation as an HCTI screenshot request using the X-HCTI-SCREENSHOT header.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "include_headers_on_subrequests": {
      +            "description": "Include custom headers on subrequests to the requested URL's origin and any additional_header_origins. Defaults to false. Requires at least one header.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "max_wait_ms": {
      +            "description": "Sets a limit on how long to wait before taking the screenshot when the page continues loading irrelevant content. Minimum: 500. Maximum: 10000 and subject to the account plan limit.",
      +            "maximum": 10000,
      +            "minimum": 500,
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "media_type": {
      +            "description": "Sets the CSS media type used while rendering the page. Valid values: print or screen.",
      +            "enum": [
      +              "print",
      +              "screen",
      +              null
      +            ],
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "ms_delay": {
      +            "description": "Adds extra time in milliseconds before taking the screenshot so JavaScript can execute. Minimum: 0. Maximum: 10000.",
      +            "maximum": 10000,
      +            "minimum": 0,
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "proxy_id": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "render_when_ready": {
      +            "description": "Waits until the page signals that the screenshot is ready. The image fails if the readiness signal is never sent.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "selector": {
      +            "description": "A CSS selector for an element in the HTML. We’ll crop the image to this specific element.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "storage_destination_id": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "timezone": {
      +            "description": "Sets the IANA timezone used by Chrome while rendering. Must be a recognized IANA timezone identifier.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "transparent_background": {
      +            "description": "Specifies whether the image is rendered with a transparent background.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "viewport_height": {
      +            "description": "Sets the height of Chrome's viewport and disables automatic cropping. Minimum: 1. Maximum: 6000. Both viewport dimensions must be supplied together.",
      +            "maximum": 6000,
      +            "minimum": 1,
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "viewport_landscape": {
      +            "description": "Specifies whether the emulated viewport is in landscape orientation.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "viewport_mobile": {
      +            "description": "Specifies whether the page uses mobile viewport behavior, including its viewport meta tag.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "viewport_touch": {
      +            "description": "Specifies whether the emulated viewport supports touch events.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "viewport_width": {
      +            "description": "Sets the width of Chrome's viewport and disables automatic cropping. Minimum: 1. Maximum: 6000. Both viewport dimensions must be supplied together.",
      +            "maximum": 6000,
      +            "minimum": 1,
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      "description": {
      +        "description": "Optional description of the configuration, up to 1023 characters.",
      +        "maxLength": 1023,
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "disabled": {
      +        "description": "Whether this configuration is disabled from serving Open Graph images. Defaults to false.",
      +        "type": "boolean"
      +      },
      +      "extract_values": {
      +        "description": "Whether to extract image options from page metadata. When disabled, only the configured defaults are used.",
      +        "type": "boolean"
      +      },
      +      "name": {
      +        "description": "Display name for the configuration, up to 255 characters.",
      +        "maxLength": 255,
      +        "type": "string"
      +      },
      +      "optimization_mode": {
      +        "description": "How images are sized for social platforms: keep their original dimensions, adapt them after rendering, or set the viewport before rendering. Defaults to post_process.",
      +        "enum": [
      +          "no_optimization",
      +          "post_process",
      +          "set_viewport"
      +        ],
      +        "type": "string"
      +      },
      +      "refresh_interval_s": {
      +        "description": "Interval in seconds before cached images are eligible for refresh. The minimum depends on your plan; the maximum is one year.",
      +        "maximum": 31536000,
      +        "minimum": 1800,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "name",
      +      "base_url"
      +    ]
      +  },
      +  {
      +    "description": "Settings for an Open Graph configuration that renders a template using values extracted from page metadata.",
      +    "properties": {
      +      "additional_header_origins": {
      +        "description": "Additional exact HTTP or HTTPS origins allowed to receive custom headers. Supports up to 20 unique origins of up to 512 UTF-8 bytes each. Origins must use the format scheme://host[:port] without a path; duplicates are ignored.",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "base_url": {
      +        "description": "HTTPS origin of the source website, such as https://example.com. Do not include a path, query string, fragment, or credentials.",
      +        "maxLength": 2048,
      +        "type": "string"
      +      },
      +      "config_type": {
      +        "const": "templated"
      +      },
      +      "description": {
      +        "description": "Optional description of the configuration, up to 1023 characters.",
      +        "maxLength": 1023,
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "disabled": {
      +        "description": "Whether this configuration is disabled from serving Open Graph images. Defaults to false.",
      +        "type": "boolean"
      +      },
      +      "headers": {
      +        "additionalProperties": {
      +          "type": "string"
      +        },
      +        "description": "HTTP headers to include on top-level page navigations to the requested URL's origin and any additional_header_origins. Supports up to 20 headers with names up to 512 ASCII characters and values up to 8192 UTF-8 bytes.",
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      "name": {
      +        "description": "Display name for the configuration, up to 255 characters.",
      +        "maxLength": 255,
      +        "type": "string"
      +      },
      +      "optimization_mode": {
      +        "description": "How images are sized for social platforms: keep their original dimensions, adapt them after rendering, or set the viewport before rendering. Defaults to post_process.",
      +        "enum": [
      +          "no_optimization",
      +          "post_process",
      +          "set_viewport"
      +        ],
      +        "type": "string"
      +      },
      +      "refresh_interval_s": {
      +        "description": "Interval in seconds before cached images are eligible for refresh. The minimum depends on your plan; the maximum is one year.",
      +        "maximum": 31536000,
      +        "minimum": 1800,
      +        "type": "integer"
      +      },
      +      "template_id": {
      +        "description": "ID of the template used to render images.",
      +        "type": "string"
      +      },
      +      "template_values_mapping": {
      +        "description": "Up to 32 mappings from page metadata to template fields. Each mapping supplies either a meta_key or a fallback.",
      +        "items": {
      +          "description": "Maps page metadata to a template field. Supply exactly one of meta_key or fallback.",
      +          "properties": {
      +            "fallback": {
      +              "description": "Use the page's available title or description metadata. Supply this or meta_key, not both.",
      +              "enum": [
      +                "titles",
      +                "descriptions",
      +                null
      +              ],
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "meta_key": {
      +              "description": "Meta tag name or property, such as og:title or twitter:description. Supply this or fallback, not both.",
      +              "maxLength": 136,
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "template_key": {
      +              "description": "Template field path to populate, up to 128 characters.",
      +              "maxLength": 128,
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "template_key"
      +          ],
      +          "type": "object"
      +        },
      +        "maxItems": 32,
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "template_version": {
      +        "description": "Template version to use. Omit or set to null to use the latest version.",
      +        "type": [
      +          "integer",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "template_id",
      +      "name",
      +      "base_url"
      +    ]
      +  }
      +]
    • changedOutput schema / properties / item / anyOf
      Previous value: -[
      -  {
      -    "description": "An Open Graph configuration that renders page HTML/CSS.",
      -    "properties": {
      -      "base_url": {
      -        "type": "string"
      -      },
      -      "config_type": {
      -        "const": "html_css"
      -      },
      -      "created_at": {
      -        "format": "date-time",
      -        "type": "string"
      -      },
      -      "default_options": {
      -        "description": "Default image rendering options for pages served by this configuration. Extracted image options override these defaults.",
      -        "properties": {
      -          "additional_header_origins": {
      -            "description": "Additional exact HTTP or HTTPS origins allowed to receive custom headers. Supports up to 20 unique origins of up to 512 UTF-8 bytes each. Origins must use the format scheme://host[:port] without a path; duplicates are ignored. For GET and form-encoded requests, repeat this parameter for each origin.",
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": [
      -              "array",
      -              "null"
      -            ]
      -          },
      -          "block_consent_banners": {
      -            "description": "Attempt to block cookie/consent banners from displaying.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "color_scheme": {
      -            "description": "Sets Chrome's preferred color scheme. Valid values: light or dark.",
      -            "enum": [
      -              "light",
      -              "dark",
      -              null
      -            ],
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "css": {
      -            "description": "CSS injected into the loaded page to override its styles.",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "device_scale": {
      -            "description": "Adjusts the pixel ratio used for the screenshot. Minimum: 0.1. Maximum: 3. HTML and template renders default to 2; URL renders default to 1.",
      -            "maximum": 3,
      -            "minimum": 0.1,
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          },
      -          "disable_twemoji": {
      -            "description": "Disables the Twemoji fallback and renders emoji using native fonts instead.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "headers": {
      -            "additionalProperties": {
      -              "type": "string"
      -            },
      -            "description": "HTTP headers to include on top-level page navigations to the requested URL's origin and any additional_header_origins. Supports up to 20 headers with names up to 512 ASCII characters and values up to 8192 UTF-8 bytes. For GET and form-encoded requests, repeat this parameter using the format `headers=name:value`.",
      -            "type": [
      -              "object",
      -              "null"
      -            ]
      -          },
      -          "identify_as_hcti": {
      -            "description": "Identify the top-level page navigation as an HCTI screenshot request using the X-HCTI-SCREENSHOT header.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "include_headers_on_subrequests": {
      -            "description": "Include custom headers on subrequests to the requested URL's origin and any additional_header_origins. Defaults to false. Requires at least one header.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "max_wait_ms": {
      -            "description": "Sets a limit on how long to wait before taking the screenshot when the page continues loading irrelevant content. Minimum: 500. Maximum: 10000 and subject to the account plan limit.",
      -            "maximum": 10000,
      -            "minimum": 500,
      -            "type": [
      -              "integer",
      -              "null"
      -            ]
      -          },
      -          "media_type": {
      -            "description": "Sets the CSS media type used while rendering the page. Valid values: print or screen.",
      -            "enum": [
      -              "print",
      -              "screen",
      -              null
      -            ],
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "ms_delay": {
      -            "description": "Adds extra time in milliseconds before taking the screenshot so JavaScript can execute. Minimum: 0. Maximum: 10000.",
      -            "maximum": 10000,
      -            "minimum": 0,
      -            "type": [
      -              "integer",
      -              "null"
      -            ]
      -          },
      -          "proxy_id": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "render_when_ready": {
      -            "description": "Waits until the page signals that the screenshot is ready. The image fails if the readiness signal is never sent.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "selector": {
      -            "description": "A CSS selector for an element in the HTML. We’ll crop the image to this specific element.",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "storage_destination_id": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "timezone": {
      -            "description": "Sets the IANA timezone used by Chrome while rendering. Must be a recognized IANA timezone identifier.",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "transparent_background": {
      -            "description": "Specifies whether the image is rendered with a transparent background.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "viewport_height": {
      -            "description": "Sets the height of Chrome's viewport and disables automatic cropping. Minimum: 1. Maximum: 6000. Both viewport dimensions must be supplied together.",
      -            "maximum": 6000,
      -            "minimum": 1,
      -            "type": [
      -              "integer",
      -              "null"
      -            ]
      -          },
      -          "viewport_landscape": {
      -            "description": "Specifies whether the emulated viewport is in landscape orientation.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "viewport_mobile": {
      -            "description": "Specifies whether the page uses mobile viewport behavior, including its viewport meta tag.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "viewport_touch": {
      -            "description": "Specifies whether the emulated viewport supports touch events.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "viewport_width": {
      -            "description": "Sets the width of Chrome's viewport and disables automatic cropping. Minimum: 1. Maximum: 6000. Both viewport dimensions must be supplied together.",
      -            "maximum": 6000,
      -            "minimum": 1,
      -            "type": [
      -              "integer",
      -              "null"
      -            ]
      -          }
      -        },
      -        "type": [
      -          "object",
      -          "null"
      -        ]
      -      },
      -      "description": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "domain_id": {
      -        "description": "Domain identifier used in this configuration's Open Graph image URLs.",
      -        "type": "string"
      -      },
      -      "enabled": {
      -        "description": "Whether the configuration is enabled to serve Open Graph images.",
      -        "type": "boolean"
      -      },
      -      "extract_values": {
      -        "description": "Whether image options are extracted from page metadata. When disabled, only the configured defaults are used.",
      -        "type": "boolean"
      -      },
      -      "id": {
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "optimization_mode": {
      -        "description": "How images are sized for different social platforms.",
      -        "enum": [
      -          "no_optimization",
      -          "post_process",
      -          "set_viewport"
      -        ],
      -        "type": "string"
      -      },
      -      "refresh_interval_s": {
      -        "type": "integer"
      -      },
      -      "updated_at": {
      -        "format": "date-time",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "id",
      -      "domain_id",
      -      "base_url"
      -    ]
      -  },
      -  {
      -    "description": "An Open Graph configuration that renders a template using extracted page metadata.",
      -    "properties": {
      -      "additional_header_origins": {
      -        "description": "Additional exact HTTP or HTTPS origins allowed to receive custom headers, in the format scheme://host[:port] without a path.",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "base_url": {
      -        "type": "string"
      -      },
      -      "config_type": {
      -        "const": "templated"
      -      },
      -      "created_at": {
      -        "format": "date-time",
      -        "type": "string"
      -      },
      -      "description": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "domain_id": {
      -        "description": "Domain identifier used in this configuration's Open Graph image URLs.",
      -        "type": "string"
      -      },
      -      "enabled": {
      -        "description": "Whether the configuration is enabled to serve Open Graph images.",
      -        "type": "boolean"
      -      },
      -      "headers": {
      -        "additionalProperties": {
      -          "type": "string"
      -        },
      -        "description": "Custom HTTP headers sent on top-level page navigations to the source website's origin and any additional_header_origins.",
      -        "type": [
      -          "object",
      -          "null"
      -        ]
      -      },
      -      "id": {
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "optimization_mode": {
      -        "description": "How images are sized for different social platforms.",
      -        "enum": [
      -          "no_optimization",
      -          "post_process",
      -          "set_viewport"
      -        ],
      -        "type": "string"
      -      },
      -      "refresh_interval_s": {
      -        "type": "integer"
      -      },
      -      "template_id": {
      -        "description": "ID of the template used to render images.",
      -        "type": "string"
      -      },
      -      "template_values_mapping": {
      -        "description": "Mappings from page metadata to template fields. Each mapping uses either a meta_key or a fallback.",
      -        "items": {
      -          "description": "Maps page metadata to a template field. Supply exactly one of meta_key or fallback.",
      -          "properties": {
      -            "fallback": {
      -              "description": "Use the page's available title or description metadata. Supply this or meta_key, not both.",
      -              "enum": [
      -                "titles",
      -                "descriptions",
      -                null
      -              ],
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "meta_key": {
      -              "description": "Meta tag name or property, such as og:title or twitter:description. Supply this or fallback, not both.",
      -              "maxLength": 136,
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "template_key": {
      -              "description": "Template field path to populate, up to 128 characters.",
      -              "maxLength": 128,
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "template_key"
      -          ],
      -          "type": "object"
      -        },
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "template_version": {
      -        "description": "Template version used to render images. Null means the latest version is used.",
      -        "type": [
      -          "integer",
      -          "null"
      -        ]
      -      },
      -      "updated_at": {
      -        "format": "date-time",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "template_id",
      -      "id",
      -      "domain_id",
      -      "base_url"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "description": "An Open Graph configuration that renders page HTML/CSS.",
      +    "properties": {
      +      "base_url": {
      +        "type": "string"
      +      },
      +      "config_type": {
      +        "const": "html_css"
      +      },
      +      "created_at": {
      +        "format": "date-time",
      +        "type": "string"
      +      },
      +      "default_options": {
      +        "description": "Default image rendering options for pages served by this configuration. Extracted image options override these defaults.",
      +        "properties": {
      +          "additional_header_origins": {
      +            "description": "Additional exact HTTP or HTTPS origins allowed to receive custom headers. Supports up to 20 unique origins of up to 512 UTF-8 bytes each. Origins must use the format scheme://host[:port] without a path; duplicates are ignored. For GET and form-encoded requests, repeat this parameter for each origin.",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": [
      +              "array",
      +              "null"
      +            ]
      +          },
      +          "block_consent_banners": {
      +            "description": "Attempt to block cookie/consent banners from displaying.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "color_scheme": {
      +            "description": "Sets Chrome's preferred color scheme. Valid values: light or dark.",
      +            "enum": [
      +              "light",
      +              "dark",
      +              null
      +            ],
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "css": {
      +            "description": "CSS injected into the loaded page to override its styles.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "device_scale": {
      +            "description": "Adjusts the pixel ratio used for the screenshot. Minimum: 0.1. Maximum: 3. HTML and template renders default to 2; URL renders default to 1.",
      +            "maximum": 3,
      +            "minimum": 0.1,
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "disable_twemoji": {
      +            "description": "Set explicitly to false to inject Twemoji into the captured URL page. Omitted, null, or true leaves the page's emoji handling unchanged and does not disable the website's own emoji scripts.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "headers": {
      +            "additionalProperties": {
      +              "type": "string"
      +            },
      +            "description": "HTTP headers to include on top-level page navigations to the requested URL's origin and any additional_header_origins. Supports up to 20 headers with names up to 512 ASCII characters and values up to 8192 UTF-8 bytes. For GET and form-encoded requests, repeat this parameter using the format `headers=name:value`.",
      +            "type": [
      +              "object",
      +              "null"
      +            ]
      +          },
      +          "identify_as_hcti": {
      +            "description": "Identify the top-level page navigation as an HCTI screenshot request using the X-HCTI-SCREENSHOT header.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "include_headers_on_subrequests": {
      +            "description": "Include custom headers on subrequests to the requested URL's origin and any additional_header_origins. Defaults to false. Requires at least one header.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "max_wait_ms": {
      +            "description": "Sets a limit on how long to wait before taking the screenshot when the page continues loading irrelevant content. Minimum: 500. Maximum: 10000 and subject to the account plan limit.",
      +            "maximum": 10000,
      +            "minimum": 500,
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "media_type": {
      +            "description": "Sets the CSS media type used while rendering the page. Valid values: print or screen.",
      +            "enum": [
      +              "print",
      +              "screen",
      +              null
      +            ],
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "ms_delay": {
      +            "description": "Adds extra time in milliseconds before taking the screenshot so JavaScript can execute. Minimum: 0. Maximum: 10000.",
      +            "maximum": 10000,
      +            "minimum": 0,
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "proxy_id": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "render_when_ready": {
      +            "description": "Waits until the page signals that the screenshot is ready. The image fails if the readiness signal is never sent.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "selector": {
      +            "description": "A CSS selector for an element in the HTML. We’ll crop the image to this specific element.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "storage_destination_id": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "timezone": {
      +            "description": "Sets the IANA timezone used by Chrome while rendering. Must be a recognized IANA timezone identifier.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "transparent_background": {
      +            "description": "Specifies whether the image is rendered with a transparent background.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "viewport_height": {
      +            "description": "Sets the height of Chrome's viewport and disables automatic cropping. Minimum: 1. Maximum: 6000. Both viewport dimensions must be supplied together.",
      +            "maximum": 6000,
      +            "minimum": 1,
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "viewport_landscape": {
      +            "description": "Specifies whether the emulated viewport is in landscape orientation.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "viewport_mobile": {
      +            "description": "Specifies whether the page uses mobile viewport behavior, including its viewport meta tag.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "viewport_touch": {
      +            "description": "Specifies whether the emulated viewport supports touch events.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "viewport_width": {
      +            "description": "Sets the width of Chrome's viewport and disables automatic cropping. Minimum: 1. Maximum: 6000. Both viewport dimensions must be supplied together.",
      +            "maximum": 6000,
      +            "minimum": 1,
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      "description": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "domain_id": {
      +        "description": "Domain identifier used in this configuration's Open Graph image URLs.",
      +        "type": "string"
      +      },
      +      "enabled": {
      +        "description": "Whether the configuration is enabled to serve Open Graph images.",
      +        "type": "boolean"
      +      },
      +      "extract_values": {
      +        "description": "Whether image options are extracted from page metadata. When disabled, only the configured defaults are used.",
      +        "type": "boolean"
      +      },
      +      "id": {
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "optimization_mode": {
      +        "description": "How images are sized for different social platforms.",
      +        "enum": [
      +          "no_optimization",
      +          "post_process",
      +          "set_viewport"
      +        ],
      +        "type": "string"
      +      },
      +      "refresh_interval_s": {
      +        "type": "integer"
      +      },
      +      "updated_at": {
      +        "format": "date-time",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "domain_id",
      +      "base_url"
      +    ]
      +  },
      +  {
      +    "description": "An Open Graph configuration that renders a template using extracted page metadata.",
      +    "properties": {
      +      "additional_header_origins": {
      +        "description": "Additional exact HTTP or HTTPS origins allowed to receive custom headers, in the format scheme://host[:port] without a path.",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "base_url": {
      +        "type": "string"
      +      },
      +      "config_type": {
      +        "const": "templated"
      +      },
      +      "created_at": {
      +        "format": "date-time",
      +        "type": "string"
      +      },
      +      "description": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "domain_id": {
      +        "description": "Domain identifier used in this configuration's Open Graph image URLs.",
      +        "type": "string"
      +      },
      +      "enabled": {
      +        "description": "Whether the configuration is enabled to serve Open Graph images.",
      +        "type": "boolean"
      +      },
      +      "headers": {
      +        "additionalProperties": {
      +          "type": "string"
      +        },
      +        "description": "Custom HTTP headers sent on top-level page navigations to the source website's origin and any additional_header_origins.",
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      "id": {
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "optimization_mode": {
      +        "description": "How images are sized for different social platforms.",
      +        "enum": [
      +          "no_optimization",
      +          "post_process",
      +          "set_viewport"
      +        ],
      +        "type": "string"
      +      },
      +      "refresh_interval_s": {
      +        "type": "integer"
      +      },
      +      "template_id": {
      +        "description": "ID of the template used to render images.",
      +        "type": "string"
      +      },
      +      "template_values_mapping": {
      +        "description": "Mappings from page metadata to template fields. Each mapping uses either a meta_key or a fallback.",
      +        "items": {
      +          "description": "Maps page metadata to a template field. Supply exactly one of meta_key or fallback.",
      +          "properties": {
      +            "fallback": {
      +              "description": "Use the page's available title or description metadata. Supply this or meta_key, not both.",
      +              "enum": [
      +                "titles",
      +                "descriptions",
      +                null
      +              ],
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "meta_key": {
      +              "description": "Meta tag name or property, such as og:title or twitter:description. Supply this or fallback, not both.",
      +              "maxLength": 136,
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "template_key": {
      +              "description": "Template field path to populate, up to 128 characters.",
      +              "maxLength": 128,
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "template_key"
      +          ],
      +          "type": "object"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "template_version": {
      +        "description": "Template version used to render images. Null means the latest version is used.",
      +        "type": [
      +          "integer",
      +          "null"
      +        ]
      +      },
      +      "updated_at": {
      +        "format": "date-time",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "template_id",
      +      "id",
      +      "domain_id",
      +      "base_url"
      +    ]
      +  }
      +]
  2. Changed5 schema fields changed
    • changedInput schema / properties / content / anyOf
      Previous value: -[
      -  {
      -    "description": "Creates or updates an Open Graph configuration that renders page HTML/CSS.",
      -    "properties": {
      -      "base_url": {
      -        "description": "HTTPS origin of the source website, such as https://example.com. Do not include a path, query string, fragment, or credentials.",
      -        "maxLength": 2048,
      -        "type": "string"
      -      },
      -      "config_type": {
      -        "const": "html_css"
      -      },
      -      "default_options": {
      -        "description": "Default image rendering options for pages served by this configuration. Any extracted values will override these defaults.",
      -        "properties": {
      -          "additional_header_origins": {
      -            "description": "Additional exact HTTP or HTTPS origins allowed to receive custom headers. Supports up to 20 unique origins of up to 512 UTF-8 bytes each. Origins must use the format scheme://host[:port] without a path; duplicates are ignored. For GET and form-encoded requests, repeat this parameter for each origin.",
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": [
      -              "array",
      -              "null"
      -            ]
      -          },
      -          "block_consent_banners": {
      -            "description": "Attempt to block cookie/consent banners from displaying.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "color_scheme": {
      -            "description": "Sets Chrome's preferred color scheme. Valid values: light or dark.",
      -            "enum": [
      -              "light",
      -              "dark",
      -              null
      -            ],
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "css": {
      -            "description": "CSS injected into the loaded page to override its styles.",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "device_scale": {
      -            "description": "Adjusts the pixel ratio used for the screenshot. Minimum: 0.1. Maximum: 3. HTML and template renders default to 2; URL renders default to 1.",
      -            "maximum": 3,
      -            "minimum": 0.1,
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          },
      -          "disable_twemoji": {
      -            "description": "Disables the Twemoji fallback and renders emoji using native fonts instead.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "headers": {
      -            "additionalProperties": {
      -              "type": "string"
      -            },
      -            "description": "HTTP headers to include on top-level page navigations to the requested URL's origin and any additional_header_origins. Supports up to 20 headers with names up to 512 ASCII characters and values up to 8192 UTF-8 bytes. For GET and form-encoded requests, repeat this parameter using the format `headers=name:value`.",
      -            "type": [
      -              "object",
      -              "null"
      -            ]
      -          },
      -          "identify_as_hcti": {
      -            "description": "Identify the top-level page navigation as an HCTI screenshot request using the X-HCTI-SCREENSHOT header.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "include_headers_on_subrequests": {
      -            "description": "Include custom headers on subrequests to the requested URL's origin and any additional_header_origins. Defaults to false. Requires at least one header.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "max_wait_ms": {
      -            "description": "Sets a limit on how long to wait before taking the screenshot when the page continues loading irrelevant content. Minimum: 500. Maximum: 10000 and subject to the account plan limit.",
      -            "maximum": 10000,
      -            "minimum": 500,
      -            "type": [
      -              "integer",
      -              "null"
      -            ]
      -          },
      -          "media_type": {
      -            "description": "Sets the CSS media type used while rendering the page. Valid values: print or screen.",
      -            "enum": [
      -              "print",
      -              "screen",
      -              null
      -            ],
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "ms_delay": {
      -            "description": "Adds extra time in milliseconds before taking the screenshot so JavaScript can execute. Minimum: 0. Maximum: 10000.",
      -            "maximum": 10000,
      -            "minimum": 0,
      -            "type": [
      -              "integer",
      -              "null"
      -            ]
      -          },
      -          "proxy_id": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "render_when_ready": {
      -            "description": "Waits until the page signals that the screenshot is ready. The image fails if the readiness signal is never sent.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "selector": {
      -            "description": "A CSS selector for an element in the HTML. We’ll crop the image to this specific element.",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "storage_destination_id": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "timezone": {
      -            "description": "Sets the IANA timezone used by Chrome while rendering. Must be a recognized IANA timezone identifier.",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "transparent_background": {
      -            "description": "Specifies whether the image is rendered with a transparent background.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "viewport_height": {
      -            "description": "Sets the height of Chrome's viewport and disables automatic cropping. Minimum: 1. Maximum: 6000. Both viewport dimensions must be supplied together.",
      -            "maximum": 6000,
      -            "minimum": 1,
      -            "type": [
      -              "integer",
      -              "null"
      -            ]
      -          },
      -          "viewport_landscape": {
      -            "description": "Specifies whether the emulated viewport is in landscape orientation.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "viewport_mobile": {
      -            "description": "Specifies whether the page uses mobile viewport behavior, including its viewport meta tag.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "viewport_touch": {
      -            "description": "Specifies whether the emulated viewport supports touch events.",
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          },
      -          "viewport_width": {
      -            "description": "Sets the width of Chrome's viewport and disables automatic cropping. Minimum: 1. Maximum: 6000. Both viewport dimensions must be supplied together.",
      -            "maximum": 6000,
      -            "minimum": 1,
      -            "type": [
      -              "integer",
      -              "null"
      -            ]
      -          }
      -        },
      -        "type": [
      -          "object",
      -          "null"
      -        ]
      -      },
      -      "description": {
      -        "description": "Optional description of the configuration, up to 1023 characters.",
      -        "maxLength": 1023,
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "disabled": {
      -        "description": "Whether this configuration is disabled from serving Open Graph images. Defaults to false.",
      -        "type": "boolean"
      -      },
      -      "extract_values": {
      -        "description": "Whether to extract image options from page metadata. When disabled, only the configured defaults are used.",
      -        "type": "boolean"
      -      },
      -      "name": {
      -        "description": "Display name for the configuration, up to 255 characters.",
      -        "maxLength": 255,
      -        "type": "string"
      -      },
      -      "optimization_mode": {
      -        "description": "How images are sized for social platforms: keep their original dimensions, adapt them after rendering, or set the viewport before rendering. Defaults to post_process.",
      -        "enum": [
      -          "no_optimization",
      -          "post_process",
      -          "set_viewport"
      -        ],
      -        "type": "string"
      -      },
      -      "refresh_interval_s": {
      -        "description": "Interval in seconds before cached images are eligible for refresh. The minimum depends on your plan; the maximum is one year.",
      -        "maximum": 31536000,
      -        "minimum": 1800,
      -        "type": "integer"
      -      }
      -    },
      -    "required": [
      -      "name",
      -      "base_url"
      -    ]
      -  },
      -  {
      -    "description": "Creates or updates an Open Graph configuration that renders a template using values extracted from page metadata.",
      -    "properties": {
      -      "additional_header_origins": {
      -        "description": "Additional exact HTTP or HTTPS origins allowed to receive custom headers. Supports up to 20 unique origins of up to 512 UTF-8 bytes each. Origins must use the format scheme://host[:port] without a path; duplicates are ignored.",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "base_url": {
      -        "description": "HTTPS origin of the source website, such as https://example.com. Do not include a path, query string, fragment, or credentials.",
      -        "maxLength": 2048,
      -        "type": "string"
      -      },
      -      "config_type": {
      -        "const": "templated"
      -      },
      -      "description": {
      -        "description": "Optional description of the configuration, up to 1023 characters.",
      -        "maxLength": 1023,
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "disabled": {
      -        "description": "Whether this configuration is disabled from serving Open Graph images. Defaults to false.",
      -        "type": "boolean"
      -      },
      -      "headers": {
      -        "additionalProperties": {
      -          "type": "string"
      -        },
      -        "description": "HTTP headers to include on top-level page navigations to the requested URL's origin and any additional_header_origins. Supports up to 20 headers with names up to 512 ASCII characters and values up to 8192 UTF-8 bytes.",
      -        "type": [
      -          "object",
      -          "null"
      -        ]
      -      },
      -      "name": {
      -        "description": "Display name for the configuration, up to 255 characters.",
      -        "maxLength": 255,
      -        "type": "string"
      -      },
      -      "optimization_mode": {
      -        "description": "How images are sized for social platforms: keep their original dimensions, adapt them after rendering, or set the viewport before rendering. Defaults to post_process.",
      -        "enum": [
      -          "no_optimization",
      -          "post_process",
      -          "set_viewport"
      -        ],
      -        "type": "string"
      -      },
      -      "refresh_interval_s": {
      -        "description": "Interval in seconds before cached images are eligible for refresh. The minimum depends on your plan; the maximum is one year.",
      -        "maximum": 31536000,
      -        "minimum": 1800,
      -        "type": "integer"
      -      },
      -      "template_id": {
      -        "description": "ID of the template used to render images.",
      -        "type": "string"
      -      },
      -      "template_values_mapping": {
      -        "description": "Up to 32 mappings from page metadata to template fields. Each mapping supplies either a meta_key or a fallback.",
      -        "items": {
      -          "description": "Maps page metadata to a template field. Supply exactly one of meta_key or fallback.",
      -          "properties": {
      -            "fallback": {
      -              "description": "Use the page's available title or description metadata. Supply this or meta_key, not both.",
      -              "enum": [
      -                "titles",
      -                "descriptions",
      -                null
      -              ],
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "meta_key": {
      -              "description": "Meta tag name or property, such as og:title or twitter:description. Supply this or fallback, not both.",
      -              "maxLength": 136,
      -              "type": [
      -                "string",
      -                "null"
      -              ]
      -            },
      -            "template_key": {
      -              "description": "Template field path to populate, up to 128 characters.",
      -              "maxLength": 128,
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "template_key"
      -          ],
      -          "type": "object"
      -        },
      -        "maxItems": 32,
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "template_version": {
      -        "description": "Template version to use. Omit or set to null to use the latest version.",
      -        "type": [
      -          "integer",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "template_id",
      -      "name",
      -      "base_url"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "description": "Settings for an Open Graph configuration that renders page HTML/CSS.",
      +    "properties": {
      +      "base_url": {
      +        "description": "HTTPS origin of the source website, such as https://example.com. Do not include a path, query string, fragment, or credentials.",
      +        "maxLength": 2048,
      +        "type": "string"
      +      },
      +      "config_type": {
      +        "const": "html_css"
      +      },
      +      "default_options": {
      +        "description": "Default image rendering options for pages served by this configuration. Any extracted values will override these defaults.",
      +        "properties": {
      +          "additional_header_origins": {
      +            "description": "Additional exact HTTP or HTTPS origins allowed to receive custom headers. Supports up to 20 unique origins of up to 512 UTF-8 bytes each. Origins must use the format scheme://host[:port] without a path; duplicates are ignored. For GET and form-encoded requests, repeat this parameter for each origin.",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": [
      +              "array",
      +              "null"
      +            ]
      +          },
      +          "block_consent_banners": {
      +            "description": "Attempt to block cookie/consent banners from displaying.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "color_scheme": {
      +            "description": "Sets Chrome's preferred color scheme. Valid values: light or dark.",
      +            "enum": [
      +              "light",
      +              "dark",
      +              null
      +            ],
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "css": {
      +            "description": "CSS injected into the loaded page to override its styles.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "device_scale": {
      +            "description": "Adjusts the pixel ratio used for the screenshot. Minimum: 0.1. Maximum: 3. HTML and template renders default to 2; URL renders default to 1.",
      +            "maximum": 3,
      +            "minimum": 0.1,
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "disable_twemoji": {
      +            "description": "Disables the Twemoji fallback and renders emoji using native fonts instead.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "headers": {
      +            "additionalProperties": {
      +              "type": "string"
      +            },
      +            "description": "HTTP headers to include on top-level page navigations to the requested URL's origin and any additional_header_origins. Supports up to 20 headers with names up to 512 ASCII characters and values up to 8192 UTF-8 bytes. For GET and form-encoded requests, repeat this parameter using the format `headers=name:value`.",
      +            "type": [
      +              "object",
      +              "null"
      +            ]
      +          },
      +          "identify_as_hcti": {
      +            "description": "Identify the top-level page navigation as an HCTI screenshot request using the X-HCTI-SCREENSHOT header.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "include_headers_on_subrequests": {
      +            "description": "Include custom headers on subrequests to the requested URL's origin and any additional_header_origins. Defaults to false. Requires at least one header.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "max_wait_ms": {
      +            "description": "Sets a limit on how long to wait before taking the screenshot when the page continues loading irrelevant content. Minimum: 500. Maximum: 10000 and subject to the account plan limit.",
      +            "maximum": 10000,
      +            "minimum": 500,
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "media_type": {
      +            "description": "Sets the CSS media type used while rendering the page. Valid values: print or screen.",
      +            "enum": [
      +              "print",
      +              "screen",
      +              null
      +            ],
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "ms_delay": {
      +            "description": "Adds extra time in milliseconds before taking the screenshot so JavaScript can execute. Minimum: 0. Maximum: 10000.",
      +            "maximum": 10000,
      +            "minimum": 0,
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "proxy_id": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "render_when_ready": {
      +            "description": "Waits until the page signals that the screenshot is ready. The image fails if the readiness signal is never sent.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "selector": {
      +            "description": "A CSS selector for an element in the HTML. We’ll crop the image to this specific element.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "storage_destination_id": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "timezone": {
      +            "description": "Sets the IANA timezone used by Chrome while rendering. Must be a recognized IANA timezone identifier.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "transparent_background": {
      +            "description": "Specifies whether the image is rendered with a transparent background.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "viewport_height": {
      +            "description": "Sets the height of Chrome's viewport and disables automatic cropping. Minimum: 1. Maximum: 6000. Both viewport dimensions must be supplied together.",
      +            "maximum": 6000,
      +            "minimum": 1,
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "viewport_landscape": {
      +            "description": "Specifies whether the emulated viewport is in landscape orientation.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "viewport_mobile": {
      +            "description": "Specifies whether the page uses mobile viewport behavior, including its viewport meta tag.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "viewport_touch": {
      +            "description": "Specifies whether the emulated viewport supports touch events.",
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "viewport_width": {
      +            "description": "Sets the width of Chrome's viewport and disables automatic cropping. Minimum: 1. Maximum: 6000. Both viewport dimensions must be supplied together.",
      +            "maximum": 6000,
      +            "minimum": 1,
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          }
      +        },
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      "description": {
      +        "description": "Optional description of the configuration, up to 1023 characters.",
      +        "maxLength": 1023,
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "disabled": {
      +        "description": "Whether this configuration is disabled from serving Open Graph images. Defaults to false.",
      +        "type": "boolean"
      +      },
      +      "extract_values": {
      +        "description": "Whether to extract image options from page metadata. When disabled, only the configured defaults are used.",
      +        "type": "boolean"
      +      },
      +      "name": {
      +        "description": "Display name for the configuration, up to 255 characters.",
      +        "maxLength": 255,
      +        "type": "string"
      +      },
      +      "optimization_mode": {
      +        "description": "How images are sized for social platforms: keep their original dimensions, adapt them after rendering, or set the viewport before rendering. Defaults to post_process.",
      +        "enum": [
      +          "no_optimization",
      +          "post_process",
      +          "set_viewport"
      +        ],
      +        "type": "string"
      +      },
      +      "refresh_interval_s": {
      +        "description": "Interval in seconds before cached images are eligible for refresh. The minimum depends on your plan; the maximum is one year.",
      +        "maximum": 31536000,
      +        "minimum": 1800,
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "name",
      +      "base_url"
      +    ]
      +  },
      +  {
      +    "description": "Settings for an Open Graph configuration that renders a template using values extracted from page metadata.",
      +    "properties": {
      +      "additional_header_origins": {
      +        "description": "Additional exact HTTP or HTTPS origins allowed to receive custom headers. Supports up to 20 unique origins of up to 512 UTF-8 bytes each. Origins must use the format scheme://host[:port] without a path; duplicates are ignored.",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "base_url": {
      +        "description": "HTTPS origin of the source website, such as https://example.com. Do not include a path, query string, fragment, or credentials.",
      +        "maxLength": 2048,
      +        "type": "string"
      +      },
      +      "config_type": {
      +        "const": "templated"
      +      },
      +      "description": {
      +        "description": "Optional description of the configuration, up to 1023 characters.",
      +        "maxLength": 1023,
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "disabled": {
      +        "description": "Whether this configuration is disabled from serving Open Graph images. Defaults to false.",
      +        "type": "boolean"
      +      },
      +      "headers": {
      +        "additionalProperties": {
      +          "type": "string"
      +        },
      +        "description": "HTTP headers to include on top-level page navigations to the requested URL's origin and any additional_header_origins. Supports up to 20 headers with names up to 512 ASCII characters and values up to 8192 UTF-8 bytes.",
      +        "type": [
      +          "object",
      +          "null"
      +        ]
      +      },
      +      "name": {
      +        "description": "Display name for the configuration, up to 255 characters.",
      +        "maxLength": 255,
      +        "type": "string"
      +      },
      +      "optimization_mode": {
      +        "description": "How images are sized for social platforms: keep their original dimensions, adapt them after rendering, or set the viewport before rendering. Defaults to post_process.",
      +        "enum": [
      +          "no_optimization",
      +          "post_process",
      +          "set_viewport"
      +        ],
      +        "type": "string"
      +      },
      +      "refresh_interval_s": {
      +        "description": "Interval in seconds before cached images are eligible for refresh. The minimum depends on your plan; the maximum is one year.",
      +        "maximum": 31536000,
      +        "minimum": 1800,
      +        "type": "integer"
      +      },
      +      "template_id": {
      +        "description": "ID of the template used to render images.",
      +        "type": "string"
      +      },
      +      "template_values_mapping": {
      +        "description": "Up to 32 mappings from page metadata to template fields. Each mapping supplies either a meta_key or a fallback.",
      +        "items": {
      +          "description": "Maps page metadata to a template field. Supply exactly one of meta_key or fallback.",
      +          "properties": {
      +            "fallback": {
      +              "description": "Use the page's available title or description metadata. Supply this or meta_key, not both.",
      +              "enum": [
      +                "titles",
      +                "descriptions",
      +                null
      +              ],
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "meta_key": {
      +              "description": "Meta tag name or property, such as og:title or twitter:description. Supply this or fallback, not both.",
      +              "maxLength": 136,
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "template_key": {
      +              "description": "Template field path to populate, up to 128 characters.",
      +              "maxLength": 128,
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "template_key"
      +          ],
      +          "type": "object"
      +        },
      +        "maxItems": 32,
      +        "type": [
      +          "array",
      +          "null"
      +        ]
      +      },
      +      "template_version": {
      +        "description": "Template version to use. Omit or set to null to use the latest version.",
      +        "type": [
      +          "integer",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "template_id",
      +      "name",
      +      "base_url"
      +    ]
      +  }
      +]
    • changedInput schema / properties / content / description
      Previous value: -"Complete OG configuration. Set config_type to html_css or templated and supply the fields for that type."New value: +"Configuration name, HTTPS base_url origin, and config_type. For html_css, supply default_options as needed and enable extract_values to let page metadata override them. For templated, supply an existing template_id and any template_values_mapping. Set disabled: true to save it without enabling image serving."
    • addedOutput schema / properties / error / description
      Added value: +"Error details when the operation failed; null on success."
    • changedOutput schema / properties / item / description
      Previous value: -"An Open Graph image configuration."New value: +"Operation result. Check success before using this value."
    • addedOutput schema / properties / success / description
      Added value: +"Whether the operation succeeded. If false, inspect error before retrying."
  3. First observed

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only convey that this is a mutating, non-idempotent operation. The description adds useful operational context beyond that: the plan requirement and the fact that the saved configuration is returned with id and domain_id. It does not describe every side effect, but the annotations plus description cover the important behavioral expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences carry the core purpose, mode selection, return info, prerequisite, and sibling alternatives with no filler. The main action is front-loaded and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with this much schema complexity, the description covers everything an agent needs to choose and invoke it: what it creates, when to use each config_type, the plan prerequisite, return identifiers, and related tools. The exhaustive input and output schemas cover the remaining constraints, so nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100% and the content property already documents both config_type branches in detail. The description rephrases the html_css vs. templated choice in plain language, which is helpful, but it adds little meaning beyond what the schema already provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Saves a new Open Graph (social preview) image configuration'. It also names the two config_type modes and explicitly distinguishes itself from create_url_image and update_og_config, so an agent can tell it apart from siblings without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit selection criteria: use config_type html_css for source pages with default rendering options, or templated for existing templates with metadata extraction. It also names alternatives for nearby tasks, such as create_url_image for single-page screenshots and update_og_config for modifications, and notes the plan requirement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources