# Console

The [Hookdeck Console](https://console.hookdeck.com) captures HTTP requests at a URL you can hand to any service, so you can read exactly what it sent. It needs no account.

Use it to:

* Inspect a payload before you write code against it, including the method, headers, path, query string, and body.
* Send a sample event from the [Webhooks Library](/docs/console/webhooks-library) instead of triggering a real one, so you don't have to send yourself an SMS to see a `message.received`.
* Forward requests to localhost with the [Hookdeck CLI](/docs/cli), or to any HTTP endpoint, and read the response your handler returned.
* Replay a captured request while you iterate, instead of waiting for the provider to send another.
* Share the URL with a colleague so you can both watch the same requests arrive.
* Create and read sources programmatically with the [Console API](/docs/console/api), so an integration test can spin up a test URL, send to it, and assert on what arrived.

## Sources

A source represents a service that sends HTTP requests to Hookdeck. You create one in the Console, and it gives you a URL to hand to whatever is sending the requests.

Create as many as you need and switch between them from the source picker: one per provider you're testing, or one per integration you're building. There's no setup and no signup.

Each source has two URLs:

* The ingest URL (`console.hookdeck.com/e/<id>`) receives requests. Give this one to the service sending them.
* The inspect URL (`console.hookdeck.com/<id>`) is where you read them.

Because a Console source is free to create and needs no account, its ingest URL is most often used as a test URL: somewhere to point a provider while you're still working out what it sends, or to hand to a colleague so you can both watch the same requests arrive.

## Quickstart

1. Open [console.hookdeck.com/new](https://console.hookdeck.com/new). A source is created and opened for you.
2. Choose Copy URL at the top of the page to copy its ingest URL.
3. Send it a request:
  
  
  ```bash
  curl -X POST "https://console.hookdeck.com/e/<your-id>" \
    -H "Content-Type: application/json" \
    -d '{"hello":"world"}'
  
  ```
  
  
4. The request appears in the events list. Select it to read the headers, body, path, and query string.

From there you can [send a sample provider payload](/docs/console/webhooks-library) instead of writing your own, or [add a destination](/docs/console/destinations) to forward captured requests to a URL or to your localhost.

## Creating sources with the API

Sources can be created and read with the [Console API](/docs/console/api), over plain HTTP with no account and no API key. One `POST` returns a new source and both of its URLs:

```bash
curl -sS -X POST "https://console.hookdeck.com/"

```

That makes a test URL something you can spin up inside an integration test, send a request to, and then read back to assert on what arrived. You can also pin a [Source Type](/docs/console/sources#setting-a-source-type) at creation, and inspect captured requests as JSON.

See the [Console API reference](/docs/console/api) for the full contract.

## Source retention and Hookdeck accounts

Without an account, the Console remembers your sources in the browser you created them in, for up to 90 days. Choosing Save Data creates a free Hookdeck account and keeps them beyond that, across sessions and devices.

See [source retention](/docs/console/sources#source-retention-and-hookdeck-accounts) for what carries over.