[[spaces-api-get-all]]
=== Get all {kib} spaces API
++++
<titleabbrev>Get all spaces</titleabbrev>
++++

experimental[] Retrieve all {kib} spaces.

[[spaces-api-get-all-request]]
==== Request

`GET <kibana host>:<port>/api/spaces/space`

[[spaces-api-get-all-query-params]]
==== Query parameters

`purpose`::
  (Optional, string) Valid options include `any`, `copySavedObjectsIntoSpace`, and `shareSavedObjectsIntoSpace`. This determines what
  authorization checks are applied to the API call. If `purpose` is not provided in the URL, the `any` purpose is used.

`include_authorized_purposes`::
  (Optional, boolean) When enabled, the API will return any spaces that the user is authorized to access in any capacity, and each space
  will contain the purpose(s) for which the user is authorized. This can be useful to determine which spaces a user can read but not take a
  specific action in. If the Security plugin is not enabled, this will have no effect, as no authorization checks would take place.
+
NOTE: This option cannot be used in conjunction with `purpose`.

[[spaces-api-get-all-response-codes]]
==== Response code

`200`::
  Indicates a successful call.

[[spaces-api-get-all-example]]
==== Examples

[[spaces-api-get-all-example-1]]
===== Default options

Retrieve all spaces without specifying any options:

[source,sh]
--------------------------------------------------
$ curl -X GET api/spaces/space
--------------------------------------------------

The API returns the following:

[source,sh]
--------------------------------------------------
[
  {
    "id": "default",
    "name": "Default",
    "description" : "This is the Default Space",
    "disabledFeatures": [],
    "imageUrl": "",
    "_reserved": true
  },
  {
    "id": "marketing",
    "name": "Marketing",
    "description" : "This is the Marketing Space",
    "color": "#aabbcc",
    "disabledFeatures": ["apm"],
    "initials": "MK",
    "imageUrl": "data:image/png;base64,iVBORw0KGgoAAAANSU"
  },
  {
    "id": "sales",
    "name": "Sales",
    "initials": "MK",
    "disabledFeatures": ["discover"],
    "imageUrl": ""
  }
]
--------------------------------------------------

[[spaces-api-get-all-example-2]]
===== Custom options

The user has read-only access to the Sales space. Retrieve all spaces and specify options:

[source,sh]
--------------------------------------------------
$ curl -X GET api/spaces/space?purpose=shareSavedObjectsIntoSpace&include_authorized_purposes=true
--------------------------------------------------

The API returns the following:

[source,sh]
--------------------------------------------------
[
  {
    "id": "default",
    "name": "Default",
    "description" : "This is the Default Space",
    "disabledFeatures": [],
    "imageUrl": "",
    "_reserved": true,
    "authorizedPurposes": {
      "any": true,
      "copySavedObjectsIntoSpace": true,
      "findSavedObjects": true,
      "shareSavedObjectsIntoSpace": true,
    }
  },
  {
    "id": "marketing",
    "name": "Marketing",
    "description" : "This is the Marketing Space",
    "color": "#aabbcc",
    "disabledFeatures": ["apm"],
    "initials": "MK",
    "imageUrl": "data:image/png;base64,iVBORw0KGgoAAAANSU",
    "authorizedPurposes": {
      "any": true,
      "copySavedObjectsIntoSpace": true,
      "findSavedObjects": true,
      "shareSavedObjectsIntoSpace": true,
    }
  },
  {
    "id": "sales",
    "name": "Sales",
    "initials": "MK",
    "disabledFeatures": ["discover"],
    "imageUrl": "",
    "authorizedPurposes": {
      "any": true,
      "copySavedObjectsIntoSpace": false,
      "findSavedObjects": true,
      "shareSavedObjectsIntoSpace": false,
    }
  }
]
--------------------------------------------------
