Skip to main content
The timeseries endpoint allows you to retrieve statistics over time, broken down by a specified time interval. Use this to create charts and graphs showing how your traffic and engagement metrics change over time.

Endpoint

Authentication

All requests must include your API key in the Authorization header:

Query Parameters

string
required
The domain of your site as configured in Plausible. Example: example.com
string
The time period for the query. Valid values:
  • day - Current day
  • 7d - Last 7 days
  • 30d - Last 30 days
  • month - Current month
  • 6mo - Last 6 months
  • 12mo - Last 12 months
  • custom - Custom date range (requires date parameter)
Defaults to 30d if not specified.
string
Date or date range in ISO-8601 format.For single date periods: 2024-01-01For custom periods: 2024-01-01,2024-01-31 (comma-separated start and end dates)Required when period=custom.
string
The time interval for grouping data points. Valid values:
  • day - Group by day
  • month - Group by month
If not specified, the interval is automatically selected based on the period:
  • Periods up to 1 day use hour intervals (in the dashboard)
  • Periods up to 6 months use day intervals
  • Longer periods use month intervals
Note: The date value is deprecated and automatically converted to day.
string
Comma-separated list of metrics to retrieve. Defaults to visitors if not specified.Available metrics:
  • visitors - Unique visitors
  • visits - Total visits (sessions)
  • pageviews - Total pageviews
  • events - Total events
  • bounce_rate - Bounce rate percentage
  • visit_duration - Average visit duration in seconds
  • views_per_visit - Average pageviews per visit
  • conversion_rate - Goal conversion rate (requires goal filter)
  • time_on_page - Average time on page in seconds (requires page filter)
Example: visitors,pageviews,bounce_rateNote: Each metric can only be specified once.
string
Filter the data by specific dimensions. Format: dimension==value for equality or dimension!=value for negation.Multiple filters can be combined with semicolons (;).Multiple values for the same dimension can be combined with pipes (|).Wildcard matching is supported using asterisks (*).Examples:
  • event:page==/blog - Filter to a specific page
  • visit:country==US - Filter to United States traffic
  • visit:source==Google|Twitter - Filter to Google or Twitter traffic
  • event:page==/blog** - Wildcard match for blog pages
string
Enable comparison with previous period. Set to previous_period to compare with the equivalent previous time period.

Properties

Available dimensions for filtering:

Event Properties

  • event:page - Page path
  • event:name - Custom event name
  • event:goal - Goal name (pageview or custom event goal)
  • event:hostname - Hostname
  • event:props:* - Custom event properties (e.g., event:props:author)

Visit (Session) Properties

  • visit:source - Traffic source
  • visit:channel - Traffic channel
  • visit:country - Country code (ISO 3166-1 alpha-2)
  • visit:region - Region code
  • visit:city - City name
  • visit:entry_page - Entry page path
  • visit:exit_page - Exit page path
  • visit:referrer - Referrer URL
  • visit:utm_medium - UTM medium
  • visit:utm_source - UTM source
  • visit:utm_campaign - UTM campaign
  • visit:utm_content - UTM content
  • visit:utm_term - UTM term
  • visit:device - Device type (Desktop, Mobile, Tablet)
  • visit:os - Operating system
  • visit:os_version - Operating system version
  • visit:browser - Browser name
  • visit:browser_version - Browser version

Metric Constraints

Certain metrics have specific requirements:
  • conversion_rate - Can only be queried with a goal filter (event:goal==)
  • time_on_page - Can only be queried with a page filter
  • Session metrics (visits, bounce_rate, visit_duration, views_per_visit) - Cannot be queried when filtering by event:name, event:goal, or custom event properties

Response

array
Array of time series data points, one for each interval in the specified period.
string
Optional warning message (e.g., when imported stats are excluded)

Examples

Basic Timeseries

Monthly Timeseries with Custom Range

With Filters

Goal Conversion Over Time

Error Responses

string
Error message describing what went wrong

Common Errors

400 Bad Request - Invalid interval
400 Bad Request - Invalid period
400 Bad Request - Invalid date format
400 Bad Request - Metric validation failed

Notes

  • The timeseries endpoint always returns a data point for each interval in the specified period, even if there was no traffic. Missing data is filled with default values (0 for counts, 0.0 for rates, null for durations).
  • When using comparison mode, the comparison data is not included in the timeseries response format. Use the aggregate or breakdown endpoints for comparison data.
  • The response is ordered chronologically by date.