---
title: "Create or update a stream"
method: PUT
path: "/api/streams/{name}"
tags: ["streams"]
---

# Create or update a stream

`PUT /api/streams/{name}`

**Spaces method and path for this operation:**

<div><span class="operation-verb put">put</span>&nbsp;<span class="operation-path">/s/{space_id}/api/streams/{name}</span></div>

Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.

Creates or updates a stream definition. Classic streams can not be created through this API, only updated<br/><br/>[Required authorization] Route required privileges: manage_stream.

## Path parameters

- `name` string, required

## Headers

- `kbn-xsrf` string, required

## Request body

- union
  - KibanaHTTPAPIsWiredStreamUpsertRequest
    - `dashboards` string[], required
    - `rules` string[], required
    - `stream` object, required
      - `description` string, required
      - `ingest` object, required
        - `failure_store` union, required
          - object
            - `inherit` object, required
          - object
            - `disabled` object, required
          - object
            - `lifecycle` object, required
              - …
          - object
            - `lifecycle` object, required
              - …
        - `lifecycle` union, required
          - object
            - `dsl` object, required
              - …
          - object
            - `ilm` object, required
              - …
          - object
            - `inherit` object, required
        - `processing` object, required
          - `steps` KibanaHTTPAPIsStreamlangStep[], required
            - union
              - …
        - `settings` object, required
          - `index.number_of_replicas` object
            - `value` number, required
          - `index.number_of_shards` object
            - `value` number, required
          - `index.refresh_interval` object
            - `value` union, required
              - …
        - `wired` object, required
          - `draft` boolean
          - `fields` KibanaHTTPAPIsFieldDefinition, required — unresolved $ref
          - `routing` object[], required
            - `destination` string, required — A non-empty string.
            - `draft` boolean
            - `status` 'enabled' | 'disabled'
            - `where` union, required — The root condition object. It can be a simple filter or a combination of other conditions.
              - …
      - `query_streams` object[]
        - `name` string, required
      - `type` 'wired', required
  - KibanaHTTPAPIsClassicStreamUpsertRequest
    - `dashboards` string[], required
    - `rules` string[], required
    - `stream` object, required
      - `description` string, required
      - `ingest` object, required
        - `classic` object, required
          - `field_overrides` KibanaHTTPAPIsClassicFieldDefinition
        - `failure_store` union, required
          - object
            - `inherit` object, required
          - object
            - `disabled` object, required
          - object
            - `lifecycle` object, required
              - …
          - object
            - `lifecycle` object, required
              - …
        - `lifecycle` union, required
          - object
            - `dsl` object, required
              - …
          - object
            - `ilm` object, required
              - …
          - object
            - `inherit` object, required
        - `processing` union, required
          - object
            - `steps` KibanaHTTPAPIsStreamlangStep[], required
              - …
          - object
            - `processors` object[], required
              - …
        - `settings` object, required
          - `index.number_of_replicas` object
            - `value` number, required
          - `index.number_of_shards` object
            - `value` number, required
          - `index.refresh_interval` object
            - `value` union, required
              - …
      - `query_streams` object[]
        - `name` string, required
      - `type` 'classic', required
  - KibanaHTTPAPIsQueryStreamUpsertRequest
    - `dashboards` string[], required
    - `rules` string[], required
    - `stream` object, required
      - `description` string, required
      - `field_descriptions` object
      - `query` object, required
        - `esql` string, required
        - `view` string, required
      - `query_streams` object[]
        - `name` string, required
      - `type` 'query', required

## Response `200`

The stream was created or updated successfully.

## Changes

> 92 revisions in range; 17 could not be searched.

- **2026-08-13** `0ccc4e4f608a` — 1 breaking, 3 warning, 1 info
  - the `anyOf[#/components/schemas/Kibana_HTTP_APIs_ClassicStreamUpsertRequest]/stream/ingest/processing` request property type/format changed from `object`/`` to ``/``
  - removed the request property `anyOf[#/components/schemas/Kibana_HTTP_APIs_ClassicStreamUpsertRequest]/stream/ingest/processing/steps`
  - removed the request property `anyOf[#/components/schemas/Kibana_HTTP_APIs_ClassicStreamUpsertRequest]/stream/ingest/processing/updated_at`
  - removed the request property `anyOf[#/components/schemas/Kibana_HTTP_APIs_WiredStreamUpsertRequest]/stream/ingest/processing/updated_at`
  - …1 more
- …earlier changes not shown

[Full history](https://skmtc.dev/elastic/apis/kibana-apis/changes/api/streams/:name/put.md)

---

[API](https://skmtc.dev/elastic/apis/kibana-apis.md) · [All operations](https://skmtc.dev/elastic/apis/kibana-apis/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/elastic/kibana-apis/revisions/d3fa2d005f9b/schema)
