Public Dashboards

Public Dashboards allow you to share a static, read-only snapshot of your Greppilot dashboard with anyone via a unique, unauthenticated URL. This is useful for sharing insights with external stakeholders or embedding analytics in other applications without requiring Greppilot accounts.

Creating and viewing a public dashboard

How it Works

When you create a public dashboard, Greppilot captures a static snapshot of your dashboard's current state. This snapshot includes the dashboard's name, its components, the data currently displayed within those components, and the applied theme. A unique, hexadecimal slug is generated to form the shareable URL.

Important Limitations:

  • Static Data: Public dashboards are static snapshots. They do not automatically refresh with new data from your connectors. To update the data or structure, you must re-share the dashboard from within the Greppilot application, which generates a new snapshot.
  • Data Cap: For performance and security, the data within each component is capped at 1000 rows in the snapshot.
  • SQL Stripping: Raw SQL queries used by components are intentionally omitted from the public snapshot for security reasons. Only the query's natural language description and connector information are retained.
  • Revocation: Public dashboards can be revoked at any time by the owner, rendering the shareable link invalid.

Accessing Public Dashboards via API

You can programmatically retrieve the contents of a public dashboard using its unique slug. This endpoint does not require authentication.

GET /api/public/share/:slug

Retrieves the snapshot content of a public dashboard.

ParameterTypeDescription
slugstringThe unique slug identifying the public dashboard.

Example Request:

curl "https://api.greppilot.com/api/public/share/a1b2c3d4e5f6g7h8"

Example Response:

{
  "name": "Team Performance Overview",
  "theme": "dark-blue",
  "components": [
    {
      "id": "comp-123",
      "type": "chart",
      "title": "Monthly Sales Trend",
      "query": {
        "connector": "postgres",
        "naturalLanguage": "Show sales by month for the last year"
      },
      "data": [
        { "month": "Jan", "sales": 1200 },
        { "month": "Feb", "sales": 1500 }
        // ... up to 1000 rows
      ],
      "chartConfig": {
        "type": "line",
        "xField": "month",
        "yField": "sales"
      }
    }
    // ... other components
  ],
  "updatedAt": "2023-10-27T10:30:00.000Z"
}

Response Fields:

  • name: The name of the dashboard.
  • theme: The resolved theme applied to the dashboard (e.g., "default", "dark-blue").
  • components: An array of component objects, each containing its type, title, query (without raw SQL), data (capped at 1000 rows), and specific configuration.
  • updatedAt: The timestamp when the public dashboard snapshot was last generated or updated.

Error Conditions:

  • 404 Not Found: Returned if the provided slug does not exist or has been revoked. The error message will be "This link has been revoked or does not exist".