plausible

Plausible Analytics API for privacy-friendly stats. Use when user mentions "Plausible", "analytics", "page views", or website stats.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "plausible" with this command: npx skills add vm0-ai/vm0-skills/vm0-ai-vm0-skills-plausible

Plausible Analytics API

Query website analytics and manage sites with Plausible's privacy-friendly analytics platform.

When to Use

  • Query visitor statistics and pageviews
  • Analyze traffic sources and referrers
  • Get geographic and device breakdowns
  • Track conversions and goals
  • Manage analytics sites programmatically

Prerequisites

export PLAUSIBLE_TOKEN=your-api-key

Get API Key

  1. Log in to Plausible: https://plausible.io/login
  2. Go to Account Settings (top-right menu)
  3. Navigate to "API Keys" in sidebar
  4. Click "New API Key"
  5. Choose key type:
  • Stats API - For querying analytics data
  • Sites API - For managing sites programmatically
  1. Save the key (shown only once)

Stats API (v2)

Basic Query - Total Visitors

Write to /tmp/plausible_request.json:

{
  "site_id": "<your-site-id>",
  "metrics": ["visitors", "pageviews"],
  "date_range": "7d"
}

Replace <your-site-id> with your actual site ID (typically your domain like "example.com"):

curl -s -X POST "https://plausible.io/api/v2/query" -H "Authorization: Bearer $(printenv PLAUSIBLE_TOKEN)" -H "Content-Type: application/json" -d @/tmp/plausible_request.json

Docs: https://plausible.io/docs/stats-api

Query with Dimensions (Breakdown)

Write to /tmp/plausible_request.json:

{
  "site_id": "<your-site-id>",
  "metrics": ["visitors", "pageviews", "bounce_rate"],
  "date_range": "30d",
  "dimensions": ["visit:source"]
}

Replace <your-site-id> with your actual site ID (typically your domain like "example.com"):

curl -s -X POST "https://plausible.io/api/v2/query" -H "Authorization: Bearer $(printenv PLAUSIBLE_TOKEN)" -H "Content-Type: application/json" -d @/tmp/plausible_request.json

Top Pages

Write to /tmp/plausible_request.json:

{
  "site_id": "<your-site-id>",
  "metrics": ["visitors", "pageviews"],
  "date_range": "7d",
  "dimensions": ["event:page"],
  "order_by": [["pageviews", "desc"]],
  "pagination": {
    "limit": 10
  }
}

Replace <your-site-id> with your actual site ID (typically your domain like "example.com"):

curl -s -X POST "https://plausible.io/api/v2/query" -H "Authorization: Bearer $(printenv PLAUSIBLE_TOKEN)" -H "Content-Type: application/json" -d @/tmp/plausible_request.json

Geographic Breakdown

Write to /tmp/plausible_request.json:

{
  "site_id": "<your-site-id>",
  "metrics": ["visitors"],
  "date_range": "30d",
  "dimensions": ["visit:country_name", "visit:city_name"]
}

Replace <your-site-id> with your actual site ID (typically your domain like "example.com"):

curl -s -X POST "https://plausible.io/api/v2/query" -H "Authorization: Bearer $(printenv PLAUSIBLE_TOKEN)" -H "Content-Type: application/json" -d @/tmp/plausible_request.json

Device & Browser Stats

Write to /tmp/plausible_request.json:

{
  "site_id": "<your-site-id>",
  "metrics": ["visitors"],
  "date_range": "7d",
  "dimensions": ["visit:device"]
}

Replace <your-site-id> with your actual site ID (typically your domain like "example.com"):

curl -s -X POST "https://plausible.io/api/v2/query" -H "Authorization: Bearer $(printenv PLAUSIBLE_TOKEN)" -H "Content-Type: application/json" -d @/tmp/plausible_request.json

Time Series (Daily)

Write to /tmp/plausible_request.json:

{
  "site_id": "<your-site-id>",
  "metrics": ["visitors", "pageviews"],
  "date_range": "30d",
  "dimensions": ["time:day"]
}

Replace <your-site-id> with your actual site ID (typically your domain like "example.com"):

curl -s -X POST "https://plausible.io/api/v2/query" -H "Authorization: Bearer $(printenv PLAUSIBLE_TOKEN)" -H "Content-Type: application/json" -d @/tmp/plausible_request.json

Filter by Page Path

Write to /tmp/plausible_request.json:

{
  "site_id": "<your-site-id>",
  "metrics": ["visitors", "pageviews"],
  "date_range": "7d",
  "filters": [["contains", "event:page", ["/blog"]]]
}

Replace <your-site-id> with your actual site ID (typically your domain like "example.com"):

curl -s -X POST "https://plausible.io/api/v2/query" -H "Authorization: Bearer $(printenv PLAUSIBLE_TOKEN)" -H "Content-Type: application/json" -d @/tmp/plausible_request.json

UTM Campaign Analysis

Write to /tmp/plausible_request.json:

{
  "site_id": "<your-site-id>",
  "metrics": ["visitors", "conversion_rate"],
  "date_range": "30d",
  "dimensions": ["visit:utm_source", "visit:utm_campaign"]
}

Replace <your-site-id> with your actual site ID (typically your domain like "example.com"):

curl -s -X POST "https://plausible.io/api/v2/query" -H "Authorization: Bearer $(printenv PLAUSIBLE_TOKEN)" -H "Content-Type: application/json" -d @/tmp/plausible_request.json

Custom Date Range

Write to /tmp/plausible_request.json:

