Logo

Web Scraping API

Web Scraping APIs

Scrape any public web page and get it back in the format you need: raw HTML, structured JSON, Markdown, plain text or CSV. Each format is its own endpoint.

About this API

Scrape any public web page and get it back in the format you need: raw HTML, structured JSON, Markdown, plain text or CSV. Each format is its own endpoint.

Include your API key in the X-API-KEY request header. Each successful (HTTP 200) request uses 1 credit.

If Markdown or text comes back empty, the site probably builds its content with JavaScript. Retry with render_js=true.

Web Scraping API Endpoints
GET Version 1.0 1 Credit

Raw HTML

Scrape any public web page and get it back in the format you need: raw HTML, structured JSON, Markdown, plain text or CSV. Each format is its own endpoint.

Ready to query this endpoint?

Sign up to get a free API key instantly with sandbox test credits. No card required.

Request Details

Endpoint URL
GET https://apipeak.dev/api/webscraper/raw
Request Parameters
Parameter Type Requirement Description
url string Required Page to scrape (http/https).
format string Optional json = wrapped in the JSON response, html = the page HTML itself. Allowed: json, html. Default: json.
proxy_type string Optional Proxy pool to scrape through. Allowed: premium, standard. Default: premium.
location string Optional Country to scrape from. standard has 8 countries, premium has 248. Any letter case works. See /locations. Default: United States.
language string Optional Locale code, e.g. en-GB, de-DE, pt-BR. Any case. See /languages. Default: en-US.
device string Optional Device to emulate. See /devices. Allowed: desktop, desktop_chrome, desktop_firefox, desktop_safari, desktop_opera, desktop_edge, mobile, mobile_android, mobile_ios, tablet, tablet_android, tablet_ios. Default: desktop.
render_js boolean Optional true renders JavaScript before reading the page (use for JS-heavy sites). Default: false.
Documentation

Returns the full HTML of the page. Best for developers who want to process the entire page themselves. / on its own is the same as /raw.

Responses

StatusDescription
200Page HTML.
401API key missing or invalid.
402Not enough credits left on the subscription.
403Key not authorized for this API, or the API or subscription is inactive, suspended or expired.
422The page could not be scraped or nothing was found (e.g. NO_DATA_FOUND).
Request Example (cURL)
curl -X GET "https://apipeak.dev/api/webscraper/raw?url=https://example.com" \
  -H "X-API-KEY: YOUR_API_KEY" \
  -H "Content-Type: application/json"
Expected JSON Response
{
    "success": true,
    "engine": "Scraper Engine",
    "data": {
        "url": "https:\/\/example.com",
        "status_code": 200,
        "content_length": 1256,
        "html": "<!doctype html><html><head><title>Example Domain<\/title>..."
    },
    "warnings": [],
    "meta": {
        "time_ms": 2433,
        "timestamp": "2026-10-24T11:29:50+00:00",
        "scraper": "htmlscraper\/raw"
    }
}
GET Version 1.0 1 Credit

Structured JSON

Scrape any public web page and get it back in the format you need: raw HTML, structured JSON, Markdown, plain text or CSV. Each format is its own endpoint.

Ready to query this endpoint?

Sign up to get a free API key instantly with sandbox test credits. No card required.

Request Details

Endpoint URL
GET https://apipeak.dev/api/webscraper/json
Request Parameters
Parameter Type Requirement Description
url string Required Page to scrape (http/https).
fields string Optional Comma-separated list of fields to return. Returns all fields when omitted. Allowed: title, description, language, canonical, price, meta, headings, links, images, tables, lists, structured_data.
proxy_type string Optional Proxy pool to scrape through. Allowed: premium, standard. Default: premium.
location string Optional Country to scrape from. standard has 8 countries, premium has 248. Any letter case works. See /locations. Default: United States.
language string Optional Locale code, e.g. en-GB, de-DE, pt-BR. Any case. See /languages. Default: en-US.
device string Optional Device to emulate. See /devices. Allowed: desktop, desktop_chrome, desktop_firefox, desktop_safari, desktop_opera, desktop_edge, mobile, mobile_android, mobile_ios, tablet, tablet_android, tablet_ios. Default: desktop.
render_js boolean Optional true renders JavaScript before reading the page (use for JS-heavy sites). Default: false.
Documentation

Extracts structured fields from the page: title, description, price, meta tags, headings, links, images, tables, lists and structured data.

  • links: absolute URLs, de-duplicated; type is internal, external, email or phone.
  • images: absolute URLs, including lazy-loaded images (data-src).
  • price: from JSON-LD offers, then product:price meta tags, then itemprop="price". null if not found.
  • tables: colspan/rowspan expanded; multi-row headers merged into one header row.

