{
  "openapi": "3.0.1",
  "info": {
    "title": "SEO Audit Leads: Bulk On-Page, Technical & Local SEO Checker",
    "description": "Bulk SEO audit for lead generation: check business websites for noindex, robots.txt and sitemap problems, missing titles, meta descriptions and H1s, HTTPS, mobile viewport, LocalBusiness schema and city mentions. SEO score, grade, lead level and fixes per site. Works with Google Maps Scraper.",
    "version": "0.1",
    "x-build-id": "gppVPeNbpMUfXEoXP"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/mortenm~seo-audit-leads/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-mortenm-seo-audit-leads",
        "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/mortenm~seo-audit-leads/runs": {
      "post": {
        "operationId": "runs-sync-mortenm-seo-audit-leads",
        "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/mortenm~seo-audit-leads/run-sync": {
      "post": {
        "operationId": "run-sync-mortenm-seo-audit-leads",
        "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",
        "properties": {
          "websites": {
            "title": "Websites to audit",
            "type": "array",
            "description": "One website or domain per line, e.g. bobsplumbing.com or https://www.example-roofing.com/. Up to 5,000 per run (together with the other inputs).",
            "items": {
              "type": "string"
            }
          },
          "datasetId": {
            "title": "Or: Google Maps Scraper results",
            "type": "string",
            "description": "Pick the dataset of a Google Maps Scraper run (or any dataset with a \"website\" column). Business name, category, city, country and place ID are kept in the output; the category is checked against the page title. Businesses without a website are listed as NO_WEBSITE leads for free. The Actor can read only the dataset you pick here."
          },
          "targetKeywords": {
            "title": "Target keywords (optional)",
            "type": "array",
            "description": "Keywords every website is checked for in the title, H1 and page text, e.g. \"emergency plumber\". Up to 10. Per-business keywords can be given in the Businesses field.",
            "items": {
              "type": "string"
            }
          },
          "maxWebsites": {
            "title": "Max websites to audit",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop after this many unique websites (duplicates are audited and billed once). Rows over the limit are returned as NOT_PROCESSED and can be resubmitted.",
            "default": 200
          },
          "maxPagesPerSite": {
            "title": "Pages per website",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "1 = homepage only (fastest). 3 (default) also reads the contact and services pages, which allows duplicate-title checks and finds more contact details. Up to 4.",
            "default": 3
          },
          "technicalChecks": {
            "title": "Technical checks (sitemap, soft 404, HTTP→HTTPS)",
            "type": "boolean",
            "description": "Also look for the XML sitemap (robots.txt, <link rel=\"sitemap\">, /sitemap.xml; at most 3 requests), request one non-existent page to detect soft 404s, and check whether http:// redirects to https://. Adds a few requests per website.",
            "default": true
          },
          "businesses": {
            "title": "Businesses with your own IDs (optional)",
            "type": "array",
            "description": "For CRM lists: [{\"website\": \"acme-roofing.com\", \"clientRecordId\": \"crm-123\", \"businessName\": \"Acme Roofing\", \"category\": \"Roofing contractor\", \"city\": \"Austin\", \"country\": \"US\", \"keywords\": [\"roof repair austin\"]}]. Every field except website is optional and is copied to the output so results join back to your records. city, category and keywords drive the local and keyword checks."
          },
          "defaultCountry": {
            "title": "Country for phone numbers",
            "type": "string",
            "description": "ISO country code used to read phone numbers written without a +country prefix (e.g. (512) 555-0147). Leave empty to keep only numbers with a + prefix. A country given per business overrides it.",
            "default": "US"
          },
          "excludedDomains": {
            "title": "Domains to skip",
            "type": "array",
            "description": "Websites on these domains are not fetched or billed (e.g. your existing clients).",
            "items": {
              "type": "string"
            }
          },
          "runTimeBudgetSecs": {
            "title": "Run time budget (seconds)",
            "minimum": 60,
            "maximum": 3600,
            "type": "integer",
            "description": "No new website is started after this time; the rest is returned as NOT_PROCESSED. About 300 websites take 3-5 minutes with the technical checks on.",
            "default": 1200
          },
          "perSiteTimeBudgetSecs": {
            "title": "Time limit per website (seconds)",
            "minimum": 15,
            "maximum": 120,
            "type": "integer",
            "description": "Total time for one website's pages and probes.",
            "default": 45
          },
          "requestTimeoutSecs": {
            "title": "Request timeout (seconds)",
            "minimum": 5,
            "maximum": 30,
            "type": "integer",
            "description": "Timeout for a single page request.",
            "default": 15
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}