openapi: 3.2.0 info: title: WebScraping.AI HTML API contact: name: WebScraping.AI Support url: https://webscraping.ai email: support@webscraping.ai version: 3.2.1 description: WebScraping.AI scraping API provides LLM-powered tools with Chromium JavaScript rendering, rotating proxies, and built-in HTML parsing. servers: - url: https://api.webscraping.ai security: - api_key: [] tags: - name: HTML description: Get full HTML content of pages using proxies and Chromium JS rendering paths: /html: get: summary: Page HTML by URL description: Returns the full HTML content of a webpage specified by the URL. The response is in plain text. Proxies and Chromium JavaScript rendering are used for page retrieval and processing. operationId: getHTML tags: - HTML parameters: - $ref: '#/components/parameters/url' - $ref: '#/components/parameters/headers' - $ref: '#/components/parameters/timeout' - $ref: '#/components/parameters/js' - $ref: '#/components/parameters/js_timeout' - $ref: '#/components/parameters/wait_for' - $ref: '#/components/parameters/proxy' - $ref: '#/components/parameters/country' - $ref: '#/components/parameters/custom_proxy' - $ref: '#/components/parameters/device' - $ref: '#/components/parameters/error_on_404' - $ref: '#/components/parameters/error_on_redirect' - $ref: '#/components/parameters/js_script' - $ref: '#/components/parameters/return_script_result' - $ref: '#/components/parameters/format' responses: 400: $ref: '#/components/responses/400' 402: $ref: '#/components/responses/402' 403: $ref: '#/components/responses/403' 429: $ref: '#/components/responses/429' 500: $ref: '#/components/responses/500' 504: $ref: '#/components/responses/504' 200: description: Success content: text/html: schema: type: string example: "\n Example Domain\n\n\n\n
\n

Example Domain

\n" components: parameters: custom_proxy: in: query name: custom_proxy description: Your own proxy URL to use instead of our built-in proxy pool in "http://user:password@host:port" format (Smartproxy for example). example: null schema: type: string timeout: in: query name: timeout description: Maximum web page retrieval time in ms. Increase it in case of timeout errors (10000 by default, maximum is 30000). example: 10000 schema: type: integer default: 10000 minimum: 1 maximum: 30000 country: in: query name: country description: Country of the proxy to use (US by default). example: us schema: type: string default: us enum: - us - gb - de - it - fr - ca - es - ru - jp - kr - in - hk - tr js_script: in: query name: js_script description: Custom JavaScript code to execute on the target page. example: document.querySelector('button').click(); schema: type: string format: in: query name: format description: Format of the response (text by default). "json" will return a JSON object with the response, "text" will return a plain text/HTML response. example: json schema: type: string default: json enum: - json - text error_on_redirect: in: query name: error_on_redirect description: Return error on redirect on the target page (false by default). example: false schema: type: boolean default: false proxy: in: query name: proxy description: Type of proxy. Use `residential` if your site restricts traffic from datacenters, or `stealth` for the most heavily protected sites with advanced anti-bot detection (`datacenter` by default). Residential and stealth proxy requests are more expensive than datacenter, see the pricing page for details. example: datacenter schema: type: string default: datacenter enum: - datacenter - residential - stealth js: in: query name: js description: Execute on-page JavaScript using a headless browser (true by default). example: true schema: type: boolean default: true device: in: query name: device description: Type of device emulation. example: desktop schema: type: string default: desktop enum: - desktop - mobile - tablet return_script_result: in: query name: return_script_result description: Return result of the custom JavaScript code (js_script parameter) execution on the target page (false by default, page HTML will be returned). example: false schema: type: boolean default: false error_on_404: in: query name: error_on_404 description: Return error on 404 HTTP status on the target page (false by default). example: false schema: type: boolean default: false url: in: query name: url description: URL of the target page. required: true example: https://example.com schema: type: string headers: in: query name: headers description: 'HTTP headers to pass to the target page. Can be specified either via a nested query parameter (...&headers[One]=value1&headers=[Another]=value2) or as a JSON encoded object (...&headers={"One": "value1", "Another": "value2"}).' example: '{"Cookie":"session=some_id"}' schema: type: object additionalProperties: type: string style: deepObject explode: true wait_for: in: query name: wait_for description: CSS selector to wait for before returning the page content. Useful for pages with dynamic content loading. Overrides js_timeout. If the element doesn't appear within the request timeout, the request fails with a 500 error naming the selector and including the target page's HTTP status code and a preview of the page body. schema: type: string js_timeout: in: query name: js_timeout description: Maximum JavaScript rendering time in ms. Increase it in case if you see a loading indicator instead of data on the target page. example: 2000 schema: type: integer default: 2000 minimum: 1 maximum: 20000 securitySchemes: api_key: type: apiKey name: api_key in: query