# List webhooks

> GET /webhooks

Source: https://mockflow.com/developers/reference/webhooks/list-webhooks

**GET** `https://api.mockflow.com/v1/webhooks`  
Scopes: `boards:read`

**curl**

```bash
curl https://api.mockflow.com/v1/webhooks \
  -H "Authorization: Bearer $MOCKFLOW_API_KEY"
```

**JavaScript**

```javascript
const response = await fetch("https://api.mockflow.com/v1/webhooks", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.MOCKFLOW_API_KEY}`
  }
});

const data = await response.json();
```

**Python**

```python
import os, requests

response = requests.get(
    "https://api.mockflow.com/v1/webhooks",
    headers={"Authorization": f"Bearer {os.environ['MOCKFLOW_API_KEY']}"},
)

response.raise_for_status()
data = response.json()
```

**200**

```json
{
  "data": [
    {
      "id": "whk_9fa2",
      "url": "https://app.mockflow.com/board/brd_3f9e2a",
      "events": [
        "board.created",
        "member.*"
      ],
      "boardId": "brd_3f9e2a",
      "description": "string",
      "active": false
    }
  ]
}
```

**429**

```json
{
  "error": {
    "code": "rate_limited",
    "message": "Too many requests.",
    "docsUrl": "https://mockflow.com/developers/concepts/errors#rate_limited"
  },
  "requestId": "req_45d49816999bac40"
}
```

Every webhook in the workspace. The signing secret is not included; it is shown when a webhook is created or its secret rotated.

### Authorization

- `Authorization` (string, required): `Bearer <key>`. The key needs `boards:read` scope. Create and manage keys in the [developer console](/developers/console/), or use an [OAuth app](/developers/concepts/oauth-apps) to act for other people; what each scope unlocks is on the [scopes page](/developers/concepts/scopes).

### Response

- `data` (Webhook[]): - `id` (string)
  - `url` (string)
  - `events` (string[])
  - `boardId` (string | null): Null for every board in the workspace.
  - `description` (string)
  - `active` (boolean)
  - `pausedReason` (string | null): Why MockFlow paused it
  - `createdBy` (string | null): Events are sent only about boards this person can open.
  - `createdAt` (string)
  - `updatedAt` (string | null)

### Errors

- 429 `rate_limited`: Too many requests.
