# Research Bundle

> `POST /research/bundle` · Research

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

`POST https://api.clawifi.dev/research/bundle`

- 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: see [Pricing and credits](https://clawifi.dev/docs/pricing-and-credits).

## Request

**cURL**

```sh
curl -X POST https://api.clawifi.dev/research/bundle \
  -H "Authorization: Bearer $CLAWIFI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"what is the Model Context Protocol"}'
```

**Python**

```python
from clawifi import Clawifi

client = Clawifi()  # reads CLAWIFI_API_KEY
result = client.post("/research/bundle", json={"query":"what is the Model Context Protocol"})
```

### Body

| Field | Type | Default | Required |
| --- | --- | --- | --- |
| `allow_browser_fallback` | boolean | `false` | no |
| `browser_profile` | string (optional) |  | no |
| `enrich_academic` | boolean | `false` | no |
| `export_dataset` | EvidenceDatasetExportOptions (optional) |  | no |
| `fetch` | boolean | `true` | no |
| `formats` | array of string (one of 10 values; see [Sources](https://clawifi.dev/sources)) |  | no |
| `lanes` | array of "academic" \| "code" \| "packages" \| "web" |  | no |
| `max_items_to_fetch` | integer | `3` | no |
| `max_results_per_source` | integer | `5` | no |
| `mode` | "auto" \| "http" \| "browser" | `"auto"` | no |
| `query` | string |  | yes |
| `skip_archive` | boolean | `true` | no |
| `sources` | array of SourceId |  | no |
| `timeout_seconds` | integer (optional) |  | no |
| `wait_until` | "commit" \| "domcontentloaded" \| "load" \| "networkidle" | `"domcontentloaded"` | no |
| `web_provider` | string (one of 15 values; see [Sources](https://clawifi.dev/sources)) | `"free_auto"` | no |

## Response

200 with a `ResearchBundleResponse` object: `bundled_count`, `dataset_export`, `errors`, `fetched_count`, `items`, `paid_providers_used`, `query`, `research`, `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).
