[[saved-objects-api-create]]
=== Create saved objects API
++++
<titleabbrev>Create saved objects</titleabbrev>
++++

experimental[] Create {kib} saved objects.

[[saved-objects-api-create-request]]
==== Request

`POST /api/saved_objects/<type>` +

`POST /api/saved_objects/<type>/<id>`

`POST /s/<space_id>/saved_objects/<type>`

[[saved-objects-api-create-path-params]]
==== Path parameters

`space_id`::
  (Optional, string) An identifier for the space. If `space_id` is not provided in the URL, the default space is used.

`<type>`::
  (Required, string) Valid options include `visualization`, `dashboard`, `search`, `index-pattern`, `config`, and `timelion-sheet`.

`<id>`::
  (Optional, string) Specifies an ID instead of using a randomly generated ID.

[[saved-objects-api-create-query-params]]
==== Query parameters

`overwrite`::
  (Optional, boolean) When true, overwrites the document with the same ID.

[[saved-objects-api-create-request-body]]
==== Request body

`attributes`::
  (Required, object) The data that you want to create.
+
WARNING: When you create saved objects, attributes are not validated, which allows you to pass
arbitrary and ill-formed data into the API that can break {kib}. Make sure
any data that you send to the API is properly formed.

`references`::
  (Optional, array) Objects with `name`, `id`, and `type` properties that describe the other saved objects that this object references. Use `name` in attributes to refer to the other saved object, but never the `id`, which can update automatically during migrations or import/export.

[[saved-objects-api-create-request-codes]]
==== Response code

`200`::
    Indicates a successful call.

[[saved-objects-api-create-example]]
==== Example

[source,js]
--------------------------------------------------
POST api/saved_objects/index-pattern/my-pattern
{
  "attributes": {
    "title": "my-pattern-*"
  }
}
--------------------------------------------------
// KIBANA

The API returns the following:

[source,js]
--------------------------------------------------
{
  "id": "my-pattern", <1>
  "type": "index-pattern",
  "version": 1,
  "attributes": {
    "title": "my-pattern-*"
  }
}
--------------------------------------------------

<1> When `my-pattern` is unspecified in the path, a unique ID is automatically generated.
