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 eitherdescorasc. | 
| 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. nullwhen 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 NOTlogic. | 
| 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:- :- Thefieldhas the specifiedvalue.- :*- 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 | userNameencoded 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 ( nullwhen 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 usesNOTlogic.- params(string): Value ofphrasefilter types.- type(string): Type of filter. For example,existsandrange. For more information about filtering, see Query DSL. | 
| match_all | String | Match all term queryfor the specified field ( nullwhen undefined). | 
| query | String | DSL query ( nullwhen undefined). Forexample,{"match_phrase":{"ecs.version":"1.4.0"}}. | 
| range | String | Range query ( nullwhenundefined). 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 bekueryorlucene.- serializedQuery(string): The query represented in JSON format. |