# Destinations

Destinations are where verified events go. Add several to one endpoint when different systems need the same event — each gets its own retry schedule and delivery history.

## Destination types

| Type                    | Status    | Description                                              |
| ----------------------- | --------- | -------------------------------------------------------- |
| HTTPS endpoint (`http`) | Supported | JSON or form body, custom headers, bearer or basic auth. |
| Grok Bot (`grokbot`)    | Supported | Dispatch the event to a Grok Bot agent.                  |
| Slack (`slack`)         | Supported | Post to an incoming webhook or `chat.postMessage`.       |
| T3 Code (`t3code`)      | Supported | Trigger a scheduled task (webhook automation).           |
| Paseo (`paseo`)         | Supported | Dispatch a Hub manual run (agent run id recorded).       |

## Add a destination

```bash
curl -X POST "https://api.hooks.events/v1/endpoints/ep_7a3k2/destinations" \
  -H "Authorization: Bearer $HOOKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://api.acme.com/hooks/orders",
    "method": "POST",
    "auth": { "type": "bearer", "token": "$DOWNSTREAM_TOKEN" }
  }'
```

## Filters

A destination can accept only some events:

```json
{
  "allow": [
    { "field": "event.type", "op": "equals", "value": "issues.opened" },
    { "field": "event.subject.labels", "op": "contains", "value": "agent" }
  ]
}
```

Rules support `equals`, `not_equals`, `in`, `contains`, `matches`, and `exists` on fields such as `event.type`, `event.source`, `event.actor.login`, `event.repo`, `event.project`, and `event.subject.*`. Bot actors are ignored by default; set `ignoreBots: false` to include them.

> Inbound secrets and cookies are never forwarded. Configure a separate outbound credential for each destination.
