# gateway

> For the complete documentation index, see [llms.txt](https://docs.redpanda.com/llms.txt). Component-specific: [cloud-data-platform-full.txt](https://docs.redpanda.com/cloud-data-platform-full.txt)

---
title: gateway
latest-operator-version: v26.1.4
latest-console-tag: v3.7.3
latest-connect-version: 4.93.0
latest-redpanda-tag: v26.1.9
docname: connect/components/inputs/gateway
page-component-name: cloud-data-platform
page-version: master
page-component-version: master
page-component-title: Cloud
page-relative-src-path: connect/components/inputs/gateway.adoc
page-edit-url: https://github.com/redpanda-data/cloud-docs/edit/main/modules/develop/pages/connect/components/inputs/gateway.adoc
page-git-created-date: "2025-06-25"
page-git-modified-date: "2026-05-26"
---

<!-- Source: https://docs.redpanda.com/cloud-data-platform/develop/connect/components/inputs/gateway.md -->

**Available in:** Cloud

The `gateway` input is a Cloud-only component that receives messages over HTTP and injects them into a running Redpanda Connect pipeline. It’s ideal for:

-   Receiving webhook events from third-party services

-   Accepting real-time telemetry or sensor data over HTTP

-   Building lightweight ingest endpoints for client apps


For on-premises or self-managed deployments, use the [`http_server`](https://docs.redpanda.com/connect/components/inputs/http_server/) input instead.

This component is fully managed and available in the following Redpanda Cloud deployment types:

-   **Serverless**

-   **Dedicated**

-   **Bring Your Own Cloud (BYOC)**


When a pipeline with a `gateway` input is deployed, Redpanda Cloud provisions a secure URL that you can use to send HTTP requests. You can post raw payloads, JSON messages, or stream events in real time.

Authentication and access control are handled through standard Redpanda Cloud API tokens. For more information, see [Cloud API Authentication](https://docs.redpanda.com/api/doc/cloud-dataplane/authentication).

Network access:

-   On **public clusters** (Serverless and Dedicated), the gateway URL is accessible over the public internet.

-   On **private clusters** (BYOC), the gateway is accessible only from within your configured VPC.


#### Common

```yaml
input:
  label: ""
  gateway:
    path: /
    rate_limit: ""
```

#### Advanced

```yaml
input:
  label: ""
  gateway:
    path: /
    rate_limit: ""

    sync_response:
      status: "200"
      headers:
        Content-Type: application/octet-stream
      metadata_headers:
        include_prefixes:
          []
        include_patterns:
          []
```

The field `rate_limit` allows you to specify an optional [`rate_limit` resource](https://docs.redpanda.com/cloud-data-platform/develop/connect/components/rate_limits/about/) that applies to all HTTP requests.

When the rate limit is breached, HTTP requests return a 429 response with a Retry-After header.

## [](#responses)Responses

You can also return a response for each message received using [synchronous responses](https://docs.redpanda.com/cloud-data-platform/develop/connect/guides/sync_responses/). When doing so, you can customize headers using the `sync_response.headers` field, which supports [function interpolation](https://docs.redpanda.com/cloud-data-platform/develop/connect/configuration/interpolation/#bloblang-queries) in the value based on the response message contents.

## [](#metadata)Metadata

This input adds the following metadata fields to each message:

-   `http_server_user_agent`

-   `http_server_request_path`

-   `http_server_verb`

-   `http_server_remote_ip`

-   All headers (only first values are taken)

-   All query parameters

-   All path parameters

-   All cookies


You can access these metadata fields using [function interpolation](https://docs.redpanda.com/cloud-data-platform/develop/connect/configuration/interpolation/#bloblang-queries).

## [](#fields)Fields

### [](#path)`path`

The endpoint path to listen for data delivery requests.

**Type**: `string`

**Default**: `/`

### [](#rate_limit)`rate_limit`

An optional [rate limit](https://docs.redpanda.com/cloud-data-platform/develop/connect/components/rate_limits/about/) to throttle requests by.

**Type**: `string`

**Default**: `""`

### [](#sync_response)`sync_response`

Customize messages returned using [synchronous responses](https://docs.redpanda.com/cloud-data-platform/develop/connect/guides/sync_responses/).

**Type**: `object`

### [](#sync_response-headers)`sync_response.headers`

Specify headers to return with synchronous responses.

This field supports [interpolation functions](https://docs.redpanda.com/cloud-data-platform/develop/connect/configuration/interpolation/#bloblang-queries).

**Type**: `string`

**Default**:

```yaml
Content-Type: "application/octet-stream"
```

### [](#sync_response-metadata_headers)`sync_response.metadata_headers`

Specify criteria for which metadata values are added to the response as headers.

**Type**: `object`

### [](#sync_response-metadata_headers-include_patterns)`sync_response.metadata_headers.include_patterns[]`

Provide a list of explicit metadata key regular expression (re2) patterns to match against.

**Type**: `array`

**Default**: `[]`

```yaml
# Examples:
include_patterns:
  - .*

# ---

include_patterns:
  - _timestamp_unix$
```

### [](#sync_response-metadata_headers-include_prefixes)`sync_response.metadata_headers.include_prefixes[]`

Provide a list of explicit metadata key prefixes to match against.

**Type**: `array`

**Default**: `[]`

```yaml
# Examples:
include_prefixes:
  - foo_
  - bar_

# ---

include_prefixes:
  - kafka_

# ---

include_prefixes:
  - content-
```

### [](#sync_response-status)`sync_response.status`

Specify the status code to return with synchronous responses. This is a string value, which allows you to customize it based on resulting payloads and their metadata.

This field supports [interpolation functions](https://docs.redpanda.com/cloud-data-platform/develop/connect/configuration/interpolation/#bloblang-queries).

**Type**: `string`

**Default**: `200`

```yaml
# Examples:
status: ${! json("status") }

# ---

status: ${! meta("status") }
```

### [](#tcp)`tcp`

Customize messages returned via [synchronous responses](https://docs.redpanda.com/cloud-data-platform/develop/connect/guides/sync_responses/).

**Type**: `object`

### [](#tcp-reuse_addr)`tcp.reuse_addr`

Enable SO\_REUSEADDR, allowing binding to ports in TIME\_WAIT state. Useful for graceful restarts and config reloads where the server needs to rebind to the same port immediately after shutdown.

**Type**: `bool`

**Default**: `false`

### [](#tcp-reuse_port)`tcp.reuse_port`

Enable SO\_REUSEPORT, allowing multiple sockets to bind to the same port for load balancing across multiple processes/threads.

**Type**: `bool`

**Default**: `false`

## [](#examples)Examples

### [](#ingest-a-real-time-stream-of-sensor-data)Ingest a real-time stream of sensor data

Use the `gateway` input to stream telemetry data from edge devices or browser clients that connect over HTTP.

Suppose a client connects and sends JSON-encoded sensor readings like this:

```json
{ "sensor_id": "temp-001", "value": 22.5, "unit": "C" }
{ "sensor_id": "temp-001", "value": 22.8, "unit": "C" }
{ "sensor_id": "temp-001", "value": 23.1, "unit": "C" }
```

Redpanda Connect treats each line as an individual message.

The following pipeline sets up a `gateway` input to handle these connections and logs each message:

```yaml
input:
  label: sensor_stream
  gateway:
    path: /ws/sensors
    rate_limit: ""

pipeline:
  processors:
    - log:
        level: INFO
        message: "Received reading from ${! json(\"sensor_id\") }: ${! json(\"value\") } ${! json(\"unit\") }"
```

This configuration:

-   Accepts HTTP connections on `/ws/sensors`

-   Receives a stream of messages over a single connection

-   Logs each message using Bloblang interpolation


You can replace the `log` processor with any downstream output, such as Redpanda or Amazon S3, to persist or analyze the data in real time.