# POST /v2/webhooks/{id}/enable

**Re-enable a webhook**

Flips a webhook back to `active` and clears its match-state cache so the next eval treats every currently-matching ticker as new and fires a single `webhook.fired`. Use after fixing whatever caused auto-disable. To validate your receiver before letting real fires hit it, call `POST /v2/webhooks/{id}/test`.

## Plan access

- **Plan access.** Paid plans (Hobby and above).
- **Cadence.** Real-time on every paid plan — evaluated on every data refresh (~1×/min), so a match is delivered within seconds of it landing. Optionally throttle a webhook to hourly or at-market-open.
- **Capacity.** Hobby 10 · Pro 100 · Scale & Enterprise unlimited.

## Body parameters

| Name | In | Type | Required | Description |
|------|----|----|----------|-------------|
| `id` | path | string | yes | Webhook id. Example: `wh_smRsF3-z36o`. |

## Status codes

- **200** — The updated webhook (now `active`).
- **404** — Webhook not found.

## Sample response

```json
{
  "as_of": "2026-05-14T11:41:01.000Z",
  "id": "wh_smRsF3-z36o",
  "name": "NVDA · gap_up AND high_volume_alert",
  "q": "ticker = 'NVDA' AND (gap_up AND high_volume_alert)",
  "universe_id": null,
  "cadence": "realtime",
  "target_url": "https://your-app.example.com/webhooks/tickerbot",
  "delivery": "webhook",
  "status": "active",
  "source": "v2",
  "subscription_origin": { "type": "ticker", "ref": "NVDA", "condition": "gap_up AND high_volume_alert" },
  "created_at": 1778720416,
  "updated_at": 1778721800,
  "last_match_set": [],
  "last_evaluated_at": null,
  "next_eval_at": 1778721800,
  "last_fired": null
}
```

## Examples

### Re-enable after fixing your receiver

Request:

```shell
curl -X POST "https://api.tickerbot.io/v2/webhooks/wh_smRsF3-z36o/enable" \
  -H "Authorization: Bearer YOUR_KEY"
```

Response (`200`):

```json
{
  "as_of": "2026-05-14T11:41:01.000Z",
  "id": "wh_smRsF3-z36o",
  "name": "NVDA · gap_up AND high_volume_alert",
  "q": "ticker = 'NVDA' AND (gap_up AND high_volume_alert)",
  "universe_id": null,
  "cadence": "realtime",
  "target_url": "https://your-app.example.com/webhooks/tickerbot",
  "delivery": "webhook",
  "status": "active",
  "source": "v2",
  "subscription_origin": { "type": "ticker", "ref": "NVDA", "condition": "gap_up AND high_volume_alert" },
  "created_at": 1778720416,
  "updated_at": 1778721800,
  "last_match_set": [],
  "last_evaluated_at": null,
  "next_eval_at": 1778721800,
  "last_fired": null
}
```

## Notes

- Calling enable on an already-active webhook is a no-op — returns the current record unchanged.
- Re-enable clears `last_match_set` and `last_evaluated_at` so the next eval treats every currently-matching ticker as new and fires a single `webhook.fired`. To validate the receiver before resuming real fires, call `POST /v2/webhooks/{id}/test`.

---

Interactive sandbox + parameter editor: https://tickerbot.io/docs/endpoints/webhooks/enable
