Web Page to Markdown Extractor
Pricing
from $0.10 / 1,000 http page results
Web Page to Markdown Extractor
Convert public URLs into clean Markdown, text, metadata, links, images, and optional HTML for AI and automation workflows.
Web Page to Markdown Extractor
Pricing
from $0.10 / 1,000 http page results
Convert public URLs into clean Markdown, text, metadata, links, images, and optional HTML for AI and automation workflows.
You can access the Web Page to Markdown Extractor programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "0.1", "x-build-id": "EyQV7aYlDCizEKBvA" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/fetch_cat~web-page-to-markdown-extractor/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-fetch_cat-web-page-to-markdown-extractor", "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/fetch_cat~web-page-to-markdown-extractor/runs": { "post": { "operationId": "runs-sync-fetch_cat-web-page-to-markdown-extractor", "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/fetch_cat~web-page-to-markdown-extractor/run-sync": { "post": { "operationId": "run-sync-fetch_cat-web-page-to-markdown-extractor", "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": "Start URLs", "type": "array", "description": "Public HTTP/HTTPS pages to convert into Markdown. Login-only pages and private account content are not supported.", "items": { "type": "object", "required": [ "url" ], "properties": { "url": { "type": "string", "title": "URL of a web page", "format": "uri" } } } }, "renderMode": { "title": "Render mode", "enum": [ "http", "browser", "auto" ], "type": "string", "description": "Use fast HTTP extraction, browser rendering for JavaScript-heavy pages, or auto mode that tries HTTP first and falls back to browser for zero-content or JavaScript-shell pages and classified 401, 403, 429, or challenge responses.", "default": "http" }, "maxPages": { "title": "Maximum pages", "minimum": 1, "maximum": 100, "type": "integer", "description": "Maximum number of URLs to process from the input list. Keep this low for first tests, especially with browser rendering.", "default": 10 }, "includeLinks": { "title": "Include links", "type": "boolean", "description": "Extract normalized links from each page.", "default": true }, "includeImages": { "title": "Include images", "type": "boolean", "description": "Extract normalized image URLs and alt text from each page.", "default": false }, "includeHtml": { "title": "Include source HTML", "type": "boolean", "description": "Store truncated page HTML in each dataset item. Useful for debugging, but increases output size.", "default": false }, "proxyConfiguration": { "title": "Proxy configuration", "type": "object", "description": "Optional standard proxy configuration used by both HTTP and Chromium requests. Leave disabled for direct access; enable Apify Proxy when a public site blocks the direct route.", "default": { "useApifyProxy": false } }, "waitForSelector": { "title": "Wait for selector", "type": "string", "description": "Optional CSS selector to wait for in browser mode before extracting content, for example main or article." }, "timeoutSecs": { "title": "Timeout per page (seconds)", "minimum": 5, "maximum": 60, "type": "integer", "description": "Maximum time spent fetching or rendering one page.", "default": 20 }, "maxBytes": { "title": "Maximum HTML bytes per page", "minimum": 100000, "maximum": 5000000, "type": "integer", "description": "Large pages are truncated before conversion to keep runs predictable and affordable." }, "contentSelector": { "title": "Content selector", "type": "string", "description": "Optional CSS selector for the exact content region to convert. If it does not match, the normal article extraction is used." }, "onlyMainContent": { "title": "Prefer main article content", "type": "boolean", "description": "Prefer the readable article region over navigation and page chrome when it can be identified.", "default": false }, "maxCharacters": { "title": "Maximum Markdown characters per page", "minimum": 1000, "maximum": 1000000, "type": "integer", "description": "Optional cap for the converted Markdown field. A warning is included when output is truncated." }, "maxRunSeconds": { "title": "Maximum work time (seconds)", "minimum": 35, "maximum": 270, "type": "integer", "description": "Stop admitting new pages before the platform timeout so completed pages and a pending-URL checkpoint can be saved.", "default": 270 }, "resumeUrls": { "title": "Resume URLs from a checkpoint", "type": "array", "description": "Optional pending URLs copied from a prior PENDING_URLS record. They are processed before startUrls and deduplicated by normalized URL.", "items": { "type": "object", "required": [ "url" ], "properties": { "url": { "type": "string", "title": "URL of a web page", "format": "uri" } } } } } }, "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 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for Web Page to Markdown Extractor from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: