---
title: Share dashboards publicly
source: https://docs.newrelic.com/docs/query-your-data/explore-query-data/dashboards/share-dashboards-publicly
---

In New Relic, you can share dashboards with viewers outside your organization, even if they don't have a New Relic account. The shared dashboards are accessible via live URLs that you create from the New Relic platform. You can also embed the live URL in an iframe, which allows you to integrate real-time dashboard views into internal portals, status pages, or other web applications. This feature expands the audience for your insights while maintaining security controls and auditing capabilities.

## Pricing [#public-dashboard-pricing]

**Public Dashboards** is available to all users of **Pro** and **Enterprise** customers. For customers on the [Data + User](https://docs.newrelic.com/docs/accounts/accounts-billing/new-relic-one-pricing-billing/new-relic-one-pricing-billing/) pricing model, there's no extra cost. For customers on the [Data + Core Compute](https://docs.newrelic.com/docs/accounts/accounts-billing/new-relic-one-pricing-billing/new-relic-one-pricing-billing/) pricing model, [Core CCUs](https://docs.newrelic.com/docs/accounts/accounts-billing/new-relic-one-pricing-billing/new-relic-one-pricing-billing/#core-compute-capacity-unit) are consumed when queries run from the dashboard visualizations, which happens in the following cases:

-   On page load
-   On time picker changes
-   On refresh-rate triggers

You can monitor your usage costs from **[New Relic Administration](https://one.newrelic.com/admin-portal) > Consumption Management > Advanced capabilities**. To optimize your costs, refer to the [pricing management best practices](#pricing-management) section.

## Access management [#access-management]

Sharing dashboards publicly requires account-level policy enablement and user-role configuration. A user with any [user type](https://docs.newrelic.com/docs/accounts/accounts-billing/new-relic-one-user-management/user-type/) can manage user access to public sharing, provided they are in at least one group with the [Authentication domain manager](https://docs.newrelic.com/docs/accounts/accounts-billing/new-relic-one-user-management/user-management-concepts/#admin-settings) organization-scoped role.

### Enable the Live URL Creation policy [#enable-policy]

An Authentication Domain Manager must enable the **Live URL Creation** policy for each account that sources data to the dashboard. This is a one-time setup per account.

**Check status of the Live URL Creation policy in accounts**

Use the [NerdGraph API explorer](https://one.newrelic.com/nerdgraph-graphiql) to check the current policy status. Replace `1, 2` with actual account IDs. If you omit account IDs, the call returns your authorized account's status. You can query up to 100 accounts simultaneously.

````graphql
{
  actor {
    dashboard {
      liveUrlCreationPolicies(filter: {
        accountIds: [1, 2]
      }) {
        liveUrlCreationPolicies {
          accountId
          liveUrlCreationAllowed
        }
      }
    }
  }
}
```

Sample response:

```json
{
  "data": {
    "actor": {
      "dashboard": {
        "liveUrlCreationPolicies": {
          "liveUrlCreationPolicies": [
            {
              "accountId": 1,
              "liveUrlCreationAllowed": true
            },
            {
              "accountId": 2,
              "liveUrlCreationAllowed": false
            }
          ]
        }
      }
    }
  }
}
```


````

**Enable or disable the Live URL Creation policy in accounts**

Use the [NerdGraph API explorer](https://one.newrelic.com/nerdgraph-graphiql) to enable or disable the policy. Replace `1, 2` with actual account IDs and set `liveUrlCreationAllowed` to `true` or `false`. You can update up to 100 accounts simultaneously. Each successful update triggers an audit event for the corresponding account.

````graphql
mutation {
  dashboardUpdateLiveUrlCreationPolicies(
    policies: {
      accountIds: [1, 2],
      liveUrlCreationAllowed: true
    }
  ) {
    liveUrlCreationPolicies {
      accountId
      liveUrlCreationAllowed
    }
  }
}
```

Sample response. If you provide an unknown account ID, the response shows an `UNAUTHORIZED` error code.

```json
{
  "data": {
    "dashboardUpdateLiveUrlCreationPolicies": {
      "liveUrlCreationPolicies": [
        {
          "accountId": 1,
          "liveUrlCreationAllowed": true
        },
        {
          "accountId": 2,
          "liveUrlCreationAllowed": true
        }
      ]
    }
  }
}
```


````

### Configure user roles and permissions [#configure-roles]

[Create a custom role](https://docs.newrelic.com/docs/accounts/accounts-billing/new-relic-one-user-management/account-user-mgmt-tutorial/#roles) (or add to an existing one) with the permissions your user needs:

| **Action**                                   | **Permission**                   |
| -------------------------------------------- | -------------------------------- |
| View own live URL details                    | `Live Url (individual) > View`   |
| Create live URLs and update their properties | `Live Url (individual) > Modify` |
| Revoke own live URLs                         | `Live Url (individual) > Delete` |
| View all live URL details in the account     | `Live Url (all) > View`          |
| Revoke any live URL in the account           | `Live Url (all) > Delete`        |

### Grant access [#group-access]

After you create the custom role, grant access to the relevant accounts. For detailed steps, see [Create access grants](https://docs.newrelic.com/docs/accounts/accounts-billing/new-relic-one-user-management/account-user-mgmt-tutorial/#access-grants).

When creating the access grant, make sure you:

-   Select **Account** as the grant type.
-   Select the group that will receive access.
-   Select the custom role you created.
-   Select the specific accounts that source data to the dashboard.

## Share your dashboard [#share-dashboard]

You can share your dashboard by generating a live URL and managing its expiration duration. You can also enable password protection for enhanced security. You can view generated URLs with details and revoke them at any time from the New Relic platform. To ensure security and compliance, monitor the audit trail for creating, updating, or revoking shared dashboard URLs.

Before sharing, ensure:

-   The `Live URL Creation` policy is enabled for all accounts sourcing the dashboard.
-   A custom role with the necessary [permissions](#configure-roles) is configured for you.
-   Your role has grants for all accounts sourcing the dashboard.
-   You have access to all accounts sourcing the dashboard.
-   You are the owner of the dashboard you want to share.
-   The [dashboard permission](https://docs.newrelic.com/docs/query-your-data/explore-query-data/dashboards/introduction-dashboards/#dashboards-permissions) is not set to **Private**.
-   If your dashboard pulls data from multiple accounts, verify that all those accounts were selected when [granting access](#group-access). If any accounts are missing, repeat the grant access steps to include them.

> #### ⚠️ CAUTION
>
> If a shared dashboard isn't password-protected, anyone with the live URL can access it and view all the information it contains. To avoid unwanted access, enable [password protection](#password-live-url) when creating the URL.

> #### 💡 TIP
>
> You can create and manage live dashboard URLs through both the UI and the [NerdGraph API](https://docs.newrelic.com/docs/apis/nerdgraph/examples/manage-live-dashboard-urls-via-api).

**Create a URL with or without password protection**

To create a publicly accessible live URL for your dashboard:

1.  Go to **[one.newrelic.com > Dashboards](https://one.newrelic.com/dashboards)**.
2.  Open the dashboard you want to share.
3.  In the top-right corner, go to **Share** > **Share dashboard**.
4.  Click **Continue**. The **Share dashboard** dialog appears. Make adjustments as needed:
    -   The **Protect with a password** toggle is on by default. Turn it off only if password protection isn't required.
    -   30 days is the default duration. You can change it from the **Link expiration** drop-down.
5.  Click **Save changes**.
6.  Copy the live URL and password (if enabled) and save them for sharing with external users.

Passwords can't be retrieved later. If you lose it, you'll need to [reset the password](#reset-password-live-url) and share it again. Follow our [password management best practices](#password-management) to manage the password securely.

> #### ⚠️ IMPORTANT
>
> Any content updates made to the actual dashboard on the New Relic platform are automatically reflected on the shared dashboard page. To prevent accidental data exposure, only the dashboard owner can update a publicly shared dashboard.

**Manage URL expiration**

To update the live duration of the shared dashboard, you must have the necessary [permissions](#configure-roles) and be the owner of the dashboard.

1.  Go to **[one.newrelic.com > Dashboards](https://one.newrelic.com/dashboards)**.
2.  Open the dashboard you are sharing.
3.  In the top-right corner, go to **Share** > **Manage public link**.
4.  Update the duration from the **Link expiration** drop-down. The **Never expires** option keeps the URL live for 20 years.
5.  Save your changes.

**Manage password protection**

To enable or disable password protection for the live dashboard URL, you must have the necessary [permissions](#configure-roles) and be the owner of the dashboard.

-   If you disable password protection, the existing password is removed and external users can access the dashboard without a password.
-   If you enable password protection, share the generated password with the URL to allow external users to access the dashboard.

1.  Go to **[one.newrelic.com > Dashboards](https://one.newrelic.com/dashboards)**.
2.  Open the dashboard you are sharing.
3.  In the top-right corner, go to **Share** > **Manage public link**.
4.  To enable or disable password protection, use the **Protect with a password** toggle.
5.  Click **Save changes**.
6.  Copy the live URL and password (if enabled) and save them for sharing with external users.

Passwords can't be retrieved later. If you lose it, you'll need to [reset the password](#reset-password-live-url) and share it again. Follow our [password management best practices](#password-management) to manage the password securely.

**Reset password**

If you lose the password for the live dashboard URL, you can reset it. For resetting, you must have the necessary [permissions](#configure-roles) and be the owner of the dashboard.

1.  Go to **[one.newrelic.com > Dashboards](https://one.newrelic.com/dashboards)**.
2.  Open the password-protected dashboard you are sharing.
3.  In the top-right corner, go to **Share** > **Manage public link**.
4.  Turn on **Reset password**.
5.  Click **Save changes**.
6.  Copy the new password and save it for sharing with external users.

Passwords can't be retrieved later. If you lose it, you'll need to reset it again. Follow our [password management best practices](#password-management) to manage the password securely.

**View shared URLs in New Relic**

You can access shared dashboard names hyperlinked with their live URLs, all in one place in New Relic. Depending on your [permissions](#configure-roles), you can view either the URLs you created or those created by all users in the account.

To view the shared dashboard URLs:

1.  Go to **[one.newrelic.com](https://one.newrelic.com)**.
2.  In the left navigation, click your name at the bottom.
3.  Navigate to **Administration > Shared Dashboards**. The Shared Dashboards page lists shared dashboards with their creation and expiration dates, and the owner of each dashboard.

You can click dashboard names to open the sharing pages in a new tab.

**External user access and security controls**

Share the live dashboard URL with external users. If the URL is password-protected, also share the password. The following security controls are embedded with password-protected URLs:

-   **Session-based access**: After accessing the dashboard, the session remains active for 120 hours. If they try to access the dashboard after this period, or the browser session expires, they're prompted for the password. If the password is reset, the session expires as soon as the widgets are refreshed and external users must enter the new password.
-   **reCAPTCHA verification**: If there are multiple failed attempts to access the dashboard, external users must complete a reCAPTCHA verification before entering the password again.

**Revoke URLs**

Depending on your [permissions](#configure-roles), you can revoke either the URLs you created or those created by all users in the account. Deleting the dashboard automatically revokes the public sharing URL. If you restore the dashboard, you need to create a new live URL.

You can revoke URLs in the following ways:

-   On the dashboard you are sharing, go to **Share** > **Manage public link** > in the **Share dashboard** dialog, click **Revoke public link** > confirm the revocation.
-   From the **[Shared Dashboards](#view-dashboard-links)** page, go to the  icon for the dashboard link > click **Revoke** > confirm the revocation.

**Audit trail and logging**

Creating, updating, or revoking shared dashboard URLs generates an audit trail in the [NrAuditEvent](https://docs.newrelic.com/docs/accounts/accounts/account-maintenance/query-account-audit-logs-nrauditevent/). To view the records in the query builder:

1.  Go to **[one.newrelic.com > Query Your Data](https://one.newrelic.com/nr1-core)**.
2.  Select the account from which the public dashboard URLs are created.
3.  Run any of the following queries to view the audit trails:

    **Get details of the URLs created or revoked in the last hour**

    ````sql
    FROM NrAuditEvent
    SELECT *
    WHERE actionIdentifier LIKE '%public_dashboard.%'
    ```


    ````

    **Get details of the URLs created in the last hour**

    ````sql
    FROM NrAuditEvent
    SELECT *
    WHERE actionIdentifier LIKE '%public_dashboard.create%'
    ```


    ````

    **Get details of the URLs revoked in the last hour**

    ````sql
    FROM NrAuditEvent
    SELECT *
    WHERE actionIdentifier LIKE '%public_dashboard.revoke%'
    ```


    ````

    **Get details of the URLs created by a specific user in the last hour**

    Replace `<user_email>` with the actual user email ID:

    ````sql
    FROM NrAuditEvent
    SELECT *
    WHERE actionIdentifier LIKE '%public_dashboard%'
    AND actorType='user'
    AND actorEmail=<user_email>
    ```


    ````

    **Get all the URLs created in an account in the last hour**

    Replace `<account_id>` with the actual account ID:

    ````sql
    FROM NrAuditEvent
    SELECT *
    WHERE actionIdentifier LIKE '%public_dashboard%'
    AND scopeType='account'
    AND scopeId=<account_id>
    ```


    ````

    **Get the list of dashboards from which the URLs were generated in a specific time period**

    > #### 💡 TIP
    >
    > The following example query retrieves records from the last week. You can adjust the time period as needed.

    ````sql
    WITH aparse(description, '%for dashboard *') AS dashboardGUID
    FROM NrAuditEvent
    SELECT count(*) AS 'dashboards'
    WHERE actionIdentifier LIKE '%public_dashboard.create%'
    FACET dashboardGUID
    SINCE 1 week ago
    ```


    ````

    **Get the list of operations performed with the URLs in a specific time period**

    > #### 💡 TIP
    >
    > The following example query retrieves records from the last week. You can adjust the time period and the facet as needed.

    ````sql
    WITH aparse(description, '%for dashboard *') AS dashboardGUID,
    aparse(actionIdentifier, '%public_dashboard.*') AS publicDashOperation
    FROM NrAuditEvent
    SELECT uniqueCount(actionIdentifier) AS 'number of operations'
    WHERE publicDashOperation IS NOT NULL
    FACET actorEmail, dashboardGUID, publicDashOperation
    SINCE 1 week ago
    ```


    ````

## Best practices [#best-practices]

To manage public dashboard pricing and password security efficiently, follow these best practices:

**Pricing management**

To keep your pricing optimal, consider the following:

-   [**Access control**](#access-management): Manage who can create, edit, or delete URLs at both the account and user-role levels. This helps control and prevent users from having excessive access to these capabilities.
-   [**Link expiration management**](#update-live-url): Set expiration times for URLs to ensure they're only visible for a certain period, reducing potential overuse.
-   **Widget management**:
    -   Add or remove widgets from your internal dashboard to optimize the data being queried.
    -   Update widgets to ignore time picker changes, preventing additional queries when users adjust the time range.
    -   Manage the refresh rate of each widget to prevent automatic refreshes. For more details, refer to [Customize chart refresh rates](https://docs.newrelic.com/docs/query-your-data/explore-query-data/use-charts/chart-refresh-rates/#customize-chart-refresh).

**Password management**

To ensure secure password management for live dashboard URLs, follow these best practices:

-   **Secure storage**: Copy and securely store the generated password immediately after creating or resetting it. New Relic doesn't store or allow retrieval of the password after the initial display.
-   **Sharing**: Use secure methods to distribute the password to your intended audience, such as internal password managers, secure messaging, or one-time secret services. Avoid insecure channels like plain text email.
-   **Complexity**: Passwords are auto-generated in complex format to enhance security. Before protecting the URL with a password, ensure the complexity aligns with the audience's ability to handle the password.
-   **Suspected compromise**: If you suspect the password has been compromised, either reset the password or revoke the live URL to prevent further access. If revoking the URL, create a new live URL and share it with the audience again.

## Limitations [#limitations-public-dashboard]

The following limitations apply to sharing dashboards publicly:

-   When viewing a shared dashboard in **TV mode**, it stays active for up to 72 hours. The viewer needs to refresh the browser to continue viewing.
-   If you share a dashboard with widgets that use template variables, facet linking, custom visualizations, log tables, or SQL-based charts ([Lens](https://docs.newrelic.com/docs/new-relic-lens/query-data)), these widgets won't display any information in the shared view.
-   If the dashboard's permission setting is **Private**, you can't share the dashboard publicly. To verify this, navigate to **[one.newrelic.com > Dashboards](https://one.newrelic.com/dashboards)** > your dashboard >  icon > **Settings > Permissions**.

## Related topics

[Introduction to public sharing](https://docs.newrelic.com/docs/query-your-data/explore-query-data/dashboards/get-started-sharing-dashboards-publicly)

Introduction to public sharing for dashboards and charts, with availability and pricing details.

[Share charts publicly](https://docs.newrelic.com/docs/query-your-data/explore-query-data/dashboards/share-charts-publicly)

Share individual charts with external viewers via live URLs.

[Manage live dashboard URLs via NerdGraph](https://docs.newrelic.com/docs/apis/nerdgraph/examples/manage-live-dashboard-urls-via-api)

Programmatically create, update, and revoke live dashboard URLs using the NerdGraph API.
