🎯

plausible

🎯Skill

from vm0-ai/vm0-skills

VibeIndex|
What it does

Retrieves and analyzes website traffic statistics using Plausible Analytics API, providing insights on visitors, pageviews, sources, and site performance.

πŸ“¦

Part of

vm0-ai/vm0-skills(138 items)

plausible

Installation

Add MarketplaceAdd marketplace to Claude Code
/plugin marketplace add vm0-ai/vm0-skills
Install PluginInstall plugin from marketplace
/plugin install notion@vm0-skills
Install PluginInstall plugin from marketplace
/plugin install slack-webhook@vm0-skills
git cloneClone repository
git clone https://github.com/vm0-ai/vm0-skills.git
πŸ“– Extracted from docs: vm0-ai/vm0-skills
15Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

Plausible Analytics API for querying website statistics and managing sites. Use this skill to get visitor counts, pageviews, traffic sources, and manage analytics sites.

Overview

# 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

```bash

export PLAUSIBLE_API_KEY=your-api-key

export PLAUSIBLE_SITE_ID=example.com

```

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)

> Important: When using $VAR in a command that pipes to another command, wrap the command containing $VAR in bash -c '...'. Due to a Claude Code bug, environment variables are silently cleared when pipes are used directly.

> ```bash

> bash -c 'curl -s "https://api.example.com" -H "Authorization: Bearer $API_KEY"' | jq .

> ```

Stats API (v2)

Basic Query - Total Visitors

Write to /tmp/plausible_request.json:

```json

{

"site_id": "",

"metrics": ["visitors", "pageviews"],

"date_range": "7d"

}

```

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

```bash

bash -c 'curl -s -X POST "https://plausible.io/api/v2/query" -H "Authorization: Bearer $PLAUSIBLE_API_KEY" -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:

```json

{

"site_id": "",

"metrics": ["visitors", "pageviews", "bounce_rate"],

"date_range": "30d",

"dimensions": ["visit:source"]

}

```

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

```bash

bash -c 'curl -s -X POST "https://plausible.io/api/v2/query" -H "Authorization: Bearer $PLAUSIBLE_API_KEY" -H "Content-Type: application/json" -d @/tmp/plausible_request.json'

```

Top Pages

Write to /tmp/plausible_request.json:

```json

{

"site_id": "",

"metrics": ["visitors", "pageviews"],

"date_range": "7d",

"dimensions": ["event:page"],

"order_by": [["pageviews", "desc"]],

"pagination": {

"limit": 10

}

}

```

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

```bash

bash -c 'curl -s -X POST "https://plausible.io/api/v2/query" -H "Authorization: Bearer $PLAUSIBLE_API_KEY" -H "Content-Type: application/json" -d @/tmp/plausible_request.json'

```

Geographic Breakdown

Write to /tmp/plausible_request.json:

```json

{

"site_id": "",

"metrics": ["visitors"],

"date_range": "30d",

"dimensions": ["visit:country_name", "visit:city_name"]

}

```

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

```bash

bash -c 'curl -s -X POST "https://plausible.io/api/v2/query" -H "Authorization: Bearer $PLAUSIBLE_API_KEY" -H "Content-Type: application/json" -d @/tmp/plausible_request.json'

```

Device & Browser Stats

Write to /tmp/plausible_request.json:

```json

{

"site_id": "",

"metrics": ["visitors"],

"date_range": "7d",

"dimensions": ["visit:device"]

}

```

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

```bash

bash -c 'curl -s -X POST "https://plausible.io/api/v2/query" -H "Authorization: Bearer $PLAUSIBLE_API_KEY" -H "Content-Type: application/json" -d @/tmp/plausible_request.json'

```

Time Series (Daily)

Write to /tmp/plausible_request.json:

```json

{

"site_id": "",

"metrics": ["visitors", "pageviews"],

"date_range": "30d",

"dimensions": ["time:day"]

}

```

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

```bash

bash -c 'curl -s -X POST "https://plausible.io/api/v2/query" -H "Authorization: Bearer $PLAUSIBLE_API_KEY" -H "Content-Type: application/json" -d @/tmp/plausible_request.json'

```

Filter by Page Path

Write to /tmp/plausible_request.json:

```json

{

"site_id": "",

"metrics": ["visitors", "pageviews"],

"date_range": "7d",

"filters": [["contains", "event:page", ["/blog"]]]

}

```

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

```bash

bash -c 'curl -s -X POST "https://plausible.io/api/v2/query" -H "Authorization: Bearer $PLAUSIBLE_API_KEY" -H "Content-Type: application/json" -d @/tmp/plausible_request.json'

```

UTM Campaign Analysis

Write to /tmp/plausible_request.json:

```json

