Deleting an unused Kibana space removes dashboards, data views, rules, and other saved objects that no longer belong in the stack, which keeps tenant boundaries clear and reduces the chance of operators opening the wrong content.

Each Kibana space keeps its own saved objects while sharing the same Kibana and Elasticsearch backend. The current Spaces API uses GET /api/spaces/space to list spaces and DELETE /api/spaces/space/{id} to remove one, and reserved entries such as default are marked with "_reserved": true in the response.

Deleting a space requires an administrative Kibana role such as kibana_admin or an equivalent custom privilege set, and the removal is permanent because all saved objects in that space are deleted with it. Self-managed deployments behind TLS or a reverse proxy may also need a CA certificate, a base-path prefix such as /kibana before /api, and either basic authentication or an API key header.

Steps to delete a Kibana space:

  1. List spaces to identify the target space id.
    $ curl --silent --show-error --cacert /etc/kibana/certs/kibana-ca.crt --user elastic:password \
      "https://localhost:5601/api/spaces/space" | jq '[.[] | {id: .id, name: .name, description: .description, _reserved: ._reserved, disabledFeatures: .disabledFeatures}]'
    [
      {
        "id": "default",
        "name": "Default",
        "description": "This is the Default Space",
        "_reserved": true,
        "disabledFeatures": []
      },
      {
        "id": "ops",
        "name": "Operations",
        "description": "Operations dashboards and alerts",
        "_reserved": null,
        "disabledFeatures": []
      }
    ]

    If Kibana is published under a base path, insert it before /api, for example https://kibana.example.net/kibana/api/spaces/space. The current Spaces API accepts both basic authentication and API key authentication.

  2. Confirm the target entry is not reserved and export anything that still needs to survive the removal.

    Reserved spaces such as default cannot be deleted.

  3. Delete the space with its id.
    $ curl --silent --show-error --fail --cacert /etc/kibana/certs/kibana-ca.crt --user elastic:password --request DELETE \
      --header "kbn-xsrf: true" \
      --output /dev/null \
      --write-out "%{http_code}\n" \
      "https://localhost:5601/api/spaces/space/ops"
    204

    Deletion removes all saved objects in the space and cannot be undone.

  4. Verify the space no longer appears in the space list.
    $ curl --silent --show-error --cacert /etc/kibana/certs/kibana-ca.crt --user elastic:password \
      "https://localhost:5601/api/spaces/space" | jq '[.[] | {id: .id, name: .name, description: .description, _reserved: ._reserved, disabledFeatures: .disabledFeatures}]'
    [
      {
        "id": "default",
        "name": "Default",
        "description": "This is the Default Space",
        "_reserved": true,
        "disabledFeatures": []
      }
    ]

    The missing ops entry confirms Kibana removed the space and its saved objects.