# Browse Url

> `POST /browse` · Browse

Canonical page: https://clawifi.dev/docs/api/post-browse

`POST https://api.clawifi.dev/browse` · 3 credit(s) per call

- Send your key as `Authorization: Bearer $CLAWIFI_API_KEY`; see [Authentication](https://clawifi.dev/docs/authentication).
- Add `"dry_run": true` (or `?dry_run=true`) to see what the call would cost; nothing runs and nothing is charged.
- Credits: 3 per call (browser render, or a fetch/scrape that escalates to the browser; a Reddit thread the browser could not open and the Wayback Machine copy answered counts as rendered (the renders ran), while a page reached in the archive without a render costs the base call). Every price is on [Pricing and credits](https://clawifi.dev/docs/pricing-and-credits).

## Request

**cURL**

```sh
curl -X POST https://api.clawifi.dev/browse \
  -H "Authorization: Bearer $CLAWIFI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com"}'
```

**Python**

```python
from clawifi import Clawifi

client = Clawifi()  # reads CLAWIFI_API_KEY
result = client.post("/browse", json={"url":"https://example.com"})
```

### Body

| Field | Type | Default | Required |
| --- | --- | --- | --- |
| `browser_profile` | string (optional) |  | no |
| `exclude_tags` | array of string |  | no |
| `force_browser` | boolean | `false` | no |
| `max_pages` | integer | `50` | no |
| `proxy_config` | string or object (optional) |  | no |
| `query` | string (optional) |  | no |
| `requires_auth` | boolean | `false` | no |
| `return_raw_html` | boolean | `false` | no |
| `screenshot` | boolean (optional) |  | no |
| `skip_archive` | boolean | `false` | no |
| `source` | SourceId (optional) |  | no |
| `target_selector` | string (optional) |  | no |
| `timeout_seconds` | integer (optional) |  | no |
| `top_k` | integer | `5` | no |
| `url` | string |  | yes |
| `wait_for_selector` | string (optional) |  | no |
| `wait_until` | "commit" \| "domcontentloaded" \| "load" \| "networkidle" | `"domcontentloaded"` | no |

## Response

200 with a `FetchEnvelope` object: `cache_hit`, `data`, `diagnostics`, `entity_type`, `errors`, `mode_used`, `source`, `success`.

Errors use the shared shape; see [Errors](https://clawifi.dev/docs/errors). Try public operations without a key in the [playground](https://clawifi.dev/playground).