{

"site_id": "",

"metrics": ["visitors", "conversion_rate"],

"date_range": "30d",

"dimensions": ["visit:utm_source", "visit:utm_campaign"]

}

```

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

```bash

bash -c 'curl -s -X POST "https://plausible.io/api/v2/query" -H "Authorization: Bearer $PLAUSIBLE_API_KEY" -H "Content-Type: application/json" -d @/tmp/plausible_request.json'

```

Custom Date Range

Write to /tmp/plausible_request.json:

```json

{

"site_id": "",

"metrics": ["visitors", "pageviews"],

"date_range": ["2024-01-01", "2024-01-31"]

}

```

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

```bash

bash -c 'curl -s -X POST "https://plausible.io/api/v2/query" -H "Authorization: Bearer $PLAUSIBLE_API_KEY" -H "Content-Type: application/json" -d @/tmp/plausible_request.json'

```

Site Provisioning API

List Sites

```bash

bash -c 'curl -s -H "Authorization: Bearer $PLAUSIBLE_API_KEY" "https://plausible.io/api/v1/sites"'

```

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

Create Site

Write to /tmp/plausible_request.json:

```json

{

"domain": "newsite.com",

"timezone": "America/New_York"

}

```

Then run:

```bash

bash -c 'curl -s -X POST "https://plausible.io/api/v1/sites" -H "Authorization: Bearer $PLAUSIBLE_API_KEY" -H "Content-Type: application/json" -d @/tmp/plausible_request.json'

```

Get Site Details

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

```bash

bash -c 'curl -s -H "Authorization: Bearer $PLAUSIBLE_API_KEY" "https://plausible.io/api/v1/sites/"'

```

Delete Site

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

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

```bash

bash -c 'curl -s -X DELETE -H "Authorization: Bearer $PLAUSIBLE_API_KEY" "https://plausible.io/api/v1/sites/"'

```

Create Goal

Write to /tmp/plausible_request.json:

```json

{

"site_id": "",

"goal_type": "event",

"event_name": "Signup"

}

```

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

```bash

bash -c 'curl -s -X PUT "https://plausible.io/api/v1/sites/goals" -H "Authorization: Bearer $PLAUSIBLE_API_KEY" -H "Content-Type: application/json" -d @/tmp/plausible_request.json'

```

Create Page Goal

Write to /tmp/plausible_request.json:

```json

{

"site_id": "",

"goal_type": "page",

"page_path": "/thank-you"

}

```

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

```bash

bash -c 'curl -s -X PUT "https://plausible.io/api/v1/sites/goals" -H "Authorization: Bearer $PLAUSIBLE_API_KEY" -H "Content-Type: application/json" -d @/tmp/plausible_request.json'

```

List Goals

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

```bash

bash -c 'curl -s -H "Authorization: Bearer $PLAUSIBLE_API_KEY" "https://plausible.io/api/v1/sites/goals?site_id="'

```

Create Shared Link

Write to /tmp/plausible_request.json:

```json

{

"site_id": "",

"name": "Public Dashboard"

}

```

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

```bash

bash -c 'curl -s -X PUT "https://plausible.io/api/v1/sites/shared-links" -H "Authorization: Bearer $PLAUSIBLE_API_KEY" -H "Content-Type: application/json" -d @/tmp/plausible_request.json'

```

Available Metrics

| Metric | Type | Description |

|--------|------|-------------|

| visitors | int | Unique visitors |

| visits | int | Total sessions |

| pageviews | int | Page views |

| bounce_rate | float | Bounce rate (%) |

| visit_duration | int | Avg duration (seconds) |

| views_per_visit | float | Pages per session |

| conversion_rate | float | Goal conversion rate (requires goal to be configured) |

| events | int | Total 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

| Operator | Description |

|----------|-------------|

| is | Equals any value |

| is_not | Not equals |

| contains | Contains substring |

| matches | Regex match |

Complex Filters

```json

["and", [

["is", "visit:country_name", ["United States"]],

["contains", "event:page", ["/blog"]]

]]

```

Date Range Options

| Value | Description |

|-------|-------------|

| day | Today |

| 7d | Last 7 days |

| 28d | Last 28 days |

| 30d | Last 30 days |

| month | Current month |

| 6mo | Last 6 months |

| 12mo | Last 12 months |

| year | Current year |

| all | All time |

| ["2024-01-01", "2024-12-31"] | Custom range |

Rate Limits

  • 600 requests per hour per API key

API Reference

  • Stats API: https://plausible.io/docs/stats-api
  • Sites API: https://plausible.io/docs/sites-api
  • Main Docs: https://plausible.io/docs

More from this repository10