Bulk create saved objects API
editBulk create saved objects API
edit[preview] This functionality is in technical preview and may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features. Create multiple Kibana saved objects.
Request
editPOST <kibana host>:<port>/api/saved_objects/_bulk_create
POST <kibana host>:<port>/s/<space_id>/api/saved_objects/_bulk_create
Path parameters
edit-
space_id
-
(Optional, string) An identifier for the space. If
space_id
is not provided in the URL the default space is used.
Query parameters
edit-
overwrite
-
(Optional, boolean) When
true
, overwrites the document with the same ID.
Request body
edit-
type
-
(Required, string) Valid options include
visualization
,dashboard
,search
,index-pattern
,config
. -
id
- (Optional, string) Specifies an ID instead of using a randomly generated ID.
-
attributes
- (Required, object) The data that you want to create.
-
references
-
(Optional, array) Objects with
name
,id
, andtype
properties that describe the other saved objects in the referenced object. To refer to the other saved object, usename
in the attributes. Never useid
to refer to the other saved object.id
can be automatically updated during migrations, import, or export. -
initialNamespaces
-
(Optional, string array) Identifiers for the spaces in which this object is created. If this is provided, the object is created only in the explicitly defined spaces. If this is not provided, the object is created in the current space (default behavior).
-
For shareable object types (registered with
namespaceType: 'multiple'
): this option can be used to specify one or more spaces, including the "All spaces" identifier ('*'
). -
For isolated object types (registered with
namespaceType: 'single'
ornamespaceType: 'multiple-isolated'
): this option can only be used to specify a single space, and the "All spaces" identifier ('*'
) is not allowed. -
For global object types (registered with
namespaceType: 'agnostic'
): this option cannot be used.
-
For shareable object types (registered with
-
version
- (Optional, number) Specifies the version.
Response body
edit-
saved_objects
- (array) Top-level property the contains objects that represent the response for each of the requested objects. The order of the objects in the response is identical to the order of the objects in the request.
Saved objects that are unable to persist are replaced with an error object.
Response code
edit-
200
- Indicates a successful call. Note, this HTTP response code indicates that the bulk operation succeeded. Errors pertaining to individual objects will be returned in the response body. See the example below for details.
Example
editCreate a data view with the my-pattern
ID, and a dashboard with the my-dashboard
ID:
$ curl -X POST api/saved_objects/_bulk_create [ { "type": "index-pattern", "id": "my-pattern", "attributes": { "title": "my-pattern-*" } }, { "type": "dashboard", "id": "be3733a0-9efe-11e7-acb3-3dab96693fab", "attributes": { "title": "Look at my dashboard" } } ]
The API returns the following:
{ "saved_objects": [ { "id": "my-pattern", "type": "index-pattern", "version": 1, "attributes": { "title": "my-pattern-*" } }, { "id": "be3733a0-9efe-11e7-acb3-3dab96693fab", "type": "dashboard", "error": { "statusCode": 409, "message": "Saved object [dashboard/be3733a0-9efe-11e7-acb3-3dab96693fab] conflict" } } ] }
There is already a saved object with the my-dashboard
ID, so only the data view is created.
Conflict errors
editStarting in Kibana 8.0, saved objects can exist in multiple spaces. As a result, you may encounter different types of conflict errors when attempting to create an object:
-
Regular conflict: This is a 409 error without any metadata. It means an object of that type/ID already exists. This can be
overridden by using the
overwrite: true
option. -
Unresolvable conflict: This is a 409 error with
isNotOverwritable: true
in its metadata. It means an object of that type/ID already exists in a different space, and it cannot be overridden with the given parameters. To successfully overwrite this object, you must do so in at least one space where it exists. You can specify that using thespace_id
path parameter or theinitialNamespaces
parameter. -
Alias conflict: This is a 409 error with a
spacesWithConflictingAliases
string array in its metadata. It means a conflicting legacy URL alias for this type/ID exists in the space(s) where you attempted to create this object. A conflicting legacy URL alias is one that points to a different type/ID. To successfully create this object, you need to first use the_disable_legacy_url_aliases
API to disable the problematic legacy URL alias(es).