> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hooksnode.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sources

> Where your events come from: webhooks, WhatsApp, mailboxes and watched URLs.

A source is where a project gets its events. Each project starts with one webhook source. A Pro project can have up to 10 sources.

| Source                                  | Type        | How it gets events            | Event type           | Plan |
| --------------------------------------- | ----------- | ----------------------------- | -------------------- | ---- |
| [Webhook](/sources/webhook)             | `webhook`   | Push to `POST /p/<source-id>` | The sender's payload | All  |
| [WhatsApp Cloud API](/sources/whatsapp) | `whatsapp`  | Push from Meta                | Meta's payload       | Pro  |
| [Gmail](/sources/gmail)                 | `gmail`     | Google push notices           | `email.received`     | Pro  |
| [Outlook](/sources/outlook)             | `outlook`   | Microsoft Graph notices       | `email.received`     | Pro  |
| [IMAP mailbox](/sources/imap)           | `imap`      | Poll on a schedule            | `email.received`     | Pro  |
| [Watch a URL](/sources/watch-a-url)     | `http_poll` | Poll on a schedule            | `http_poll.*`        | Pro  |

Gmail, Outlook and IMAP sources can also send [bank alert events](/sources/bank-alerts).

## Route sources to destinations

By default, a destination gets events from all sources in its project. On a Pro project, you can limit a destination to some sources. For example, send Paystack events to the ledger and email events to the support tool.

## Source statuses

| Status          | Meaning                                                                                    |
| --------------- | ------------------------------------------------------------------------------------------ |
| `active`        | The source takes events.                                                                   |
| `paused`        | You paused it. A push source answers `423`. You cannot pause the default source.           |
| `needs_reauth`  | Google or Microsoft refused the sign-in. Press **Reconnect**.                              |
| `error`         | A polled source could not sign in (for example `401` or `403`). Fix the settings and save. |
| `disabled_plan` | The project moved to Free and this source is over the limit. A push source answers `402`.  |

Mail and polled sources have no public URL. `POST /p/<id>` for these sources answers `404`.

## Headers on mail and polled events

Events from mail and polled sources have these headers:

```http theme={null}
Content-Type: application/json
X-Hooksnode-Source-Type: gmail | outlook | imap | http_poll
```

hooksnode sends them to your destinations as `POST` requests.
