# Create Job

> `POST /jobs` · Jobs

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

`POST https://api.clawifi.dev/jobs`

- 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.
- Hosted MCP tool: `create_job` on `https://api.clawifi.dev/mcp`.
- Credits: see [Pricing and credits](https://clawifi.dev/docs/pricing-and-credits).

## Request

**cURL**

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

**Python**

```python
from clawifi import Clawifi

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

**MCP**

```text
create_job(operation="fetch")
```

### Body

| Field | Type | Default | Required |
| --- | --- | --- | --- |
| `operation` | string (one of 10 values; see [Sources](https://clawifi.dev/sources)) |  | yes |
| `payload` | object |  | no |

## Response

200 with a `JobResponse` object: `created_at`, `error`, `job_id`, `operation`, `progress`, `result`, `status`, `updated_at`.

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).
