{
  "openapi": "3.0.1",
  "info": {
    "title": "Website to Markdown & Sitemap Scraper",
    "description": "Turn websites and XML sitemaps into clean Markdown for AI, RAG and research. Crawl internal links, keep tables and code, export text and optional chunks. Pay only for extracted pages. No API key required.",
    "version": "1.0",
    "x-build-id": "09vhz0DR9Al7vPhhz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/skusol~website-to-markdown-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-skusol-website-to-markdown-scraper",
        "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/skusol~website-to-markdown-scraper/runs": {
      "post": {
        "operationId": "runs-sync-skusol-website-to-markdown-scraper",
        "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/skusol~website-to-markdown-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-skusol-website-to-markdown-scraper",
        "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": [
          "startUrls"
        ],
        "properties": {
          "startUrls": {
            "title": "Website or sitemap URLs",
            "type": "array",
            "description": "1–20 public HTTPS websites, pages or XML sitemap URLs. Bare domains are accepted through the API. Crawls only the supplied hostnames and www aliases.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxPages": {
            "title": "Maximum extracted pages",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum successful page results across all websites. Errors and sitemap files do not count. Also set the Apify run spending limit to cap charges.",
            "default": 10
          },
          "useSitemaps": {
            "title": "Discover pages from sitemaps",
            "type": "boolean",
            "description": "Reads robots.txt sitemap declarations and /sitemap.xml. Supports XML sitemap indexes and gzip. Up to 20 sitemap requests and 10,000 queued URLs.",
            "default": true
          },
          "crawlLinks": {
            "title": "Follow internal page links",
            "type": "boolean",
            "description": "Discovers links on the supplied websites. External websites are never added.",
            "default": true
          },
          "maxDepth": {
            "title": "Maximum link depth",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Start pages and sitemap entries have depth 0. Set 0 and turn off sitemap discovery to fetch only supplied pages.",
            "default": 3
          },
          "includeUrlPrefixes": {
            "title": "Include URL prefixes (optional)",
            "type": "array",
            "description": "Only export URLs starting with one of these full HTTPS prefixes. For example https://example.com/docs/. Empty includes the entire supplied hostname. Start pages may still be read for discovery.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "excludeUrlPrefixes": {
            "title": "Exclude URL prefixes (optional)",
            "type": "array",
            "description": "Skip matching discovered URLs, for example https://example.com/account/. Exclusion wins over inclusion.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "sitemapUrls": {
            "title": "Additional sitemap URLs (optional)",
            "type": "array",
            "description": "Extra XML sitemap URLs on supplied websites. Used when sitemap discovery is enabled.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "contentSelector": {
            "title": "Content CSS selector (optional)",
            "type": "string",
            "description": "Leave empty to detect main, role=main, article or body. For precise extraction use a selector such as .article-body. Unmatched selectors produce an uncharged error.",
            "default": ""
          },
          "removeSelectors": {
            "title": "Remove sections (optional)",
            "type": "string",
            "description": "Additional CSS selectors to remove, such as .sidebar, .advertisement. Common navigation, scripts, forms and cookie banners are removed automatically.",
            "default": ""
          },
          "includeChunks": {
            "title": "Include chunks for RAG",
            "type": "boolean",
            "description": "Adds deterministic chunk IDs and Markdown text segments to each result. No embeddings or LLM calls are made.",
            "default": false
          },
          "chunkSize": {
            "title": "Chunk size (characters)",
            "minimum": 500,
            "maximum": 8000,
            "type": "integer",
            "description": "Used only when chunks are enabled. Prefers newline boundaries; this is a character count, not a token limit.",
            "default": 2000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}