---
title: "Read a URL"
method: POST
path: "/web/read"
tags: ["Web"]
---

# Read a URL

`POST /web/read`

## Request

- Base URL: `https://api.crevio.co/v1`
- URL: `https://api.crevio.co/v1/web/read`
- Auth: API key in header `Authorization`

Fetches a single page as clean markdown. Optional `extract` runs an AI question over the page content. Synchronous. Charges credits on success.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `url` string, required: The URL to read.
  - `formats` string[]: Output formats: markdown (default), html, screenshot.
  - `only_main_content` boolean: Strip nav/ads/footers (default true).
  - `extract` string: Optional question to answer using the page content.

## Response `200`

OK

- object
  - `url` string
  - `title` string
  - `markdown` string
  - `metadata` object
  - `html` string: Only when requested via `formats`.
  - `screenshot_url` string: Only when requested via `formats`.
  - `extracted` string: AI answer — only when `extract` is provided.

## Other responses

- `400`: Bad request
- `401`: Authentication required
- `402`: Insufficient credits
- `422`: Validation error
- `429`: Rate limit exceeded — 600 requests per minute per credential. Retry after the number of seconds in `Retry-After`.
- `500`: Internal server error

---

[API](https://skmtc.dev/crevio/apis/crevio-api-v1.md) · [All operations](https://skmtc.dev/crevio/apis/crevio-api-v1/llms.txt) · [OpenAPI document](https://skmtc.dev/crevio/apis/crevio-api-v1/revisions/2219f18ad651?raw)