{
  "site_id": "<your-site-id>",
  "metrics": ["visitors", "pageviews"],
  "date_range": ["2024-01-01", "2024-01-31"]
}

Replace <your-site-id> with your actual site ID (typically your domain like "example.com"):

curl -s -X POST "https://plausible.io/api/v2/query" -H "Authorization: Bearer $(printenv PLAUSIBLE_TOKEN)" -H "Content-Type: application/json" -d @/tmp/plausible_request.json

Site Provisioning API

List Sites

curl -s -H "Authorization: Bearer $(printenv PLAUSIBLE_TOKEN)" "https://plausible.io/api/v1/sites"

Docs: https://plausible.io/docs/sites-api

Create Site

Write to /tmp/plausible_request.json:

{
  "domain": "newsite.com",
  "timezone": "America/New_York"
}

Then run:

curl -s -X POST "https://plausible.io/api/v1/sites" -H "Authorization: Bearer $(printenv PLAUSIBLE_TOKEN)" -H "Content-Type: application/json" -d @/tmp/plausible_request.json

Get Site Details

Replace <your-site-id> with your actual site ID (typically your domain like "example.com"):

curl -s -H "Authorization: Bearer $(printenv PLAUSIBLE_TOKEN)" "https://plausible.io/api/v1/sites/<your-site-id>"

Delete Site

Warning: This will permanently delete the site and all its data.

Replace <your-site-id> with your actual site ID (typically your domain like "example.com"):

curl -s -X DELETE -H "Authorization: Bearer $(printenv PLAUSIBLE_TOKEN)" "https://plausible.io/api/v1/sites/<your-site-id>"

Create Goal

Write to /tmp/plausible_request.json:

{
  "site_id": "<your-site-id>",
  "goal_type": "event",
  "event_name": "Signup"
}

Replace <your-site-id> with your actual site ID (typically your domain like "example.com"):

curl -s -X PUT "https://plausible.io/api/v1/sites/goals" -H "Authorization: Bearer $(printenv PLAUSIBLE_TOKEN)" -H "Content-Type: application/json" -d @/tmp/plausible_request.json

Create Page Goal

Write to /tmp/plausible_request.json:

{
  "site_id": "<your-site-id>",
  "goal_type": "page",
  "page_path": "/thank-you"
}

Replace <your-site-id> with your actual site ID (typically your domain like "example.com"):

curl -s -X PUT "https://plausible.io/api/v1/sites/goals" -H "Authorization: Bearer $(printenv PLAUSIBLE_TOKEN)" -H "Content-Type: application/json" -d @/tmp/plausible_request.json

List Goals

Replace <your-site-id> with your actual site ID (typically your domain like "example.com"):

curl -s -H "Authorization: Bearer $(printenv PLAUSIBLE_TOKEN)" "https://plausible.io/api/v1/sites/goals?site_id=<your-site-id>"

Create Shared Link

Write to /tmp/plausible_request.json:

{
  "site_id": "<your-site-id>",
  "name": "Public Dashboard"
}

Replace <your-site-id> with your actual site ID (typically your domain like "example.com"):

curl -s -X PUT "https://plausible.io/api/v1/sites/shared-links" -H "Authorization: Bearer $(printenv PLAUSIBLE_TOKEN)" -H "Content-Type: application/json" -d @/tmp/plausible_request.json

Available Metrics

MetricTypeDescription
visitorsintUnique visitors
visitsintTotal sessions
pageviewsintPage views
bounce_ratefloatBounce rate (%)
visit_durationintAvg duration (seconds)
views_per_visitfloatPages per session
conversion_ratefloatGoal conversion rate (requires goal to be configured)
eventsintTotal events

Note: The conversion_rate metric requires at least one goal to be configured for your site. Create a goal first using the "Create Goal" or "Create Page Goal" endpoints before querying conversion rates.

Available Dimensions

Event Dimensions

  • event:goal - Custom goals
  • event:page - Page path
  • event:hostname - Hostname

Visit Dimensions

  • visit:source - Traffic source
  • visit:referrer - Full referrer URL
  • visit:utm_source - UTM source
  • visit:utm_medium - UTM medium
  • visit:utm_campaign - UTM campaign
  • visit:country_name - Country
  • visit:region_name - Region/State
  • visit:city_name - City
  • visit:device - Device type
  • visit:browser - Browser name
  • visit:browser_version - Browser version
  • visit:os - Operating system
  • visit:os_version - OS version

Time Dimensions

  • time - Auto granularity
  • time:hour - Hourly
  • time:day - Daily
  • time:week - Weekly
  • time:month - Monthly

Filter Operators

OperatorDescription
isEquals any value
is_notNot equals
containsContains substring
matchesRegex match

Complex Filters

["and", [
  ["is", "visit:country_name", ["United States"]],
  ["contains", "event:page", ["/blog"]]
]]

Date Range Options

ValueDescription
dayToday
7dLast 7 days
28dLast 28 days
30dLast 30 days
monthCurrent month
6moLast 6 months
12moLast 12 months
yearCurrent year
allAll time
["2024-01-01", "2024-12-31"]Custom range

Rate Limits

  • 600 requests per hour per API key

API Reference

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

google-sheets

No summary provided by upstream source.

Repository SourceNeeds Review
246-vm0-ai
General

apify

No summary provided by upstream source.

Repository SourceNeeds Review
214-vm0-ai
General

hackernews

No summary provided by upstream source.

Repository SourceNeeds Review
170-vm0-ai
General

serpapi

No summary provided by upstream source.

Repository SourceNeeds Review
164-vm0-ai