Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/metabase/metabase/llms.txt

Use this file to discover all available pages before exploring further.

The Public API provides access to publicly shared Metabase content through UUID-based URLs. No authentication is required for these endpoints.

Public sharing overview

Public sharing allows you to:
  • Share dashboards and questions with anyone via a URL
  • Embed content without signed tokens
  • Allow external users to view data without Metabase accounts
Public links are accessible by anyone with the URL. Only share links for content you want to be publicly accessible.

Enable public sharing

Public sharing must be enabled by an administrator:
  1. Go to Admin > Settings > Public Sharing
  2. Enable “Enable Public Sharing”
  3. Optionally enable “Enable Embedding”
Requires admin permissions to enable public sharing instance-wide.
Generate a public sharing link for a question.
POST /api/card/{card-id}/public_link
curl -X POST \
  https://your-metabase.com/api/card/1/public_link \
  -H 'X-Metabase-Session: SESSION_TOKEN'

Response

{
  "uuid": "110c3d96-ff3a-4ec6-9a82-7c2d5e073fa2"
}
The question can be accessed at:
https://your-metabase.com/public/question/110c3d96-ff3a-4ec6-9a82-7c2d5e073fa2
Generate a public sharing link for a dashboard.
POST /api/dashboard/{dashboard-id}/public_link
curl -X POST \
  https://your-metabase.com/api/dashboard/1/public_link \
  -H 'X-Metabase-Session: SESSION_TOKEN'
Revoke public access to a question.
DELETE /api/card/{card-id}/public_link
curl -X DELETE \
  https://your-metabase.com/api/card/1/public_link \
  -H 'X-Metabase-Session: SESSION_TOKEN'
Revoke public access to a dashboard.
DELETE /api/dashboard/{dashboard-id}/public_link
curl -X DELETE \
  https://your-metabase.com/api/dashboard/1/public_link \
  -H 'X-Metabase-Session: SESSION_TOKEN'

Access public content

Get public card

Retrieve a publicly shared question.
GET /api/public/card/{uuid}
curl -X GET \
  https://your-metabase.com/api/public/card/110c3d96-ff3a-4ec6-9a82-7c2d5e073fa2
No authentication required. Anyone with the UUID can access this endpoint.

Execute public card query

Run the query for a publicly shared question.
GET /api/public/card/{uuid}/query
curl -X GET \
  https://your-metabase.com/api/public/card/110c3d96-ff3a-4ec6-9a82-7c2d5e073fa2/query

Download public card results

Download query results in a specific format.
GET /api/public/card/{uuid}/query/{export-format}
curl -X GET \
  https://your-metabase.com/api/public/card/110c3d96-ff3a-4ec6-9a82-7c2d5e073fa2/query/csv \
  -o results.csv

Parameters

uuid
string
required
Public sharing UUID
export-format
string
required
Export format: csv, xlsx, or json

Get public dashboard

Retrieve a publicly shared dashboard.
GET /api/public/dashboard/{uuid}
curl -X GET \
  https://your-metabase.com/api/public/dashboard/110c3d96-ff3a-4ec6-9a82-7c2d5e073fa2

Execute public dashboard card query

Run a query for a card on a public dashboard.
GET /api/public/dashboard/{uuid}/dashcard/{dashcard-id}/card/{card-id}
curl -X GET \
  https://your-metabase.com/api/public/dashboard/110c3d96-ff3a-4ec6-9a82-7c2d5e073fa2/dashcard/5/card/10

Public parameters

Get parameter values

Get possible values for a public question parameter.
GET /api/public/card/{uuid}/params/{param-key}/values
curl -X GET \
  https://your-metabase.com/api/public/card/110c3d96-ff3a-4ec6-9a82-7c2d5e073fa2/params/category/values

Search parameter values

Search for parameter values in a public question.
GET /api/public/card/{uuid}/params/{param-key}/search/{query}
curl -X GET \
  https://your-metabase.com/api/public/card/110c3d96-ff3a-4ec6-9a82-7c2d5e073fa2/params/category/search/electronics

Get parameter remapping

Get remapped values for a public question parameter.
GET /api/public/card/{uuid}/params/{param-key}/remapping
curl -X GET \
  'https://your-metabase.com/api/public/card/110c3d96-ff3a-4ec6-9a82-7c2d5e073fa2/params/category/remapping?value=123'

Public actions

Get public action

Retrieve a publicly shared action.
GET /api/public/action/{uuid}
curl -X GET \
  https://your-metabase.com/api/public/action/110c3d96-ff3a-4ec6-9a82-7c2d5e073fa2

Execute public action

Execute a publicly shared action.
POST /api/public/action/{uuid}/execute
curl -X POST \
  https://your-metabase.com/api/public/action/110c3d96-ff3a-4ec6-9a82-7c2d5e073fa2/execute \
  -H 'Content-Type: application/json' \
  -d '{
    "parameters": {
      "name": "John Doe",
      "email": "john@example.com"
    }
  }'
Be careful when making actions publicly accessible. Anyone with the link can execute the action.

List public content

List public cards

Get all cards with public links (admin only).
GET /api/card/public
curl -X GET \
  https://your-metabase.com/api/card/public \
  -H 'X-Metabase-Session: SESSION_TOKEN'

List public dashboards

Get all dashboards with public links (admin only).
GET /api/dashboard/public
curl -X GET \
  https://your-metabase.com/api/dashboard/public \
  -H 'X-Metabase-Session: SESSION_TOKEN'

Response

[
  {
    "id": 1,
    "name": "Sales Dashboard",
    "public_uuid": "110c3d96-ff3a-4ec6-9a82-7c2d5e073fa2"
  }
]

Embedding public content

Embed public dashboards and questions in iframes:
<iframe
  src="https://your-metabase.com/public/dashboard/110c3d96-ff3a-4ec6-9a82-7c2d5e073fa2"
  frameborder="0"
  width="800"
  height="600"
  allowtransparency
></iframe>

URL parameters

Customize public embeds with URL hash parameters:
https://your-metabase.com/public/dashboard/UUID#bordered=false&titled=false
bordered
boolean
Show border (default: true)
titled
boolean
Show title (default: true)
theme
string
Theme: “night” or “transparent”

Rate limiting

Public endpoints have separate rate limits from authenticated endpoints to prevent abuse.
See Rate Limits for details.

Security considerations

Public sharing best practices:
  • Only share content that’s appropriate for public viewing
  • Regularly audit public links and revoke unused ones
  • Use filters to limit data exposure in public questions
  • Monitor public endpoint usage for unusual activity
  • Consider using signed embedding for sensitive data

Error codes

400 Bad Request
error
Invalid UUID format
403 Forbidden
error
Public sharing is disabled
404 Not Found
error
Public link not found or has been revoked
429 Too Many Requests
error
Rate limit exceeded for public endpoints