openapi: 3.0.3
info:
  title: ScreenshotOne - A screenshot and HTML rendering API
  description: |-
    Take stunning site screenshots or render HTML via ScreenshotOne API.

    Render websites and HTML as images. Block cookie banners and ads. 
    The API uses the latest Google Chrome for rendering 
    and Google Cloud Platform for performance and scalability.
  termsOfService: https://screenshotone.com/terms-of-service/
  contact:
    email: support@screenshotone.com
  license:
    name: Commercial Proprietary License
  version: 1.0.0
externalDocs:
  description: Official documentation for ScreenshotOne API
  url: https://screenshotone.com/docs/getting-started/
servers:
  - url: https://api.screenshotone.com/
paths:
  /take:
    get:
      summary: Generate a screenshot or PDF of a website, render HTML, or Markdown
      description: >
        Generate a screenshot or PDF by specifying a website URL, render HTML,
        or Markdown.        
      operationId: getScreenshot
      parameters:
        - name: url
          schema: &a1
            description: The URL of the site to render. One of `url`, `html` or `markdown`
              is required.
            type: string
            format: uri
          in: query
          description: The URL of the site to render. One of `url`, `html` or `markdown`
            is required.
        - name: html
          schema: &a2
            description: The HTML to render. One of `url`, `html` or `markdown` is required.
            type: string
          in: query
          description: The HTML to render. One of `url`, `html` or `markdown` is required.
        - name: markdown
          schema: &a3
            description: The Markdown to render. One of `url`, `html` or `markdown` is
              required.
            type: string
          in: query
          description: The Markdown to render. One of `url`, `html` or `markdown` is
            required.
        - name: signature
          schema:
            description: "The signature of a signed request: a hash of all the request
              options made with the signing key. It is not the signing key
              itself."
            type: string
          in: query
          description: "The signature of a signed request: a hash of all the request
            options made with the signing key. It is not the signing key
            itself."
        - name: response_type
          schema: &a4
            description: "What to return: `by_format` returns the result in the requested
              format, `empty` returns only the status or the error, and `json`
              returns a JSON object, which has data only for the options that
              produce it, like caching, storage or metadata."
            type: string
            enum:
              - by_format
              - empty
              - json
          in: query
          description: "What to return: `by_format` returns the result in the requested
            format, `empty` returns only the status or the error, and `json`
            returns a JSON object, which has data only for the options that
            produce it, like caching, storage or metadata."
        - name: attachment_name
          schema: &a5
            description: The name of the file to download the result as. The extension is
              added from the format.
            type: string
          in: query
          description: The name of the file to download the result as. The extension is
            added from the format.
        - name: dark_mode
          schema: &a6
            description: Set to `true` to request the dark mode of the site and to `false`
              to request the light one, if the site supports them. Not set by
              default.
            type: boolean
          in: query
          description: Set to `true` to request the dark mode of the site and to `false`
            to request the light one, if the site supports them. Not set by
            default.
        - name: reduced_motion
          schema: &a7
            description: "Emulates the `prefers-reduced-motion: reduce` preference. The site
              decides how to respond to it."
            type: boolean
          in: query
          description: "Emulates the `prefers-reduced-motion: reduce` preference. The site
            decides how to respond to it."
        - name: reduce_motion
          schema: &a8
            description: "Actively reduces motion on the page before capturing it:
              animations, carousels and background videos."
            type: boolean
          in: query
          description: "Actively reduces motion on the page before capturing it:
            animations, carousels and background videos."
        - name: media_type
          schema: &a9
            description: "The media type to emulate: `print` renders the page as for
              printers, `screen` as for screens."
            type: string
            enum:
              - screen
              - print
          in: query
          description: "The media type to emulate: `print` renders the page as for
            printers, `screen` as for screens."
        - name: scripts
          schema: &a10
            description: JavaScript to inject into the page and execute before capturing.
            type: string
          in: query
          description: JavaScript to inject into the page and execute before capturing.
        - name: scripts_wait_until
          schema: &a11
            description: The events to wait for after the injected scripts were executed.
              Use it when a script navigates to another page.
            type: array
            items:
              type: string
              enum:
                - load
                - domcontentloaded
                - networkidle0
                - networkidle2
          in: query
          description: The events to wait for after the injected scripts were executed.
            Use it when a script navigates to another page.
        - name: styles
          schema: &a12
            description: CSS to inject into the page.
            type: string
          in: query
          description: CSS to inject into the page.
        - name: hide_selectors
          schema: &a13
            description: "Selectors of the elements to hide before capturing. All elements
              matching each selector are hidden with `display: none`."
            type: array
            items:
              type: string
          in: query
          description: "Selectors of the elements to hide before capturing. All elements
            matching each selector are hidden with `display: none`."
        - name: hover
          schema: &a14
            description: A selector of the element to hover over before capturing.
            type: string
          in: query
          description: A selector of the element to hover over before capturing.
        - name: error_on_hover_selector_not_found
          schema: &a15
            description: Whether to return an error when the element to hover over is not
              found.
            type: boolean
          in: query
          description: Whether to return an error when the element to hover over is not
            found.
        - name: click
          schema: &a16
            description: A selector of the element to click before capturing.
            type: string
          in: query
          description: A selector of the element to click before capturing.
        - name: error_on_click_selector_not_found
          schema: &a17
            description: Whether to return an error when the element to click is not found.
            type: boolean
          in: query
          description: Whether to return an error when the element to click is not found.
        - name: include_shadow_dom
          schema: &a18
            description: Includes the open and closed shadow DOM roots when the content of
              the page is extracted, for `format=html` or
              `metadata_content=true`.
            type: boolean
          in: query
          description: Includes the open and closed shadow DOM roots when the content of
            the page is extracted, for `format=html` or `metadata_content=true`.
        - name: bypass_csp
          schema: &a19
            description: Bypasses the Content Security Policy of the site. It may be needed
              for injected scripts to work.
            type: boolean
          in: query
          description: Bypasses the Content Security Policy of the site. It may be needed
            for injected scripts to work.
        - name: viewport_device
          schema: &a20
            description: A device to emulate instead of setting the viewport options one by
              one. It sets the viewport, the scale factor and the user agent.
              The list of devices is returned by the `/devices` method.
            type: string
            enum:
              - blackberry_playbook
              - blackberry_playbook_landscape
              - blackberry_z30
              - blackberry_z30_landscape
              - galaxy_note_3
              - galaxy_note_3_landscape
              - galaxy_note_ii
              - galaxy_note_ii_landscape
              - galaxy_s_iii
              - galaxy_s_iii_landscape
              - galaxy_s5
              - galaxy_s5_landscape
              - galaxy_s8
              - galaxy_s8_landscape
              - galaxy_s9+
              - galaxy_s9+_landscape
              - galaxy_tab_s4
              - galaxy_tab_s4_landscape
              - ipad
              - ipad_landscape
              - ipad_gen_6
              - ipad_gen_6_landscape
              - ipad_gen_7
              - ipad_gen_7_landscape
              - ipad_mini
              - ipad_mini_landscape
              - ipad_pro
              - ipad_pro_landscape
              - ipad_pro_11
              - ipad_pro_11_landscape
              - iphone_4
              - iphone_4_landscape
              - iphone_5
              - iphone_5_landscape
              - iphone_6
              - iphone_6_landscape
              - iphone_6_plus
              - iphone_6_plus_landscape
              - iphone_7
              - iphone_7_landscape
              - iphone_7_plus
              - iphone_7_plus_landscape
              - iphone_8
              - iphone_8_landscape
              - iphone_8_plus
              - iphone_8_plus_landscape
              - iphone_se
              - iphone_se_landscape
              - iphone_x
              - iphone_x_landscape
              - iphone_xr
              - iphone_xr_landscape
              - iphone_11
              - iphone_11_landscape
              - iphone_11_pro
              - iphone_11_pro_landscape
              - iphone_11_pro_max
              - iphone_11_pro_max_landscape
              - iphone_12
              - iphone_12_landscape
              - iphone_12_pro
              - iphone_12_pro_landscape
              - iphone_12_pro_max
              - iphone_12_pro_max_landscape
              - iphone_12_mini
              - iphone_12_mini_landscape
              - iphone_13
              - iphone_13_landscape
              - iphone_13_pro
              - iphone_13_pro_landscape
              - iphone_13_pro_max
              - iphone_13_pro_max_landscape
              - iphone_13_mini
              - iphone_13_mini_landscape
              - iphone_14
              - iphone_14_landscape
              - iphone_14_plus
              - iphone_14_plus_landscape
              - iphone_14_pro
              - iphone_14_pro_landscape
              - iphone_14_pro_max
              - iphone_14_pro_max_landscape
              - iphone_15
              - iphone_15_landscape
              - iphone_15_plus
              - iphone_15_plus_landscape
              - iphone_15_pro
              - iphone_15_pro_landscape
              - iphone_15_pro_max
              - iphone_15_pro_max_landscape
              - iphone_16
              - iphone_16_landscape
              - iphone_16_plus
              - iphone_16_plus_landscape
              - jiophone_2
              - jiophone_2_landscape
              - kindle_fire_hdx
              - kindle_fire_hdx_landscape
              - lg_optimus_l70
              - lg_optimus_l70_landscape
              - microsoft_lumia_550
              - microsoft_lumia_950
              - microsoft_lumia_950_landscape
              - nexus_10
              - nexus_10_landscape
              - nexus_4
              - nexus_4_landscape
              - nexus_5
              - nexus_5_landscape
              - nexus_5x
              - nexus_5x_landscape
              - nexus_6
              - nexus_6_landscape
              - nexus_6p
              - nexus_6p_landscape
              - nexus_7
              - nexus_7_landscape
              - nokia_lumia_520
              - nokia_lumia_520_landscape
              - nokia_n9
              - nokia_n9_landscape
              - pixel_2
              - pixel_2_landscape
              - pixel_2_xl
              - pixel_2_xl_landscape
              - pixel_3
              - pixel_3_landscape
              - pixel_4
              - pixel_4_landscape
              - pixel_4a_5g
              - pixel_4a_5g_landscape
              - pixel_5
              - pixel_5_landscape
              - moto_g4
              - moto_g4_landscape
          in: query
          description: A device to emulate instead of setting the viewport options one by
            one. It sets the viewport, the scale factor and the user agent. The
            list of devices is returned by the `/devices` method.
        - name: viewport_width
          schema: &a21
            description: The width of the browser viewport in pixels. Overrides the value
              set by `viewport_device`.
            type: integer
          in: query
          description: The width of the browser viewport in pixels. Overrides the value
            set by `viewport_device`.
        - name: viewport_height
          schema: &a22
            description: The height of the browser viewport in pixels. Overrides the value
              set by `viewport_device`.
            type: integer
          in: query
          description: The height of the browser viewport in pixels. Overrides the value
            set by `viewport_device`.
        - name: device_scale_factor
          schema: &a23
            description: The device scale factor (device pixel ratio), from 1 to 5,
              fractions are allowed. Overrides the value set by
              `viewport_device`.
            type: number
            minimum: 1
            maximum: 5
          in: query
          description: The device scale factor (device pixel ratio), from 1 to 5,
            fractions are allowed. Overrides the value set by `viewport_device`.
        - name: viewport_mobile
          schema: &a24
            description: Whether the meta viewport tag is taken into account. Overrides the
              value set by `viewport_device`.
            type: boolean
          in: query
          description: Whether the meta viewport tag is taken into account. Overrides the
            value set by `viewport_device`.
        - name: viewport_has_touch
          schema: &a25
            description: Whether the viewport supports touch events. Overrides the value set
              by `viewport_device`.
            type: boolean
          in: query
          description: Whether the viewport supports touch events. Overrides the value set
            by `viewport_device`.
        - name: viewport_landscape
          schema: &a26
            description: Whether the viewport is in landscape mode. Overrides the value set
              by `viewport_device`.
            type: boolean
          in: query
          description: Whether the viewport is in landscape mode. Overrides the value set
            by `viewport_device`.
        - name: geolocation_latitude
          schema: &a27
            description: The latitude of the geolocation to emulate. Latitude and longitude
              must be set together.
            type: number
            minimum: -90
            maximum: 90
          in: query
          description: The latitude of the geolocation to emulate. Latitude and longitude
            must be set together.
        - name: geolocation_longitude
          schema: &a28
            description: The longitude of the geolocation to emulate. Latitude and longitude
              must be set together.
            type: number
            minimum: -180
            maximum: 180
          in: query
          description: The longitude of the geolocation to emulate. Latitude and longitude
            must be set together.
        - name: geolocation_accuracy
          schema: &a29
            description: The accuracy of the emulated geolocation in meters.
            type: integer
            minimum: 1
          in: query
          description: The accuracy of the emulated geolocation in meters.
        - name: ip_country_code
          schema: &a30
            description: The country to render the site from, through the proxies provided
              by ScreenshotOne. It can't be used together with `proxy`.
            type: string
            enum:
              - us
              - gb
              - de
              - it
              - fr
              - cn
              - ca
              - es
              - jp
              - kr
              - in
              - au
              - br
              - mx
              - nz
              - pe
              - is
              - ie
          in: query
          description: The country to render the site from, through the proxies provided
            by ScreenshotOne. It can't be used together with `proxy`.
        - name: block_cookie_banners
          schema: &a31
            description: Blocks cookie banners, GDPR overlays and other privacy notices.
            type: boolean
          in: query
          description: Blocks cookie banners, GDPR overlays and other privacy notices.
        - name: block_banners_by_heuristics
          schema: &a32
            description: Blocks banners with a different set of techniques and heuristics.
              Try it when `block_cookie_banners` doesn't help; it may change how
              the page looks.
            type: boolean
          in: query
          description: Blocks banners with a different set of techniques and heuristics.
            Try it when `block_cookie_banners` doesn't help; it may change how
            the page looks.
        - name: block_chats
          schema: &a33
            description: Blocks chat widgets like Intercom, Crisp, Drift, Tawk and others.
            type: boolean
          in: query
          description: Blocks chat widgets like Intercom, Crisp, Drift, Tawk and others.
        - name: block_ads
          schema: &a34
            description: Blocks ads.
            type: boolean
          in: query
          description: Blocks ads.
        - name: block_trackers
          schema: &a35
            description: Blocks trackers, so the rendering is not counted as a visit by
              analytics.
            type: boolean
          in: query
          description: Blocks trackers, so the rendering is not counted as a visit by
            analytics.
        - name: block_requests
          schema: &a36
            description: Blocks the requests of the page that match a URL, a domain or a
              pattern like `*.example.com/*`. Up to 100 patterns.
            type: array
            maxItems: 100
            items:
              type: string
          in: query
          description: Blocks the requests of the page that match a URL, a domain or a
            pattern like `*.example.com/*`. Up to 100 patterns.
        - name: block_resources
          schema: &a37
            description: Blocks loading the resources of the page by type.
            type: array
            items:
              type: string
              enum:
                - document
                - stylesheet
                - image
                - media
                - font
                - script
                - texttrack
                - xhr
                - fetch
                - eventsource
                - websocket
                - manifest
                - other
          in: query
          description: Blocks loading the resources of the page by type.
        - name: cache
          schema: &a38
            description: Caches the result. A cached result is reused for the requests with
              the same options.
            type: boolean
          in: query
          description: Caches the result. A cached result is reused for the requests with
            the same options.
        - name: cache_ttl
          schema: &a39
            description: "How long a cached result is reused, in seconds: from 14400 (4
              hours, the default) to 2592000 (1 month). Requires `cache=true`."
            type: integer
            minimum: 14400
            maximum: 2592000
          in: query
          description: "How long a cached result is reused, in seconds: from 14400 (4
            hours, the default) to 2592000 (1 month). Requires `cache=true`."
        - name: cache_key
          schema: &a40
            description: An alphanumeric key to keep different cached versions of the result
              for the same options. Requires `cache=true`.
            type: string
            minLength: 1
            maxLength: 250
          in: query
          description: An alphanumeric key to keep different cached versions of the result
            for the same options. Requires `cache=true`.
        - name: user_agent
          schema: &a41
            description: The user agent of the browser. Changing it may break the stealth
              mode; it overrides the user agent set by `viewport_device`.
            type: string
          in: query
          description: The user agent of the browser. Changing it may break the stealth
            mode; it overrides the user agent set by `viewport_device`.
        - name: authorization
          schema: &a42
            description: The value of the `Authorization` header to send to the site, for
              pages protected by basic authentication or a token.
            type: string
          in: query
          description: The value of the `Authorization` header to send to the site, for
            pages protected by basic authentication or a token.
        - name: headers
          schema: &a43
            description: Extra HTTP headers to send to the site, each in the format
              `Header-Name:Header-Value`.
            type: array
            items:
              type: string
          in: query
          description: Extra HTTP headers to send to the site, each in the format
            `Header-Name:Header-Value`.
        - name: cookies
          schema: &a44
            description: Cookies to set for the site, each in the format `name=value;
              Domain=example.com; Secure; HttpOnly`.
            type: array
            items:
              type: string
          in: query
          description: Cookies to set for the site, each in the format `name=value;
            Domain=example.com; Secure; HttpOnly`.
        - name: proxy
          schema: &a45
            description: The URL of your own HTTP proxy to render the site through, like
              `http://user:password@host:port`. It can't be used together with
              `ip_country_code`.
            type: string
            format: uri
          in: query
          description: The URL of your own HTTP proxy to render the site through, like
            `http://user:password@host:port`. It can't be used together with
            `ip_country_code`.
        - name: proxy_bypass_hosts
          schema: &a46
            description: Hostname patterns of the requests to load directly and not through
              the proxy. Requires `proxy`.
            type: array
            items:
              type: string
          in: query
          description: Hostname patterns of the requests to load directly and not through
            the proxy. Requires `proxy`.
        - name: time_zone
          schema: &a47
            description: The time zone of the browser.
            type: string
            enum:
              - America/Belize
              - America/Cayman
              - America/Chicago
              - America/Costa_Rica
              - America/Denver
              - America/Edmonton
              - America/El_Salvador
              - America/Guatemala
              - America/Guayaquil
              - America/Hermosillo
              - America/Jamaica
              - America/Los_Angeles
              - America/Mexico_City
              - America/Nassau
              - America/New_York
              - America/Panama
              - America/Port-au-Prince
              - America/Santiago
              - America/Tegucigalpa
              - America/Tijuana
              - America/Toronto
              - America/Vancouver
              - America/Winnipeg
              - Asia/Kuala_Lumpur
              - Asia/Shanghai
              - Asia/Tashkent
              - Europe/Berlin
              - Europe/Kiev
              - Europe/Lisbon
              - Europe/London
              - Europe/Madrid
              - Pacific/Auckland
              - Pacific/Majuro
          in: query
          description: The time zone of the browser.
        - name: delay
          schema: &a48
            description: The time in seconds to wait before capturing, after the page is
              loaded. Up to 30, or up to 300 when `timeout` is greater than 300.
            type: integer
            minimum: 0
            maximum: 300
          in: query
          description: The time in seconds to wait before capturing, after the page is
            loaded. Up to 30, or up to 300 when `timeout` is greater than 300.
        - name: timeout
          schema: &a49
            description: The time in seconds after which the request is aborted. The default
              is 60 and the maximum is 90; both are 600 for async requests.
            type: integer
            minimum: 0
            maximum: 600
          in: query
          description: The time in seconds after which the request is aborted. The default
            is 60 and the maximum is 90; both are 600 for async requests.
        - name: navigation_timeout
          schema: &a50
            description: The time in seconds after which the request is aborted when the
              site doesn't respond.
            type: integer
            minimum: 0
            maximum: 30
          in: query
          description: The time in seconds after which the request is aborted when the
            site doesn't respond.
        - name: wait_until
          schema: &a51
            description: "The events to wait for before capturing: `load`,
              `domcontentloaded`, `networkidle0` (no network connections for 500
              ms) or `networkidle2` (no more than two)."
            type: array
            items:
              type: string
              enum:
                - load
                - domcontentloaded
                - networkidle0
                - networkidle2
          in: query
          description: "The events to wait for before capturing: `load`,
            `domcontentloaded`, `networkidle0` (no network connections for 500
            ms) or `networkidle2` (no more than two)."
        - name: wait_for_selector
          schema: &a52
            description: A selector of the element to wait for before capturing. The element
              must appear in the DOM, but may be invisible.
            type: string
          in: query
          description: A selector of the element to wait for before capturing. The element
            must appear in the DOM, but may be invisible.
        - name: wait_for_selector_algorithm
          schema: &a53
            description: "With several selectors in `wait_for_selector`: `at_least_one`
              waits until at least one of them is matched, `at_least_by_count`
              waits until as many elements are matched as there are selectors,
              not necessarily one for each selector."
            type: string
            enum:
              - at_least_one
              - at_least_by_count
          in: query
          description: "With several selectors in `wait_for_selector`: `at_least_one`
            waits until at least one of them is matched, `at_least_by_count`
            waits until as many elements are matched as there are selectors, not
            necessarily one for each selector."
        - name: fail_if_content_contains
          schema: &a54
            description: Fails the request when the content of the page contains any of the
              given strings, case-insensitive.
            type: array
            items:
              type: string
          in: query
          description: Fails the request when the content of the page contains any of the
            given strings, case-insensitive.
        - name: fail_if_content_missing
          schema: &a55
            description: Fails the request when the content of the page misses any of the
              given strings, case-insensitive.
            type: array
            items:
              type: string
          in: query
          description: Fails the request when the content of the page misses any of the
            given strings, case-insensitive.
        - name: fail_if_request_failed
          schema: &a56
            description: Fails the request when a request of the page matching one of the
              given patterns fails or returns an error status. Up to 100
              patterns.
            type: array
            maxItems: 100
            items:
              type: string
          in: query
          description: Fails the request when a request of the page matching one of the
            given patterns fails or returns an error status. Up to 100 patterns.
        - name: ignore_host_errors
          schema: &a57
            description: Renders the page even when the site responds with a status outside
              of the 200-299 range. Without it, the `host_returned_error` error
              is returned.
            type: boolean
          in: query
          description: Renders the page even when the site responds with a status outside
            of the 200-299 range. Without it, the `host_returned_error` error is
            returned.
        - name: request_gpu_rendering
          schema: &a58
            description: "Asks to render with hardware (GPU) acceleration. It is a hint,
              available on the top-tier paid plans: rendering without GPU is
              used when the GPU servers are unavailable."
            type: boolean
          in: query
          description: "Asks to render with hardware (GPU) acceleration. It is a hint,
            available on the top-tier paid plans: rendering without GPU is used
            when the GPU servers are unavailable."
        - name: fail_if_gpu_rendering_fails
          schema: &a59
            description: Fails the request when GPU rendering fails, instead of falling back
              to rendering without GPU.
            type: boolean
          in: query
          description: Fails the request when GPU rendering fails, instead of falling back
            to rendering without GPU.
        - name: async
          schema: &a60
            description: "Executes the request asynchronously: the API returns an empty
              response immediately. Usually combined with `webhook_url` or the
              storage options. Caching is not available for async requests."
            type: boolean
          in: query
          description: "Executes the request asynchronously: the API returns an empty
            response immediately. Usually combined with `webhook_url` or the
            storage options. Caching is not available for async requests."
        - name: webhook_url
          schema: &a61
            description: A public HTTPS URL to send the result of the request to.
            type: string
            format: uri
          in: query
          description: A public HTTPS URL to send the result of the request to.
        - name: webhook_sign
          schema: &a62
            description: Whether to sign the body of the webhook request.
            type: boolean
          in: query
          description: Whether to sign the body of the webhook request.
        - name: webhook_errors
          schema: &a63
            description: Sends the details of a failed request to the webhook, too.
            type: boolean
          in: query
          description: Sends the details of a failed request to the webhook, too.
        - name: external_identifier
          schema: &a64
            description: An alphanumeric identifier of your own that is sent back in the
              `x-screenshotone-external-identifier` header of the webhook
              request.
            type: string
            minLength: 1
            maxLength: 64
          in: query
          description: An alphanumeric identifier of your own that is sent back in the
            `x-screenshotone-external-identifier` header of the webhook request.
        - name: store
          schema: &a65
            description: Uploads the result to the configured S3-compatible storage.
            type: boolean
          in: query
          description: Uploads the result to the configured S3-compatible storage.
        - name: storage_bucket
          schema: &a66
            description: The bucket to upload to. Overrides the one configured in the
              dashboard.
            type: string
          in: query
          description: The bucket to upload to. Overrides the one configured in the
            dashboard.
        - name: storage_path
          schema: &a67
            description: "The key of the file in the bucket, without an extension: it is
              added from the format. Required when `store=true`."
            type: string
          in: query
          description: "The key of the file in the bucket, without an extension: it is
            added from the format. Required when `store=true`."
        - name: storage_endpoint
          schema: &a68
            description: The endpoint of an S3-compatible storage, like Cloudflare R2. Leave
              it out for Amazon S3.
            type: string
            format: uri
          in: query
          description: The endpoint of an S3-compatible storage, like Cloudflare R2. Leave
            it out for Amazon S3.
        - name: storage_access_key_id
          schema: &a69
            description: The access key ID of the storage. Overrides the one configured in
              the dashboard.
            type: string
          in: query
          description: The access key ID of the storage. Overrides the one configured in
            the dashboard.
        - name: storage_secret_access_key
          schema: &a70
            description: The secret access key of the storage. Overrides the one configured
              in the dashboard.
            type: string
          in: query
          description: The secret access key of the storage. Overrides the one configured
            in the dashboard.
        - name: storage_acl
          schema: &a71
            description: "The ACL of the uploaded file: `public-read`, or not set."
            type: string
            enum:
              - public-read
              - ""
          in: query
          description: "The ACL of the uploaded file: `public-read`, or not set."
        - name: storage_class
          schema: &a72
            description: The storage class of the uploaded file.
            type: string
            enum:
              - standard
              - reduced_redundancy
              - standard_ia
              - onezone_ia
              - intelligent_tiering
              - glacier
              - deep_archive
              - outposts
              - glacier_ir
          in: query
          description: The storage class of the uploaded file.
        - name: storage_return_location
          schema: &a73
            description: "Returns the location of the uploaded file: in the
              `X-ScreenshotOne-Store-Location` header, or in the JSON response."
            type: boolean
          in: query
          description: "Returns the location of the uploaded file: in the
            `X-ScreenshotOne-Store-Location` header, or in the JSON response."
        - name: metadata_fonts
          schema: &a74
            description: Returns the fonts the page uses.
            type: boolean
          in: query
          description: Returns the fonts the page uses.
        - name: metadata_content
          schema: &a75
            description: "Returns the content of the page in addition to the result: a
              temporary URL of the stored content and when it expires, in the
              `X-ScreenshotOne-Content-URL` and
              `X-ScreenshotOne-Content-Expires` headers, or in the JSON
              response."
            type: boolean
          in: query
          description: "Returns the content of the page in addition to the result: a
            temporary URL of the stored content and when it expires, in the
            `X-ScreenshotOne-Content-URL` and `X-ScreenshotOne-Content-Expires`
            headers, or in the JSON response."
        - name: metadata_content_format
          schema: &a76
            description: "The format of the content returned by `metadata_content`: `html`
              or `markdown`."
            type: string
            enum:
              - html
              - markdown
          in: query
          description: "The format of the content returned by `metadata_content`: `html`
            or `markdown`."
        - name: metadata_page_title
          schema: &a77
            description: "Returns the title of the page: in the `x-screenshotone-page-title`
              header, or in the JSON response."
            type: boolean
          in: query
          description: "Returns the title of the page: in the `x-screenshotone-page-title`
            header, or in the JSON response."
        - name: metadata_open_graph
          schema: &a78
            description: "Returns the Open Graph metadata of the page: in the
              `x-screenshotone-open-graph` header, or in the JSON response."
            type: boolean
          in: query
          description: "Returns the Open Graph metadata of the page: in the
            `x-screenshotone-open-graph` header, or in the JSON response."
        - name: metadata_http_response_status_code
          schema: &a79
            description: Returns the HTTP status code the site responded with. Only for
              requests with `url`.
            type: boolean
          in: query
          description: Returns the HTTP status code the site responded with. Only for
            requests with `url`.
        - name: metadata_http_response_headers
          schema: &a80
            description: Returns the HTTP headers the site responded with. Only for requests
              with `url`.
            type: boolean
          in: query
          description: Returns the HTTP headers the site responded with. Only for requests
            with `url`.
        - name: metadata_icon
          schema: &a81
            description: Returns the icon (favicon) of the site.
            type: boolean
          in: query
          description: Returns the icon (favicon) of the site.
        - name: selector
          schema: &a82
            description: A selector of the element to capture instead of the page. Not
              allowed for PDF.
            type: string
          in: query
          description: A selector of the element to capture instead of the page. Not
            allowed for PDF.
        - name: selector_algorithm
          schema: &a83
            description: "How to capture the element by `selector`: `default` uses the
              browser tools to capture the element, `clip` gives better results
              when the element is not fully visible or the page must be scrolled
              to it."
            type: string
            enum:
              - clip
              - default
          in: query
          description: "How to capture the element by `selector`: `default` uses the
            browser tools to capture the element, `clip` gives better results
            when the element is not fully visible or the page must be scrolled
            to it."
        - name: selector_scroll_into_view
          schema: &a84
            description: Scrolls the element by `selector` into the view before capturing,
              to load lazy content.
            type: boolean
          in: query
          description: Scrolls the element by `selector` into the view before capturing,
            to load lazy content.
        - name: error_on_selector_not_found
          schema: &a85
            description: Returns an error when the element by `selector` or
              `scroll_into_view` is not found or not visible.
            type: boolean
          in: query
          description: Returns an error when the element by `selector` or
            `scroll_into_view` is not found or not visible.
        - name: scroll_into_view
          schema: &a86
            description: A selector of the element to scroll into the view before capturing.
              The first visible matching element is aligned to the top of the
              viewport.
            type: string
          in: query
          description: A selector of the element to scroll into the view before capturing.
            The first visible matching element is aligned to the top of the
            viewport.
        - name: scroll_into_view_adjust_top
          schema: &a87
            description: How many pixels to shift the element given in `scroll_into_view`
              from the top of the viewport.
            type: integer
          in: query
          description: How many pixels to shift the element given in `scroll_into_view`
            from the top of the viewport.
        - name: format
          schema: &a88
            description: The format of the result. `html` and `markdown` return the content
              of the page as text, `pdf` renders a PDF, the others are images.
            type: string
            enum:
              - png
              - jpeg
              - jpg
              - webp
              - gif
              - jp2
              - tiff
              - avif
              - heif
              - pdf
              - html
              - markdown
          in: query
          description: The format of the result. `html` and `markdown` return the content
            of the page as text, `pdf` renders a PDF, the others are images.
        - name: clip_x
          schema: &a89
            description: The left coordinate (x) of the area of the page to capture. Can't
              be used with `full_page`.
            type: integer
          in: query
          description: The left coordinate (x) of the area of the page to capture. Can't
            be used with `full_page`.
        - name: clip_y
          schema: &a90
            description: The top coordinate (y) of the area of the page to capture. Can't be
              used with `full_page`.
            type: integer
          in: query
          description: The top coordinate (y) of the area of the page to capture. Can't be
            used with `full_page`.
        - name: clip_width
          schema: &a91
            description: The width of the area of the page to capture. Can't be used with
              `full_page`.
            type: integer
          in: query
          description: The width of the area of the page to capture. Can't be used with
            `full_page`.
        - name: clip_height
          schema: &a92
            description: The height of the area of the page to capture. Can't be used with
              `full_page`.
            type: integer
          in: query
          description: The height of the area of the page to capture. Can't be used with
            `full_page`.
        - name: image_quality
          schema: &a93
            description: The quality of the image, from 0 to 100. For the `jpeg`, `jpg`,
              `webp`, `png`, `tiff`, `jp2`, `avif` and `heif` formats.
            type: integer
            minimum: 0
            maximum: 100
          in: query
          description: The quality of the image, from 0 to 100. For the `jpeg`, `jpg`,
            `webp`, `png`, `tiff`, `jp2`, `avif` and `heif` formats.
        - name: image_width
          schema: &a94
            description: The width of the resulting image (a thumbnail) in pixels. By
              default, the width of the viewport.
            type: integer
          in: query
          description: The width of the resulting image (a thumbnail) in pixels. By
            default, the width of the viewport.
        - name: image_height
          schema: &a95
            description: The height of the resulting image (a thumbnail) in pixels. By
              default, the height of the viewport.
            type: integer
          in: query
          description: The height of the resulting image (a thumbnail) in pixels. By
            default, the height of the viewport.
        - name: omit_background
          schema: &a96
            description: Renders a transparent background when the page doesn't define one.
              Only for `format=png`.
            type: boolean
          in: query
          description: Renders a transparent background when the page doesn't define one.
            Only for `format=png`.
        - name: full_page
          schema: &a97
            description: Captures the full scrollable page and not only the viewport.
            type: boolean
          in: query
          description: Captures the full scrollable page and not only the viewport.
        - name: full_page_scroll
          schema: &a98
            description: Scrolls the page to the bottom and back before capturing, to load
              lazy content. Requires `full_page=true` and is enabled by default
              with it.
            type: boolean
          in: query
          description: Scrolls the page to the bottom and back before capturing, to load
            lazy content. Requires `full_page=true` and is enabled by default
            with it.
        - name: full_page_scroll_delay
          schema: &a99
            description: The delay between the scrolls of the full page, in milliseconds.
            type: integer
            minimum: 100
          in: query
          description: The delay between the scrolls of the full page, in milliseconds.
        - name: full_page_scroll_by
          schema: &a100
            description: How many pixels to scroll the full page by at a time. By default,
              the height of the viewport.
            type: integer
            minimum: 1
          in: query
          description: How many pixels to scroll the full page by at a time. By default,
            the height of the viewport.
        - name: full_page_max_height
          schema: &a101
            description: The maximum height of the full page screenshot in pixels. Helps
              with pages that scroll infinitely.
            type: integer
            minimum: 1
          in: query
          description: The maximum height of the full page screenshot in pixels. Helps
            with pages that scroll infinitely.
        - name: full_page_algorithm
          schema: &a102
            description: "How to capture the full page: `default` uses the browser's own
              full page capture with some tuning, `by_sections` captures the
              page section by section and combines the sections into one image,
              which renders complex pages with animations more reliably.
              `by_sections` always scrolls the page, regardless of
              `full_page_scroll`."
            type: string
            enum:
              - by_sections
              - default
          in: query
          description: "How to capture the full page: `default` uses the browser's own
            full page capture with some tuning, `by_sections` captures the page
            section by section and combines the sections into one image, which
            renders complex pages with animations more reliably. `by_sections`
            always scrolls the page, regardless of `full_page_scroll`."
        - name: full_page_slices
          schema: &a103
            description: Splits the full page screenshot into vertical slices. Requires
              `full_page=true` and can't be used with `store=true`.
            type: boolean
          in: query
          description: Splits the full page screenshot into vertical slices. Requires
            `full_page=true` and can't be used with `store=true`.
        - name: full_page_slice_height
          schema: &a104
            description: The maximum height of a slice of the full page screenshot in
              pixels.
            type: integer
            minimum: 1
            maximum: 16000
          in: query
          description: The maximum height of a slice of the full page screenshot in pixels.
        - name: full_page_slice_overlap_height
          schema: &a105
            description: How many pixels the adjacent slices overlap by. The slice height
              minus the overlap must be at least 100.
            type: integer
            minimum: 0
          in: query
          description: How many pixels the adjacent slices overlap by. The slice height
            minus the overlap must be at least 100.
        - name: capture_beyond_viewport
          schema: &a106
            description: Captures the parts of the page or of the element that are outside
              of the viewport. By default, enabled for full page screenshots and
              screenshots by `selector`.
            type: boolean
          in: query
          description: Captures the parts of the page or of the element that are outside
            of the viewport. By default, enabled for full page screenshots and
            screenshots by `selector`.
        - name: pdf_print_background
          schema: &a107
            description: Prints the background graphics in the PDF.
            type: boolean
          in: query
          description: Prints the background graphics in the PDF.
        - name: pdf_fit_one_page
          schema: &a108
            description: Fits the whole site on one page of the PDF, without splitting it
              into pages.
            type: boolean
          in: query
          description: Fits the whole site on one page of the PDF, without splitting it
            into pages.
        - name: pdf_landscape
          schema: &a109
            description: Sets the orientation of the PDF to landscape.
            type: boolean
          in: query
          description: Sets the orientation of the PDF to landscape.
        - name: pdf_paper_format
          schema: &a110
            description: The paper format of the PDF.
            type: string
            enum:
              - a0
              - a1
              - a2
              - a3
              - a4
              - a5
              - a6
              - legal
              - letter
              - tabloid
          in: query
          description: The paper format of the PDF.
        - name: pdf_margin
          schema: &a111
            description: The margin of the PDF for all sides, with units, like `20px`.
            type: string
          in: query
          description: The margin of the PDF for all sides, with units, like `20px`.
        - name: pdf_margin_top
          schema: &a112
            description: The top margin of the PDF. Overrides `pdf_margin`.
            type: string
          in: query
          description: The top margin of the PDF. Overrides `pdf_margin`.
        - name: pdf_margin_right
          schema: &a113
            description: The right margin of the PDF. Overrides `pdf_margin`.
            type: string
          in: query
          description: The right margin of the PDF. Overrides `pdf_margin`.
        - name: pdf_margin_bottom
          schema: &a114
            description: The bottom margin of the PDF. Overrides `pdf_margin`.
            type: string
          in: query
          description: The bottom margin of the PDF. Overrides `pdf_margin`.
        - name: pdf_margin_left
          schema: &a115
            description: The left margin of the PDF. Overrides `pdf_margin`.
            type: string
          in: query
          description: The left margin of the PDF. Overrides `pdf_margin`.
        - name: metadata_image_size
          schema: &a116
            description: Returns the actual width and height of the resulting image.
            type: boolean
          in: query
          description: Returns the actual width and height of the resulting image.
        - name: vision_prompt
          schema: &a117
            description: The prompt to send to the OpenAI vision model along with the
              screenshot.
            type: string
          in: query
          description: The prompt to send to the OpenAI vision model along with the
            screenshot.
        - name: vision_max_tokens
          schema: &a118
            description: The maximum number of tokens the vision model may return.
            type: integer
          in: query
          description: The maximum number of tokens the vision model may return.
        - name: openai_api_key
          schema: &a119
            description: Your OpenAI API key for the vision request. It is not stored.
            type: string
          in: query
          description: Your OpenAI API key for the vision request. It is not stored.
      responses:
        "200":
          $ref: "#/components/responses/ScreenshotResult"
        "400":
          $ref: "#/components/responses/ErrorResponse"
        "500":
          $ref: "#/components/responses/ErrorResponse"
    post:
      summary: Generate a screenshot or PDF of a website, render HTML, or Markdown
      description: >
        Generate a screenshot or PDF by specifying a website URL, render HTML,
        or Markdown.        
      operationId: takeScreenshot
      requestBody:
        description: The rendering options and the access key.
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    access_key:
                      type: string
                - $ref: "#/components/schemas/ScreenshotOptions"
        required: true
      responses:
        "200":
          $ref: "#/components/responses/ScreenshotResult"
        "400":
          $ref: "#/components/responses/ErrorResponse"
        "500":
          $ref: "#/components/responses/ErrorResponse"
  /animate:
    get:
      summary: Record a video or an animated GIF of a website, HTML, or Markdown
      description: >
        Record a short video or an animated GIF of a website by its URL, or of
        the rendered HTML or Markdown, optionally scrolling the page.
      operationId: getAnimation
      parameters:
        - name: url
          schema: &a120
            description: The URL of the site to render. One of `url`, `html` or `markdown`
              is required.
            type: string
            format: uri
          in: query
          description: The URL of the site to render. One of `url`, `html` or `markdown`
            is required.
        - name: html
          schema: &a121
            description: The HTML to render. One of `url`, `html` or `markdown` is required.
            type: string
          in: query
          description: The HTML to render. One of `url`, `html` or `markdown` is required.
        - name: markdown
          schema: &a122
            description: The Markdown to render. One of `url`, `html` or `markdown` is
              required.
            type: string
          in: query
          description: The Markdown to render. One of `url`, `html` or `markdown` is
            required.
        - name: signature
          schema:
            description: "The signature of a signed request: a hash of all the request
              options made with the signing key. It is not the signing key
              itself."
            type: string
          in: query
          description: "The signature of a signed request: a hash of all the request
            options made with the signing key. It is not the signing key
            itself."
        - name: response_type
          schema: &a123
            description: "What to return: `by_format` returns the result in the requested
              format, `empty` returns only the status or the error, and `json`
              returns a JSON object, which has data only for the options that
              produce it, like caching, storage or metadata."
            type: string
            enum:
              - by_format
              - empty
              - json
          in: query
          description: "What to return: `by_format` returns the result in the requested
            format, `empty` returns only the status or the error, and `json`
            returns a JSON object, which has data only for the options that
            produce it, like caching, storage or metadata."
        - name: attachment_name
          schema: &a124
            description: The name of the file to download the result as. The extension is
              added from the format.
            type: string
          in: query
          description: The name of the file to download the result as. The extension is
            added from the format.
        - name: dark_mode
          schema: &a125
            description: Set to `true` to request the dark mode of the site and to `false`
              to request the light one, if the site supports them. Not set by
              default.
            type: boolean
          in: query
          description: Set to `true` to request the dark mode of the site and to `false`
            to request the light one, if the site supports them. Not set by
            default.
        - name: reduced_motion
          schema: &a126
            description: "Emulates the `prefers-reduced-motion: reduce` preference. The site
              decides how to respond to it."
            type: boolean
          in: query
          description: "Emulates the `prefers-reduced-motion: reduce` preference. The site
            decides how to respond to it."
        - name: reduce_motion
          schema: &a127
            description: "Actively reduces motion on the page before capturing it:
              animations, carousels and background videos."
            type: boolean
          in: query
          description: "Actively reduces motion on the page before capturing it:
            animations, carousels and background videos."
        - name: media_type
          schema: &a128
            description: "The media type to emulate: `print` renders the page as for
              printers, `screen` as for screens."
            type: string
            enum:
              - screen
              - print
          in: query
          description: "The media type to emulate: `print` renders the page as for
            printers, `screen` as for screens."
        - name: scripts
          schema: &a129
            description: JavaScript to inject into the page and execute before capturing.
            type: string
          in: query
          description: JavaScript to inject into the page and execute before capturing.
        - name: scripts_wait_until
          schema: &a130
            description: The events to wait for after the injected scripts were executed.
              Use it when a script navigates to another page.
            type: array
            items:
              type: string
              enum:
                - load
                - domcontentloaded
                - networkidle0
                - networkidle2
          in: query
          description: The events to wait for after the injected scripts were executed.
            Use it when a script navigates to another page.
        - name: styles
          schema: &a131
            description: CSS to inject into the page.
            type: string
          in: query
          description: CSS to inject into the page.
        - name: hide_selectors
          schema: &a132
            description: "Selectors of the elements to hide before capturing. All elements
              matching each selector are hidden with `display: none`."
            type: array
            items:
              type: string
          in: query
          description: "Selectors of the elements to hide before capturing. All elements
            matching each selector are hidden with `display: none`."
        - name: hover
          schema: &a133
            description: A selector of the element to hover over before capturing.
            type: string
          in: query
          description: A selector of the element to hover over before capturing.
        - name: error_on_hover_selector_not_found
          schema: &a134
            description: Whether to return an error when the element to hover over is not
              found.
            type: boolean
          in: query
          description: Whether to return an error when the element to hover over is not
            found.
        - name: click
          schema: &a135
            description: A selector of the element to click before capturing.
            type: string
          in: query
          description: A selector of the element to click before capturing.
        - name: error_on_click_selector_not_found
          schema: &a136
            description: Whether to return an error when the element to click is not found.
            type: boolean
          in: query
          description: Whether to return an error when the element to click is not found.
        - name: include_shadow_dom
          schema: &a137
            description: Includes the open and closed shadow DOM roots when the content of
              the page is extracted, for `format=html` or
              `metadata_content=true`.
            type: boolean
          in: query
          description: Includes the open and closed shadow DOM roots when the content of
            the page is extracted, for `format=html` or `metadata_content=true`.
        - name: bypass_csp
          schema: &a138
            description: Bypasses the Content Security Policy of the site. It may be needed
              for injected scripts to work.
            type: boolean
          in: query
          description: Bypasses the Content Security Policy of the site. It may be needed
            for injected scripts to work.
        - name: viewport_device
          schema: &a139
            description: A device to emulate instead of setting the viewport options one by
              one. It sets the viewport, the scale factor and the user agent.
              The list of devices is returned by the `/devices` method.
            type: string
            enum:
              - blackberry_playbook
              - blackberry_playbook_landscape
              - blackberry_z30
              - blackberry_z30_landscape
              - galaxy_note_3
              - galaxy_note_3_landscape
              - galaxy_note_ii
              - galaxy_note_ii_landscape
              - galaxy_s_iii
              - galaxy_s_iii_landscape
              - galaxy_s5
              - galaxy_s5_landscape
              - galaxy_s8
              - galaxy_s8_landscape
              - galaxy_s9+
              - galaxy_s9+_landscape
              - galaxy_tab_s4
              - galaxy_tab_s4_landscape
              - ipad
              - ipad_landscape
              - ipad_gen_6
              - ipad_gen_6_landscape
              - ipad_gen_7
              - ipad_gen_7_landscape
              - ipad_mini
              - ipad_mini_landscape
              - ipad_pro
              - ipad_pro_landscape
              - ipad_pro_11
              - ipad_pro_11_landscape
              - iphone_4
              - iphone_4_landscape
              - iphone_5
              - iphone_5_landscape
              - iphone_6
              - iphone_6_landscape
              - iphone_6_plus
              - iphone_6_plus_landscape
              - iphone_7
              - iphone_7_landscape
              - iphone_7_plus
              - iphone_7_plus_landscape
              - iphone_8
              - iphone_8_landscape
              - iphone_8_plus
              - iphone_8_plus_landscape
              - iphone_se
              - iphone_se_landscape
              - iphone_x
              - iphone_x_landscape
              - iphone_xr
              - iphone_xr_landscape
              - iphone_11
              - iphone_11_landscape
              - iphone_11_pro
              - iphone_11_pro_landscape
              - iphone_11_pro_max
              - iphone_11_pro_max_landscape
              - iphone_12
              - iphone_12_landscape
              - iphone_12_pro
              - iphone_12_pro_landscape
              - iphone_12_pro_max
              - iphone_12_pro_max_landscape
              - iphone_12_mini
              - iphone_12_mini_landscape
              - iphone_13
              - iphone_13_landscape
              - iphone_13_pro
              - iphone_13_pro_landscape
              - iphone_13_pro_max
              - iphone_13_pro_max_landscape
              - iphone_13_mini
              - iphone_13_mini_landscape
              - iphone_14
              - iphone_14_landscape
              - iphone_14_plus
              - iphone_14_plus_landscape
              - iphone_14_pro
              - iphone_14_pro_landscape
              - iphone_14_pro_max
              - iphone_14_pro_max_landscape
              - iphone_15
              - iphone_15_landscape
              - iphone_15_plus
              - iphone_15_plus_landscape
              - iphone_15_pro
              - iphone_15_pro_landscape
              - iphone_15_pro_max
              - iphone_15_pro_max_landscape
              - iphone_16
              - iphone_16_landscape
              - iphone_16_plus
              - iphone_16_plus_landscape
              - jiophone_2
              - jiophone_2_landscape
              - kindle_fire_hdx
              - kindle_fire_hdx_landscape
              - lg_optimus_l70
              - lg_optimus_l70_landscape
              - microsoft_lumia_550
              - microsoft_lumia_950
              - microsoft_lumia_950_landscape
              - nexus_10
              - nexus_10_landscape
              - nexus_4
              - nexus_4_landscape
              - nexus_5
              - nexus_5_landscape
              - nexus_5x
              - nexus_5x_landscape
              - nexus_6
              - nexus_6_landscape
              - nexus_6p
              - nexus_6p_landscape
              - nexus_7
              - nexus_7_landscape
              - nokia_lumia_520
              - nokia_lumia_520_landscape
              - nokia_n9
              - nokia_n9_landscape
              - pixel_2
              - pixel_2_landscape
              - pixel_2_xl
              - pixel_2_xl_landscape
              - pixel_3
              - pixel_3_landscape
              - pixel_4
              - pixel_4_landscape
              - pixel_4a_5g
              - pixel_4a_5g_landscape
              - pixel_5
              - pixel_5_landscape
              - moto_g4
              - moto_g4_landscape
          in: query
          description: A device to emulate instead of setting the viewport options one by
            one. It sets the viewport, the scale factor and the user agent. The
            list of devices is returned by the `/devices` method.
        - name: viewport_width
          schema: &a140
            description: The width of the browser viewport in pixels. Overrides the value
              set by `viewport_device`.
            type: integer
          in: query
          description: The width of the browser viewport in pixels. Overrides the value
            set by `viewport_device`.
        - name: viewport_height
          schema: &a141
            description: The height of the browser viewport in pixels. Overrides the value
              set by `viewport_device`.
            type: integer
          in: query
          description: The height of the browser viewport in pixels. Overrides the value
            set by `viewport_device`.
        - name: device_scale_factor
          schema: &a142
            description: The device scale factor (device pixel ratio), from 1 to 5,
              fractions are allowed. Overrides the value set by
              `viewport_device`.
            type: number
            minimum: 1
            maximum: 5
          in: query
          description: The device scale factor (device pixel ratio), from 1 to 5,
            fractions are allowed. Overrides the value set by `viewport_device`.
        - name: viewport_mobile
          schema: &a143
            description: Whether the meta viewport tag is taken into account. Overrides the
              value set by `viewport_device`.
            type: boolean
          in: query
          description: Whether the meta viewport tag is taken into account. Overrides the
            value set by `viewport_device`.
        - name: viewport_has_touch
          schema: &a144
            description: Whether the viewport supports touch events. Overrides the value set
              by `viewport_device`.
            type: boolean
          in: query
          description: Whether the viewport supports touch events. Overrides the value set
            by `viewport_device`.
        - name: viewport_landscape
          schema: &a145
            description: Whether the viewport is in landscape mode. Overrides the value set
              by `viewport_device`.
            type: boolean
          in: query
          description: Whether the viewport is in landscape mode. Overrides the value set
            by `viewport_device`.
        - name: geolocation_latitude
          schema: &a146
            description: The latitude of the geolocation to emulate. Latitude and longitude
              must be set together.
            type: number
            minimum: -90
            maximum: 90
          in: query
          description: The latitude of the geolocation to emulate. Latitude and longitude
            must be set together.
        - name: geolocation_longitude
          schema: &a147
            description: The longitude of the geolocation to emulate. Latitude and longitude
              must be set together.
            type: number
            minimum: -180
            maximum: 180
          in: query
          description: The longitude of the geolocation to emulate. Latitude and longitude
            must be set together.
        - name: geolocation_accuracy
          schema: &a148
            description: The accuracy of the emulated geolocation in meters.
            type: integer
            minimum: 1
          in: query
          description: The accuracy of the emulated geolocation in meters.
        - name: ip_country_code
          schema: &a149
            description: The country to render the site from, through the proxies provided
              by ScreenshotOne. It can't be used together with `proxy`.
            type: string
            enum:
              - us
              - gb
              - de
              - it
              - fr
              - cn
              - ca
              - es
              - jp
              - kr
              - in
              - au
              - br
              - mx
              - nz
              - pe
              - is
              - ie
          in: query
          description: The country to render the site from, through the proxies provided
            by ScreenshotOne. It can't be used together with `proxy`.
        - name: block_cookie_banners
          schema: &a150
            description: Blocks cookie banners, GDPR overlays and other privacy notices.
            type: boolean
          in: query
          description: Blocks cookie banners, GDPR overlays and other privacy notices.
        - name: block_banners_by_heuristics
          schema: &a151
            description: Blocks banners with a different set of techniques and heuristics.
              Try it when `block_cookie_banners` doesn't help; it may change how
              the page looks.
            type: boolean
          in: query
          description: Blocks banners with a different set of techniques and heuristics.
            Try it when `block_cookie_banners` doesn't help; it may change how
            the page looks.
        - name: block_chats
          schema: &a152
            description: Blocks chat widgets like Intercom, Crisp, Drift, Tawk and others.
            type: boolean
          in: query
          description: Blocks chat widgets like Intercom, Crisp, Drift, Tawk and others.
        - name: block_ads
          schema: &a153
            description: Blocks ads.
            type: boolean
          in: query
          description: Blocks ads.
        - name: block_trackers
          schema: &a154
            description: Blocks trackers, so the rendering is not counted as a visit by
              analytics.
            type: boolean
          in: query
          description: Blocks trackers, so the rendering is not counted as a visit by
            analytics.
        - name: block_requests
          schema: &a155
            description: Blocks the requests of the page that match a URL, a domain or a
              pattern like `*.example.com/*`. Up to 100 patterns.
            type: array
            maxItems: 100
            items:
              type: string
          in: query
          description: Blocks the requests of the page that match a URL, a domain or a
            pattern like `*.example.com/*`. Up to 100 patterns.
        - name: block_resources
          schema: &a156
            description: Blocks loading the resources of the page by type.
            type: array
            items:
              type: string
              enum:
                - document
                - stylesheet
                - image
                - media
                - font
                - script
                - texttrack
                - xhr
                - fetch
                - eventsource
                - websocket
                - manifest
                - other
          in: query
          description: Blocks loading the resources of the page by type.
        - name: cache
          schema: &a157
            description: Caches the result. A cached result is reused for the requests with
              the same options.
            type: boolean
          in: query
          description: Caches the result. A cached result is reused for the requests with
            the same options.
        - name: cache_ttl
          schema: &a158
            description: "How long a cached result is reused, in seconds: from 14400 (4
              hours, the default) to 2592000 (1 month). Requires `cache=true`."
            type: integer
            minimum: 14400
            maximum: 2592000
          in: query
          description: "How long a cached result is reused, in seconds: from 14400 (4
            hours, the default) to 2592000 (1 month). Requires `cache=true`."
        - name: cache_key
          schema: &a159
            description: An alphanumeric key to keep different cached versions of the result
              for the same options. Requires `cache=true`.
            type: string
            minLength: 1
            maxLength: 250
          in: query
          description: An alphanumeric key to keep different cached versions of the result
            for the same options. Requires `cache=true`.
        - name: user_agent
          schema: &a160
            description: The user agent of the browser. Changing it may break the stealth
              mode; it overrides the user agent set by `viewport_device`.
            type: string
          in: query
          description: The user agent of the browser. Changing it may break the stealth
            mode; it overrides the user agent set by `viewport_device`.
        - name: authorization
          schema: &a161
            description: The value of the `Authorization` header to send to the site, for
              pages protected by basic authentication or a token.
            type: string
          in: query
          description: The value of the `Authorization` header to send to the site, for
            pages protected by basic authentication or a token.
        - name: headers
          schema: &a162
            description: Extra HTTP headers to send to the site, each in the format
              `Header-Name:Header-Value`.
            type: array
            items:
              type: string
          in: query
          description: Extra HTTP headers to send to the site, each in the format
            `Header-Name:Header-Value`.
        - name: cookies
          schema: &a163
            description: Cookies to set for the site, each in the format `name=value;
              Domain=example.com; Secure; HttpOnly`.
            type: array
            items:
              type: string
          in: query
          description: Cookies to set for the site, each in the format `name=value;
            Domain=example.com; Secure; HttpOnly`.
        - name: proxy
          schema: &a164
            description: The URL of your own HTTP proxy to render the site through, like
              `http://user:password@host:port`. It can't be used together with
              `ip_country_code`.
            type: string
            format: uri
          in: query
          description: The URL of your own HTTP proxy to render the site through, like
            `http://user:password@host:port`. It can't be used together with
            `ip_country_code`.
        - name: proxy_bypass_hosts
          schema: &a165
            description: Hostname patterns of the requests to load directly and not through
              the proxy. Requires `proxy`.
            type: array
            items:
              type: string
          in: query
          description: Hostname patterns of the requests to load directly and not through
            the proxy. Requires `proxy`.
        - name: time_zone
          schema: &a166
            description: The time zone of the browser.
            type: string
            enum:
              - America/Belize
              - America/Cayman
              - America/Chicago
              - America/Costa_Rica
              - America/Denver
              - America/Edmonton
              - America/El_Salvador
              - America/Guatemala
              - America/Guayaquil
              - America/Hermosillo
              - America/Jamaica
              - America/Los_Angeles
              - America/Mexico_City
              - America/Nassau
              - America/New_York
              - America/Panama
              - America/Port-au-Prince
              - America/Santiago
              - America/Tegucigalpa
              - America/Tijuana
              - America/Toronto
              - America/Vancouver
              - America/Winnipeg
              - Asia/Kuala_Lumpur
              - Asia/Shanghai
              - Asia/Tashkent
              - Europe/Berlin
              - Europe/Kiev
              - Europe/Lisbon
              - Europe/London
              - Europe/Madrid
              - Pacific/Auckland
              - Pacific/Majuro
          in: query
          description: The time zone of the browser.
        - name: delay
          schema: &a167
            description: The time in seconds to wait before capturing, after the page is
              loaded. Up to 30, or up to 300 when `timeout` is greater than 300.
            type: integer
            minimum: 0
            maximum: 300
          in: query
          description: The time in seconds to wait before capturing, after the page is
            loaded. Up to 30, or up to 300 when `timeout` is greater than 300.
        - name: timeout
          schema: &a168
            description: The time in seconds after which the request is aborted. The default
              is 60 and the maximum is 90; both are 600 for async requests.
            type: integer
            minimum: 0
            maximum: 600
          in: query
          description: The time in seconds after which the request is aborted. The default
            is 60 and the maximum is 90; both are 600 for async requests.
        - name: navigation_timeout
          schema: &a169
            description: The time in seconds after which the request is aborted when the
              site doesn't respond.
            type: integer
            minimum: 0
            maximum: 30
          in: query
          description: The time in seconds after which the request is aborted when the
            site doesn't respond.
        - name: wait_until
          schema: &a170
            description: "The events to wait for before capturing: `load`,
              `domcontentloaded`, `networkidle0` (no network connections for 500
              ms) or `networkidle2` (no more than two)."
            type: array
            items:
              type: string
              enum:
                - load
                - domcontentloaded
                - networkidle0
                - networkidle2
          in: query
          description: "The events to wait for before capturing: `load`,
            `domcontentloaded`, `networkidle0` (no network connections for 500
            ms) or `networkidle2` (no more than two)."
        - name: wait_for_selector
          schema: &a171
            description: A selector of the element to wait for before capturing. The element
              must appear in the DOM, but may be invisible.
            type: string
          in: query
          description: A selector of the element to wait for before capturing. The element
            must appear in the DOM, but may be invisible.
        - name: wait_for_selector_algorithm
          schema: &a172
            description: "With several selectors in `wait_for_selector`: `at_least_one`
              waits until at least one of them is matched, `at_least_by_count`
              waits until as many elements are matched as there are selectors,
              not necessarily one for each selector."
            type: string
            enum:
              - at_least_one
              - at_least_by_count
          in: query
          description: "With several selectors in `wait_for_selector`: `at_least_one`
            waits until at least one of them is matched, `at_least_by_count`
            waits until as many elements are matched as there are selectors, not
            necessarily one for each selector."
        - name: fail_if_content_contains
          schema: &a173
            description: Fails the request when the content of the page contains any of the
              given strings, case-insensitive.
            type: array
            items:
              type: string
          in: query
          description: Fails the request when the content of the page contains any of the
            given strings, case-insensitive.
        - name: fail_if_content_missing
          schema: &a174
            description: Fails the request when the content of the page misses any of the
              given strings, case-insensitive.
            type: array
            items:
              type: string
          in: query
          description: Fails the request when the content of the page misses any of the
            given strings, case-insensitive.
        - name: fail_if_request_failed
          schema: &a175
            description: Fails the request when a request of the page matching one of the
              given patterns fails or returns an error status. Up to 100
              patterns.
            type: array
            maxItems: 100
            items:
              type: string
          in: query
          description: Fails the request when a request of the page matching one of the
            given patterns fails or returns an error status. Up to 100 patterns.
        - name: ignore_host_errors
          schema: &a176
            description: Renders the page even when the site responds with a status outside
              of the 200-299 range. Without it, the `host_returned_error` error
              is returned.
            type: boolean
          in: query
          description: Renders the page even when the site responds with a status outside
            of the 200-299 range. Without it, the `host_returned_error` error is
            returned.
        - name: request_gpu_rendering
          schema: &a177
            description: "Asks to render with hardware (GPU) acceleration. It is a hint,
              available on the top-tier paid plans: rendering without GPU is
              used when the GPU servers are unavailable."
            type: boolean
          in: query
          description: "Asks to render with hardware (GPU) acceleration. It is a hint,
            available on the top-tier paid plans: rendering without GPU is used
            when the GPU servers are unavailable."
        - name: fail_if_gpu_rendering_fails
          schema: &a178
            description: Fails the request when GPU rendering fails, instead of falling back
              to rendering without GPU.
            type: boolean
          in: query
          description: Fails the request when GPU rendering fails, instead of falling back
            to rendering without GPU.
        - name: async
          schema: &a179
            description: "Executes the request asynchronously: the API returns an empty
              response immediately. Usually combined with `webhook_url` or the
              storage options. Caching is not available for async requests."
            type: boolean
          in: query
          description: "Executes the request asynchronously: the API returns an empty
            response immediately. Usually combined with `webhook_url` or the
            storage options. Caching is not available for async requests."
        - name: webhook_url
          schema: &a180
            description: A public HTTPS URL to send the result of the request to.
            type: string
            format: uri
          in: query
          description: A public HTTPS URL to send the result of the request to.
        - name: webhook_sign
          schema: &a181
            description: Whether to sign the body of the webhook request.
            type: boolean
          in: query
          description: Whether to sign the body of the webhook request.
        - name: webhook_errors
          schema: &a182
            description: Sends the details of a failed request to the webhook, too.
            type: boolean
          in: query
          description: Sends the details of a failed request to the webhook, too.
        - name: external_identifier
          schema: &a183
            description: An alphanumeric identifier of your own that is sent back in the
              `x-screenshotone-external-identifier` header of the webhook
              request.
            type: string
            minLength: 1
            maxLength: 64
          in: query
          description: An alphanumeric identifier of your own that is sent back in the
            `x-screenshotone-external-identifier` header of the webhook request.
        - name: store
          schema: &a184
            description: Uploads the result to the configured S3-compatible storage.
            type: boolean
          in: query
          description: Uploads the result to the configured S3-compatible storage.
        - name: storage_bucket
          schema: &a185
            description: The bucket to upload to. Overrides the one configured in the
              dashboard.
            type: string
          in: query
          description: The bucket to upload to. Overrides the one configured in the
            dashboard.
        - name: storage_path
          schema: &a186
            description: "The key of the file in the bucket, without an extension: it is
              added from the format. Required when `store=true`."
            type: string
          in: query
          description: "The key of the file in the bucket, without an extension: it is
            added from the format. Required when `store=true`."
        - name: storage_endpoint
          schema: &a187
            description: The endpoint of an S3-compatible storage, like Cloudflare R2. Leave
              it out for Amazon S3.
            type: string
            format: uri
          in: query
          description: The endpoint of an S3-compatible storage, like Cloudflare R2. Leave
            it out for Amazon S3.
        - name: storage_access_key_id
          schema: &a188
            description: The access key ID of the storage. Overrides the one configured in
              the dashboard.
            type: string
          in: query
          description: The access key ID of the storage. Overrides the one configured in
            the dashboard.
        - name: storage_secret_access_key
          schema: &a189
            description: The secret access key of the storage. Overrides the one configured
              in the dashboard.
            type: string
          in: query
          description: The secret access key of the storage. Overrides the one configured
            in the dashboard.
        - name: storage_acl
          schema: &a190
            description: "The ACL of the uploaded file: `public-read`, or not set."
            type: string
            enum:
              - public-read
              - ""
          in: query
          description: "The ACL of the uploaded file: `public-read`, or not set."
        - name: storage_class
          schema: &a191
            description: The storage class of the uploaded file.
            type: string
            enum:
              - standard
              - reduced_redundancy
              - standard_ia
              - onezone_ia
              - intelligent_tiering
              - glacier
              - deep_archive
              - outposts
              - glacier_ir
          in: query
          description: The storage class of the uploaded file.
        - name: storage_return_location
          schema: &a192
            description: "Returns the location of the uploaded file: in the
              `X-ScreenshotOne-Store-Location` header, or in the JSON response."
            type: boolean
          in: query
          description: "Returns the location of the uploaded file: in the
            `X-ScreenshotOne-Store-Location` header, or in the JSON response."
        - name: metadata_fonts
          schema: &a193
            description: Returns the fonts the page uses.
            type: boolean
          in: query
          description: Returns the fonts the page uses.
        - name: metadata_content
          schema: &a194
            description: "Returns the content of the page in addition to the result: a
              temporary URL of the stored content and when it expires, in the
              `X-ScreenshotOne-Content-URL` and
              `X-ScreenshotOne-Content-Expires` headers, or in the JSON
              response."
            type: boolean
          in: query
          description: "Returns the content of the page in addition to the result: a
            temporary URL of the stored content and when it expires, in the
            `X-ScreenshotOne-Content-URL` and `X-ScreenshotOne-Content-Expires`
            headers, or in the JSON response."
        - name: metadata_content_format
          schema: &a195
            description: "The format of the content returned by `metadata_content`: `html`
              or `markdown`."
            type: string
            enum:
              - html
              - markdown
          in: query
          description: "The format of the content returned by `metadata_content`: `html`
            or `markdown`."
        - name: metadata_page_title
          schema: &a196
            description: "Returns the title of the page: in the `x-screenshotone-page-title`
              header, or in the JSON response."
            type: boolean
          in: query
          description: "Returns the title of the page: in the `x-screenshotone-page-title`
            header, or in the JSON response."
        - name: metadata_open_graph
          schema: &a197
            description: "Returns the Open Graph metadata of the page: in the
              `x-screenshotone-open-graph` header, or in the JSON response."
            type: boolean
          in: query
          description: "Returns the Open Graph metadata of the page: in the
            `x-screenshotone-open-graph` header, or in the JSON response."
        - name: metadata_http_response_status_code
          schema: &a198
            description: Returns the HTTP status code the site responded with. Only for
              requests with `url`.
            type: boolean
          in: query
          description: Returns the HTTP status code the site responded with. Only for
            requests with `url`.
        - name: metadata_http_response_headers
          schema: &a199
            description: Returns the HTTP headers the site responded with. Only for requests
              with `url`.
            type: boolean
          in: query
          description: Returns the HTTP headers the site responded with. Only for requests
            with `url`.
        - name: metadata_icon
          schema: &a200
            description: Returns the icon (favicon) of the site.
            type: boolean
          in: query
          description: Returns the icon (favicon) of the site.
        - name: format
          schema: &a201
            description: The format of the animation.
            type: string
            enum:
              - mp4
              - avi
              - mov
              - webm
              - gif
          in: query
          description: The format of the animation.
        - name: duration
          schema: &a202
            description: The duration of the animation in seconds. With
              `scroll_complete=true`, the recording stops earlier when the
              scrolling is completed.
            type: number
            minimum: 1
            maximum: 30
          in: query
          description: The duration of the animation in seconds. With
            `scroll_complete=true`, the recording stops earlier when the
            scrolling is completed.
        - name: omit_background
          schema: &a203
            description: Renders a transparent background when the page doesn't define one.
              Only for `format=mov`.
            type: boolean
          in: query
          description: Renders a transparent background when the page doesn't define one.
            Only for `format=mov`.
        - name: width
          schema: &a204
            description: The width of the video in pixels. Set together with `height`; by
              default, the width of the viewport. Not used when `aspect_ratio`
              is set.
            type: integer
          in: query
          description: The width of the video in pixels. Set together with `height`; by
            default, the width of the viewport. Not used when `aspect_ratio` is
            set.
        - name: height
          schema: &a205
            description: The height of the video in pixels. Set together with `width`; by
              default, the height of the viewport. Not used when `aspect_ratio`
              is set.
            type: integer
          in: query
          description: The height of the video in pixels. Set together with `width`; by
            default, the height of the viewport. Not used when `aspect_ratio` is
            set.
        - name: aspect_ratio
          schema: &a206
            description: The aspect ratio to fit the video of the viewport into.
            type: string
            enum:
              - 4:3
              - 16:9
          in: query
          description: The aspect ratio to fit the video of the viewport into.
        - name: clip_x
          schema: &a207
            description: The left coordinate (x) of the area of the video to clip. Only for
              `format=gif`.
            type: integer
          in: query
          description: The left coordinate (x) of the area of the video to clip. Only for
            `format=gif`.
        - name: clip_y
          schema: &a208
            description: The top coordinate (y) of the area of the video to clip. Only for
              `format=gif`.
            type: integer
          in: query
          description: The top coordinate (y) of the area of the video to clip. Only for
            `format=gif`.
        - name: clip_width
          schema: &a209
            description: The width of the area of the video to clip. Only for `format=gif`.
            type: integer
          in: query
          description: The width of the area of the video to clip. Only for `format=gif`.
        - name: clip_height
          schema: &a210
            description: The height of the area of the video to clip. Only for `format=gif`.
            type: integer
          in: query
          description: The height of the area of the video to clip. Only for `format=gif`.
        - name: scenario
          schema: &a211
            description: "The scenario of the animation: `default` records the page as it
              is, `scroll` records scrolling the page."
            type: string
            enum:
              - ""
              - default
              - scroll
          in: query
          description: "The scenario of the animation: `default` records the page as it
            is, `scroll` records scrolling the page."
        - name: scroll_duration
          schema: &a212
            description: The duration of one scroll in milliseconds. It is not the duration
              of the animation.
            type: number
            minimum: 100
          in: query
          description: The duration of one scroll in milliseconds. It is not the duration
            of the animation.
        - name: scroll_delay
          schema: &a213
            description: The delay between the scrolls in milliseconds.
            type: number
            minimum: 0
          in: query
          description: The delay between the scrolls in milliseconds.
        - name: scroll_by
          schema: &a214
            description: How many pixels to scroll by at a time.
            type: number
            minimum: 1
          in: query
          description: How many pixels to scroll by at a time.
        - name: scroll_easing
          schema: &a215
            description: The easing effect of the scrolling.
            type: string
            enum:
              - linear
              - ease_in_quad
              - ease_out_quad
              - ease_in_out_quad
              - ease_in_cubic
              - ease_out_cubic
              - ease_in_out_cubic
              - ease_in_quart
              - ease_out_quart
              - ease_in_out_quart
              - ease_in_quint
              - ease_out_quint
              - ease_in_out_quint
          in: query
          description: The easing effect of the scrolling.
        - name: scroll_start_immediately
          schema: &a216
            description: Whether to start scrolling immediately or to wait for
              `scroll_delay` first.
            type: boolean
          in: query
          description: Whether to start scrolling immediately or to wait for
            `scroll_delay` first.
        - name: scroll_start_delay
          schema: &a217
            description: The time to wait before the scrolling starts, in milliseconds.
            type: number
            minimum: 0
          in: query
          description: The time to wait before the scrolling starts, in milliseconds.
        - name: scroll_complete
          schema: &a218
            description: Stops the recording when the scrolling is completed, even when it
              is earlier than `duration`.
            type: boolean
          in: query
          description: Stops the recording when the scrolling is completed, even when it
            is earlier than `duration`.
        - name: scroll_back
          schema: &a219
            description: Whether to scroll back to the top after reaching the bottom of the
              page.
            type: boolean
          in: query
          description: Whether to scroll back to the top after reaching the bottom of the
            page.
        - name: scroll_back_algorithm
          schema: &a220
            description: "How to scroll back: `once` scrolls back in one move, `repeat`
              repeats the same steps the page was scrolled down with."
            type: string
            enum:
              - once
              - repeat
          in: query
          description: "How to scroll back: `once` scrolls back in one move, `repeat`
            repeats the same steps the page was scrolled down with."
        - name: scroll_back_after_duration
          schema: &a221
            description: Scrolls back after the given time in milliseconds. Can't be used
              with `scroll_stop_after_duration`.
            type: integer
          in: query
          description: Scrolls back after the given time in milliseconds. Can't be used
            with `scroll_stop_after_duration`.
        - name: scroll_stop_after_duration
          schema: &a222
            description: Stops scrolling after the given time in milliseconds. Requires
              `scroll_back=false`.
            type: integer
          in: query
          description: Stops scrolling after the given time in milliseconds. Requires
            `scroll_back=false`.
        - name: scroll_to_end_after
          schema: &a223
            description: Scrolls to the end of the page in one scroll after the given time
              in milliseconds. Only for `scenario=scroll`.
            type: integer
          in: query
          description: Scrolls to the end of the page in one scroll after the given time
            in milliseconds. Only for `scenario=scroll`.
        - name: scroll_till_selector
          schema: &a224
            description: A selector of the element to scroll to; the scrolling stops when
              the element is visible.
            type: string
          in: query
          description: A selector of the element to scroll to; the scrolling stops when
            the element is visible.
        - name: scroll_till_selector_adjust_top
          schema: &a225
            description: How many pixels to shift the element given in
              `scroll_till_selector` from the top of the viewport.
            type: integer
          in: query
          description: How many pixels to shift the element given in
            `scroll_till_selector` from the top of the viewport.
        - name: scroll_try_navigate
          schema: &a226
            description: Navigates to another page while scrolling and records the opened
              page.
            type: boolean
          in: query
          description: Navigates to another page while scrolling and records the opened
            page.
        - name: scroll_navigate_after
          schema: &a227
            description: The time in milliseconds after which to navigate. By default, half
              of the duration.
            type: integer
          in: query
          description: The time in milliseconds after which to navigate. By default, half
            of the duration.
        - name: scroll_navigate_to_url
          schema: &a228
            description: The URL to navigate to while scrolling.
            type: string
            format: uri
          in: query
          description: The URL to navigate to while scrolling.
        - name: scroll_navigate_link_hints
          schema: &a229
            description: When `scroll_navigate_to_url` is not set, the keywords to choose an
              internal link to navigate to by its text.
            type: array
            items:
              type: string
          in: query
          description: When `scroll_navigate_to_url` is not set, the keywords to choose an
            internal link to navigate to by its text.
      responses:
        "200":
          $ref: "#/components/responses/AnimationResult"
        "400":
          $ref: "#/components/responses/ErrorResponse"
        "500":
          $ref: "#/components/responses/ErrorResponse"
    post:
      summary: Record a video or an animated GIF of a website, HTML, or Markdown
      description: >
        Record a short video or an animated GIF of a website by its URL, or of
        the rendered HTML or Markdown, optionally scrolling the page.
      operationId: recordAnimation
      requestBody:
        description: The recording options and the access key.
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  properties:
                    access_key:
                      type: string
                - $ref: "#/components/schemas/AnimationOptions"
        required: true
      responses:
        "200":
          $ref: "#/components/responses/AnimationResult"
        "400":
          $ref: "#/components/responses/ErrorResponse"
        "500":
          $ref: "#/components/responses/ErrorResponse"
  /bulk:
    post:
      summary: Prepare or execute up to 20 screenshot requests at once
      description: >
        Returns a URL of the /take method for each request. When `execute` is
        set, the requests are also executed and their statuses are returned.
      operationId: bulk
      requestBody:
        description: The requests to prepare or execute, and the options they share.
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/BulkOptions"
        required: true
      responses:
        "200":
          description: >
            A URL for each request, and the status of its execution when
            `execute` is set. The list is returned either as it is or in the
            `responses` property of an object: accept both.
          content:
            application/json:
              schema:
                oneOf:
                  - type: array
                    items:
                      $ref: "#/components/schemas/BulkResult"
                  - type: object
                    properties:
                      responses:
                        type: array
                        items:
                          $ref: "#/components/schemas/BulkResult"
        "400":
          $ref: "#/components/responses/ErrorResponse"
        "500":
          $ref: "#/components/responses/ErrorResponse"
  /usage:
    get:
      summary: Get API usage metrics
      description: Returns the API usage metrics for the specified access key.
      operationId: apiUsageMetrics
      responses:
        "200":
          description: A successful result with the API usage metrics.
          content:
            application/json:
              schema:
                type: object
                properties:
                  total:
                    type: integer
                  available:
                    type: integer
                  used:
                    type: integer
                  concurrency:
                    type: object
                    description: The current one-minute bucket of requests.
                    properties:
                      limit:
                        type: integer
                      remaining:
                        type: integer
                      reset:
                        type: integer
                        format: int64
                        description: The time the bucket resets at, a UNIX timestamp in nanoseconds.
        "400":
          $ref: "#/components/responses/ErrorResponse"
        "500":
          $ref: "#/components/responses/ErrorResponse"
  /devices:
    get:
      summary: The list of supported devices
      description: >
        Returns a list of viewport devices that can be used for rendering
        screenshots.

        Use `id`of the device as the `viewport_device` option in the `/take`
        method.
      operationId: devices
      responses:
        "200":
          description: The list of supported devices.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/ViewportDevice"
        "400":
          $ref: "#/components/responses/ErrorResponse"
        "500":
          $ref: "#/components/responses/ErrorResponse"
