﻿---
title: Import a dashboard
description: Import a dashboard exported from another Kibana space, instance, deployment, or project, using the Dashboards app, the Dashboards API, or Saved Objects.
url: https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8402/explore-analyze/dashboards/import-dashboards
products:
  - Elastic Documentation
  - Kibana
applies_to:
  - Elastic Cloud Serverless: Generally available
  - Elastic Stack: Generally available
---

# Import a dashboard
If you exported a dashboard from another Kibana space, instance, deployment, or project, you can import it into your own in one of these ways:
- <applies-to>Elastic Cloud Serverless: Generally available</applies-to> <applies-to>Elastic Stack: Planned</applies-to> **From the Dashboards app**: Import a JSON file from [Export JSON](/elastic/docs-content/pull/8402/explore-analyze/dashboards/sharing#export-dashboard-json) or from the [Dashboards API](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8402/explore-analyze/dashboards/create-dashboards-programmatically).
- <applies-to>Elastic Cloud Serverless: Generally available</applies-to> <applies-to>Elastic Stack: Generally available since 9.5, Elastic Stack: Preview in 9.4</applies-to> **With the Dashboards API**: Send a dashboard JSON definition to the [Dashboards API](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8402/explore-analyze/dashboards/create-dashboards-programmatically). Get the definition from [Export JSON](/elastic/docs-content/pull/8402/explore-analyze/dashboards/sharing#export-dashboard-json) or from the [Dashboards API](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8402/explore-analyze/dashboards/create-dashboards-programmatically).
- **From Saved Objects**: Import an NDJSON file from a previous [saved objects export](/elastic/docs-content/pull/8402/explore-analyze/find-and-organize/saved-objects#saved-objects-export). Use the **Saved Objects** page or the [Saved Objects API](https://www.elastic.co/docs/api/doc/kibana/group/endpoint-saved-objects).

The JSON methods are recommended because they rely on the [Dashboards API](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8402/explore-analyze/dashboards/create-dashboards-programmatically).
<tab-set>
  <tab-item title="Dashboards app (JSON)">
    <applies-to>Elastic Cloud Serverless: Generally available</applies-to> <applies-to>Elastic Stack: Planned</applies-to> Recreate a dashboard from its JSON file without writing an API request. Kibana checks the file as soon as you select it, so you can see what it removes and what the dashboard depends on before you import.**Prerequisites**
    - A dashboard JSON file of 1 MB or less, from [Export JSON](/elastic/docs-content/pull/8402/explore-analyze/dashboards/sharing#export-dashboard-json) or from the [Dashboards API](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8402/explore-analyze/dashboards/create-dashboards-programmatically).
    - **All** privilege for the **Dashboard** feature in Kibana. Without it, **Import dashboard** doesn't appear.
    **Import the file**
    1. Go to **Dashboards**.
    2. From the application menu, select **Import dashboard**.
    3. In the **Import dashboard** flyout, select your file under **Select a JSON file**. Kibana checks the file right away.
    4. Review any messages in the flyout. If Kibana shows an error, select a different file. If it shows a warning, review it before you continue.
    5. Select **Import**.
    Kibana creates a new dashboard in the current space, closes the flyout, shows a confirmation message, and refreshes the list of dashboards so the new dashboard appears. It never updates an existing dashboard, so importing the same file again creates another dashboard.**Messages after you select a file**

    | Message                                                   | What it means                                                                                                                                                                                                                                                                                          | What to do                                                                                                                                                                                                                                                                                                                     |
    |-----------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
    | The selected file is too large. The maximum size is 1 MB. | The file is larger than 1 MB. **Import** stays unavailable.                                                                                                                                                                                                                                            | Select a smaller file.                                                                                                                                                                                                                                                                                                         |
    | The selected file does not contain valid JSON.            | The file isn't valid JSON. **Import** stays unavailable.                                                                                                                                                                                                                                               | Select a different file.                                                                                                                                                                                                                                                                                                       |
    | The file could not be imported.                           | Kibana can't validate the file, for example because it isn't a full dashboard definition. **Import** stays unavailable.                                                                                                                                                                                | Select a different file. Make sure the file comes from [Export JSON](/elastic/docs-content/pull/8402/explore-analyze/dashboards/sharing#export-dashboard-json) or from the [Dashboards API](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8402/explore-analyze/dashboards/create-dashboards-programmatically). |
    | Unsupported properties were removed.                      | The file includes panel types or properties that the [Dashboards API](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8402/explore-analyze/dashboards/create-dashboards-programmatically) doesn't support. Kibana leaves them out of the imported dashboard. **Import** stays available. | Select **Show details** to see what Kibana removed.                                                                                                                                                                                                                                                                            |
    | Review import warnings.                                   | The file references related items, such as data views, tags, or library visualizations. Kibana imports only the dashboard. This warning also lists any removed properties. **Import** stays available.                                                                                                 | Select **Show details** to see each item's type and ID. Make sure these items exist in the space or cluster where you import.                                                                                                                                                                                                  |
  </tab-item>

  <tab-item title="Dashboards API (JSON)">
    <applies-to>Elastic Cloud Serverless: Generally available</applies-to> <applies-to>Elastic Stack: Generally available since 9.5, Elastic Stack: Preview in 9.4</applies-to> Recreate the dashboard by sending its JSON definition to the [Dashboards API](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8402/explore-analyze/dashboards/create-dashboards-programmatically).**Prerequisites**
    - The dashboard's API-compatible JSON. Refer to [Export and share Kibana dashboards](/elastic/docs-content/pull/8402/explore-analyze/dashboards/sharing#export-dashboard-json) to produce it.
    - **All** privilege for the **Dashboard** feature in Kibana.
    - A way to call the API, such as Kibana Dev Tools Console or an API key.
    Send the JSON to the [Dashboards API](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8402/explore-analyze/dashboards/create-dashboards-programmatically) in the target instance, deployment, or project. The API creates the dashboard in the space identified by the request path, or updates it in place when you send it with an existing ID. The [JSON export flow](/elastic/docs-content/pull/8402/explore-analyze/dashboards/sharing#export-dashboard-json) can open a pre-populated request in Kibana Dev Tools Console, where you set the space in the request path before sending it.For the imported dashboard to work, the objects it references, such as data views and library visualizations, must also exist in the target environment. To version-control dashboards and keep their references portable across environments, refer to [Manage dashboards as code](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8402/explore-analyze/dashboards/manage-dashboards-as-code).
  </tab-item>

  <tab-item title="Saved Objects (NDJSON)">
    Import the dashboard and its related objects from an NDJSON file on the **Saved Objects** page.**Prerequisites**
    - An NDJSON file containing the dashboard and its related objects. To produce one, refer to [Export saved objects](/elastic/docs-content/pull/8402/explore-analyze/find-and-organize/saved-objects#saved-objects-export).
    - **All** privilege for the **Dashboard** and **Saved Objects Management** features in Kibana.
    - Access to **Stack Management** in Kibana.
    Import the dashboard from the [Saved Objects](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8402/explore-analyze/find-and-organize/saved-objects) page under **Stack Management**. When you import a dashboard, you also import its related objects, such as data views and visualizations. Import options control how the import handles these related objects:
    - **Check for existing objects**: When selected, objects are not imported when another object with the same ID already exists in this space or cluster. For example, if you import a dashboard that uses a data view which already exists, the data view is not imported and the dashboard uses the existing data view instead. You can also choose which of the imported or existing objects to keep by selecting **Request action on conflict**.
    - **Create new objects with random IDs**: All related objects are imported and are assigned a new ID to avoid conflicts.
    ![Import panel](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/8402/explore-analyze/images/kibana-dashboard-import-saved-object.png)To automate the import, use the [import saved objects API](https://www.elastic.co/docs/api/doc/kibana/operation/operation-post-saved-objects-import) instead.
  </tab-item>
</tab-set>

<note>
  To move a dashboard to another space within the same deployment, you don't need to export and import it. Instead, [copy it to the target space](/elastic/docs-content/pull/8402/explore-analyze/find-and-organize/saved-objects#saved-objects-copy-to-other-spaces) from the **Saved Objects** page, together with its related objects. To automate this, use the [copy saved objects to space API](https://www.elastic.co/docs/api/doc/kibana/operation/operation-post-spaces-copy-saved-objects).
</note>