{
  "openapi": "3.0.1",
  "info": {
    "title": "SEO Auditor & Rank Tracker — BrightEdge Alternative",
    "description": "Audit a public website and optionally check Google keyword ranks. Get one report with technical issues, page evidence, prioritized fixes, robots and sitemap checks, and keyword observations for an SEO repair plan.",
    "version": "1.0",
    "x-build-id": "qZpPPb2RCpgXbj80U"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~brightedge-alternative/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-brightedge-alternative",
        "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~brightedge-alternative/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-brightedge-alternative",
        "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~brightedge-alternative/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-brightedge-alternative",
        "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": "Public HTTP or HTTPS website origin or starting page to audit, for example https://example.com. The Actor only crawls same-origin pages and never accepts credentials or private-network hosts. This field is required. It is not a Google Search Console connection or authenticated-site audit."
          },
          "keywords": {
            "title": "Keywords for live rank snapshots",
            "type": "array",
            "description": "Optional list of up to ten plain-language queries to check in the live Google organic-result window. The domain in Website URL is matched against observed results at collection time. Defaults to an empty list. Search operators are intentionally rejected because they change provider cost and semantics.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "includeRankSnapshot": {
            "title": "Collect live rank snapshots",
            "type": "boolean",
            "description": "When enabled, collect one current Google organic-result snapshot per supplied keyword. Defaults to true, but no provider request is made when the keyword list is empty. Snapshot availability is reported honestly when the configured data provider cannot respond. It does not provide historical rankings, unlimited SERPs, or ranking guarantees.",
            "default": true
          },
          "locationCode": {
            "title": "Google location code",
            "minimum": 1,
            "maximum": 99999999,
            "type": "integer",
            "description": "Location code applied to optional rank snapshots. Defaults to 2840 for the United States and accepts public provider location identifiers. Set a location relevant to the market you are assessing. This does not change the technical crawl location.",
            "default": 2840
          },
          "languageCode": {
            "title": "Google language code",
            "type": "string",
            "description": "Language code applied to optional rank snapshots, such as en. Defaults to en. Use a valid language code relevant to the query market. This does not translate the audited page or inspect localized pages automatically.",
            "default": "en"
          },
          "device": {
            "title": "Rank snapshot device",
            "enum": [
              "desktop",
              "mobile"
            ],
            "type": "string",
            "description": "Device profile for optional live rank snapshots. Choose desktop or mobile; defaults to desktop. This setting is sent only to the rank-snapshot provider. It is not an emulated mobile performance audit.",
            "default": "desktop"
          },
          "maxPages": {
            "title": "Maximum HTML pages",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum same-origin HTML pages sampled in the technical audit, including the starting page. Defaults to 10 and accepts 1 through 50. Lower values make a fast spot check; higher values broaden the bounded sample. This is not a full-site crawl or an indexed-page count.",
            "default": 10
          },
          "checkLinks": {
            "title": "Discover same-origin links",
            "type": "boolean",
            "description": "When enabled, discover and crawl same-origin links from sampled pages until the page cap is reached. Defaults to true. Disable it to audit only the starting page and same-origin sitemap URLs. This does not perform an unlimited broken-link inventory.",
            "default": true
          },
          "respectRobotsTxt": {
            "title": "Respect robots.txt for discovery",
            "type": "boolean",
            "description": "Skips discovered same-origin pages disallowed for the wildcard robots.txt group. Defaults to true, while robots.txt remains an audit signal either way. This setting does not bypass authentication, access controls, or explicit site terms. The initial URL is still assessed to report the supplied audit target.",
            "default": true
          },
          "requestTimeoutSecs": {
            "title": "Per-request timeout in seconds",
            "minimum": 5,
            "maximum": 60,
            "type": "integer",
            "description": "Maximum time for each public website or optional rank-provider request. Defaults to 20 seconds and accepts 5 through 60 seconds. Increase only for slow public sites you are authorized to assess. It is not a total run-time guarantee.",
            "default": 20
          },
          "responseFormat": {
            "title": "Report detail",
            "enum": [
              "concise",
              "detailed"
            ],
            "type": "string",
            "description": "Choose concise for a compact decision report or detailed for more sampled findings and page observations. Defaults to concise. Both formats contain the same top-level evidence fields and limitations. Detailed output is still capped by the bounded input page limit.",
            "default": "concise"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}