{
  "openapi": "3.0.1",
  "info": {
    "title": "Sitemap Extractor, URL Status and Broken Link Checker",
    "description": "Get every URL from a website's sitemaps and check them: status codes, redirect chains, soft 404s, noindex, canonical and response time. Also finds broken links on your pages. Handles sitemap indexes, .gz, text and RSS sitemaps. $1 per 1,000 URLs checked.",
    "version": "0.1",
    "x-build-id": "axqG871GBZNNsccBy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/vindr~sitemap-url-checker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-vindr-sitemap-url-checker",
        "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/vindr~sitemap-url-checker/runs": {
      "post": {
        "operationId": "runs-sync-vindr-sitemap-url-checker",
        "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/vindr~sitemap-url-checker/run-sync": {
      "post": {
        "operationId": "run-sync-vindr-sitemap-url-checker",
        "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": {
          "startUrls": {
            "title": "Websites or sitemaps",
            "type": "array",
            "description": "Websites (<code>example.com</code>) or sitemap URLs (<code>https://example.com/sitemap.xml</code>), one per line. For a website, the sitemaps are found in its robots.txt or at the usual places like /sitemap.xml. Sitemap indexes are followed.",
            "items": {
              "type": "string"
            }
          },
          "urls": {
            "title": "URLs to check",
            "type": "array",
            "description": "Or check a list of URLs directly, one per line, without a sitemap.",
            "items": {
              "type": "string"
            }
          },
          "checkUrls": {
            "title": "Check each URL",
            "type": "boolean",
            "description": "Visit every URL and save its status code, redirect chain, response time, page title, canonical URL and noindex. Turn off to only list the URLs in the sitemaps, which is much faster.",
            "default": true
          },
          "findBrokenLinks": {
            "title": "Find broken links on the pages",
            "type": "boolean",
            "description": "Also collect the links on every checked page and check them. Each link is checked once, and the result shows which pages link to it.",
            "default": false
          },
          "checkExternalLinks": {
            "title": "Check links to other websites",
            "type": "boolean",
            "description": "Only for broken links: also check links that go to other websites. Turn off to check only links within the same site.",
            "default": true
          },
          "linkResults": {
            "title": "Links to save",
            "enum": [
              "broken",
              "problems",
              "all"
            ],
            "type": "string",
            "description": "Only for broken links: which of the checked links to save. Every link that is checked counts as one URL for pricing, whether it is saved or not.",
            "default": "broken"
          },
          "onlyIssues": {
            "title": "Only save URLs with issues",
            "type": "boolean",
            "description": "Save only URLs that are broken, redirect, are blocked, marked noindex, look like an error page (soft 404), point their canonical elsewhere, are slow, or could not be checked because of robots.txt. This only filters the results: every checked URL counts for pricing.",
            "default": false
          },
          "includePatterns": {
            "title": "Only URLs containing",
            "type": "array",
            "description": "Keep only URLs that contain any of these texts, for example <code>/blog/</code>. Not case sensitive.",
            "items": {
              "type": "string"
            }
          },
          "excludePatterns": {
            "title": "Skip URLs containing",
            "type": "array",
            "description": "Leave out URLs that contain any of these texts, for example <code>/tag/</code> or <code>?page=</code>.",
            "items": {
              "type": "string"
            }
          },
          "maxUrls": {
            "title": "Max URLs",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many URLs from the sitemaps and your list. Use 0 for no limit.",
            "default": 0
          },
          "maxLinks": {
            "title": "Max links to check",
            "minimum": 1,
            "type": "integer",
            "description": "Only for broken links: check at most this many links found on the pages.",
            "default": 10000
          },
          "perHostConcurrency": {
            "title": "Max requests at a time per website",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many requests go to the same website at the same time. Keep it low to be kind to the site. A Crawl-delay in the site's robots.txt is always respected.",
            "default": 4
          },
          "maxConcurrency": {
            "title": "Max requests at a time in total",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many URLs are checked at the same time across all websites.",
            "default": 20
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}