{
  "openapi": "3.0.1",
  "info": {
    "title": "SEO Site Audit — Website Crawler & Lighthouse",
    "description": "SEO site audit crawler: status codes, titles, meta, H1, canonicals, indexability, broken links, duplicates, speed, onpage score & Lighthouse.",
    "version": "1.0",
    "x-build-id": "i5zOk0WEKcZ5y8ddr"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/cheapapi~seo-site-audit/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-cheapapi-seo-site-audit",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/cheapapi~seo-site-audit/runs": {
      "post": {
        "operationId": "runs-sync-cheapapi-seo-site-audit",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/cheapapi~seo-site-audit/run-sync": {
      "post": {
        "operationId": "run-sync-cheapapi-seo-site-audit",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "startUrls"
        ],
        "properties": {
          "startUrls": {
            "title": "Websites",
            "type": "array",
            "description": "Websites to audit — one per row. A domain (example.com) or a URL; a URL with a path (https://example.com/blog/) is used as the crawl starting point. To paste many sites at once use \"Bulk edit\", or link a text file with one URL per line (up to 100 websites per run).",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxPagesPerSite": {
            "title": "Max pages per website",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "How many pages to crawl and audit per website. Delivered pages pay the page price; pages that are crawled but not delivered (filters, URL patterns) cost $0.0009 each.",
            "default": 100
          },
          "runLighthouse": {
            "title": "Run Lighthouse audit",
            "type": "boolean",
            "description": "Also run a Google Lighthouse audit (performance, accessibility, best practices, SEO scores and Core Web Vitals) on the most important pages — the start page by default. Charged per tested page; a test that runs but returns no usable report (e.g. the page does not load) costs $0.0065 (\"Lighthouse test without result\").",
            "default": false
          },
          "enableJavaScript": {
            "title": "JavaScript rendering",
            "type": "boolean",
            "description": "Execute JavaScript like a browser before auditing. Turn on for single-page apps (React, Vue, Angular…). Extra fee per crawled page (also for crawled pages that are not delivered).",
            "default": false
          },
          "includeUrlPatterns": {
            "title": "Only URLs matching",
            "type": "array",
            "description": "Crawl and deliver only URLs whose path matches one of these patterns, e.g. \"/blog/\", \"/products/*.html$\" or a full URL like \"https://example.com/docs/\". The start page is still visited to discover links but is only delivered if it matches; crawled pages that do not match cost $0.0009 each (\"Crawled page not delivered\"). Max 50 patterns.",
            "items": {
              "type": "string"
            }
          },
          "excludeUrlPatterns": {
            "title": "Exclude URLs matching",
            "type": "array",
            "description": "Never crawl or deliver URLs matching these patterns, e.g. \"/cart/\", \"/tag/\", \"*?sort=\", \"*.pdf$\". Exclusions always win over \"Only URLs matching\". A matching page that is still reached (e.g. the start page) is not delivered and costs $0.0009 (\"Crawled page not delivered\"). Max 50 patterns.",
            "items": {
              "type": "string"
            }
          },
          "crawlSpeed": {
            "title": "Crawl speed",
            "enum": [
              "gentle",
              "normal",
              "fast",
              "fastest"
            ],
            "type": "string",
            "description": "How fast the crawler requests pages from the website. \"Normal\" pauses 2 seconds between requests; use \"Gentle\" for small or fragile servers and \"Fast\"/\"Fastest\" only for sites you own or that can handle the load. \"Delay between requests\" overrides this.",
            "default": "normal"
          },
          "maxCrawlDepth": {
            "title": "Max crawl depth",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "How many clicks away from the start page to crawl (0 = start page only). Empty = no limit."
          },
          "crawlDelayMs": {
            "title": "Exact delay between requests (ms)",
            "minimum": 0,
            "maximum": 60000,
            "type": "integer",
            "description": "Exact pause between requests to the website, in milliseconds (0–60,000). Overrides \"Crawl speed\". Empty = use \"Crawl speed\"."
          },
          "maxCrawlMinutes": {
            "title": "Max crawl time (minutes)",
            "minimum": 1,
            "maximum": 1440,
            "type": "integer",
            "description": "If the crawl is not finished after this time, it is stopped and the pages crawled so far are delivered.",
            "default": 60
          },
          "priorityUrls": {
            "title": "Priority URLs",
            "type": "array",
            "description": "Up to 20 URLs that are crawled first (must belong to one of the websites).",
            "items": {
              "type": "string"
            }
          },
          "respectSitemap": {
            "title": "Follow sitemap order",
            "type": "boolean",
            "description": "Crawl pages in the order of the website's XML sitemap.",
            "default": false
          },
          "customSitemapUrl": {
            "title": "Custom sitemap URL",
            "type": "string",
            "description": "Use this sitemap instead of the one listed in robots.txt (e.g. https://example.com/sitemap_pages.xml)."
          },
          "crawlSitemapOnly": {
            "title": "Crawl sitemap pages only",
            "type": "boolean",
            "description": "Only audit URLs listed in the sitemap; links on pages are not followed.",
            "default": false
          },
          "includeSubdomains": {
            "title": "Include subdomains",
            "type": "boolean",
            "description": "Also crawl subdomains (blog.example.com, shop.example.com…).",
            "default": false
          },
          "allowedSubdomains": {
            "title": "Only these subdomains",
            "type": "array",
            "description": "Crawl only these subdomains (e.g. blog.example.com). Leave empty for all.",
            "items": {
              "type": "string"
            }
          },
          "excludedSubdomains": {
            "title": "Excluded subdomains",
            "type": "array",
            "description": "Subdomains to skip. Needs \"Include subdomains\".",
            "items": {
              "type": "string"
            }
          },
          "respectRobotsTxt": {
            "title": "Respect robots.txt",
            "type": "boolean",
            "description": "Obey the website's robots.txt rules. Turn off to audit pages blocked for crawlers (only on sites you own or may audit).",
            "default": true
          },
          "customRobotsTxt": {
            "title": "Custom robots.txt rules",
            "type": "string",
            "description": "Extra robots.txt rules for the crawl, e.g. \"User-agent: *\\nDisallow: /cart/\"."
          },
          "robotsTxtMode": {
            "title": "Custom robots.txt mode",
            "enum": [
              "merge",
              "override"
            ],
            "type": "string",
            "description": "Merge your rules with the website's robots.txt or replace it."
          },
          "loadResources": {
            "title": "Load images, scripts & CSS",
            "type": "boolean",
            "description": "Load page resources to find broken images/scripts/CSS, measure image sizes and render-blocking resources. Included in the page price.",
            "default": true
          },
          "enableBrowserRendering": {
            "title": "Full browser rendering (Core Web Vitals)",
            "type": "boolean",
            "description": "Render pages in a real browser to measure Core Web Vitals (LCP, CLS, FID) per page. Includes JavaScript rendering. Extra fee per crawled page (also for crawled pages that are not delivered).",
            "default": false
          },
          "enableXhr": {
            "title": "Allow XHR requests",
            "type": "boolean",
            "description": "Let pages load data with XHR/fetch during rendering. Needs JavaScript rendering.",
            "default": false
          },
          "disableCookiePopup": {
            "title": "Hide cookie banners",
            "type": "boolean",
            "description": "Try to close cookie consent pop-ups during rendering.",
            "default": false
          },
          "supportCookies": {
            "title": "Accept cookies",
            "type": "boolean",
            "description": "Keep cookies between requests (for sites that need a session cookie).",
            "default": false
          },
          "customJavaScript": {
            "title": "Custom JavaScript",
            "type": "string",
            "description": "Snippet executed on every page (max 2,000 characters, 700 ms). Its result is returned in \"customJsResult\". Example: meta = {}; meta.url = document.URL; meta;"
          },
          "userAgent": {
            "title": "Custom user agent",
            "type": "string",
            "description": "User-Agent header for the crawler and Lighthouse (max 254 characters). Empty = standard crawler user agent."
          },
          "acceptLanguage": {
            "title": "Accept-Language header",
            "type": "string",
            "description": "Language sent to the website, e.g. \"en-US\" or \"de-DE,de;q=0.9\"."
          },
          "device": {
            "title": "Device",
            "enum": [
              "desktop",
              "mobile",
              "tablet"
            ],
            "type": "string",
            "description": "Screen preset used for rendering. Works with \"Full browser rendering\"."
          },
          "screenWidth": {
            "title": "Screen width (px)",
            "minimum": 240,
            "maximum": 9999,
            "type": "integer",
            "description": "Custom screen width in pixels (240–9999) for Lighthouse, and for the crawl with \"Full browser rendering\"."
          },
          "screenHeight": {
            "title": "Screen height (px)",
            "minimum": 240,
            "maximum": 9999,
            "type": "integer",
            "description": "Custom screen height in pixels (240–9999) for Lighthouse, and for the crawl with \"Full browser rendering\"."
          },
          "screenScaleFactor": {
            "title": "Screen scale factor",
            "minimum": 0.5,
            "maximum": 3,
            "type": "number",
            "description": "Device pixel ratio, 0.5–3, for Lighthouse, and for the crawl with \"Full browser rendering\"."
          },
          "useExtraCrawlerNetwork": {
            "title": "Use extra crawler network",
            "type": "boolean",
            "description": "Crawl through an additional pool of IP addresses — helps with sites that block or rate-limit crawlers.",
            "default": false
          },
          "returnSlowPages": {
            "title": "Keep very slow pages",
            "type": "boolean",
            "description": "Deliver pages that take longer than 120 seconds to load (with the data collected so far) instead of marking them as failed.",
            "default": false
          },
          "titleMinLength": {
            "title": "Title too short below (characters)",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "A page title shorter than this number of characters is reported as \"Title too short\". The default of 30 characters suits most sites.",
            "default": 30
          },
          "titleMaxLength": {
            "title": "Title too long above (characters)",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "A page title longer than this number of characters is reported as \"Title too long\", because search results usually cut it off. The default is 65 characters.",
            "default": 65
          },
          "minPageSizeBytes": {
            "title": "Small page below (bytes)",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "An HTML page smaller than this many bytes is reported as \"Very small page\", which often means an empty or error page. The default is 1,024 bytes (1 KB).",
            "default": 1024
          },
          "maxPageSizeBytes": {
            "title": "Large page above (bytes)",
            "minimum": 1,
            "maximum": 100000000,
            "type": "integer",
            "description": "An HTML page larger than this many bytes is reported as \"Large page size\". The default is 1,048,576 bytes (1 MB).",
            "default": 1048576
          },
          "minCharacterCount": {
            "title": "Thin content below (characters)",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "A page with fewer visible text characters than this is reported as \"Thin content\". The default is 1,024 characters.",
            "default": 1024
          },
          "maxCharacterCount": {
            "title": "Very long content above (characters)",
            "minimum": 1,
            "maximum": 100000000,
            "type": "integer",
            "description": "A page with more visible text characters than this is reported as \"Very long content\". The default is 256,000 characters.",
            "default": 256000
          },
          "minTextToHtmlRatio": {
            "title": "Low text-to-HTML ratio below",
            "minimum": 0,
            "maximum": 1,
            "type": "number",
            "description": "A page whose visible text is a smaller share of its HTML than this ratio (0–1) is reported as \"Low text-to-HTML ratio\". The default is 0.1 (10%).",
            "default": 0.1
          },
          "maxTextToHtmlRatio": {
            "title": "High text-to-HTML ratio above",
            "minimum": 0,
            "maximum": 1,
            "type": "number",
            "description": "A page whose visible text is a larger share of its HTML than this ratio (0–1) is reported as \"High text-to-HTML ratio\". The default is 0.9 (90%).",
            "default": 0.9
          },
          "maxLoadTimeMs": {
            "title": "Slow page above (ms)",
            "minimum": 1,
            "maximum": 600000,
            "type": "integer",
            "description": "A page that takes longer than this many milliseconds to load is reported as \"Slow page load\". The default is 3,000 ms (3 seconds).",
            "default": 3000
          },
          "maxWaitingTimeMs": {
            "title": "Slow server response above (ms)",
            "minimum": 1,
            "maximum": 600000,
            "type": "integer",
            "description": "A page whose server takes longer than this many milliseconds to send the first byte (TTFB) is reported as \"Slow server response\". The default is 1,500 ms.",
            "default": 1500
          },
          "minReadabilityScore": {
            "title": "Low readability below",
            "minimum": 0,
            "maximum": 1000,
            "type": "number",
            "description": "A page whose Flesch-Kincaid readability score is below this value is reported as \"Low readability\" (higher scores mean easier text). The default is 15.",
            "default": 15
          },
          "minTitleRelevance": {
            "title": "Title not relevant below",
            "minimum": 0,
            "maximum": 1,
            "type": "number",
            "description": "A title whose relevance to the page content (0–1) is below this value is reported as \"Title not relevant to page content\". The default is 0.3.",
            "default": 0.3
          },
          "minDescriptionRelevance": {
            "title": "Description not relevant below",
            "minimum": 0,
            "maximum": 1,
            "type": "number",
            "description": "A meta description whose relevance to the page content (0–1) is below this value is reported as \"Meta description not relevant to page content\". The default is 0.2.",
            "default": 0.2
          },
          "minKeywordsRelevance": {
            "title": "Meta keywords not relevant below",
            "minimum": 0,
            "maximum": 1,
            "type": "number",
            "description": "A meta keywords tag whose relevance to the page content (0–1) is below this value is reported as \"Meta keywords not relevant to page content\". The default is 0.6.",
            "default": 0.6
          },
          "disabledPageChecks": {
            "title": "Skip these page checks",
            "type": "array",
            "description": "Checks that are not run and do not affect the onpage score.",
            "items": {
              "type": "string",
              "enum": [
                "no_content_encoding",
                "high_loading_time",
                "is_redirect",
                "is_4xx_code",
                "is_5xx_code",
                "is_broken",
                "is_www",
                "is_https",
                "is_http",
                "high_waiting_time",
                "has_micromarkup",
                "has_micromarkup_errors",
                "no_doctype",
                "has_html_doctype",
                "canonical",
                "no_encoding_meta_tag",
                "no_h1_tag",
                "https_to_http_links",
                "size_greater_than_3mb",
                "meta_charset_consistency",
                "has_meta_refresh_redirect",
                "has_render_blocking_resources",
                "redirect_chain",
                "low_content_rate",
                "high_content_rate",
                "low_character_count",
                "high_character_count",
                "small_page_size",
                "large_page_size",
                "low_readability_rate",
                "irrelevant_description",
                "irrelevant_title",
                "irrelevant_meta_keywords",
                "title_too_long",
                "has_meta_title",
                "title_too_short",
                "deprecated_html_tags",
                "duplicate_meta_tags",
                "duplicate_title_tag",
                "no_image_alt",
                "no_image_title",
                "no_description",
                "no_title",
                "no_favicon",
                "seo_friendly_url",
                "flash",
                "frame",
                "lorem_ipsum",
                "seo_friendly_url_characters_check",
                "seo_friendly_url_dynamic_check",
                "seo_friendly_url_keywords_check",
                "seo_friendly_url_relative_length_check",
                "recursive_canonical",
                "canonical_chain",
                "canonical_to_redirect",
                "canonical_to_broken",
                "has_links_to_redirects",
                "is_orphan_page",
                "is_link_relation_conflict",
                "has_misspelling"
              ],
              "enumTitles": [
                "No content encoding",
                "High loading time",
                "Is redirect",
                "Is 4xx code",
                "Is 5xx code",
                "Is broken",
                "Is www",
                "Is https",
                "Is http",
                "High waiting time",
                "Has micromarkup",
                "Has micromarkup errors",
                "No doctype",
                "Has html doctype",
                "Canonical",
                "No encoding meta tag",
                "No h1 tag",
                "Https to http links",
                "Size greater than 3mb",
                "Meta charset consistency",
                "Has meta refresh redirect",
                "Has render blocking resources",
                "Redirect chain",
                "Low content rate",
                "High content rate",
                "Low character count",
                "High character count",
                "Small page size",
                "Large page size",
                "Low readability rate",
                "Irrelevant description",
                "Irrelevant title",
                "Irrelevant meta keywords",
                "Title too long",
                "Has meta title",
                "Title too short",
                "Deprecated html tags",
                "Duplicate meta tags",
                "Duplicate title tag",
                "No image alt",
                "No image title",
                "No description",
                "No title",
                "No favicon",
                "Seo friendly url",
                "Flash",
                "Frame",
                "Lorem ipsum",
                "Seo friendly url characters check",
                "Seo friendly url dynamic check",
                "Seo friendly url keywords check",
                "Seo friendly url relative length check",
                "Recursive canonical",
                "Canonical chain",
                "Canonical to redirect",
                "Canonical to broken",
                "Has links to redirects",
                "Is orphan page",
                "Is link relation conflict",
                "Has misspelling"
              ]
            }
          },
          "disabledSiteChecks": {
            "title": "Skip these site-wide checks",
            "type": "array",
            "description": "Site-wide tests to skip.",
            "items": {
              "type": "string",
              "enum": [
                "test_page_not_found",
                "test_canonicalization",
                "test_https_redirect",
                "test_directory_browsing"
              ],
              "enumTitles": [
                "404 page test",
                "Canonicalization test",
                "HTTPS redirect test",
                "Directory browsing test"
              ]
            }
          },
          "forceSiteWideChecks": {
            "title": "Run site-wide checks for 1-page audits",
            "type": "boolean",
            "description": "Also run site-wide checks (sitemap, robots.txt, redirects, 404 page) when only one page is audited.",
            "default": false
          },
          "checkWwwRedirect": {
            "title": "Check www redirect",
            "type": "boolean",
            "description": "Test whether www and non-www versions redirect to one another.",
            "default": false
          },
          "validateStructuredData": {
            "title": "Validate structured data",
            "type": "boolean",
            "description": "Check schema.org / microdata markup for errors.",
            "default": false
          },
          "checkSpelling": {
            "title": "Check spelling",
            "type": "boolean",
            "description": "Find misspelled words on each page (see \"misspelledWords\").",
            "default": false
          },
          "spellingLanguage": {
            "title": "Spelling language",
            "enum": [
              "hy",
              "eu",
              "bg",
              "ca",
              "hr",
              "cs",
              "da",
              "nl",
              "en",
              "eo",
              "et",
              "fo",
              "fa",
              "fr",
              "fy",
              "gl",
              "ka",
              "de",
              "el",
              "he",
              "hu",
              "is",
              "ia",
              "ga",
              "it",
              "rw",
              "la",
              "lv",
              "lt",
              "mk",
              "mn",
              "ne",
              "nb",
              "nn",
              "pl",
              "pt",
              "ro",
              "gd",
              "sr",
              "sk",
              "sl",
              "es",
              "sv",
              "tr",
              "tk",
              "uk",
              "vi"
            ],
            "type": "string",
            "description": "Language for the spelling check. Empty = detected automatically."
          },
          "spellingExceptions": {
            "title": "Spelling exceptions",
            "type": "array",
            "description": "Words that are never reported as misspelled (brand names…), max 1,000.",
            "items": {
              "type": "string"
            }
          },
          "includeBrokenLinkDetails": {
            "title": "List broken links per page",
            "type": "boolean",
            "description": "Add the list of broken link targets (URL, status code, anchor text) to each page.",
            "default": true
          },
          "onlyPagesWithIssues": {
            "title": "Only pages with issues",
            "type": "boolean",
            "description": "Deliver only pages that have at least one issue. Crawled pages without issues are still crawled and cost $0.0009 each as \"Crawled page not delivered\" (instead of the full page price).",
            "default": false
          },
          "includeAllChecks": {
            "title": "Include all check results",
            "type": "boolean",
            "description": "Add the full \"checks\" object (60+ true/false checks) to each page.",
            "default": true
          },
          "lighthousePagesPerSite": {
            "title": "Lighthouse pages per website",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many pages per website get a Lighthouse audit (1 = the start page).",
            "default": 1
          },
          "lighthouseDevice": {
            "title": "Lighthouse device",
            "enum": [
              "mobile",
              "desktop"
            ],
            "type": "string",
            "description": "Mobile (default, like Google's mobile-first index) or desktop.",
            "default": "mobile"
          },
          "lighthouseCategories": {
            "title": "Lighthouse categories",
            "type": "array",
            "description": "Categories to test. Empty = all four.",
            "items": {
              "type": "string",
              "enum": [
                "performance",
                "accessibility",
                "best_practices",
                "seo"
              ],
              "enumTitles": [
                "Performance",
                "Accessibility",
                "Best practices",
                "SEO"
              ]
            }
          },
          "lighthouseAudits": {
            "title": "Only these Lighthouse audits",
            "type": "array",
            "description": "Run only specific audits, e.g. \"metrics/largest-contentful-paint\". Empty = all.",
            "items": {
              "type": "string"
            }
          },
          "lighthouseLanguage": {
            "title": "Lighthouse report language",
            "type": "string",
            "description": "Language code for audit titles, e.g. \"en\", \"de\", \"es\". Default \"en\".",
            "default": "en"
          },
          "lighthouseVersion": {
            "title": "Lighthouse version",
            "type": "string",
            "description": "Specific Lighthouse version (e.g. \"12.6.0\"). Empty = latest."
          },
          "lighthouseThrottling": {
            "title": "Network throttling",
            "enum": [
              "no_throttling",
              "fast_4g",
              "slow_4g",
              "regular_3g",
              "pc"
            ],
            "type": "string",
            "description": "Simulated network speed. Empty = Lighthouse default."
          },
          "lighthouseThrottlingMethod": {
            "title": "Throttling method",
            "enum": [
              "simulate",
              "devtools",
              "provided"
            ],
            "type": "string",
            "description": "How throttling is applied."
          },
          "lighthouseCpuSlowdown": {
            "title": "CPU slowdown multiplier",
            "minimum": 1,
            "maximum": 4,
            "type": "number",
            "description": "1–4, used with the DevTools throttling method."
          },
          "monitorChanges": {
            "title": "Track changes since the last run",
            "type": "boolean",
            "description": "Save a compact fingerprint of every crawled page (status, score, title, meta description, H1, canonical, indexability, word count, issues) in a named key-value store, and mark each page as new, changed or unchanged compared with the previous run (\"changedSinceLastRun\", \"changeType\", \"changedFields\"). The first run creates the baseline.",
            "default": true
          },
          "monitorStoreName": {
            "title": "Monitoring store name",
            "type": "string",
            "description": "Named key-value store in your account that keeps the page fingerprints (lowercase letters, digits, hyphens). Use different names to keep separate histories, e.g. one per client.",
            "default": "seo-site-audit-monitor"
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}