---
type: api
title: Update a Timeline
description: **Spaces method and path for this operation:**
url: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/kibana-serverless/operation/operation-patchtimeline
resource: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/kibana-serverless/operation/operation-patchtimeline
products:
  - Kibana
---

# Update a Timeline

- Server: `https://{kibana_url}`

## Paths

- `PATCH` `/api/timeline`
- `PATCH` `/s/{space_id}/api/timeline`

- [Api key auth](/elastic/docs-builder/docs/4371/api/doc/kibana-serverless/authentication#apikeyauth)

## Description

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

Update an existing Timeline. You can update the title, description, date range, pinned events, pinned queries, and/or pinned saved queries of an existing Timeline.

## Request Body

`application/json`

The Timeline updates, along with the Timeline ID and version.

- `timeline` ({}) — required
  - `columns` ([] object) — optional — nullable
    The Timeline's columns
    - `aggregatable` (boolean) — optional — nullable
    - `category` (string) — optional — nullable
    - `columnHeaderType` (string) — optional — nullable
    - `description` (string) — optional — nullable
    - `example` (string) — optional — nullable
    - `id` (string) — optional — nullable
    - `indexes` ([] string) — optional — nullable
    - `name` (string) — optional — nullable
    - `placeholder` (string) — optional — nullable
    - `searchable` (boolean) — optional — nullable
    - `type` (string) — optional — nullable
  - `created` (number) — optional — nullable
    The time the Timeline was created, using a 13-digit Epoch timestamp.
  - `createdBy` (string) — optional — nullable
    The user who created the Timeline.
  - `dataProviders` ([] object) — optional — nullable
    Object containing query clauses
    - `and` ([] object) — optional — nullable
      - `enabled` (boolean) — optional — nullable
      - `excluded` (boolean) — optional — nullable
      - `id` (string) — optional — nullable
      - `kqlQuery` (string) — optional — nullable
      - `name` (string) — optional — nullable
      - `queryMatch` ({}) — optional
        - `displayField` (string) — optional — nullable
        - `displayValue` (string) — optional — nullable
        - `field` (string) — optional — nullable
        - `operator` (string) — optional — nullable
        - `value` (union string | [] string) — optional — nullable
      - `type` (enum) — optional
        The type of data provider.
        Values: `default`, `template`
    - `enabled` (boolean) — optional — nullable
    - `excluded` (boolean) — optional — nullable
    - `id` (string) — optional — nullable
    - `kqlQuery` (string) — optional — nullable
    - `name` (string) — optional — nullable
    - `queryMatch` ({}) — optional
      - `displayField` (string) — optional — nullable
      - `displayValue` (string) — optional — nullable
      - `field` (string) — optional — nullable
      - `operator` (string) — optional — nullable
      - `value` (union string | [] string) — optional — nullable
    - `type` (enum) — optional
      The type of data provider.
      Values: `default`, `template`
  - `dataViewId` (string) — optional — nullable
    ID of the Timeline's Data View
  - `dateRange` (object) — optional — nullable
    The Timeline's search period.
    - `end` (union string | number) — optional — nullable
    - `start` (union string | number) — optional — nullable
  - `description` (string) — optional — nullable
    The Timeline's description
  - `eqlOptions` (object) — optional — nullable
    EQL query that is used in the correlation tab
    - `eventCategoryField` (string) — optional — nullable
    - `query` (string) — optional — nullable
    - `size` (union string | number) — optional — nullable
    - `tiebreakerField` (string) — optional — nullable
    - `timestampField` (string) — optional — nullable
  - `eventType` (string) — optional — nullable — deprecated
    Event types displayed in the Timeline
  - `excludedRowRendererIds` ([] enum) — optional — nullable
    A list of row renderers that should not be used when in `Event renderers` mode
    Values: `alert`, `alerts`, `auditd`, `auditd_file`, `library`, `netflow`, `plain`, `registry`, `suricata`, `system`, `system_dns`, `system_endgame_process`, `system_file`, `system_fim`, `system_security_event`, `system_socket`, `threat_match`, `zeek`
  - `favorite` ([] object) — optional — nullable
    - `favoriteDate` (number) — optional — nullable
    - `fullName` (string) — optional — nullable
    - `userName` (string) — optional — nullable
  - `filters` ([] object) — optional — nullable
    A list of filters that should be applied to the query
    - `exists` (string) — optional — nullable
    - `match_all` (string) — optional — nullable
    - `meta` (object) — optional — nullable
      - `alias` (string) — optional — nullable
      - `controlledBy` (string) — optional — nullable
      - `disabled` (boolean) — optional — nullable
      - `field` (string) — optional — nullable
      - `formattedValue` (string) — optional — nullable
      - `index` (string) — optional — nullable
      - `key` (string) — optional — nullable
      - `negate` (boolean) — optional — nullable
      - `params` (string) — optional — nullable
      - `type` (string) — optional — nullable
      - `value` (string) — optional — nullable
    - `missing` (string) — optional — nullable
    - `query` (string) — optional — nullable
    - `range` (string) — optional — nullable
    - `script` (string) — optional — nullable
  - `indexNames` ([] string) — optional — nullable
    A list of index names to use in the query (e.g. when the default data view has been modified)
  - `kqlMode` (string) — optional — nullable
    Indicates whether the KQL bar filters the query results or searches for additional results, where:
  * `filter`: filters query results
  * `search`: displays additional search results
  - `kqlQuery` ({}) — optional
    KQL bar query.
    - `filterQuery` (object) — optional — nullable
      - `kuery` (object) — optional — nullable
        - `expression` (string) — optional — nullable
        - `kind` (string) — optional — nullable
      - `serializedQuery` (string) — optional — nullable
  - `savedQueryId` (string) — optional — nullable
    The ID of the saved query that might be used in the Query tab
  - `savedSearchId` (string) — optional — nullable
    The ID of the saved search that is used in the ES|QL tab
  - `sort` (union) — optional
    `SortObject` or `SortObject[]`
    - `columnId` (string) — optional — nullable
    - `columnType` (string) — optional — nullable
    - `sortDirection` (string) — optional — nullable
  - `status` (enum) — optional
    The status of the Timeline.
    Values: `active`, `draft`, `immutable`
  - `templateTimelineId` (string) — optional — nullable
    A unique ID (UUID) for Timeline templates. For Timelines, the value is `null`.
  - `templateTimelineVersion` (number) — optional — nullable
    Timeline template version number. For Timelines, the value is `null`.
  - `timelineType` (enum) — optional
    The type of Timeline.
    Values: `default`, `template`
  - `title` (string) — optional — nullable
    The Timeline's title.
  - `updated` (number) — optional — nullable
    The last time the Timeline was updated, using a 13-digit Epoch timestamp
  - `updatedBy` (string) — optional — nullable
    The user who last updated the Timeline
- `timelineId` (string) — required — nullable
  The `savedObjectId` of the Timeline or Timeline template that you’re updating.
- `version` (string) — required — nullable
  The version of the Timeline or Timeline template that you’re updating.

## Responses

#### `200`

Indicates a successful call.

`application/json`

- `columns` ([] object) — nullable
  The Timeline's columns
  Same fields as `columns` in `timeline`
- `created` (number) — nullable
  The time the Timeline was created, using a 13-digit Epoch timestamp.
- `createdBy` (string) — nullable
  The user who created the Timeline.
- `dataProviders` ([] object) — nullable
  Object containing query clauses
  Same fields as `dataProviders` in `timeline`
- `dataViewId` (string) — nullable
  ID of the Timeline's Data View
- `dateRange` (object) — nullable
  The Timeline's search period.
  - `end` (union string | number) — nullable
  - `start` (union string | number) — nullable
- `description` (string) — nullable
  The Timeline's description
- `eqlOptions` (object) — nullable
  EQL query that is used in the correlation tab
  - `eventCategoryField` (string) — nullable
  - `query` (string) — nullable
  - `size` (union string | number) — nullable
  - `tiebreakerField` (string) — nullable
  - `timestampField` (string) — nullable
- `eventType` (string) — nullable — deprecated
  Event types displayed in the Timeline
- `excludedRowRendererIds` ([] enum) — nullable
  A list of row renderers that should not be used when in `Event renderers` mode
  Values: `alert`, `alerts`, `auditd`, `auditd_file`, `library`, `netflow`, `plain`, `registry`, `suricata`, `system`, `system_dns`, `system_endgame_process`, `system_file`, `system_fim`, `system_security_event`, `system_socket`, `threat_match`, `zeek`
- `favorite` ([] object) — nullable
  - `favoriteDate` (number) — nullable
  - `fullName` (string) — nullable
  - `userName` (string) — nullable
- `filters` ([] object) — nullable
  A list of filters that should be applied to the query
  Same fields as `filters` in `timeline`
- `indexNames` ([] string) — nullable
  A list of index names to use in the query (e.g. when the default data view has been modified)
- `kqlMode` (string) — nullable
  Indicates whether the KQL bar filters the query results or searches for additional results, where:
  * `filter`: filters query results
  * `search`: displays additional search results
- `kqlQuery` ({})
  KQL bar query.
  - `filterQuery` (object) — nullable
    - `kuery` (object) — nullable
      - `expression` (string) — nullable
      - `kind` (string) — nullable
    - `serializedQuery` (string) — nullable
- `savedQueryId` (string) — nullable
  The ID of the saved query that might be used in the Query tab
- `savedSearchId` (string) — nullable
  The ID of the saved search that is used in the ES|QL tab
- `sort` (union)
  `SortObject` or `SortObject[]`
  - `columnId` (string) — nullable
  - `columnType` (string) — nullable
  - `sortDirection` (string) — nullable
- `status` (enum)
  The status of the Timeline.
  Values: `active`, `draft`, `immutable`
- `templateTimelineId` (string) — nullable
  A unique ID (UUID) for Timeline templates. For Timelines, the value is `null`.
- `templateTimelineVersion` (number) — nullable
  Timeline template version number. For Timelines, the value is `null`.
- `timelineType` (enum)
  The type of Timeline.
  Values: `default`, `template`
- `title` (string) — nullable
  The Timeline's title.
- `updated` (number) — nullable
  The last time the Timeline was updated, using a 13-digit Epoch timestamp
- `updatedBy` (string) — nullable
  The user who last updated the Timeline
- `savedObjectId` (string)
  The `savedObjectId` of the Timeline or Timeline template
- `version` (string)
  The version of the Timeline or Timeline template
- `eventIdToNoteIds` ([] object) — nullable
  A list of all the notes that are associated to this Timeline.
  - `created` (number) — nullable
    The time the note was created, using a 13-digit Epoch timestamp.
  - `createdBy` (string) — nullable
    The user who created the note.
  - `updated` (number) — nullable
    The last time the note was updated, using a 13-digit Epoch timestamp
  - `updatedBy` (string) — nullable
    The user who last updated the note
  - `eventId` (string) — nullable
    Elasticsearch document `_id` for the event or alert this note refers to. Same value as the `documentIds` query parameter when fetching notes via GET /api/note.
  - `note` (string) — nullable
    The text of the note
  - `timelineId` (string)
    The `savedObjectId` of the Timeline this note belongs to (not the note's own ID).
  - `noteId` (string)
    The `savedObjectId` of the note
  - `version` (string)
    The version of the note
- `noteIds` ([] string) — nullable
  A list of all the ids of notes that are associated to this Timeline.
- `notes` ([] object) — nullable
  A list of all the notes that are associated to this Timeline.
  - `created` (number) — nullable
    The time the note was created, using a 13-digit Epoch timestamp.
  - `createdBy` (string) — nullable
    The user who created the note.
  - `updated` (number) — nullable
    The last time the note was updated, using a 13-digit Epoch timestamp
  - `updatedBy` (string) — nullable
    The user who last updated the note
  - `eventId` (string) — nullable
    Elasticsearch document `_id` for the event or alert this note refers to. Same value as the `documentIds` query parameter when fetching notes via GET /api/note.
  - `note` (string) — nullable
    The text of the note
  - `timelineId` (string)
    The `savedObjectId` of the Timeline this note belongs to (not the note's own ID).
  - `noteId` (string)
    The `savedObjectId` of the note
  - `version` (string)
    The version of the note
- `pinnedEventIds` ([] string) — nullable
  A list of all the ids of pinned events that are associated to this Timeline.
- `pinnedEventsSaveObject` ([] object) — nullable
  A list of all the pinned events that are associated to this Timeline.
  - `created` (number) — nullable
    The time the pinned event was created, using a 13-digit Epoch timestamp.
  - `createdBy` (string) — nullable
    The user who created the pinned event.
  - `updated` (number) — nullable
    The last time the pinned event was updated, using a 13-digit Epoch timestamp
  - `updatedBy` (string) — nullable
    The user who last updated the pinned event
  - `eventId` (string)
    The `_id` of the associated event for this pinned event.
  - `timelineId` (string)
    The `savedObjectId` of the timeline that this pinned event is associated with
  - `pinnedEventId` (string)
    The `savedObjectId` of this pinned event
  - `version` (string)
    The version of this pinned event
#### `405`

Indicates that the user does not have the required access to create a Timeline.

`application/json`

- `body` (string)
  The error message.
- `statusCode` (number)
## Code Examples

#### Console

```console
PATCH /api/timeline
{
  "timeline": {
    "title": "Escalated case review"
  },
  "timelineId": "15c1929b-0af7-42bd-85a8-56e234cc7c4e",
  "version": "WzE0LDFd"
}
```

#### curl

```curl
curl -X PATCH "https://{kibana_url}/api/timeline" \
  -H "Content-Type: application/json" \
  -d '{
  "timeline": {
    "title": "Escalated case review"
  },
  "timelineId": "15c1929b-0af7-42bd-85a8-56e234cc7c4e",
  "version": "WzE0LDFd"
}'
```

## Response Examples

#### Updated timeline

```json
{
  "savedObjectId": "15c1929b-0af7-42bd-85a8-56e234cc7c4e",
  "status": "active",
  "timelineType": "default",
  "title": "Escalated case review",
  "version": "WzE1LDFd"
}
```

#### Error body

```json
{
  "body": "update timeline error",
  "statusCode": 405
}
```

