# http_server

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

---
title: http_server
latest-connect-version: 4.104.0
latest-operator-version: v26.2.1
latest-console-tag: v3.9.0
latest-redpanda-tag: v26.2.1
docname: outputs/http_server
page-component-name: connect
page-version: master
page-component-version: master
page-component-title: Connect
page-relative-src-path: outputs/http_server.adoc
page-edit-url: https://github.com/redpanda-data/rp-connect-docs/edit/main/modules/components/pages/outputs/http_server.adoc
page-git-created-date: "2024-05-24"
page-git-modified-date: "2026-05-26"
---

<!-- Source: https://docs.redpanda.com/connect/components/outputs/http_server.md -->

Sets up an HTTP server that will send messages over HTTP(S) GET requests. HTTP 2.0 is supported when using TLS, which is enabled when key and cert files are specified.

#### Common

```yml
outputs:
  label: ""
  http_server:
    address: ""
    path: /get
    stream_path: /get/stream
    ws_path: /get/ws
    allowed_verbs:
      - "GET"
```

#### Advanced

```yml
outputs:
  label: ""
  http_server:
    address: ""
    path: /get
    stream_path: /get/stream
    ws_path: /get/ws
    allowed_verbs:
      - "GET"
    timeout: 5s
    cert_file: ""
    key_file: ""
    cors:
      enabled: false
      allowed_origins: []
```

Sets up an HTTP server that will send messages over HTTP(S) GET requests. If the `address` config field is left blank the [service-wide HTTP server](https://docs.redpanda.com/connect/components/http/about/) will be used.

Three endpoints will be registered at the paths specified by the fields `path`, `stream_path` and `ws_path`. Which allow you to consume a single message batch, a continuous stream of line delimited messages, or a websocket of messages for each request respectively.

When messages are batched the `path` endpoint encodes the batch according to [RFC1341](https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html). This behavior can be overridden by [archiving your batches](https://docs.redpanda.com/connect/configuration/batching/#post-batch-processing).

Please note, messages are considered delivered as soon as the data is written to the client. There is no concept of at least once delivery on this output.

> ⚠️ **CAUTION: Endpoint caveats**
>
> Endpoint caveats
>
> Components within a Redpanda Connect config will register their respective endpoints in a non-deterministic order. This means that establishing precedence of endpoints that are registered via multiple `http_server` inputs or outputs (either within brokers or from cohabiting streams) is not possible in a predictable way.
>
> This ambiguity makes it difficult to ensure that paths which are both a subset of a path registered by a separate component, and end in a slash (`/`) and will therefore match against all extensions of that path, do not prevent the more specific path from matching against requests.
>
> It is therefore recommended that you ensure paths of separate components do not collide unless they are explicitly non-competing.
>
> For example, if you were to deploy two separate `http_server` inputs, one with a path `/foo/` and the other with a path `/foo/bar`, it would not be possible to ensure that the path `/foo/` does not swallow requests made to `/foo/bar`.

## [](#fields)Fields

### [](#address)`address`

An alternative address to host from. If left empty the service wide address is used.

**Type**: `string`

**Default**: `""`

### [](#allowed_verbs)`allowed_verbs[]`

An array of verbs that are allowed for the `path` and `stream_path` HTTP endpoint.

**Type**: `array<string>`

**Default**:

```yaml
- "GET"
```

### [](#cert_file)`cert_file`

Enable TLS by specifying a certificate and key file. Only valid with a custom `address`.

**Type**: `string`

**Default**: `""`

### [](#cors)`cors`

Adds Cross-Origin Resource Sharing headers. Only valid with a custom `address`.

Requires version 3.63.0 or later.

**Type**: `object`

### [](#cors-allowed_origins)`cors.allowed_origins[]`

An explicit list of origins that are allowed for CORS requests.

**Type**: `array<string>`

**Default**: `[]`

### [](#cors-enabled)`cors.enabled`

Whether to allow CORS requests.

**Type**: `bool`

**Default**: `false`

### [](#key_file)`key_file`

Enable TLS by specifying a certificate and key file. Only valid with a custom `address`.

**Type**: `string`

**Default**: `""`

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

The path from which discrete messages can be consumed.

**Type**: `string`

**Default**: `/get`

### [](#stream_path)`stream_path`

The path from which a continuous stream of messages can be consumed.

**Type**: `string`

**Default**: `/get/stream`

### [](#timeout)`timeout`

The maximum time to wait before a blocking, inactive connection is dropped (only applies to the `path` endpoint).

**Type**: `string`

**Default**: `5s`

### [](#ws_path)`ws_path`

The path from which websocket connections can be established.

**Type**: `string`

**Default**: `/get/ws`