{
  "openapi": "3.0.1",
  "info": {
    "title": "Complete SEO Audit Tool - Website Crawler with 0-100 Scores",
    "description": "SEO checker, analyzer and website audit tool: crawl a site and get a 0-100 SEO score for every page, plus a site audit report. Technical and on-page SEO: meta tags, headings, Core Web Vitals, broken links, images and schema, each issue with its priority and a fix hint, as JSON.",
    "version": "0.0",
    "x-build-id": "FAWaWIeTYs9ZE1fh2"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/smart-digital~complete-seo-audit-tool/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-smart-digital-complete-seo-audit-tool",
        "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/smart-digital~complete-seo-audit-tool/runs": {
      "post": {
        "operationId": "runs-sync-smart-digital-complete-seo-audit-tool",
        "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/smart-digital~complete-seo-audit-tool/run-sync": {
      "post": {
        "operationId": "run-sync-smart-digital-complete-seo-audit-tool",
        "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": "Start URLs",
            "minItems": 1,
            "type": "array",
            "description": "URLs to audit. Accepts an array of strings (e.g. [\"https://example.com\"]) or objects with a url property (e.g. [{\"url\": \"https://example.com\"}]). An address written without its scheme (www.example.com) is read as https://; an entry that is not a web address is left out and named in the run's status.",
            "default": [
              "https://example.com"
            ],
            "items": {
              "type": "string"
            }
          },
          "crawlPages": {
            "title": "Crawl additional pages",
            "type": "boolean",
            "description": "When enabled, the Actor follows internal links from the Start URLs and audits multiple pages of the same site (up to Max Pages). When disabled, only the Start URLs are audited.",
            "default": true
          },
          "maxPages": {
            "title": "Max pages per site",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of pages audited per site (the site a Start URL lands on), Start URLs included. Every Start URL that leads to an HTML page is audited; Start URLs on the same site share this budget. Links to files (images, PDFs, feeds) are never followed or billed. Keep it low to control cost and duration. Recommended: 5 for a quick preview, 20 for a standard audit, 50+ for a deep audit.",
            "default": 5
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum number of pages audited in parallel. Lower this on slow sites or if you hit rate limits.",
            "default": 5
          },
          "respectRobotsTxt": {
            "title": "Respect robots.txt",
            "type": "boolean",
            "description": "Skip URLs disallowed by the site's robots.txt. Recommended: keep enabled for ethical crawling and to avoid being blocked.",
            "default": true
          },
          "excludeUrlPatterns": {
            "title": "Exclude URL patterns",
            "type": "array",
            "description": "List of substrings or regex patterns to exclude from crawling. Substring match by default (e.g. \"/tag/\" excludes any URL containing /tag/). Wrap in slashes for regex (e.g. \"/\\\\/page\\\\/\\\\d+/\"). Useful for CMS paths like /tag/, /category/, /author/, /page/. Links to files need no pattern: they are never followed.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "includeSubdomains": {
            "title": "Include subdomains",
            "type": "boolean",
            "description": "Crawl pages on subdomains of the Start URL (e.g. also audit blog.site.com when starting from site.com).",
            "default": false
          },
          "auditMetaTags": {
            "title": "Audit meta tags",
            "type": "boolean",
            "description": "Title, description, Open Graph, Twitter Cards, canonical (flagged when outside the <head>, where Google ignores it), and the element that ends the <head> early.",
            "default": true
          },
          "auditHeadings": {
            "title": "Audit headings structure",
            "type": "boolean",
            "description": "Heading hierarchy (H1-H6), multiple H1s, skipped levels.",
            "default": true
          },
          "auditContent": {
            "title": "Audit content",
            "type": "boolean",
            "description": "Word count of the page's content (navigation, header, footer and cookie banners left out), paragraphs, sentences, reading ease in the page's language, keyword density.",
            "default": true
          },
          "auditTechnical": {
            "title": "Audit technical SEO",
            "type": "boolean",
            "description": "HTTPS, canonical, robots meta, sitemap, hreflang (language and country codes Google supports, self-reference, x-default), which AI crawlers robots.txt lets in (ChatGPT search, Claude, Perplexity, and AI training crawlers), mobile-friendliness, structured data.",
            "default": true
          },
          "auditPerformance": {
            "title": "Audit performance",
            "type": "boolean",
            "description": "LCP and CLS (the two Core Web Vitals a crawl can measure), total blocking time, first contentful paint, time to first byte, page load time, speed index.",
            "default": true
          },
          "auditSchema": {
            "title": "Audit schema markup",
            "type": "boolean",
            "description": "Schema.org structured data in JSON-LD, microdata or RDFa: the types found, the JSON-LD blocks that are not valid JSON, and whether each JSON-LD item has the properties Google requires for its rich result.",
            "default": true
          },
          "auditLinks": {
            "title": "Audit links",
            "type": "boolean",
            "description": "Internal and external links counting, anchor text, nofollow, and broken links and redirects checked on the first 10 links of each page.",
            "default": true
          },
          "auditImages": {
            "title": "Audit images",
            "type": "boolean",
            "description": "Alt attributes, size, format, lazy loading.",
            "default": true
          },
          "auditAccessibility": {
            "title": "Audit accessibility",
            "type": "boolean",
            "description": "WCAG checks run by axe-core: colour contrast, link and button names, form labels, ARIA, zoom, language codes, landmarks.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}