Responses

StatusDescription
200Extracted page fields.
401API key missing or invalid.
402Not enough credits left on the subscription.
403Key not authorized for this API, or the API or subscription is inactive, suspended or expired.
422The page could not be scraped or nothing was found (e.g. NO_DATA_FOUND).
Request Example (cURL)
curl -X GET "https://apipeak.dev/api/webscraper/json?url=https://example.com" \
  -H "X-API-KEY: YOUR_API_KEY" \
  -H "Content-Type: application/json"
Expected JSON Response
{
    "success": true,
    "engine": "Scraper Engine",
    "data": {
        "url": "https:\/\/shop.com\/product\/1",
        "status_code": 200,
        "title": "Coffee Mug",
        "description": "A ceramic coffee mug.",
        "language": "en",
        "canonical": "https:\/\/shop.com\/product\/1",
        "price": {
            "amount": "12.99",
            "currency": "USD",
            "source": "structured_data"
        },
        "meta": {
            "og:title": "Coffee Mug",
            "twitter:card": "summary"
        },
        "headings": [
            {
                "level": 1,
                "text": "Coffee Mug"
            }
        ],
        "links": [
            {
                "text": "Help",
                "url": "https:\/\/shop.com\/help",
                "type": "internal"
            }
        ],
        "images": [
            {
                "url": "https:\/\/shop.com\/mug.png",
                "alt": "A mug",
                "width": 600,
                "height": null
            }
        ],
        "tables": [
            {
                "index": 1,
                "headers": [
                    "Name",
                    "Price"
                ],
                "rows": [
                    [
                        "Mug",
                        "12.99"
                    ]
                ]
            }
        ],
        "lists": [
            {
                "index": 1,
                "type": "unordered",
                "items": [
                    "One",
                    "Two"
                ]
            }
        ],
        "structured_data": [
            {
                "@type": "Product",
                "name": "Coffee Mug"
            }
        ]
    },
    "warnings": [],
    "meta": {
        "time_ms": 2433,
        "timestamp": "2026-10-24T11:29:50+00:00",
        "scraper": "htmlscraper\/json"
    }
}
GET Version 1.0 1 Credit

Markdown

Scrape any public web page and get it back in the format you need: raw HTML, structured JSON, Markdown, plain text or CSV. Each format is its own endpoint.

Ready to query this endpoint?

Sign up to get a free API key instantly with sandbox test credits. No card required.

Request Details

Endpoint URL
GET https://apipeak.dev/api/webscraper/markdown
Request Parameters
Parameter Type Requirement Description
url string Required Page to scrape (http/https).
content string Optional main = article only (drops menus, sidebars, footers, comments), full = whole page. Allowed: main, full. Default: main.
format string Optional json = wrapped in the JSON response, md = the Markdown itself (text/markdown). Allowed: json, md. Default: json.
proxy_type string Optional Proxy pool to scrape through. Allowed: premium, standard. Default: premium.
location string Optional Country to scrape from. standard has 8 countries, premium has 248. Any letter case works. See /locations. Default: United States.
language string Optional Locale code, e.g. en-GB, de-DE, pt-BR. Any case. See /languages. Default: en-US.
device string Optional Device to emulate. See /devices. Allowed: desktop, desktop_chrome, desktop_firefox, desktop_safari, desktop_opera, desktop_edge, mobile, mobile_android, mobile_ios, tablet, tablet_android, tablet_ios. Default: desktop.
render_js boolean Optional true renders JavaScript before reading the page (use for JS-heavy sites). Default: false.
Documentation

Converts the page to Markdown. Best for AI tools, document processing and readable articles. Supports headings, bold/italic, links, images, nested lists, code blocks (with language), quotes and tables.

Responses

StatusDescription
200Page content as Markdown.
401API key missing or invalid.
402Not enough credits left on the subscription.
403Key not authorized for this API, or the API or subscription is inactive, suspended or expired.
422The page could not be scraped or nothing was found (e.g. NO_DATA_FOUND).
Request Example (cURL)
curl -X GET "https://apipeak.dev/api/webscraper/markdown?url=https://example.com" \
  -H "X-API-KEY: YOUR_API_KEY" \
  -H "Content-Type: application/json"
Expected JSON Response
{
    "success": true,
    "engine": "Scraper Engine",
    "data": {
        "url": "https:\/\/en.wikipedia.org\/wiki\/Web_scraping",
        "status_code": 200,
        "title": "Web scraping",
        "length": 18234,
        "markdown": "# Web scraping\n\n**Web scraping** is data scraping used for extracting data from websites..."
    },
    "warnings": [],
    "meta": {
        "time_ms": 3120,
        "timestamp": "2026-10-24T11:29:50+00:00",
        "scraper": "htmlscraper\/markdown"
    }
}
GET Version 1.0 1 Credit

