{
  "openapi": "3.0.1",
  "info": {
    "title": "Sitemap Extractor Done Right",
    "description": "Parse XML sitemaps into clean URL records. Gzip support, nested sitemap-index recursion with a sane depth cap, lastmod/pattern filtering. Reads only files a site published for exactly this purpose.",
    "version": "0.1",
    "x-build-id": "Y6X1ikl2TyyJfmhvE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/inn_corp~sitemap-extractor-pro/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-inn_corp-sitemap-extractor-pro",
        "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/inn_corp~sitemap-extractor-pro/runs": {
      "post": {
        "operationId": "runs-sync-inn_corp-sitemap-extractor-pro",
        "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/inn_corp~sitemap-extractor-pro/run-sync": {
      "post": {
        "operationId": "run-sync-inn_corp-sitemap-extractor-pro",
        "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": [
          "sitemapUrls"
        ],
        "properties": {
          "sitemapUrls": {
            "title": "Sitemap URLs",
            "type": "array",
            "description": "Sitemap files to parse: plain .xml, gzipped .xml.gz, or a sitemap index (<sitemapindex>) that points to child sitemaps. Each URL you give gets its own summary record.",
            "items": {
              "type": "string"
            }
          },
          "maxUrlsPerSitemap": {
            "title": "Max URLs per sitemap entry",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Total cap on URL records for one sitemapUrls entry, shared across every child sitemap discovered under it (not reset per file). Processing for that entry stops once the cap is hit.",
            "default": 5000
          },
          "followSitemapIndexes": {
            "title": "Follow sitemap indexes",
            "type": "boolean",
            "description": "When a file is a sitemap index (<sitemapindex>), fetch and process the child sitemaps it lists. Off returns only whatever the top-level file itself contains directly (an index alone yields zero URLs).",
            "default": true
          },
          "urlPattern": {
            "title": "URL filter",
            "type": "string",
            "description": "Keep only URLs matching this. Tried as a regex first (re.search); if it is not valid regex, used as a plain substring match instead. Leave empty for no filter."
          },
          "maxDepth": {
            "title": "Max sitemap-index depth",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many levels of nested sitemap indexes to follow before giving up on that branch. The sitemapUrls entry itself is depth 1. Prevents runaway recursion on indexes that point to indexes that point to indexes.",
            "default": 3
          },
          "maxSitemapFiles": {
            "title": "Max sitemap files per entry",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Total cap on how many sitemap FILES (not URL records) one sitemapUrls entry is allowed to fetch, shared across the whole nested tree under it. A site with many shallow sitemap files (per-category or per-day sitemaps are common) can otherwise rack up one fetch and one sitemap-processed charge per file even when maxUrlsPerSitemap is small, since that cap only counts URL records, not files visited. This is the independent breadth guard for that case.",
            "default": 500
          },
          "respectLastmodAfter": {
            "title": "Only URLs modified on/after",
            "type": "string",
            "description": "YYYY-MM-DD. Keeps only URLs whose <lastmod> is on or after this date. A URL entry with no <lastmod> is excluded once this filter is set, since it cannot be verified. Leave empty for no filter."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}