> ## Documentation Index
> Fetch the complete documentation index at: https://docs.notte.cc/llms.txt
> Use this file to discover all available pages before exploring further.

# Raw fetch

> Get a web page as HTML, markdown or product data in one call

> [!TIP]
>
> Read [the Notte skill](https://notte.cc/skill.md) and follow its setup instructions when setting up Notte or building browser automation. This is the shared source for CLI setup, authentication, and the browser-to-code workflow.

`POST /data/web/fetch` loads a URL in a cloud browser and returns the formats you ask for. To extract your own schema with an LLM, use [Fetch](https://docs.notte.cc/concepts/scraping.md) instead.

> [card] [Try it in the Console](https://console.notte.cc/data-apis/fetch)
>
> Try this API in the playground, no code needed.

## Quick start

```bash theme={null}
curl -X POST https://api.notte.cc/data/web/fetch \
  -H "Authorization: Bearer $NOTTE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com", "formats": {"markdown": true}}'
```

```json theme={null}
{
  "url": "https://example.com/",
  "markdown": {
    "requested": true,
    "success": true,
    "data": "Example Domain\n\nThis domain is for use in documentation examples..."
  },
  "metadata": { "title": "Example Domain", "language": "en" },
  "cache_metadata": { "status": "miss", "age_ms": 0 },
  "isPartial": false,
  "request_id": "9efce509-100a-4bac-9afe-c38323c84303"
}
```

Each format you request comes back as `{ requested, success, data }`. Formats you didn't request have `requested: false`.

## Parameters

**url** `string` *required*

The page to load.

**formats** `object` *required*

Which outputs to return. Set any of these to `true`:

* `html`: the page HTML
* `markdown`: the page as markdown
* `product`: [product data](https://docs.notte.cc/data-apis/products.md)
* `parse`: parsed Google Maps data. Also set `parseParams` to `{"type": "prebuilt", "parser": "google-maps"}`

To get parsed Google Maps data, request `parse` and set the parser:

```json theme={null}
{
  "url": "https://www.google.com/maps/place/...",
  "formats": {"parse": true},
  "parseParams": {"type": "prebuilt", "parser": "google-maps"}
}
```

The result comes back in the `parsed` field of the response.

**markdownParams** `object`

`includeLinks` (default `true`), `includeImages` (default `false`), `inlineImages` (`placeholder` or `preserve`).

**productParams** `object`

`dedupeImages` (default `false`).

**sharedParams** `object`

How the page is loaded:

* `waitFor`: how long to wait after load, in milliseconds. Default `500`.
* `actions`: steps to run before extracting, in order:
  * `{"do": "wait", "timeMs": 1000}`
  * `{"do": "scroll", "direction": "down", "amount": "viewport", "maxScrolls": 3}`
  * `{"do": "perform", "action": "click the Load more button"}`
* `mainContentOnly`: keep only the main content. Default `false`.
* `includeSelectors` / `excludeSelectors`: CSS selectors to keep or drop.
* `theme`: `light` or `dark`. Default `light`.

**maxAgeMs** `integer`

Maximum age of a cached result. Omit for the default policy, `0` forces a fresh load.

See [common parameters](https://docs.notte.cc/data-apis/overview.md#common-parameters) for `timeoutOpts`, `zdr` and `tags`, and [caching](https://docs.notte.cc/data-apis/overview.md#caching) for the cache headers.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.