---
title: "POST /scrape-urls"
method: POST
path: "/scrape-urls"
---

# POST /scrape-urls

`POST /scrape-urls`

Extract clean, formatted content from web pages. Returns both raw HTML content and formatted markdown.

## Request body

- ScrapeUrlsRequest
  - `urls` string[], required — Array of URLs to scrape (maximum 5 URLs per request)

## Response `200`

Web scraping response with results for each URL

- ScrapeUrlsResponse
  - `results` object[], required — Array of scraping results for each URL
    - `url` string, required — The URL that was scraped
    - `success` boolean, required — Whether the scraping was successful
    - `title` string — Page title if successfully scraped
    - `content` string — Raw HTML content
    - `markdown` string — Formatted markdown version of the content
    - `error` string — Error message if scraping failed
  - `summary` object, required
    - `requested` number, required — Number of URLs in the original request
    - `processed` number, required — Number of valid URLs that were processed
    - `successful` number, required — Number of URLs successfully scraped
    - `failed` number, required — Number of URLs that failed to scrape
    - `totalCost` number, required — Total cost in USD (only for successful scrapes)

## Other responses

- `400` — Bad Request - Please provide an array of URLs to scrape
- `401` — Unauthorized - Invalid session or API key
- `402` — Payment Required - Insufficient balance
- `429` — Too Many Requests - Rate limit exceeded
- `500` — Internal Server Error - An error occurred while processing your request

---

[API](https://skmtc.dev/nano-gpt/apis/nanogpt-api.md) · [All operations](https://skmtc.dev/nano-gpt/apis/nanogpt-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nano-gpt/nanogpt-api/revisions/584e96d146b0/schema)
