HTTP Endpoint inputedit

This functionality is in beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features.

Use the http_endpoint input to create a HTTP listener that can receive incoming HTTP POST requests.

This input can for example be used to receive incoming webhooks from a third-party application or service.

Example configurations:

Basic example:

- type: http_endpoint
  enabled: true
  listen_port: 8080

Custom response example:

- type: http_endpoint
  enabled: true
  listen_port: 8080
  response_code: 200
  response_body: '{"message": "success"}'
  url: "/"
  prefix: "json"

Disable Content-Type checks

- type: http_endpoint
  enabled: true
  content_type: ""
  prefix: "json"

Basic auth and SSL example:

- type: http_endpoint
  enabled: true
  listen_port: 8080
  ssl.enabled: true
  ssl.certificate: "/home/user/server.pem"
  ssl.key: "/home/user/server.key"
  ssl.verification_mode: "none"
  ssl.certificate_authority: "/home/user/ca.pem"
  basic_auth: true
  username: someuser
  password: somepassword

Configuration optionsedit

The http_endpoint input supports the following configuration options plus the Common options described later.


Enables or disables HTTP basic auth for each incoming request. If enabled then username and password will also need to be configured.


If basic_auth is enabled, this is the username used for authentication against the HTTP listener. Requires password to also be set.


If basic_auth is eanbled, this is the password used for authentication against the HTTP listener. Requires username to also be set.


By default the input expects the incoming POST to include a Content-Type of application/json to try to enforce the incoming data to be valid JSON. In certain scenarios when the source of the request is not able to do that, it can be overwritten with another value or set to null


The HTTP response code returned upon success. Should be in the 2XX range.


The response body returned upon success.


If multiple interfaces is present the listen_address can be set to control which IP address the listener binds to. Defaults to


Which port the listener binds to. Defaults to 8000


This options specific which URL path to accept requests on. Defaults to /


This option specifies which prefix the incoming request will be mapped to.

Common optionsedit

The following configuration options are supported by all inputs.


Use the enabled option to enable and disable inputs. By default, enabled is set to true.


A list of tags that Filebeat includes in the tags field of each published event. Tags make it easy to select specific events in Kibana or apply conditional filtering in Logstash. These tags will be appended to the list of tags specified in the general configuration.


- type: http_endpoint
  . . .
  tags: ["json"]

Optional fields that you can specify to add additional information to the output. For example, you might add fields that you can use for filtering log data. Fields can be scalar values, arrays, dictionaries, or any nested combination of these. By default, the fields that you specify here will be grouped under a fields sub-dictionary in the output document. To store the custom fields as top-level fields, set the fields_under_root option to true. If a duplicate field is declared in the general configuration, then its value will be overwritten by the value declared here.

- type: http_endpoint
  . . .
    app_id: query_engine_12

If this option is set to true, the custom fields are stored as top-level fields in the output document instead of being grouped under a fields sub-dictionary. If the custom field names conflict with other field names added by Filebeat, then the custom fields overwrite the other fields.


A list of processors to apply to the input data.

See Processors for information about specifying processors in your config.


The Ingest Node pipeline ID to set for the events generated by this input.

The pipeline ID can also be configured in the Elasticsearch output, but this option usually results in simpler configuration files. If the pipeline is configured both in the input and output, the option from the input is used.


If this option is set to true, fields with null values will be published in the output document. By default, keep_null is set to false.


If present, this formatted string overrides the index for events from this input (for elasticsearch outputs), or sets the raw_index field of the event’s metadata (for other outputs). This string can only refer to the agent name and version and the event timestamp; for access to dynamic fields, use output.elasticsearch.index or a processor.

Example value: "%{[]}-myindex-%{+yyyy.MM.dd}" might expand to "filebeat-myindex-2019.11.01".


By default, all events contain This option can be set to true to disable the addition of this field to all events. The default value is false.