Plain text

Scrape any public web page and get it back in the format you need: raw HTML, structured JSON, Markdown, plain text or CSV. Each format is its own endpoint.

Ready to query this endpoint?

Sign up to get a free API key instantly with sandbox test credits. No card required.

Request Details

Endpoint URL
GET https://apipeak.dev/api/webscraper/text
Request Parameters
Parameter Type Requirement Description
url string Required Page to scrape (http/https).
content string Optional main = article only (drops menus, sidebars, footers, comments), full = whole page. Allowed: main, full. Default: main.
format string Optional json = wrapped in the JSON response, txt = the text itself (text/plain). Allowed: json, txt. Default: json.
proxy_type string Optional Proxy pool to scrape through. Allowed: premium, standard. Default: premium.
location string Optional Country to scrape from. standard has 8 countries, premium has 248. Any letter case works. See /locations. Default: United States.
language string Optional Locale code, e.g. en-GB, de-DE, pt-BR. Any case. See /languages. Default: en-US.
device string Optional Device to emulate. See /devices. Allowed: desktop, desktop_chrome, desktop_firefox, desktop_safari, desktop_opera, desktop_edge, mobile, mobile_android, mobile_ios, tablet, tablet_android, tablet_ios. Default: desktop.
render_js boolean Optional true renders JavaScript before reading the page (use for JS-heavy sites). Default: false.
Documentation

Returns clean page content without HTML tags.

Responses

StatusDescription
200Page content as plain text.
401API key missing or invalid.
402Not enough credits left on the subscription.
403Key not authorized for this API, or the API or subscription is inactive, suspended or expired.
422The page could not be scraped or nothing was found (e.g. NO_DATA_FOUND).
Request Example (cURL)
curl -X GET "https://apipeak.dev/api/webscraper/text?url=https://example.com" \
  -H "X-API-KEY: YOUR_API_KEY" \
  -H "Content-Type: application/json"
Expected JSON Response
{
    "success": true,
    "engine": "Scraper Engine",
    "data": {
        "url": "https:\/\/example.com",
        "status_code": 200,
        "title": "Example Domain",
        "word_count": 30,
        "length": 178,
        "text": "Example Domain\n\nThis domain is for use in illustrative examples in documents..."
    },
    "warnings": [],
    "meta": {
        "time_ms": 1850,
        "timestamp": "2026-10-24T11:29:50+00:00",
        "scraper": "htmlscraper\/text"
    }
}
GET Version 1.0 1 Credit

CSV export

Scrape any public web page and get it back in the format you need: raw HTML, structured JSON, Markdown, plain text or CSV. Each format is its own endpoint.

Ready to query this endpoint?

Sign up to get a free API key instantly with sandbox test credits. No card required.

Request Details

Endpoint URL
GET https://apipeak.dev/api/webscraper/csv
Request Parameters
Parameter Type Requirement Description
url string Required Page to scrape (http/https).
source string Optional What to export. Allowed: tables, links, images, headings, lists. Default: tables.
table string Optional all or a table number (1 = first table). Only used with source=tables. Default: all.
format string Optional csv = file, json = the same rows as JSON. Allowed: csv, json. Default: csv.
download boolean Optional true = browser saves the file, false = show it inline. Default: true.
proxy_type string Optional Proxy pool to scrape through. Allowed: premium, standard. Default: premium.
location string Optional Country to scrape from. standard has 8 countries, premium has 248. Any letter case works. See /locations. Default: United States.
language string Optional Locale code, e.g. en-GB, de-DE, pt-BR. Any case. See /languages. Default: en-US.
device string Optional Device to emulate. See /devices. Allowed: desktop, desktop_chrome, desktop_firefox, desktop_safari, desktop_opera, desktop_edge, mobile, mobile_android, mobile_ios, tablet, tablet_android, tablet_ios. Default: desktop.
render_js boolean Optional true renders JavaScript before reading the page (use for JS-heavy sites). Default: false.
Documentation

