Timeline schema
Serverless Security Stack
The Timeline schema lists all the JSON fields and objects required to create a Timeline or a Timeline template using the Create Timeline API.
		Important
	
	All column, dropzone, and filter fields must be ECS fields.
This screenshot maps the Timeline UI components to their JSON objects:

- Title (
title) - Global notes (
globalNotes) - Data view (
dataViewId) - KQL bar query (
kqlQuery) - Time filter (
dateRange) - Additional filters (
filters) - KQL bar mode (
kqlMode) - Dropzone (each clause is contained in its own 
dataProvidersobject) - Column headers (
columns) - Event-specific notes (
eventNotes) 
| Name | Type | Description | 
|---|---|---|
columns | 
columns[] | The Timeline’scolumns. | 
created | 
Float | The time the Timeline was created, using a 13-digit Epochtimestamp. | 
createdBy | 
String | The user who created the Timeline. | 
dataProviders | 
dataProviders[] | Object containing dropzone queryclauses. | 
dataViewId | 
String | ID of the Timeline’s Data View, for example: "dataViewId":"security-solution-default". | 
dateRange | 
dateRange | The Timeline’s search period: - end: The time up to which events are searched, using a 13-digit Epoch timestamp.- start: The time from which events are searched, using a 13-digit Epoch timestamp. | 
description | 
String | The Timeline’s description. | 
eventNotes | 
eventNotes[] | Notes added to specific events in the Timeline. | 
eventType | 
String | Event types displayed in the Timeline, which can be: - All data sources- Events: Event sources only- Detection Alerts: Detection alerts only | 
favorite | 
favorite[] | Indicates when and who marked aTimeline as a favorite. | 
filters | 
filters[] | Filters usedin addition to the dropzone query. | 
globalNotes | 
globalNotes[] | Global notes added to the Timeline. | 
kqlMode | 
String | Indicates whether the KQL bar filters the dropzone query results or searches for additional results, where: - filter: filters dropzone query results- search: displays additional search results | 
kqlQuery | 
kqlQuery | KQL barquery. | 
pinnedEventIds | 
pinnedEventIds[] | IDs of events pinned to the Timeline’ssearch results. | 
savedObjectId | 
String | The Timeline’s saved object ID. | 
savedQueryId | 
String | If used, the saved query ID used to filter or searchdropzone query results. | 
sort | 
sort | Object indicating how rows are sorted in the Timeline’s grid: - columnId (string): The ID of the column used to sort results.- sortDirection (string): The sort direction, which can be either desc or asc. | 
templateTimelineId | 
String | A unique ID (UUID) for Timeline templates. For Timelines, the value is null. | 
templateTimelineVersion | 
Integer | Timeline template version number. ForTimelines, the value is null. | 
timelineType | 
String | Indicates whether the Timeline is a template or not, where: - default: Indicates a Timeline used to actively investigate events.- template: Indicates a Timeline template used when detection rule alerts are investigated in Timeline. | 
title | 
String | The Timeline’s title. | 
updated | 
Float | The last time the Timeline was updated, using a13-digit Epoch timestamp. | 
updatedBy | 
String | The user who last updated the Timeline. | 
version | 
String | The Timeline’s version. | 
| Name | Type | Description | 
|---|---|---|
aggregatable | 
Boolean | Indicates whether the field can be aggregated acrossall indices (used to sort columns in the UI). | 
category | 
String | The ECS field set to which the field belongs. | 
description | 
String | UI column field description tooltip. | 
example | 
String | UI column field example tooltip. | 
indexes | 
String | Security indices in which the field exists and has the sameElasticsearch type. null when all the security indices have the field with the sametype. | 
id | 
String | ECS field name, displayed as the column header in the UI. | 
type | 
String | The field’s type. | 
| Name | Type | Description | 
|---|---|---|
and | 
dataProviders[] | Array containing dropzone query clauses using ANDlogic. | 
enabled | 
Boolean | Indicates if the dropzone query clause is enabled. | 
excluded | 
Boolean | Indicates if the dropzone query clause uses NOT logic. | 
id | 
String | The dropzone query clause’s unique ID. | 
name | 
String | The dropzone query clause’s name (the clause’s valuewhen Timelines are exported from the UI). | 
queryMatch | 
queryMatch | The dropzone query clause: - field (string): The field used to search Security indices.- operator (string): The clause’s operator, which can be:- : - The field has the specified value.- :* - The field exists.- value (string): The field’s value used to match results. | 
| Name | Type | Description | 
|---|---|---|
created | 
Float | The time the note was created, using a 13-digit Epochtimestamp. | 
createdBy | 
String | The user who added the note. | 
eventId | 
String | The ID of the event to which the note was added. | 
note | 
String | The note’s text. | 
noteId | 
String | The note’s ID | 
timelineId | 
String | The ID of the Timeline to which the note was added. | 
updated | 
Float | The last time the note was updated, using a13-digit Epoch timestamp. | 
updatedBy | 
String | The user who last updated the note. | 
version | 
String | The note’s version. | 
| Name | Type | Description | 
|---|---|---|
favoriteDate | 
Float | The time the Timeline was marked as a favorite, using a13-digit Epoch timestamp. | 
fullName | 
String | The full name of the user who marked the Timeline asa favorite. | 
keySearch | 
String | userName encoded in Base64. | 
userName | 
String | The Kibana username of the user who marked theTimeline as a favorite. | 
| Name | Type | Description | 
|---|---|---|
exists | 
String | Exists term query for thespecified field (null when undefined). For example, {"field":"user.name"}. | 
meta | 
meta | Filter details: - alias (string): UI filter name.- disabled (boolean): Indicates if the filter is disabled.- key(string): Field name or unique string ID.- negate (boolean): Indicates if the filter query clause uses NOT logic.- params (string): Value of phrase filter types.- type (string): Type of filter. For example, exists and range. For more information about filtering, see Query DSL. | 
match_all | 
String | Match all term queryfor the specified field (null when undefined). | 
query | 
String | DSL query (null when undefined). Forexample, {"match_phrase":{"ecs.version":"1.4.0"}}. | 
range | 
String | Range query (null whenundefined). For example, {"@timestamp":{"gte":"now-1d","lt":"now"}}". | 
| Name | Type | Description | 
|---|---|---|
created | 
Float | The time the note was created, using a 13-digit Epochtimestamp. | 
createdBy | 
String | The user who added the note. | 
note | 
String | The note’s text. | 
noteId | 
String | The note’s ID | 
timelineId | 
String | The ID of the Timeline to which the note was added. | 
updated | 
Float | The last time the note was updated, using a13-digit Epoch timestamp. | 
updatedBy | 
String | The user who last updated the note. | 
version | 
String | The note’s version. | 
| Name | Type | Description | 
|---|---|---|
filterQuery | 
filterQuery | Object containing query details: - kuery: Object containing the query’s clauses and type:- expression(string): The query’s clauses.- kind (string): The type of query, which can be kuery or lucene.- serializedQuery (string): The query represented in JSON format. |