{
  "openapi": "3.0.1",
  "info": {
    "title": "Complete SEO Audit Tool - Technical Website Audit",
    "description": "Audit one public website for crawlability, indexation, metadata, headings, links, images, structured data, hreflang, security, response-time and optional AI-crawler signals. Returns a prioritized, source-linked report. It does not query AI answers or claim rankings.",
    "version": "1.0",
    "x-build-id": "pfWwzArSnjo3ffSZw"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~complete-seo-audit/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-complete-seo-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/khadinakbar~complete-seo-audit/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-complete-seo-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/khadinakbar~complete-seo-audit/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-complete-seo-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": [
          "siteUrl"
        ],
        "properties": {
          "siteUrl": {
            "title": "Website URL",
            "type": "string",
            "description": "The public website origin or homepage to audit, for example https://example.com. The Actor follows same-origin links and sitemap URLs from this starting point. Required and must not contain credentials or private-network addresses."
          },
          "maxPages": {
            "title": "Maximum HTML pages",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum same-origin HTML pages to sample, including the homepage. Use 1 for a fast spot check and up to 50 for a broader bounded audit. Defaults to 10 and limits crawl scope, not platform usage. Not a search-engine index inspection.",
            "default": 10
          },
          "checkLinks": {
            "title": "Check sampled links",
            "type": "boolean",
            "description": "Fetches a bounded sample of discovered links and classifies them as ok, redirect, broken, blocked, timeout, or error. Defaults to true. Use false when you already have a dedicated link inventory. Not a replacement for a full broken-link crawl.",
            "default": true
          },
          "maxLinksPerPage": {
            "title": "Links per page",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum unique links sampled from each analyzed page when link checks are enabled. Defaults to 10 and accepts 1 through 50. Lower values reduce target requests and platform usage. Not a cap on links reported in page counts.",
            "default": 10
          },
          "maxInternalLinksPerPage": {
            "title": "Internal link details per page",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum extracted internal-link details retained for each analyzed page. Defaults to 25 and accepts 1 through 100. It limits report size, not same-origin page discovery or link-health checks. Increase it when you need a denser internal-link graph for the sampled pages.",
            "default": 25
          },
          "includeExternalLinks": {
            "title": "Include external links",
            "type": "boolean",
            "description": "Includes off-domain links in the bounded link-health sample. Defaults to false so the audit stays focused on the site you supplied. Enable when outbound-link QA is part of the job. It does not grant access to private destinations.",
            "default": false
          },
          "checkAiReadiness": {
            "title": "Check AI crawler signals",
            "type": "boolean",
            "description": "Checks named AI crawler directives, llms.txt, and structured-data availability alongside conventional SEO signals. Defaults to true. Disable for a conventional technical audit only. It does not query ChatGPT, Gemini, Perplexity, or claim AI citations.",
            "default": true
          },
          "respectRobotsTxt": {
            "title": "Respect robots.txt for discovery",
            "type": "boolean",
            "description": "Skips discovered same-origin pages disallowed for the default user-agent group. Defaults to true. robots.txt is still fetched and reported as an audit signal. This setting does not bypass access controls or authenticate private pages.",
            "default": true
          },
          "requestTimeoutMs": {
            "title": "Request timeout (ms)",
            "minimum": 3000,
            "maximum": 30000,
            "type": "integer",
            "description": "Maximum time allowed for each public HTTP request. Defaults to 15000 milliseconds and accepts 3000 through 30000. Increase only for slow but authorized public sites. It is not a total run-time guarantee.",
            "default": 15000
          },
          "previousSnapshot": {
            "title": "Previous snapshot",
            "type": "object",
            "description": "Optional prior report summary used to calculate overall score change. Supply fields such as overallScore from an earlier run. Defaults to no comparison. Do not include credentials, cookies, analytics exports, or private URLs.",
            "default": {}
          },
          "demoMode": {
            "title": "Demo mode",
            "type": "boolean",
            "description": "Validates the run contract without fetching a site or charging the audit event. Defaults to false. Use for integration smoke tests only. It is not a real SEO report and returns no audited pages.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}