components:
  schemas:
    BulkOptions:
      type: object
      required:
        - requests
      properties:
        access_key:
          type: string
        execute:
          type: boolean
        optimize:
          type: boolean
        options:
          $ref: "#/components/schemas/ScreenshotOptions"
        requests:
          type: array
          minItems: 1
          maxItems: 20
          items:
            $ref: "#/components/schemas/ScreenshotOptions"
    BulkResult:
      type: object
      required:
        - url
      properties:
        url:
          type: string
          format: uri
        response:
          type: object
          description: Returned only when the requests are executed.
          properties:
            is_successful:
              type: boolean
            status:
              type: integer
            statusText:
              type: string
            body:
              description: The error returned for the request, when it failed.
              allOf:
                - $ref: "#/components/schemas/Error"
    ViewportDevice:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        userAgent:
          type: string
        viewport:
          type: object
          properties:
            width:
              type: integer
            height:
              type: integer
            deviceScaleFactor:
              type: integer
            isMobile:
              type: boolean
            hasTouch:
              type: boolean
            isLandscape:
              type: boolean
    ScreenshotOptions:
      type: object
      properties:
        url: *a1
        html: *a2
        markdown: *a3
        response_type: *a4
        attachment_name: *a5
        dark_mode: *a6
        reduced_motion: *a7
        reduce_motion: *a8
        media_type: *a9
        scripts: *a10
        scripts_wait_until: *a11
        styles: *a12
        hide_selectors: *a13
        hover: *a14
        error_on_hover_selector_not_found: *a15
        click: *a16
        error_on_click_selector_not_found: *a17
        include_shadow_dom: *a18
        bypass_csp: *a19
        viewport_device: *a20
        viewport_width: *a21
        viewport_height: *a22
        device_scale_factor: *a23
        viewport_mobile: *a24
        viewport_has_touch: *a25
        viewport_landscape: *a26
        geolocation_latitude: *a27
        geolocation_longitude: *a28
        geolocation_accuracy: *a29
        ip_country_code: *a30
        block_cookie_banners: *a31
        block_banners_by_heuristics: *a32
        block_chats: *a33
        block_ads: *a34
        block_trackers: *a35
        block_requests: *a36
        block_resources: *a37
        cache: *a38
        cache_ttl: *a39
        cache_key: *a40
        user_agent: *a41
        authorization: *a42
        headers: *a43
        cookies: *a44
        proxy: *a45
        proxy_bypass_hosts: *a46
        time_zone: *a47
        delay: *a48
        timeout: *a49
        navigation_timeout: *a50
        wait_until: *a51
        wait_for_selector: *a52
        wait_for_selector_algorithm: *a53
        fail_if_content_contains: *a54
        fail_if_content_missing: *a55
        fail_if_request_failed: *a56
        ignore_host_errors: *a57
        request_gpu_rendering: *a58
        fail_if_gpu_rendering_fails: *a59
        async: *a60
        webhook_url: *a61
        webhook_sign: *a62
        webhook_errors: *a63
        external_identifier: *a64
        store: *a65
        storage_bucket: *a66
        storage_path: *a67
        storage_endpoint: *a68
        storage_access_key_id: *a69
        storage_secret_access_key: *a70
        storage_acl: *a71
        storage_class: *a72
        storage_return_location: *a73
        metadata_fonts: *a74
        metadata_content: *a75
        metadata_content_format: *a76
        metadata_page_title: *a77
        metadata_open_graph: *a78
        metadata_http_response_status_code: *a79
        metadata_http_response_headers: *a80
        metadata_icon: *a81
        selector: *a82
        selector_algorithm: *a83
        selector_scroll_into_view: *a84
        error_on_selector_not_found: *a85
        scroll_into_view: *a86
        scroll_into_view_adjust_top: *a87
        format: *a88
        clip_x: *a89
        clip_y: *a90
        clip_width: *a91
        clip_height: *a92
        image_quality: *a93
        image_width: *a94
        image_height: *a95
        omit_background: *a96
        full_page: *a97
        full_page_scroll: *a98
        full_page_scroll_delay: *a99
        full_page_scroll_by: *a100
        full_page_max_height: *a101
        full_page_algorithm: *a102
        full_page_slices: *a103
        full_page_slice_height: *a104
        full_page_slice_overlap_height: *a105
        capture_beyond_viewport: *a106
        pdf_print_background: *a107
        pdf_fit_one_page: *a108
        pdf_landscape: *a109
        pdf_paper_format: *a110
        pdf_margin: *a111
        pdf_margin_top: *a112
        pdf_margin_right: *a113
        pdf_margin_bottom: *a114
        pdf_margin_left: *a115
        metadata_image_size: *a116
        vision_prompt: *a117
        vision_max_tokens: *a118
        openai_api_key: *a119
    AnimationOptions:
      type: object
      properties:
        url: *a120
        html: *a121
        markdown: *a122
        response_type: *a123
        attachment_name: *a124
        dark_mode: *a125
        reduced_motion: *a126
        reduce_motion: *a127
        media_type: *a128
        scripts: *a129
        scripts_wait_until: *a130
        styles: *a131
        hide_selectors: *a132
        hover: *a133
        error_on_hover_selector_not_found: *a134
        click: *a135
        error_on_click_selector_not_found: *a136
        include_shadow_dom: *a137
        bypass_csp: *a138
        viewport_device: *a139
        viewport_width: *a140
        viewport_height: *a141
        device_scale_factor: *a142
        viewport_mobile: *a143
        viewport_has_touch: *a144
        viewport_landscape: *a145
        geolocation_latitude: *a146
        geolocation_longitude: *a147
        geolocation_accuracy: *a148
        ip_country_code: *a149
        block_cookie_banners: *a150
        block_banners_by_heuristics: *a151
        block_chats: *a152
        block_ads: *a153
        block_trackers: *a154
        block_requests: *a155
        block_resources: *a156
        cache: *a157
        cache_ttl: *a158
        cache_key: *a159
        user_agent: *a160
        authorization: *a161
        headers: *a162
        cookies: *a163
        proxy: *a164
        proxy_bypass_hosts: *a165
        time_zone: *a166
        delay: *a167
        timeout: *a168
        navigation_timeout: *a169
        wait_until: *a170
        wait_for_selector: *a171
        wait_for_selector_algorithm: *a172
        fail_if_content_contains: *a173
        fail_if_content_missing: *a174
        fail_if_request_failed: *a175
        ignore_host_errors: *a176
        request_gpu_rendering: *a177
        fail_if_gpu_rendering_fails: *a178
        async: *a179
        webhook_url: *a180
        webhook_sign: *a181
        webhook_errors: *a182
        external_identifier: *a183
        store: *a184
        storage_bucket: *a185
        storage_path: *a186
        storage_endpoint: *a187
        storage_access_key_id: *a188
        storage_secret_access_key: *a189
        storage_acl: *a190
        storage_class: *a191
        storage_return_location: *a192
        metadata_fonts: *a193
        metadata_content: *a194
        metadata_content_format: *a195
        metadata_page_title: *a196
        metadata_open_graph: *a197
        metadata_http_response_status_code: *a198
        metadata_http_response_headers: *a199
        metadata_icon: *a200
        format: *a201
        duration: *a202
        omit_background: *a203
        width: *a204
        height: *a205
        aspect_ratio: *a206
        clip_x: *a207
        clip_y: *a208
        clip_width: *a209
        clip_height: *a210
        scenario: *a211
        scroll_duration: *a212
        scroll_delay: *a213
        scroll_by: *a214
        scroll_easing: *a215
        scroll_start_immediately: *a216
        scroll_start_delay: *a217
        scroll_complete: *a218
        scroll_back: *a219
        scroll_back_algorithm: *a220
        scroll_back_after_duration: *a221
        scroll_stop_after_duration: *a222
        scroll_to_end_after: *a223
        scroll_till_selector: *a224
        scroll_till_selector_adjust_top: *a225
        scroll_try_navigate: *a226
        scroll_navigate_after: *a227
        scroll_navigate_to_url: *a228
        scroll_navigate_link_hints: *a229
    Error:
      type: object
      required:
        - is_successful
        - error_code
        - error_message
      properties:
        is_successful:
          type: boolean
        error_code:
          type: string
        error_message:
          type: string
        error_details:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
              path:
                type: string
              type:
                type: string
              context:
                type: object
                properties:
                  label:
                    type: string
                  value:
                    type: string
                  key:
                    type: string
  requestBodies:
    Screenshot:
      description: The rendering options.
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ScreenshotOptions"
  securitySchemes:
    accessKeyQuery:
      type: apiKey
      name: access_key
      in: query
    accessKeyHeader:
      type: apiKey
      name: X-Access-Key
      in: header
  responses:
    ErrorResponse:
      description: An error response.
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/Error"
    ScreenshotResult:
      description: A successful rendering result of website, HTML, or Markdown.
      content:
        image/png:
          schema:
            type: string
            format: binary
        image/jpeg:
          schema:
            type: string
            format: binary
        image/webp:
          schema:
            type: string
            format: binary
        image/gif:
          schema:
            type: string
            format: binary
        image/jp2:
          schema:
            type: string
            format: binary
        image/tiff:
          schema:
            type: string
            format: binary
        image/avif:
          schema:
            type: string
            format: binary
        image/heif:
          schema:
            type: string
            format: binary
        application/pdf:
          schema:
            type: string
            format: binary
        text/html:
          schema:
            type: string
            format: text
        text/markdown:
          schema:
            type: string
            format: text
    AnimationResult:
      description: A successful recording of a website, HTML, or Markdown.
      content:
        video/mp4:
          schema:
            type: string
            format: binary
        video/webm:
          schema:
            type: string
            format: binary
        video/quicktime:
          schema:
            type: string
            format: binary
        video/x-msvideo:
          schema:
            type: string
            format: binary
        image/gif:
          schema:
            type: string
            format: binary
security:
  - accessKeyQuery: []
  - accessKeyHeader: []
