Plausible
App · Analytics · 20 actions
Read a Plausible Analytics site from a workflow: totals, visitors over time, current visitors, and breakdowns by page, source, channel, campaign, country, device, browser and goal - and send events back in for things that happen where a tracking script cannot see them. Works with Plausible Cloud and with self-hosted Community Edition.
Actions
| Action | What it does |
|---|---|
| Get current visitors | How many people are on the site right now, as the count of unique visitors in the last few minutes. |
| Get site totals | The numbers across the top of a Plausible dashboard - unique visitors, visits, pageviews, bounce rate and average visit duration - for a period you choose. |
| Get visitors over time | Traffic split into time buckets - by hour, day, week or month - for charting a period or comparing one day against the next. |
| List acquisition channels | Traffic grouped into channels - organic search, paid search, referral, social, email, direct. |
| List browsers | Visitors by browser, or by browser version if you need to know whether anyone is still on an old one. |
| List campaign traffic | Campaign traffic broken down by whichever UTM tag you pick - source, medium, campaign, content or term. |
| List cities | Visitors by city, by name. |
| List countries | Visitors by country, by name rather than by code. |
| List custom property values | The values one custom property took, and how many visitors saw each - the author of a post, the plan on a pricing page, whatever your events carry. |
| List device sizes | Visitors by device size - desktop, laptop, tablet or mobile. |
| List entry pages | The pages visits started on - the first thing each visitor saw. |
| List exit pages | The pages visits ended on - the last thing each visitor saw before leaving. |
| List goal conversions | How each goal is converting - unique visitors, total conversions and conversion rate per goal. |
| List operating systems | Visitors by operating system, or by OS version. |
| List referrers | The raw referring hosts visits arrived from, before Plausible tidies them into source names. |
| List regions | Visitors by region or state, by name. |
| List top pages | The most-visited pages, with visitors and pageviews for each. |
| List traffic sources | Where visitors came from, as the tidied-up source names Plausible shows on its dashboard - 'Google', 'Hacker News'. |
| Run a stats query | Ask Plausible anything its Stats API can answer: pick the metrics and the dimensions to group by yourself. |
| Send event | Record a pageview or a custom event against a site - a signup completing, an order being placed, anything that happens somewhere a tracking script cannot see. |
Get current visitors
How many people are on the site right now, as the count of unique visitors in the last few minutes. Returned on 'visitors'. Use it to watch a launch, or to alert when traffic spikes or falls away.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Minutes back
minutesnumber - How far back 'right now' reaches, 1-1440. Defaults to 5, which is what Plausible's own 'current visitors' counts.From 1 to 1440. Default:
5. - Filters
filterslist - Narrow the query, using Plausible's filter syntax: a list of [operator, dimension, values] triples, such as [["is", "visit:country", ["EE", "GB"]]]. The operators are is, is_not, contains, contains_not, matches, matches_not, and they can be nested inside and, or and not.
Outputs
countnumberdate_range- The period the query covered: either the shorthand that was used ('7d'), or the two dates it ran between.
dimensionslistmetaobject- Plausible's own metadata for the query. Its keys are conditional: 'total_rows' and 'time_labels' only appear when they were asked for, and the 'imports_*' keys only on a site with imported data.
metricslistminutesnumberresultslistsite_idtexttotal_rowsnumbervisitorsnumberwindow_endtextwindow_starttext
Example output
{
"count": 1,
"date_range": [
"2026-09-12T09:55:00+00:00",
"2026-09-12T10:00:00+00:00"
],
"dimensions": [],
"meta": {},
"metrics": [
"visitors"
],
"minutes": 5,
"results": [
{
"visitors": 12
}
],
"site_id": "example.com",
"total_rows": null,
"visitors": 12,
"window_end": "2026-09-12T10:00:00+00:00",
"window_start": "2026-09-12T09:55:00+00:00"
}Get site totals
The numbers across the top of a Plausible dashboard - unique visitors, visits, pageviews, bounce rate and average visit duration - for a period you choose. One number per metric, returned on 'totals' so a later step can read totals.visitors directly. Add filters to ask the same question about a slice of the traffic.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Metrics
metricstext - Which numbers to return. Leave blank for visitors, visits, pageviews, bounce_rate, visit_duration.One or more of:
visitors(Unique visitors),visits(Visits (sessions)),pageviews,views_per_visit(Pageviews per visit),bounce_rate(Bounce rate (%)),visit_duration(Visit duration (seconds)),events(Events (pageviews + custom)). Default:["visitors", "visits", "pageviews", "bounce_rate", "visit_duration"]. - Period
date_rangetext - Which period to report on. Ignored when both dates below are set. Defaults to 7d.One of:
day(Today),24h(The last 24 hours),7d(The last 7 days),28d(The last 28 days),month(This calendar month),6mo(The last 6 months),12mo(The last 12 months),year(This calendar year),all(All time). Default:7d. - From
start_datedate - The first day to include. Set this and 'To' together to use an exact range instead of the period above; leave both blank to use the period.
- To
end_datedate - The last day to include. Has to be set together with 'From'.
- Filters
filterslist - Narrow the query, using Plausible's filter syntax: a list of [operator, dimension, values] triples, such as [["is", "visit:country", ["EE", "GB"]]]. The operators are is, is_not, contains, contains_not, matches, matches_not, and they can be nested inside and, or and not.
- Include imported data
include_importstrue/false - Count data imported from Google Analytics or a CSV alongside what Plausible measured itself. Off by default, which is Plausible's own default. Check 'meta' on the result if the numbers look wrong - Plausible reports there when it had to skip an import.Default:
false.
Outputs
countnumberdate_range- The period the query covered: either the shorthand that was used ('7d'), or the two dates it ran between.
dimensionslistmetaobject- Plausible's own metadata for the query. Its keys are conditional: 'total_rows' and 'time_labels' only appear when they were asked for, and the 'imports_*' keys only on a site with imported data.
metricslistresultslistsite_idtexttotal_rowsnumbertotalsobject- One value per metric asked for, for the whole period - for example {'visitors': 1204, 'bounce_rate': 41}.
Example output
{
"count": 1,
"date_range": "7d",
"dimensions": [],
"meta": {
"total_rows": 1
},
"metrics": [
"visitors",
"visits",
"pageviews",
"bounce_rate",
"visit_duration"
],
"results": [
{
"bounce_rate": 38,
"pageviews": 4120,
"visit_duration": 94,
"visitors": 1840,
"visits": 2012
}
],
"site_id": "example.com",
"total_rows": 1,
"totals": {
"bounce_rate": 38,
"pageviews": 4120,
"visit_duration": 94,
"visitors": 1840,
"visits": 2012
}
}Get visitors over time
Traffic split into time buckets - by hour, day, week or month - for charting a period or comparing one day against the next. Every bucket valid for the period is also returned on 'time_labels', including the empty ones the rows leave out, so a chart has a complete axis.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Bucket size
intervaltext - How wide each bucket is. 'Automatic' lets Plausible pick a sensible one for the period. Defaults to daily.One of:
time(Automatic),time:hour(Hourly),time:day(Daily),time:week(Weekly),time:month(Monthly). Default:time:day. - Metrics
metricstext - Which numbers to return. Leave blank for visitors, pageviews. Pageviews per visit is not offered here - Plausible does not support it alongside a time bucket.One or more of:
visitors(Unique visitors),visits(Visits (sessions)),pageviews,bounce_rate(Bounce rate (%)),visit_duration(Visit duration (seconds)),events(Events (pageviews + custom)). Default:["visitors", "pageviews"]. - Period
date_rangetext - Which period to report on. Ignored when both dates below are set. Defaults to 7d.One of:
day(Today),24h(The last 24 hours),7d(The last 7 days),28d(The last 28 days),month(This calendar month),6mo(The last 6 months),12mo(The last 12 months),year(This calendar year),all(All time). Default:7d. - From
start_datedate - The first day to include. Set this and 'To' together to use an exact range instead of the period above; leave both blank to use the period.
- To
end_datedate - The last day to include. Has to be set together with 'From'.
- Filters
filterslist - Narrow the query, using Plausible's filter syntax: a list of [operator, dimension, values] triples, such as [["is", "visit:country", ["EE", "GB"]]]. The operators are is, is_not, contains, contains_not, matches, matches_not, and they can be nested inside and, or and not.
- Include imported data
include_importstrue/false - Count data imported from Google Analytics or a CSV alongside what Plausible measured itself. Off by default, which is Plausible's own default. Check 'meta' on the result if the numbers look wrong - Plausible reports there when it had to skip an import.Default:
false.
Outputs
countnumberdate_range- The period the query covered: either the shorthand that was used ('7d'), or the two dates it ran between.
dimensionslistintervaltextmetaobject- Plausible's own metadata for the query. Its keys are conditional: 'total_rows' and 'time_labels' only appear when they were asked for, and the 'imports_*' keys only on a site with imported data.
metricslistresultslistsite_idtexttime_labelslisttotal_rowsnumber
Example output
{
"count": 2,
"date_range": "7d",
"dimensions": [
"time:day"
],
"interval": "time:day",
"meta": {
"time_labels": [
"2026-09-08",
"2026-09-09"
],
"total_rows": 2
},
"metrics": [
"visitors",
"pageviews"
],
"results": [
{
"bucket": "2026-09-08",
"pageviews": 512,
"visitors": 240
},
{
"bucket": "2026-09-09",
"pageviews": 601,
"visitors": 288
}
],
"site_id": "example.com",
"time_labels": [
"2026-09-08",
"2026-09-09"
],
"total_rows": 2
}List acquisition channels
Traffic grouped into channels - organic search, paid search, referral, social, email, direct. The level above individual sources, and the one to report on month over month. Plausible works the channel out itself from the referrer and the campaign tags.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Metrics
metricstext - Which numbers to return. Leave blank for visitors, visits, bounce_rate.One or more of:
visitors(Unique visitors),visits(Visits (sessions)),bounce_rate(Bounce rate (%)),visit_duration(Visit duration (seconds)),percentage(Percentage of visitors). Default:["visitors", "visits", "bounce_rate"]. - Period
date_rangetext - Which period to report on. Ignored when both dates below are set. Defaults to 7d.One of:
day(Today),24h(The last 24 hours),7d(The last 7 days),28d(The last 28 days),month(This calendar month),6mo(The last 6 months),12mo(The last 12 months),year(This calendar year),all(All time). Default:7d. - From
start_datedate - The first day to include. Set this and 'To' together to use an exact range instead of the period above; leave both blank to use the period.
- To
end_datedate - The last day to include. Has to be set together with 'From'.
- Filters
filterslist - Narrow the query, using Plausible's filter syntax: a list of [operator, dimension, values] triples, such as [["is", "visit:country", ["EE", "GB"]]]. The operators are is, is_not, contains, contains_not, matches, matches_not, and they can be nested inside and, or and not.
- Sort by
sort_bytext - Which metric to order the rows by. It is added to the returned metrics if it is not there already. Defaults to visitors.One of:
visitors(Unique visitors),visits(Visits (sessions)),bounce_rate(Bounce rate (%)),visit_duration(Visit duration (seconds)),percentage(Percentage of visitors). - Order
sort_directiontext - Which way round to sort. Defaults to highest first.One of:
desc(Highest first),asc(Lowest first). Default:desc. - How many
limitnumber - How many channels to return, 1-10000. Defaults to 100.From 1 to 10000.
- Skip
offsetnumber - Skip this many channels before the page begins. Read 'next_offset' from the result to get the next page.From 0 to 1000000.
- Include imported data
include_importstrue/false - Count data imported from Google Analytics or a CSV alongside what Plausible measured itself. Off by default, which is Plausible's own default. Check 'meta' on the result if the numbers look wrong - Plausible reports there when it had to skip an import.Default:
false.
Outputs
countnumberdate_range- The period the query covered: either the shorthand that was used ('7d'), or the two dates it ran between.
dimensionslisthas_moretrue/falselimitnumbermetaobject- Plausible's own metadata for the query. Its keys are conditional: 'total_rows' and 'time_labels' only appear when they were asked for, and the 'imports_*' keys only on a site with imported data.
metricslistnext_offsetnumberoffsetnumberresultslistsite_idtexttotal_rowsnumber
Example output
{
"count": 2,
"date_range": "7d",
"dimensions": [
"visit:channel"
],
"has_more": false,
"limit": 100,
"meta": {
"total_rows": 2
},
"metrics": [
"visitors",
"visits",
"bounce_rate"
],
"next_offset": null,
"offset": 0,
"results": [
{
"bounce_rate": 42,
"channel": "Organic Search",
"visitors": 1120,
"visits": 1240
},
{
"bounce_rate": 35,
"channel": "Direct",
"visitors": 480,
"visits": 502
}
],
"site_id": "example.com",
"total_rows": 2
}List browsers
Visitors by browser, or by browser version if you need to know whether anyone is still on an old one.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Group by
browser_dimensiontext - Browsers, or individual browser versions. Defaults to browsers.One of:
visit:browser(Browser),visit:browser_version(Browser version). Default:visit:browser. - Metrics
metricstext - Which numbers to return. Leave blank for visitors, percentage.One or more of:
visitors(Unique visitors),visits(Visits (sessions)),bounce_rate(Bounce rate (%)),percentage(Percentage of visitors). Default:["visitors", "percentage"]. - Period
date_rangetext - Which period to report on. Ignored when both dates below are set. Defaults to 7d.One of:
day(Today),24h(The last 24 hours),7d(The last 7 days),28d(The last 28 days),month(This calendar month),6mo(The last 6 months),12mo(The last 12 months),year(This calendar year),all(All time). Default:7d. - From
start_datedate - The first day to include. Set this and 'To' together to use an exact range instead of the period above; leave both blank to use the period.
- To
end_datedate - The last day to include. Has to be set together with 'From'.
- Filters
filterslist - Narrow the query, using Plausible's filter syntax: a list of [operator, dimension, values] triples, such as [["is", "visit:country", ["EE", "GB"]]]. The operators are is, is_not, contains, contains_not, matches, matches_not, and they can be nested inside and, or and not.
- Sort by
sort_bytext - Which metric to order the rows by. It is added to the returned metrics if it is not there already. Defaults to visitors.One of:
visitors(Unique visitors),visits(Visits (sessions)),bounce_rate(Bounce rate (%)),percentage(Percentage of visitors). - Order
sort_directiontext - Which way round to sort. Defaults to highest first.One of:
desc(Highest first),asc(Lowest first). Default:desc. - How many
limitnumber - How many browsers to return, 1-10000. Defaults to 100.From 1 to 10000.
- Skip
offsetnumber - Skip this many browsers before the page begins. Read 'next_offset' from the result to get the next page.From 0 to 1000000.
- Include imported data
include_importstrue/false - Count data imported from Google Analytics or a CSV alongside what Plausible measured itself. Off by default, which is Plausible's own default. Check 'meta' on the result if the numbers look wrong - Plausible reports there when it had to skip an import.Default:
false.
Outputs
countnumberdate_range- The period the query covered: either the shorthand that was used ('7d'), or the two dates it ran between.
dimensionslisthas_moretrue/falselimitnumbermetaobject- Plausible's own metadata for the query. Its keys are conditional: 'total_rows' and 'time_labels' only appear when they were asked for, and the 'imports_*' keys only on a site with imported data.
metricslistnext_offsetnumberoffsetnumberresultslistsite_idtexttotal_rowsnumber
Example output
{
"count": 2,
"date_range": "7d",
"dimensions": [
"visit:browser"
],
"has_more": false,
"limit": 100,
"meta": {
"total_rows": 2
},
"metrics": [
"visitors",
"percentage"
],
"next_offset": null,
"offset": 0,
"results": [
{
"browser": "Chrome",
"percentage": 62.0,
"visitors": 1140
},
{
"browser": "Safari",
"percentage": 22.8,
"visitors": 420
}
],
"site_id": "example.com",
"total_rows": 2
}List campaign traffic
Campaign traffic broken down by whichever UTM tag you pick - source, medium, campaign, content or term. One action rather than five, because the question is always the same and only the tag changes.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Campaign tag
utm_dimensiontext - Which UTM tag to group by. Defaults to utm_source.One of:
visit:utm_source(utm_source),visit:utm_medium(utm_medium),visit:utm_campaign(utm_campaign),visit:utm_content(utm_content),visit:utm_term(utm_term). Default:visit:utm_source. - Metrics
metricstext - Which numbers to return. Leave blank for visitors, visits, bounce_rate.One or more of:
visitors(Unique visitors),visits(Visits (sessions)),bounce_rate(Bounce rate (%)),visit_duration(Visit duration (seconds)),percentage(Percentage of visitors). Default:["visitors", "visits", "bounce_rate"]. - Period
date_rangetext - Which period to report on. Ignored when both dates below are set. Defaults to 7d.One of:
day(Today),24h(The last 24 hours),7d(The last 7 days),28d(The last 28 days),month(This calendar month),6mo(The last 6 months),12mo(The last 12 months),year(This calendar year),all(All time). Default:7d. - From
start_datedate - The first day to include. Set this and 'To' together to use an exact range instead of the period above; leave both blank to use the period.
- To
end_datedate - The last day to include. Has to be set together with 'From'.
- Filters
filterslist - Narrow the query, using Plausible's filter syntax: a list of [operator, dimension, values] triples, such as [["is", "visit:country", ["EE", "GB"]]]. The operators are is, is_not, contains, contains_not, matches, matches_not, and they can be nested inside and, or and not.
- Sort by
sort_bytext - Which metric to order the rows by. It is added to the returned metrics if it is not there already. Defaults to visitors.One of:
visitors(Unique visitors),visits(Visits (sessions)),bounce_rate(Bounce rate (%)),visit_duration(Visit duration (seconds)),percentage(Percentage of visitors). - Order
sort_directiontext - Which way round to sort. Defaults to highest first.One of:
desc(Highest first),asc(Lowest first). Default:desc. - How many
limitnumber - How many campaign values to return, 1-10000. Defaults to 100.From 1 to 10000.
- Skip
offsetnumber - Skip this many campaign values before the page begins. Read 'next_offset' from the result to get the next page.From 0 to 1000000.
- Include imported data
include_importstrue/false - Count data imported from Google Analytics or a CSV alongside what Plausible measured itself. Off by default, which is Plausible's own default. Check 'meta' on the result if the numbers look wrong - Plausible reports there when it had to skip an import.Default:
false.
Outputs
countnumberdate_range- The period the query covered: either the shorthand that was used ('7d'), or the two dates it ran between.
dimensionslisthas_moretrue/falselimitnumbermetaobject- Plausible's own metadata for the query. Its keys are conditional: 'total_rows' and 'time_labels' only appear when they were asked for, and the 'imports_*' keys only on a site with imported data.
metricslistnext_offsetnumberoffsetnumberresultslistsite_idtexttotal_rowsnumber
Example output
{
"count": 1,
"date_range": "7d",
"dimensions": [
"visit:utm_source"
],
"has_more": false,
"limit": 100,
"meta": {
"total_rows": 1
},
"metrics": [
"visitors",
"visits",
"bounce_rate"
],
"next_offset": null,
"offset": 0,
"results": [
{
"bounce_rate": 29,
"utm_source": "newsletter",
"visitors": 142,
"visits": 150
}
],
"site_id": "example.com",
"total_rows": 1
}List cities
Visitors by city, by name. Plausible also has a numeric city ID, which is no use in a workflow, so the name is what this returns.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Metrics
metricstext - Which numbers to return. Leave blank for visitors, percentage.One or more of:
visitors(Unique visitors),visits(Visits (sessions)),percentage(Percentage of visitors). Default:["visitors", "percentage"]. - Period
date_rangetext - Which period to report on. Ignored when both dates below are set. Defaults to 7d.One of:
day(Today),24h(The last 24 hours),7d(The last 7 days),28d(The last 28 days),month(This calendar month),6mo(The last 6 months),12mo(The last 12 months),year(This calendar year),all(All time). Default:7d. - From
start_datedate - The first day to include. Set this and 'To' together to use an exact range instead of the period above; leave both blank to use the period.
- To
end_datedate - The last day to include. Has to be set together with 'From'.
- Filters
filterslist - Narrow the query, using Plausible's filter syntax: a list of [operator, dimension, values] triples, such as [["is", "visit:country", ["EE", "GB"]]]. The operators are is, is_not, contains, contains_not, matches, matches_not, and they can be nested inside and, or and not.
- Sort by
sort_bytext - Which metric to order the rows by. It is added to the returned metrics if it is not there already. Defaults to visitors.One of:
visitors(Unique visitors),visits(Visits (sessions)),percentage(Percentage of visitors). - Order
sort_directiontext - Which way round to sort. Defaults to highest first.One of:
desc(Highest first),asc(Lowest first). Default:desc. - How many
limitnumber - How many cities to return, 1-10000. Defaults to 100.From 1 to 10000.
- Skip
offsetnumber - Skip this many cities before the page begins. Read 'next_offset' from the result to get the next page.From 0 to 1000000.
- Include imported data
include_importstrue/false - Count data imported from Google Analytics or a CSV alongside what Plausible measured itself. Off by default, which is Plausible's own default. Check 'meta' on the result if the numbers look wrong - Plausible reports there when it had to skip an import.Default:
false.
Outputs
countnumberdate_range- The period the query covered: either the shorthand that was used ('7d'), or the two dates it ran between.
dimensionslisthas_moretrue/falselimitnumbermetaobject- Plausible's own metadata for the query. Its keys are conditional: 'total_rows' and 'time_labels' only appear when they were asked for, and the 'imports_*' keys only on a site with imported data.
metricslistnext_offsetnumberoffsetnumberresultslistsite_idtexttotal_rowsnumber
Example output
{
"count": 1,
"date_range": "7d",
"dimensions": [
"visit:city_name"
],
"has_more": false,
"limit": 100,
"meta": {
"total_rows": 1
},
"metrics": [
"visitors",
"percentage"
],
"next_offset": null,
"offset": 0,
"results": [
{
"city_name": "London",
"percentage": 16.4,
"visitors": 301
}
],
"site_id": "example.com",
"total_rows": 1
}List countries
Visitors by country, by name rather than by code. Turn on 'Include country codes' as well if a downstream system wants the two-letter ISO code.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Include country codes
include_country_codestrue/false - Also return the two-letter ISO 3166-1 code beside each country name, as 'country'.Default:
false. - Metrics
metricstext - Which numbers to return. Leave blank for visitors, percentage.One or more of:
visitors(Unique visitors),visits(Visits (sessions)),percentage(Percentage of visitors). Default:["visitors", "percentage"]. - Period
date_rangetext - Which period to report on. Ignored when both dates below are set. Defaults to 7d.One of:
day(Today),24h(The last 24 hours),7d(The last 7 days),28d(The last 28 days),month(This calendar month),6mo(The last 6 months),12mo(The last 12 months),year(This calendar year),all(All time). Default:7d. - From
start_datedate - The first day to include. Set this and 'To' together to use an exact range instead of the period above; leave both blank to use the period.
- To
end_datedate - The last day to include. Has to be set together with 'From'.
- Filters
filterslist - Narrow the query, using Plausible's filter syntax: a list of [operator, dimension, values] triples, such as [["is", "visit:country", ["EE", "GB"]]]. The operators are is, is_not, contains, contains_not, matches, matches_not, and they can be nested inside and, or and not.
- Sort by
sort_bytext - Which metric to order the rows by. It is added to the returned metrics if it is not there already. Defaults to visitors.One of:
visitors(Unique visitors),visits(Visits (sessions)),percentage(Percentage of visitors). - Order
sort_directiontext - Which way round to sort. Defaults to highest first.One of:
desc(Highest first),asc(Lowest first). Default:desc. - How many
limitnumber - How many countries to return, 1-10000. Defaults to 100.From 1 to 10000.
- Skip
offsetnumber - Skip this many countries before the page begins. Read 'next_offset' from the result to get the next page.From 0 to 1000000.
- Include imported data
include_importstrue/false - Count data imported from Google Analytics or a CSV alongside what Plausible measured itself. Off by default, which is Plausible's own default. Check 'meta' on the result if the numbers look wrong - Plausible reports there when it had to skip an import.Default:
false.
Outputs
countnumberdate_range- The period the query covered: either the shorthand that was used ('7d'), or the two dates it ran between.
dimensionslisthas_moretrue/falselimitnumbermetaobject- Plausible's own metadata for the query. Its keys are conditional: 'total_rows' and 'time_labels' only appear when they were asked for, and the 'imports_*' keys only on a site with imported data.
metricslistnext_offsetnumberoffsetnumberresultslistsite_idtexttotal_rowsnumber
Example output
{
"count": 2,
"date_range": "7d",
"dimensions": [
"visit:country_name"
],
"has_more": false,
"limit": 100,
"meta": {
"total_rows": 2
},
"metrics": [
"visitors",
"percentage"
],
"next_offset": null,
"offset": 0,
"results": [
{
"country_name": "United Kingdom",
"percentage": 34.8,
"visitors": 640
},
{
"country_name": "Estonia",
"percentage": 11.4,
"visitors": 210
}
],
"site_id": "example.com",
"total_rows": 2
}List custom property values
The values one custom property took, and how many visitors saw each - the author of a post, the plan on a pricing page, whatever your events carry. Give the property's bare name, such as 'author'. Custom properties are a Business plan feature and a site with none returns no rows.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Property name
property_nametextRequired - The custom property's name on its own, such as 'author' - not 'event:props:author'.
- Metrics
metricstext - Which numbers to return. Leave blank for visitors, events, percentage.One or more of:
visitors(Unique visitors),events,percentage(Percentage of visitors). Default:["visitors", "events", "percentage"]. - Period
date_rangetext - Which period to report on. Ignored when both dates below are set. Defaults to 7d.One of:
day(Today),24h(The last 24 hours),7d(The last 7 days),28d(The last 28 days),month(This calendar month),6mo(The last 6 months),12mo(The last 12 months),year(This calendar year),all(All time). Default:7d. - From
start_datedate - The first day to include. Set this and 'To' together to use an exact range instead of the period above; leave both blank to use the period.
- To
end_datedate - The last day to include. Has to be set together with 'From'.
- Filters
filterslist - Narrow the query, using Plausible's filter syntax: a list of [operator, dimension, values] triples, such as [["is", "visit:country", ["EE", "GB"]]]. The operators are is, is_not, contains, contains_not, matches, matches_not, and they can be nested inside and, or and not.
- Sort by
sort_bytext - Which metric to order the rows by. It is added to the returned metrics if it is not there already. Defaults to visitors.One of:
visitors(Unique visitors),events,percentage(Percentage of visitors). - Order
sort_directiontext - Which way round to sort. Defaults to highest first.One of:
desc(Highest first),asc(Lowest first). Default:desc. - How many
limitnumber - How many values to return, 1-10000. Defaults to 100.From 1 to 10000.
- Skip
offsetnumber - Skip this many values before the page begins. Read 'next_offset' from the result to get the next page.From 0 to 1000000.
- Include imported data
include_importstrue/false - Count data imported from Google Analytics or a CSV alongside what Plausible measured itself. Off by default, which is Plausible's own default. Check 'meta' on the result if the numbers look wrong - Plausible reports there when it had to skip an import.Default:
false.
Outputs
countnumberdate_range- The period the query covered: either the shorthand that was used ('7d'), or the two dates it ran between.
dimensionslisthas_moretrue/falselimitnumbermetaobject- Plausible's own metadata for the query. Its keys are conditional: 'total_rows' and 'time_labels' only appear when they were asked for, and the 'imports_*' keys only on a site with imported data.
metricslistnext_offsetnumberoffsetnumberproperty_nametextresultslistsite_idtexttotal_rowsnumber
Example output
{
"count": 1,
"date_range": "7d",
"dimensions": [
"event:props:author"
],
"has_more": false,
"limit": 100,
"meta": {
"total_rows": 1
},
"metrics": [
"visitors",
"events",
"percentage"
],
"next_offset": null,
"offset": 0,
"property_name": "author",
"results": [
{
"author": "Anna",
"events": 410,
"percentage": 17.4,
"visitors": 320
}
],
"site_id": "example.com",
"total_rows": 1
}List device sizes
Visitors by device size - desktop, laptop, tablet or mobile. Plausible works these out from the screen width, so they are size buckets rather than detected hardware.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Metrics
metricstext - Which numbers to return. Leave blank for visitors, percentage.One or more of:
visitors(Unique visitors),visits(Visits (sessions)),bounce_rate(Bounce rate (%)),percentage(Percentage of visitors). Default:["visitors", "percentage"]. - Period
date_rangetext - Which period to report on. Ignored when both dates below are set. Defaults to 7d.One of:
day(Today),24h(The last 24 hours),7d(The last 7 days),28d(The last 28 days),month(This calendar month),6mo(The last 6 months),12mo(The last 12 months),year(This calendar year),all(All time). Default:7d. - From
start_datedate - The first day to include. Set this and 'To' together to use an exact range instead of the period above; leave both blank to use the period.
- To
end_datedate - The last day to include. Has to be set together with 'From'.
- Filters
filterslist - Narrow the query, using Plausible's filter syntax: a list of [operator, dimension, values] triples, such as [["is", "visit:country", ["EE", "GB"]]]. The operators are is, is_not, contains, contains_not, matches, matches_not, and they can be nested inside and, or and not.
- Sort by
sort_bytext - Which metric to order the rows by. It is added to the returned metrics if it is not there already. Defaults to visitors.One of:
visitors(Unique visitors),visits(Visits (sessions)),bounce_rate(Bounce rate (%)),percentage(Percentage of visitors). - Order
sort_directiontext - Which way round to sort. Defaults to highest first.One of:
desc(Highest first),asc(Lowest first). Default:desc. - How many
limitnumber - How many device sizes to return, 1-10000. Defaults to 100.From 1 to 10000.
- Skip
offsetnumber - Skip this many device sizes before the page begins. Read 'next_offset' from the result to get the next page.From 0 to 1000000.
- Include imported data
include_importstrue/false - Count data imported from Google Analytics or a CSV alongside what Plausible measured itself. Off by default, which is Plausible's own default. Check 'meta' on the result if the numbers look wrong - Plausible reports there when it had to skip an import.Default:
false.
Outputs
countnumberdate_range- The period the query covered: either the shorthand that was used ('7d'), or the two dates it ran between.
dimensionslisthas_moretrue/falselimitnumbermetaobject- Plausible's own metadata for the query. Its keys are conditional: 'total_rows' and 'time_labels' only appear when they were asked for, and the 'imports_*' keys only on a site with imported data.
metricslistnext_offsetnumberoffsetnumberresultslistsite_idtexttotal_rowsnumber
Example output
{
"count": 2,
"date_range": "7d",
"dimensions": [
"visit:device"
],
"has_more": false,
"limit": 100,
"meta": {
"total_rows": 2
},
"metrics": [
"visitors",
"percentage"
],
"next_offset": null,
"offset": 0,
"results": [
{
"device": "Desktop",
"percentage": 65.8,
"visitors": 1210
},
{
"device": "Mobile",
"percentage": 27.4,
"visitors": 505
}
],
"site_id": "example.com",
"total_rows": 2
}List entry pages
The pages visits started on - the first thing each visitor saw. Bounce rate here needs Plausible Cloud or a self-hosted Community Edition on 3.1.0 or newer; drop it from the metrics on an older instance.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Metrics
metricstext - Which numbers to return. Leave blank for visitors, visits, visit_duration.One or more of:
visitors(Unique visitors),visits(Visits (sessions)),bounce_rate(Bounce rate (%)),visit_duration(Visit duration (seconds)),percentage(Percentage of visitors). Default:["visitors", "visits", "visit_duration"]. - Period
date_rangetext - Which period to report on. Ignored when both dates below are set. Defaults to 7d.One of:
day(Today),24h(The last 24 hours),7d(The last 7 days),28d(The last 28 days),month(This calendar month),6mo(The last 6 months),12mo(The last 12 months),year(This calendar year),all(All time). Default:7d. - From
start_datedate - The first day to include. Set this and 'To' together to use an exact range instead of the period above; leave both blank to use the period.
- To
end_datedate - The last day to include. Has to be set together with 'From'.
- Filters
filterslist - Narrow the query, using Plausible's filter syntax: a list of [operator, dimension, values] triples, such as [["is", "visit:country", ["EE", "GB"]]]. The operators are is, is_not, contains, contains_not, matches, matches_not, and they can be nested inside and, or and not.
- Sort by
sort_bytext - Which metric to order the rows by. It is added to the returned metrics if it is not there already. Defaults to visitors.One of:
visitors(Unique visitors),visits(Visits (sessions)),bounce_rate(Bounce rate (%)),visit_duration(Visit duration (seconds)),percentage(Percentage of visitors). - Order
sort_directiontext - Which way round to sort. Defaults to highest first.One of:
desc(Highest first),asc(Lowest first). Default:desc. - How many
limitnumber - How many entry pages to return, 1-10000. Defaults to 100.From 1 to 10000.
- Skip
offsetnumber - Skip this many entry pages before the page begins. Read 'next_offset' from the result to get the next page.From 0 to 1000000.
- Include imported data
include_importstrue/false - Count data imported from Google Analytics or a CSV alongside what Plausible measured itself. Off by default, which is Plausible's own default. Check 'meta' on the result if the numbers look wrong - Plausible reports there when it had to skip an import.Default:
false.
Outputs
countnumberdate_range- The period the query covered: either the shorthand that was used ('7d'), or the two dates it ran between.
dimensionslisthas_moretrue/falselimitnumbermetaobject- Plausible's own metadata for the query. Its keys are conditional: 'total_rows' and 'time_labels' only appear when they were asked for, and the 'imports_*' keys only on a site with imported data.
metricslistnext_offsetnumberoffsetnumberresultslistsite_idtexttotal_rowsnumber
Example output
{
"count": 1,
"date_range": "7d",
"dimensions": [
"visit:entry_page"
],
"has_more": false,
"limit": 100,
"meta": {
"total_rows": 1
},
"metrics": [
"visitors",
"visits",
"visit_duration"
],
"next_offset": null,
"offset": 0,
"results": [
{
"entry_page": "/",
"visit_duration": 94,
"visitors": 1602,
"visits": 1780
}
],
"site_id": "example.com",
"total_rows": 1
}List exit pages
The pages visits ended on - the last thing each visitor saw before leaving.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Metrics
metricstext - Which numbers to return. Leave blank for visitors, visits, visit_duration.One or more of:
visitors(Unique visitors),visits(Visits (sessions)),bounce_rate(Bounce rate (%)),visit_duration(Visit duration (seconds)),percentage(Percentage of visitors). Default:["visitors", "visits", "visit_duration"]. - Period
date_rangetext - Which period to report on. Ignored when both dates below are set. Defaults to 7d.One of:
day(Today),24h(The last 24 hours),7d(The last 7 days),28d(The last 28 days),month(This calendar month),6mo(The last 6 months),12mo(The last 12 months),year(This calendar year),all(All time). Default:7d. - From
start_datedate - The first day to include. Set this and 'To' together to use an exact range instead of the period above; leave both blank to use the period.
- To
end_datedate - The last day to include. Has to be set together with 'From'.
- Filters
filterslist - Narrow the query, using Plausible's filter syntax: a list of [operator, dimension, values] triples, such as [["is", "visit:country", ["EE", "GB"]]]. The operators are is, is_not, contains, contains_not, matches, matches_not, and they can be nested inside and, or and not.
- Sort by
sort_bytext - Which metric to order the rows by. It is added to the returned metrics if it is not there already. Defaults to visitors.One of:
visitors(Unique visitors),visits(Visits (sessions)),bounce_rate(Bounce rate (%)),visit_duration(Visit duration (seconds)),percentage(Percentage of visitors). - Order
sort_directiontext - Which way round to sort. Defaults to highest first.One of:
desc(Highest first),asc(Lowest first). Default:desc. - How many
limitnumber - How many exit pages to return, 1-10000. Defaults to 100.From 1 to 10000.
- Skip
offsetnumber - Skip this many exit pages before the page begins. Read 'next_offset' from the result to get the next page.From 0 to 1000000.
- Include imported data
include_importstrue/false - Count data imported from Google Analytics or a CSV alongside what Plausible measured itself. Off by default, which is Plausible's own default. Check 'meta' on the result if the numbers look wrong - Plausible reports there when it had to skip an import.Default:
false.
Outputs
countnumberdate_range- The period the query covered: either the shorthand that was used ('7d'), or the two dates it ran between.
dimensionslisthas_moretrue/falselimitnumbermetaobject- Plausible's own metadata for the query. Its keys are conditional: 'total_rows' and 'time_labels' only appear when they were asked for, and the 'imports_*' keys only on a site with imported data.
metricslistnext_offsetnumberoffsetnumberresultslistsite_idtexttotal_rowsnumber
Example output
{
"count": 1,
"date_range": "7d",
"dimensions": [
"visit:exit_page"
],
"has_more": false,
"limit": 100,
"meta": {
"total_rows": 1
},
"metrics": [
"visitors",
"visits",
"visit_duration"
],
"next_offset": null,
"offset": 0,
"results": [
{
"exit_page": "/pricing",
"visit_duration": 54,
"visitors": 430,
"visits": 468
}
],
"site_id": "example.com",
"total_rows": 1
}List goal conversions
How each goal is converting - unique visitors, total conversions and conversion rate per goal. The revenue metrics are off by default and only work on a site with revenue goals configured; asking for them on a site without any is refused by Plausible.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Metrics
metricstext - Which numbers to return. Leave blank for visitors, events, conversion_rate.One or more of:
visitors(Unique visitors),events(Conversions (events)),conversion_rate(Conversion rate (%)),group_conversion_rate(Group conversion rate (%)),total_revenue(Total revenue (revenue goals only)),average_revenue(Average revenue (revenue goals only)). Default:["visitors", "events", "conversion_rate"]. - Period
date_rangetext - Which period to report on. Ignored when both dates below are set. Defaults to 7d.One of:
day(Today),24h(The last 24 hours),7d(The last 7 days),28d(The last 28 days),month(This calendar month),6mo(The last 6 months),12mo(The last 12 months),year(This calendar year),all(All time). Default:7d. - From
start_datedate - The first day to include. Set this and 'To' together to use an exact range instead of the period above; leave both blank to use the period.
- To
end_datedate - The last day to include. Has to be set together with 'From'.
- Filters
filterslist - Narrow the query, using Plausible's filter syntax: a list of [operator, dimension, values] triples, such as [["is", "visit:country", ["EE", "GB"]]]. The operators are is, is_not, contains, contains_not, matches, matches_not, and they can be nested inside and, or and not.
- Sort by
sort_bytext - Which metric to order the rows by. It is added to the returned metrics if it is not there already. Defaults to visitors.One of:
visitors(Unique visitors),events(Conversions (events)),conversion_rate(Conversion rate (%)),group_conversion_rate(Group conversion rate (%)),total_revenue(Total revenue (revenue goals only)),average_revenue(Average revenue (revenue goals only)). - Order
sort_directiontext - Which way round to sort. Defaults to highest first.One of:
desc(Highest first),asc(Lowest first). Default:desc. - How many
limitnumber - How many goals to return, 1-10000. Defaults to 100.From 1 to 10000.
- Skip
offsetnumber - Skip this many goals before the page begins. Read 'next_offset' from the result to get the next page.From 0 to 1000000.
- Include imported data
include_importstrue/false - Count data imported from Google Analytics or a CSV alongside what Plausible measured itself. Off by default, which is Plausible's own default. Check 'meta' on the result if the numbers look wrong - Plausible reports there when it had to skip an import.Default:
false.
Outputs
countnumberdate_range- The period the query covered: either the shorthand that was used ('7d'), or the two dates it ran between.
dimensionslisthas_moretrue/falselimitnumbermetaobject- Plausible's own metadata for the query. Its keys are conditional: 'total_rows' and 'time_labels' only appear when they were asked for, and the 'imports_*' keys only on a site with imported data.
metricslistnext_offsetnumberoffsetnumberresultslistsite_idtexttotal_rowsnumber
Example output
{
"count": 1,
"date_range": "7d",
"dimensions": [
"event:goal"
],
"has_more": false,
"limit": 100,
"meta": {
"total_rows": 1
},
"metrics": [
"visitors",
"events",
"conversion_rate"
],
"next_offset": null,
"offset": 0,
"results": [
{
"conversion_rate": 4.6,
"events": 91,
"goal": "Signup",
"visitors": 84
}
],
"site_id": "example.com",
"total_rows": 1
}List operating systems
Visitors by operating system, or by OS version.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Group by
os_dimensiontext - Operating systems, or individual versions. Defaults to operating systems.One of:
visit:os(Operating system),visit:os_version(Operating system version). Default:visit:os. - Metrics
metricstext - Which numbers to return. Leave blank for visitors, percentage.One or more of:
visitors(Unique visitors),visits(Visits (sessions)),bounce_rate(Bounce rate (%)),percentage(Percentage of visitors). Default:["visitors", "percentage"]. - Period
date_rangetext - Which period to report on. Ignored when both dates below are set. Defaults to 7d.One of:
day(Today),24h(The last 24 hours),7d(The last 7 days),28d(The last 28 days),month(This calendar month),6mo(The last 6 months),12mo(The last 12 months),year(This calendar year),all(All time). Default:7d. - From
start_datedate - The first day to include. Set this and 'To' together to use an exact range instead of the period above; leave both blank to use the period.
- To
end_datedate - The last day to include. Has to be set together with 'From'.
- Filters
filterslist - Narrow the query, using Plausible's filter syntax: a list of [operator, dimension, values] triples, such as [["is", "visit:country", ["EE", "GB"]]]. The operators are is, is_not, contains, contains_not, matches, matches_not, and they can be nested inside and, or and not.
- Sort by
sort_bytext - Which metric to order the rows by. It is added to the returned metrics if it is not there already. Defaults to visitors.One of:
visitors(Unique visitors),visits(Visits (sessions)),bounce_rate(Bounce rate (%)),percentage(Percentage of visitors). - Order
sort_directiontext - Which way round to sort. Defaults to highest first.One of:
desc(Highest first),asc(Lowest first). Default:desc. - How many
limitnumber - How many operating systems to return, 1-10000. Defaults to 100.From 1 to 10000.
- Skip
offsetnumber - Skip this many operating systems before the page begins. Read 'next_offset' from the result to get the next page.From 0 to 1000000.
- Include imported data
include_importstrue/false - Count data imported from Google Analytics or a CSV alongside what Plausible measured itself. Off by default, which is Plausible's own default. Check 'meta' on the result if the numbers look wrong - Plausible reports there when it had to skip an import.Default:
false.
Outputs
countnumberdate_range- The period the query covered: either the shorthand that was used ('7d'), or the two dates it ran between.
dimensionslisthas_moretrue/falselimitnumbermetaobject- Plausible's own metadata for the query. Its keys are conditional: 'total_rows' and 'time_labels' only appear when they were asked for, and the 'imports_*' keys only on a site with imported data.
metricslistnext_offsetnumberoffsetnumberresultslistsite_idtexttotal_rowsnumber
Example output
{
"count": 1,
"date_range": "7d",
"dimensions": [
"visit:os"
],
"has_more": false,
"limit": 100,
"meta": {
"total_rows": 1
},
"metrics": [
"visitors",
"percentage"
],
"next_offset": null,
"offset": 0,
"results": [
{
"os": "Mac",
"percentage": 39.7,
"visitors": 730
}
],
"site_id": "example.com",
"total_rows": 1
}List referrers
The raw referring hosts visits arrived from, before Plausible tidies them into source names. Use this when you need the actual domain that linked to you.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Metrics
metricstext - Which numbers to return. Leave blank for visitors, visits, bounce_rate.One or more of:
visitors(Unique visitors),visits(Visits (sessions)),bounce_rate(Bounce rate (%)),visit_duration(Visit duration (seconds)),percentage(Percentage of visitors). Default:["visitors", "visits", "bounce_rate"]. - Period
date_rangetext - Which period to report on. Ignored when both dates below are set. Defaults to 7d.One of:
day(Today),24h(The last 24 hours),7d(The last 7 days),28d(The last 28 days),month(This calendar month),6mo(The last 6 months),12mo(The last 12 months),year(This calendar year),all(All time). Default:7d. - From
start_datedate - The first day to include. Set this and 'To' together to use an exact range instead of the period above; leave both blank to use the period.
- To
end_datedate - The last day to include. Has to be set together with 'From'.
- Filters
filterslist - Narrow the query, using Plausible's filter syntax: a list of [operator, dimension, values] triples, such as [["is", "visit:country", ["EE", "GB"]]]. The operators are is, is_not, contains, contains_not, matches, matches_not, and they can be nested inside and, or and not.
- Sort by
sort_bytext - Which metric to order the rows by. It is added to the returned metrics if it is not there already. Defaults to visitors.One of:
visitors(Unique visitors),visits(Visits (sessions)),bounce_rate(Bounce rate (%)),visit_duration(Visit duration (seconds)),percentage(Percentage of visitors). - Order
sort_directiontext - Which way round to sort. Defaults to highest first.One of:
desc(Highest first),asc(Lowest first). Default:desc. - How many
limitnumber - How many referrers to return, 1-10000. Defaults to 100.From 1 to 10000.
- Skip
offsetnumber - Skip this many referrers before the page begins. Read 'next_offset' from the result to get the next page.From 0 to 1000000.
- Include imported data
include_importstrue/false - Count data imported from Google Analytics or a CSV alongside what Plausible measured itself. Off by default, which is Plausible's own default. Check 'meta' on the result if the numbers look wrong - Plausible reports there when it had to skip an import.Default:
false.
Outputs
countnumberdate_range- The period the query covered: either the shorthand that was used ('7d'), or the two dates it ran between.
dimensionslisthas_moretrue/falselimitnumbermetaobject- Plausible's own metadata for the query. Its keys are conditional: 'total_rows' and 'time_labels' only appear when they were asked for, and the 'imports_*' keys only on a site with imported data.
metricslistnext_offsetnumberoffsetnumberresultslistsite_idtexttotal_rowsnumber
Example output
{
"count": 1,
"date_range": "7d",
"dimensions": [
"visit:referrer"
],
"has_more": false,
"limit": 100,
"meta": {
"total_rows": 1
},
"metrics": [
"visitors",
"visits",
"bounce_rate"
],
"next_offset": null,
"offset": 0,
"results": [
{
"bounce_rate": 61,
"referrer": "news.ycombinator.com",
"visitors": 208,
"visits": 219
}
],
"site_id": "example.com",
"total_rows": 1
}List regions
Visitors by region or state, by name. Plausible works the region out from the IP address and does not store it, so coverage is good but not complete.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Metrics
metricstext - Which numbers to return. Leave blank for visitors, percentage.One or more of:
visitors(Unique visitors),visits(Visits (sessions)),percentage(Percentage of visitors). Default:["visitors", "percentage"]. - Period
date_rangetext - Which period to report on. Ignored when both dates below are set. Defaults to 7d.One of:
day(Today),24h(The last 24 hours),7d(The last 7 days),28d(The last 28 days),month(This calendar month),6mo(The last 6 months),12mo(The last 12 months),year(This calendar year),all(All time). Default:7d. - From
start_datedate - The first day to include. Set this and 'To' together to use an exact range instead of the period above; leave both blank to use the period.
- To
end_datedate - The last day to include. Has to be set together with 'From'.
- Filters
filterslist - Narrow the query, using Plausible's filter syntax: a list of [operator, dimension, values] triples, such as [["is", "visit:country", ["EE", "GB"]]]. The operators are is, is_not, contains, contains_not, matches, matches_not, and they can be nested inside and, or and not.
- Sort by
sort_bytext - Which metric to order the rows by. It is added to the returned metrics if it is not there already. Defaults to visitors.One of:
visitors(Unique visitors),visits(Visits (sessions)),percentage(Percentage of visitors). - Order
sort_directiontext - Which way round to sort. Defaults to highest first.One of:
desc(Highest first),asc(Lowest first). Default:desc. - How many
limitnumber - How many regions to return, 1-10000. Defaults to 100.From 1 to 10000.
- Skip
offsetnumber - Skip this many regions before the page begins. Read 'next_offset' from the result to get the next page.From 0 to 1000000.
- Include imported data
include_importstrue/false - Count data imported from Google Analytics or a CSV alongside what Plausible measured itself. Off by default, which is Plausible's own default. Check 'meta' on the result if the numbers look wrong - Plausible reports there when it had to skip an import.Default:
false.
Outputs
countnumberdate_range- The period the query covered: either the shorthand that was used ('7d'), or the two dates it ran between.
dimensionslisthas_moretrue/falselimitnumbermetaobject- Plausible's own metadata for the query. Its keys are conditional: 'total_rows' and 'time_labels' only appear when they were asked for, and the 'imports_*' keys only on a site with imported data.
metricslistnext_offsetnumberoffsetnumberresultslistsite_idtexttotal_rowsnumber
Example output
{
"count": 1,
"date_range": "7d",
"dimensions": [
"visit:region_name"
],
"has_more": false,
"limit": 100,
"meta": {
"total_rows": 1
},
"metrics": [
"visitors",
"percentage"
],
"next_offset": null,
"offset": 0,
"results": [
{
"percentage": 28.3,
"region_name": "England",
"visitors": 520
}
],
"site_id": "example.com",
"total_rows": 1
}List top pages
The most-visited pages, with visitors and pageviews for each. This is the one breakdown where scroll depth and time on page are available, because both are measured per page.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Metrics
metricstext - Which numbers to return. Leave blank for visitors, pageviews, bounce_rate.One or more of:
visitors(Unique visitors),visits(Visits (sessions)),pageviews,bounce_rate(Bounce rate (%)),events,percentage(Percentage of visitors),scroll_depth(Scroll depth),time_on_page(Time on page (seconds)). Default:["visitors", "pageviews", "bounce_rate"]. - Period
date_rangetext - Which period to report on. Ignored when both dates below are set. Defaults to 7d.One of:
day(Today),24h(The last 24 hours),7d(The last 7 days),28d(The last 28 days),month(This calendar month),6mo(The last 6 months),12mo(The last 12 months),year(This calendar year),all(All time). Default:7d. - From
start_datedate - The first day to include. Set this and 'To' together to use an exact range instead of the period above; leave both blank to use the period.
- To
end_datedate - The last day to include. Has to be set together with 'From'.
- Filters
filterslist - Narrow the query, using Plausible's filter syntax: a list of [operator, dimension, values] triples, such as [["is", "visit:country", ["EE", "GB"]]]. The operators are is, is_not, contains, contains_not, matches, matches_not, and they can be nested inside and, or and not.
- Sort by
sort_bytext - Which metric to order the rows by. It is added to the returned metrics if it is not there already. Defaults to visitors.One of:
visitors(Unique visitors),visits(Visits (sessions)),pageviews,bounce_rate(Bounce rate (%)),events,percentage(Percentage of visitors),scroll_depth(Scroll depth),time_on_page(Time on page (seconds)). - Order
sort_directiontext - Which way round to sort. Defaults to highest first.One of:
desc(Highest first),asc(Lowest first). Default:desc. - How many
limitnumber - How many pages to return, 1-10000. Defaults to 100.From 1 to 10000.
- Skip
offsetnumber - Skip this many pages before the page begins. Read 'next_offset' from the result to get the next page.From 0 to 1000000.
- Include imported data
include_importstrue/false - Count data imported from Google Analytics or a CSV alongside what Plausible measured itself. Off by default, which is Plausible's own default. Check 'meta' on the result if the numbers look wrong - Plausible reports there when it had to skip an import.Default:
false.
Outputs
countnumberdate_range- The period the query covered: either the shorthand that was used ('7d'), or the two dates it ran between.
dimensionslisthas_moretrue/falselimitnumbermetaobject- Plausible's own metadata for the query. Its keys are conditional: 'total_rows' and 'time_labels' only appear when they were asked for, and the 'imports_*' keys only on a site with imported data.
metricslistnext_offsetnumberoffsetnumberresultslistsite_idtexttotal_rowsnumber
Example output
{
"count": 2,
"date_range": "7d",
"dimensions": [
"event:page"
],
"has_more": false,
"limit": 100,
"meta": {
"total_rows": 2
},
"metrics": [
"visitors",
"pageviews",
"bounce_rate"
],
"next_offset": null,
"offset": 0,
"results": [
{
"bounce_rate": 38,
"page": "/",
"pageviews": 2410,
"visitors": 1840
},
{
"bounce_rate": 21,
"page": "/pricing",
"pageviews": 740,
"visitors": 612
}
],
"site_id": "example.com",
"total_rows": 2
}List traffic sources
Where visitors came from, as the tidied-up source names Plausible shows on its dashboard - 'Google', 'Hacker News'. Use 'List referrers' instead for the raw referring host.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Metrics
metricstext - Which numbers to return. Leave blank for visitors, visits, bounce_rate.One or more of:
visitors(Unique visitors),visits(Visits (sessions)),bounce_rate(Bounce rate (%)),visit_duration(Visit duration (seconds)),percentage(Percentage of visitors). Default:["visitors", "visits", "bounce_rate"]. - Period
date_rangetext - Which period to report on. Ignored when both dates below are set. Defaults to 7d.One of:
day(Today),24h(The last 24 hours),7d(The last 7 days),28d(The last 28 days),month(This calendar month),6mo(The last 6 months),12mo(The last 12 months),year(This calendar year),all(All time). Default:7d. - From
start_datedate - The first day to include. Set this and 'To' together to use an exact range instead of the period above; leave both blank to use the period.
- To
end_datedate - The last day to include. Has to be set together with 'From'.
- Filters
filterslist - Narrow the query, using Plausible's filter syntax: a list of [operator, dimension, values] triples, such as [["is", "visit:country", ["EE", "GB"]]]. The operators are is, is_not, contains, contains_not, matches, matches_not, and they can be nested inside and, or and not.
- Sort by
sort_bytext - Which metric to order the rows by. It is added to the returned metrics if it is not there already. Defaults to visitors.One of:
visitors(Unique visitors),visits(Visits (sessions)),bounce_rate(Bounce rate (%)),visit_duration(Visit duration (seconds)),percentage(Percentage of visitors). - Order
sort_directiontext - Which way round to sort. Defaults to highest first.One of:
desc(Highest first),asc(Lowest first). Default:desc. - How many
limitnumber - How many sources to return, 1-10000. Defaults to 100.From 1 to 10000.
- Skip
offsetnumber - Skip this many sources before the page begins. Read 'next_offset' from the result to get the next page.From 0 to 1000000.
- Include imported data
include_importstrue/false - Count data imported from Google Analytics or a CSV alongside what Plausible measured itself. Off by default, which is Plausible's own default. Check 'meta' on the result if the numbers look wrong - Plausible reports there when it had to skip an import.Default:
false.
Outputs
countnumberdate_range- The period the query covered: either the shorthand that was used ('7d'), or the two dates it ran between.
dimensionslisthas_moretrue/falselimitnumbermetaobject- Plausible's own metadata for the query. Its keys are conditional: 'total_rows' and 'time_labels' only appear when they were asked for, and the 'imports_*' keys only on a site with imported data.
metricslistnext_offsetnumberoffsetnumberresultslistsite_idtexttotal_rowsnumber
Example output
{
"count": 2,
"date_range": "7d",
"dimensions": [
"visit:source"
],
"has_more": false,
"limit": 100,
"meta": {
"total_rows": 2
},
"metrics": [
"visitors",
"visits",
"bounce_rate"
],
"next_offset": null,
"offset": 0,
"results": [
{
"bounce_rate": 44,
"source": "Google",
"visitors": 910,
"visits": 1002
},
{
"bounce_rate": 61,
"source": "Hacker News",
"visitors": 208,
"visits": 219
}
],
"site_id": "example.com",
"total_rows": 2
}Run a stats query
Ask Plausible anything its Stats API can answer: pick the metrics and the dimensions to group by yourself. Use this when no other step here is the shape you want - two dimensions at once, or a dimension the other steps do not offer. Plausible's own rules still apply: 'percentage' needs a dimension, scroll depth and time on page need event:page, and the conversion and revenue metrics need event:goal.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Metrics
metricstext - Which numbers to return. Leave blank for visitors.One or more of:
visitors(Unique visitors),visits(Visits (sessions)),pageviews,views_per_visit(Pageviews per visit),bounce_rate(Bounce rate (%)),visit_duration(Visit duration (seconds)),events(Events (pageviews + custom)),percentage(Percentage of visitors (needs a dimension)),scroll_depth(Scroll depth (needs event:page)),time_on_page(Time on page, seconds (needs event:page)), and 4 more. Default:["visitors"]. - Group by
dimensionstext - What to break the numbers down by. Leave blank for one total row. A custom property can be typed in as 'event:props:<name>'.One or more of:
event:goal(Goal),event:page(Page),event:hostname(Hostname),visit:entry_page(Entry page),visit:exit_page(Exit page),visit:source(Source),visit:referrer(Referrer),visit:channel(Acquisition channel),visit:utm_medium(utm_medium),visit:utm_source(utm_source), and 19 more. - Period
date_rangetext - Which period to report on. Ignored when both dates below are set. Defaults to 7d.One of:
day(Today),24h(The last 24 hours),7d(The last 7 days),28d(The last 28 days),month(This calendar month),6mo(The last 6 months),12mo(The last 12 months),year(This calendar year),all(All time). Default:7d. - From
start_datedate - The first day to include. Set this and 'To' together to use an exact range instead of the period above; leave both blank to use the period.
- To
end_datedate - The last day to include. Has to be set together with 'From'.
- Filters
filterslist - Narrow the query, using Plausible's filter syntax: a list of [operator, dimension, values] triples, such as [["is", "visit:country", ["EE", "GB"]]]. The operators are is, is_not, contains, contains_not, matches, matches_not, and they can be nested inside and, or and not.
- Sort by
sort_bytext - Which metric to order the rows by. It is added to the returned metrics if it is not there already. Defaults to visitors.One of:
visitors(Unique visitors),visits(Visits (sessions)),pageviews,views_per_visit(Pageviews per visit),bounce_rate(Bounce rate (%)),visit_duration(Visit duration (seconds)),events(Events (pageviews + custom)),percentage(Percentage of visitors (needs a dimension)),scroll_depth(Scroll depth (needs event:page)),time_on_page(Time on page, seconds (needs event:page)), and 4 more. - Order
sort_directiontext - Which way round to sort. Defaults to highest first.One of:
desc(Highest first),asc(Lowest first). Default:desc. - How many
limitnumber - How many rows to return, 1-10000. Defaults to 100.From 1 to 10000.
- Skip
offsetnumber - Skip this many rows before the page begins. Read 'next_offset' from the result to get the next page.From 0 to 1000000.
- Include imported data
include_importstrue/false - Count data imported from Google Analytics or a CSV alongside what Plausible measured itself. Off by default, which is Plausible's own default. Check 'meta' on the result if the numbers look wrong - Plausible reports there when it had to skip an import.Default:
false.
Outputs
countnumberdate_range- The period the query covered: either the shorthand that was used ('7d'), or the two dates it ran between.
dimensionslisthas_moretrue/falselimitnumbermetaobject- Plausible's own metadata for the query. Its keys are conditional: 'total_rows' and 'time_labels' only appear when they were asked for, and the 'imports_*' keys only on a site with imported data.
metricslistnext_offsetnumberoffsetnumberresultslistsite_idtexttotal_rowsnumber
Example output
{
"count": 1,
"date_range": "7d",
"dimensions": [
"event:page"
],
"has_more": false,
"limit": 100,
"meta": {
"total_rows": 1
},
"metrics": [
"visitors"
],
"next_offset": null,
"offset": 0,
"results": [
{
"page": "/pricing",
"visitors": 612
}
],
"site_id": "example.com",
"total_rows": 1
}Send event
Record a pageview or a custom event against a site - a signup completing, an order being placed, anything that happens somewhere a tracking script cannot see. This is the one step here that works on every Plausible plan, because the events endpoint needs no API key. Two things to know: Plausible answers 'accepted' without promising to count it, so check 'dropped' on the result; and it works out who the visitor is from the User-Agent and IP address it is sent, so leaving both blank attributes every event to this server as one visitor.
Inputs
- Site
site_idtextRequired - The site's domain exactly as it is registered in Plausible, such as 'example.com'. It is the name at the top of the site's dashboard. Pasting the full URL works too.
- Event name
nametext - What happened. Use the goal's exact name to record a conversion, or 'pageview' - the one reserved name - to record a page view. Defaults to 'pageview'.Default:
pageview. - Page URL
urltextRequired - The address of the page the event happened on. A path beginning with '/' is completed with the site's own domain.
- Referrer
referrertext - Where the visitor came from, if you know it. Feeds the sources and channels breakdowns.
- Custom properties
propsobject - Extra fields to record with the event, which you can then break down by. At most 30 of them.
- Revenue
revenueobject - Money this event brought in, as {"currency": "USD", "amount": 15.99}. Only counted when the goal is set up as a revenue goal in Plausible.
- Counts as interaction
interactivetrue/false - Whether this event stops the visit counting as a bounce. Leave blank for Plausible's own default.
- Visitor's browser
user_agenttext - The visitor's User-Agent string. Plausible works out who the visitor is from this, so pass the real one through when you have it. Left blank, every event from this workflow looks like the same datacentre visitor and may be discarded as a bot.
- Visitor's IP address
client_iptext - The visitor's IP address, used for the country, region and city breakdowns. Plausible hashes it and does not store it. Left blank, the event is located wherever this server is.
Outputs
droppedtrue/falseinteractivetrue/falsenametextpropsobjectreferrertextrevenueobjectsite_idtextstatustexturltextuser_agenttextwarningtext
Example output
{
"dropped": false,
"interactive": null,
"name": "Signup",
"props": {
"plan": "pro"
},
"referrer": null,
"revenue": null,
"site_id": "example.com",
"status": "accepted",
"url": "https://example.com/welcome",
"user_agent": "Lodol-Workflow/1.0",
"warning": null
}