---
description: How to send webhooks to private or public destinations
---

# Quick Start - Forwarding

Webhook Relay provides public endpoints which can accept HTTP requests and then forward them to either public or internal destinations.

![Webhook routing to public and private](https://webhookrelay.com/images/generic/forwarding.png)



Based on your needs, there are multiple different ways to start forwarding. The easiest one for internal destinations is using the relay CLI directly.

Installing the CLI:

```
curl https://my.webhookrelay.com/webhookrelay/downloads/install-cli.sh | bash
```

Then, to forward webhooks to `https://localhost:8080/webhooks by running:`

```
relay forward -b my-bucket https://localhost:8080/webhooks
```

## Option A: Using configuration helpers

We have a step-by-step configuration wizards that will help you:

* [https://my.webhookrelay.com/new-basic-forwarding](https://my.webhookrelay.com/new-basic-forwarding) - simple single input and single output to internal or public destination
* [https://my.webhookrelay.com/new-forwarding](https://my.webhookrelay.com/new-forwarding) - for more advanced use-cases when request transformation is required

Once configuration is created, you can always edit all details by visiting your [buckets page](https://my.webhookrelay.com/buckets). If your destination is internal, you will need to start the agent.

## Option B: Configuring manually

A newly created bucket will have a default input. However, you will need to create an output destination.

![Newly created bucket](https://1670908329-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaDOKCOBEVRodeAJDVo%2Fuploads%2FIzfpsDRbaqQxyGi0GDrK%2Fimage.png?alt=media\&token=506b6c3d-ada3-4c54-ad14-bf542a542e97)

To do that, click on Add More in the "**Output Destinations**" section:

![Create an output](https://1670908329-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaDOKCOBEVRodeAJDVo%2Fuploads%2Fs0DjrJMm4iD6lnDMkjsc%2Fimage.png?alt=media\&token=9335357e-876b-4943-ab6b-2834ad4d8654)

Set name, destination and output type, then click ‘create’:

![creating a new output](https://1670908329-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MaDOKCOBEVRodeAJDVo%2Fuploads%2Fso2jewIBshzrCG3Jn4cK%2Fimage.png?alt=media\&token=10fcc9a5-722b-4c50-90d8-565859daa291)

All received webhooks will be forwarded to that destination. If you selected 'internal' network, you will need to start the relay agent as well:

```bash
relay forward --bucket jenkins
```

Example output:

```bash
relay forward --bucket jenkins
Forwarding: 
https://vlndyzsibcil98gdte7l3r.hooks.webhookrelay.com -> https://192.168.1.100:8080/github-webhooks
```

{% hint style="info" %}
Relay CLI installation instructions can be found [here](installation-options/installation-options/install-cli).
{% endhint %}

## What can be forwarded?

Currently Webhook Relay forwards:

* Body (up to 2MB for regular buckets and up to 50MB when **Large Webhooks** are enabled)
* Headers
* URL query, for example **`https://xyz.hooks.webhookrelay.com?foo=bar`**, will be forwarded to **`http://localhost:8080?foo=bar`**
* Extra path that’s after your public input endpoints: **`https://xyz.hooks.webhookrelay.com/directory/foo`** will be forwarded to **`http://localhost:8080/directory/foo`**

Functions, when applied on Inputs can provide dynamic response. See [functions documentation](products/functions).

## Learn more

If you would like to learn more about other features such as rules matching, utilising custom domains and functions, go to the [deep-dive section](https://webhookrelay.com/v1/tutorials/forwarding-deep-dive/).
