# pulsar

> 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: pulsar
latest-connect-version: 4.93.0
latest-operator-version: v26.1.4
latest-console-tag: v3.7.3
latest-redpanda-tag: v26.1.9
docname: inputs/pulsar
page-component-name: connect
page-version: master
page-component-version: master
page-component-title: Connect
page-relative-src-path: inputs/pulsar.adoc
page-edit-url: https://github.com/redpanda-data/rp-connect-docs/edit/main/modules/components/pages/inputs/pulsar.adoc
page-git-created-date: "2024-05-24"
page-git-modified-date: "2026-05-26"
---

<!-- Source: https://docs.redpanda.com/connect/components/inputs/pulsar.md -->

**Type:** Input ▼

[Input](https://docs.redpanda.com/connect/components/inputs/pulsar/)[Output](https://docs.redpanda.com/connect/components/outputs/pulsar/)

**Available in:** Self-Managed

Reads messages from an Apache Pulsar server.

Introduced in version 3.43.0.

#### Common

```yml
inputs:
  label: ""
  pulsar:
    url: "" # No default (required)
    topics: [] # No default (optional)
    topics_pattern: "" # No default (optional)
    subscription_name: "" # No default (required)
    subscription_type: shared
    subscription_initial_position: latest
    tls:
      root_cas_file: ""
```

#### Advanced

```yml
inputs:
  label: ""
  pulsar:
    url: "" # No default (required)
    topics: [] # No default (optional)
    topics_pattern: "" # No default (optional)
    subscription_name: "" # No default (required)
    subscription_type: shared
    subscription_initial_position: latest
    tls:
      root_cas_file: ""
    auth:
      oauth2:
        enabled: false
        audience: ""
        issuer_url: ""
        scope: ""
        private_key_file: ""
      token:
        enabled: false
        token: ""
```

## [](#metadata)Metadata

This input adds the following metadata fields to each message:

```text
- pulsar_message_id
- pulsar_key
- pulsar_ordering_key
- pulsar_event_time_unix
- pulsar_publish_time_unix
- pulsar_topic
- pulsar_producer_name
- pulsar_redelivery_count
- All properties of the message
```

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

## [](#fields)Fields

### [](#auth)`auth`

Optional configuration of Pulsar authentication methods.

Requires version 3.60.0 or later.

**Type**: `object`

### [](#auth-oauth2)`auth.oauth2`

Parameters for Pulsar OAuth2 authentication.

**Type**: `object`

### [](#auth-oauth2-audience)`auth.oauth2.audience`

OAuth2 audience.

**Type**: `string`

**Default**: `""`

### [](#auth-oauth2-enabled)`auth.oauth2.enabled`

Whether OAuth2 is enabled.

**Type**: `bool`

**Default**: `false`

### [](#auth-oauth2-issuer_url)`auth.oauth2.issuer_url`

OAuth2 issuer URL.

**Type**: `string`

**Default**: `""`

### [](#auth-oauth2-private_key_file)`auth.oauth2.private_key_file`

The path to a file containing a private key.

**Type**: `string`

**Default**: `""`

### [](#auth-oauth2-scope)`auth.oauth2.scope`

OAuth2 scope to request.

**Type**: `string`

**Default**: `""`

### [](#auth-token)`auth.token`

Parameters for Pulsar Token authentication.

**Type**: `object`

### [](#auth-token-enabled)`auth.token.enabled`

Whether Token Auth is enabled.

**Type**: `bool`

**Default**: `false`

### [](#auth-token-token)`auth.token.token`

Actual base64 encoded token.

**Type**: `string`

**Default**: `""`

### [](#subscription_initial_position)`subscription_initial_position`

Specify the subscription initial position for this consumer.

**Type**: `string`

**Default**: `latest`

**Options**: `latest`, `earliest`

### [](#subscription_name)`subscription_name`

Specify the subscription name for this consumer.

**Type**: `string`

### [](#subscription_type)`subscription_type`

Specify the subscription type for this consumer.

> > 📝 **NOTE**
> >
> > Using a `key_shared` subscription type will _allow out-of-order delivery_ since nack-ing messages sets non-zero nack delivery delay - this can potentially cause consumers to stall. See [Pulsar documentation](https://pulsar.apache.org/docs/en/2.8.1/concepts-messaging/#negative-acknowledgement) and [this Github issue](https://github.com/apache/pulsar/issues/12208) for more details.

**Type**: `string`

**Default**: `shared`

**Options**: `shared`, `key_shared`, `failover`, `exclusive`

### [](#tls)`tls`

Specify the path to a custom CA certificate to trust broker TLS service.

**Type**: `object`

### [](#tls-root_cas_file)`tls.root_cas_file`

An optional path of a root certificate authority file to use. This is a file, often with a .pem extension, containing a certificate chain from the parent trusted root certificate, to possible intermediate signing certificates, to the host certificate.

**Type**: `string`

**Default**: `""`

```yaml
# Examples:
root_cas_file: ./root_cas.pem
```

### [](#topics)`topics[]`

A list of topics to subscribe to. This or topics\_pattern must be set.

**Type**: `array`

### [](#topics_pattern)`topics_pattern`

A regular expression matching the topics to subscribe to. This or topics must be set.

**Type**: `string`

### [](#url)`url`

A URL to connect to.

**Type**: `string`

```yaml
# Examples:
url: pulsar://localhost:6650

# ---

url: pulsar://pulsar.us-west.example.com:6650

# ---

url: pulsar+ssl://pulsar.us-west.example.com:6651
```