Exports tables or lists from the page as an Excel-ready CSV (UTF-8 with BOM, quoted fields, and cells starting with = + - @ prefixed with '). File name: <site>-<source>.csv.

Columns per source:

source Columns
tables The table's own headers. With table=all, each table starts with a Table N row and tables are separated by a blank row
links text, url, type
images url, alt, width, height
headings level, text
lists list, type, item

If nothing is found, the response is NO_DATA_FOUND (422).

Responses

StatusDescription
200CSV file, or the same rows as JSON when format=json.
401API key missing or invalid.
402Not enough credits left on the subscription.
403Key not authorized for this API, or the API or subscription is inactive, suspended or expired.
422The page could not be scraped or nothing was found (e.g. NO_DATA_FOUND).
Request Example (cURL)
curl -X GET "https://apipeak.dev/api/webscraper/csv?url=https://example.com" \
  -H "X-API-KEY: YOUR_API_KEY" \
  -H "Content-Type: application/json"
Expected JSON Response
text,url,type
"Help","https://shop.com/help","internal"
GET Version 1.0 1 Credit

Supported locations

Scrape any public web page and get it back in the format you need: raw HTML, structured JSON, Markdown, plain text or CSV. Each format is its own endpoint.

Ready to query this endpoint?

Sign up to get a free API key instantly with sandbox test credits. No card required.

Request Details

Endpoint URL
GET https://apipeak.dev/api/webscraper/locations
Request Parameters

No parameters required for this endpoint.

Documentation

Lists the countries you can scrape from. standard proxies support 8 countries, premium supports 248.

Responses

StatusDescription
200List of supported values.
401API key missing or invalid.
402Not enough credits left on the subscription.
403Key not authorized for this API, or the API or subscription is inactive, suspended or expired.
Request Example (cURL)
curl -X GET "https://apipeak.dev/api/webscraper/locations" \
  -H "X-API-KEY: YOUR_API_KEY" \
  -H "Content-Type: application/json"
Expected JSON Response
{
    "success": true,
    "engine": "Scraper Engine",
    "data": [],
    "warnings": [
        "string"
    ],
    "meta": {
        "time_ms": 0,
        "timestamp": "string",
        "scraper": "string",
        "options": []
    }
}
GET Version 1.0 1 Credit

Supported languages

Scrape any public web page and get it back in the format you need: raw HTML, structured JSON, Markdown, plain text or CSV. Each format is its own endpoint.

Ready to query this endpoint?

Sign up to get a free API key instantly with sandbox test credits. No card required.

Request Details

Endpoint URL
GET https://apipeak.dev/api/webscraper/languages
Request Parameters

No parameters required for this endpoint.

Documentation

Lists the locale codes accepted by the language parameter.

Responses

StatusDescription
200List of supported values.
401API key missing or invalid.
402Not enough credits left on the subscription.
403Key not authorized for this API, or the API or subscription is inactive, suspended or expired.
Request Example (cURL)
curl -X GET "https://apipeak.dev/api/webscraper/languages" \
  -H "X-API-KEY: YOUR_API_KEY" \
  -H "Content-Type: application/json"
Expected JSON Response
{
    "success": true,
    "engine": "Scraper Engine",
    "data": [],
    "warnings": [
        "string"
    ],
    "meta": {
        "time_ms": 0,
        "timestamp": "string",
        "scraper": "string",
        "options": []
    }
}
GET Version 1.0 1 Credit

Supported devices

Scrape any public web page and get it back in the format you need: raw HTML, structured JSON, Markdown, plain text or CSV. Each format is its own endpoint.

Ready to query this endpoint?

Sign up to get a free API key instantly with sandbox test credits. No card required.

Request Details

Endpoint URL
GET https://apipeak.dev/api/webscraper/devices
Request Parameters

No parameters required for this endpoint.

Documentation

Lists the values accepted by the device parameter.

Responses

StatusDescription
200List of supported values.
401API key missing or invalid.
402Not enough credits left on the subscription.
403Key not authorized for this API, or the API or subscription is inactive, suspended or expired.
Request Example (cURL)
curl -X GET "https://apipeak.dev/api/webscraper/devices" \
  -H "X-API-KEY: YOUR_API_KEY" \
  -H "Content-Type: application/json"
Expected JSON Response
{
    "success": true,
    "engine": "Scraper Engine",
    "data": [],
    "warnings": [
        "string"
    ],
    "meta": {
        "time_ms": 0,
        "timestamp": "string",
        "scraper": "string",
        "options": []
    }
}

Flexible Subscriptions

Choose the monthly credit subscription that supports your development throughput. Cancel or shift tiers at any time.

FREE

Perfect for exploring the API

$0 /month
  • 50 requests per month
  • Developer Sandbox Credentials
  • Instant API Key Activation

PRO

Best for indie developers and small projects

$7 /month
  • 5,000 requests per month
  • Developer Sandbox Credentials
  • Instant API Key Activation

ULTRA

Ideal for SaaS products and tools

$25 /month
  • 20,000 requests per month
  • Developer Sandbox Credentials
  • Instant API Key Activation

MEGA

Built for agencies and businesses

$89 /month
  • 100,000 requests per month
  • Developer Sandbox Credentials
  • Instant API Key Activation