Pirsch Statistics API
Query analytics statistics by date range and filter criteria
Query analytics statistics by date range and filter criteria
openapi: 3.0.3
info:
title: Pirsch Access Links Statistics API
description: RESTful API for sending page views, events, and session data to Pirsch, and for querying statistics including visitors, pages, referrers, UTM parameters, geo-location, device, browser, conversion goals, funnels, and real-time active visitors. Also exposes management endpoints for domains, members, clients, webhooks, email reports, traffic filters, short links, and views.
version: '1'
contact:
name: Pirsch Support
url: https://pirsch.io
license:
name: Proprietary
url: https://pirsch.io/privacy
servers:
- url: https://api.pirsch.io/api/v1
description: Pirsch production API
security:
- BearerAuth: []
tags:
- name: Statistics
description: Query analytics statistics by date range and filter criteria
paths:
/statistics/total:
get:
operationId: getTotalStatistics
summary: Get total statistics
description: Get total visitors, views, sessions, and bounce data for a date range
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
description: Domain ID
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
- name: tz
in: query
schema:
type: string
- name: scale
in: query
schema:
type: string
enum:
- day
- week
- month
- year
responses:
'200':
description: Total statistics
content:
application/json:
schema:
$ref: '#/components/schemas/TotalStats'
/statistics/visitor:
get:
operationId: getVisitorStatistics
summary: Get visitor statistics over time
description: Get visitors grouped by time scale
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
- name: tz
in: query
schema:
type: string
- name: scale
in: query
schema:
type: string
enum:
- day
- week
- month
- year
responses:
'200':
description: Visitor time series
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/VisitorStats'
/statistics/page:
get:
operationId: getPageStatistics
summary: Get page statistics
description: Get statistics broken down by page path
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
- name: search
in: query
schema:
type: string
- name: offset
in: query
schema:
type: integer
- name: limit
in: query
schema:
type: integer
- name: sort
in: query
schema:
type: string
- name: direction
in: query
schema:
type: string
enum:
- asc
- desc
responses:
'200':
description: Page statistics
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PageStats'
/statistics/hostname:
get:
operationId: getHostnameStatistics
summary: Get hostname statistics
description: Get statistics broken down by hostname
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: Hostname statistics
content:
application/json:
schema:
type: array
items:
type: object
properties:
hostname:
type: string
visitors:
type: integer
views:
type: integer
sessions:
type: integer
bounces:
type: integer
relative_visitors:
type: number
relative_views:
type: number
bounce_rate:
type: number
/statistics/referrer:
get:
operationId: getReferrerStatistics
summary: Get referrer statistics
description: Get statistics broken down by referrer
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
- name: offset
in: query
schema:
type: integer
- name: limit
in: query
schema:
type: integer
responses:
'200':
description: Referrer statistics
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ReferrerStats'
/statistics/channel:
get:
operationId: getChannelStatistics
summary: Get traffic channel statistics
description: Get statistics grouped by traffic channel
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: Channel statistics
content:
application/json:
schema:
type: array
items:
type: object
/statistics/utm/source:
get:
operationId: getUtmSourceStatistics
summary: Get UTM source statistics
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: UTM source breakdown
content:
application/json:
schema:
type: array
items:
type: object
/statistics/utm/medium:
get:
operationId: getUtmMediumStatistics
summary: Get UTM medium statistics
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: UTM medium breakdown
content:
application/json:
schema:
type: array
items:
type: object
/statistics/utm/campaign:
get:
operationId: getUtmCampaignStatistics
summary: Get UTM campaign statistics
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: UTM campaign breakdown
content:
application/json:
schema:
type: array
items:
type: object
/statistics/utm/content:
get:
operationId: getUtmContentStatistics
summary: Get UTM content statistics
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: UTM content breakdown
content:
application/json:
schema:
type: array
items:
type: object
/statistics/utm/term:
get:
operationId: getUtmTermStatistics
summary: Get UTM term statistics
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: UTM term breakdown
content:
application/json:
schema:
type: array
items:
type: object
/statistics/country:
get:
operationId: getCountryStatistics
summary: Get country statistics
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: Country breakdown
content:
application/json:
schema:
type: array
items:
type: object
properties:
country:
type: string
visitors:
type: integer
relative_visitors:
type: number
/statistics/region:
get:
operationId: getRegionStatistics
summary: Get region statistics
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: Region breakdown
content:
application/json:
schema:
type: array
items:
type: object
/statistics/city:
get:
operationId: getCityStatistics
summary: Get city statistics
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: City breakdown
content:
application/json:
schema:
type: array
items:
type: object
/statistics/language:
get:
operationId: getLanguageStatistics
summary: Get language statistics
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: Language breakdown
content:
application/json:
schema:
type: array
items:
type: object
/statistics/browser:
get:
operationId: getBrowserStatistics
summary: Get browser statistics
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: Browser breakdown
content:
application/json:
schema:
type: array
items:
type: object
/statistics/os:
get:
operationId: getOsStatistics
summary: Get operating system statistics
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: OS breakdown
content:
application/json:
schema:
type: array
items:
type: object
/statistics/platform:
get:
operationId: getPlatformStatistics
summary: Get platform statistics
description: Get breakdown between desktop, mobile, and unknown platforms
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: Platform statistics
content:
application/json:
schema:
$ref: '#/components/schemas/PlatformStats'
/statistics/events:
get:
operationId: getEventStatistics
summary: Get event list and statistics
description: Get list of tracked events with visitor counts and metadata keys
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: Event statistics
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/EventStats'
/statistics/goals:
get:
operationId: getGoalStatistics
summary: Get conversion goal statistics
description: Get statistics for all configured conversion goals
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: Goal statistics
content:
application/json:
schema:
type: array
items:
type: object
/statistics/funnel:
get:
operationId: getFunnelStatistics
summary: Get funnel statistics
description: Get step-by-step funnel analytics
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: funnel_id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: Funnel analytics
content:
application/json:
schema:
type: object
/statistics/active:
get:
operationId: getActiveVisitors
summary: Get active visitors
description: Get current real-time active visitor count
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: start
in: query
schema:
type: integer
default: 600
description: Number of seconds to consider a visitor active
responses:
'200':
description: Active visitor data
content:
application/json:
schema:
$ref: '#/components/schemas/ActiveVisitors'
/statistics/session/list:
get:
operationId: getSessionList
summary: Get session list
description: Get list of individual visitor sessions
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
- name: offset
in: query
schema:
type: integer
- name: limit
in: query
schema:
type: integer
responses:
'200':
description: Session list
content:
application/json:
schema:
type: array
items:
type: object
/statistics/session/details:
get:
operationId: getSessionDetails
summary: Get session details
description: Get page-by-page breakdown of a single session
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: visitor_id
in: query
required: true
schema:
type: string
- name: session_id
in: query
required: true
schema:
type: string
responses:
'200':
description: Session details
content:
application/json:
schema:
type: array
items:
type: object
/statistics/growth:
get:
operationId: getGrowthStatistics
summary: Get growth statistics
description: Get growth rate metrics comparing the current period to the previous
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: Growth rates
content:
application/json:
schema:
type: object
/statistics/keywords:
get:
operationId: getKeywords
summary: Get Google Search Console keywords
description: Get keyword data sourced from Google Search Console integration
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: Keyword data
content:
application/json:
schema:
type: array
items:
type: object
/statistics:
get:
operationId: exportStatistics
summary: Export statistics as CSV
description: Download a ZIP archive of CSV exports for the selected date range
tags:
- Statistics
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: from
in: query
required: true
schema:
type: string
format: date
- name: to
in: query
required: true
schema:
type: string
format: date
responses:
'200':
description: ZIP file with CSV exports
content:
application/zip:
schema:
type: string
format: binary
delete:
operationId: deleteStatistics
summary: Delete statistics
description: Delete all or partial statistics for a domain
tags:
- Statistics
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- id
properties:
id:
type: string
description: Domain ID
kind:
type: string
enum:
- ''
- all
- events
- imported
from:
type: string
format: date
to:
type: string
format: date
responses:
'200':
description: Statistics deleted
components:
schemas:
PageStats:
type: object
properties:
path:
type: string
title:
type: string
visitors:
type: integer
views:
type: integer
sessions:
type: integer
bounces:
type: integer
relative_visitors:
type: number
format: float
relative_views:
type: number
format: float
bounce_rate:
type: number
format: float
average_time_spent_seconds:
type: integer
EventStats:
type: object
properties:
name:
type: string
count:
type: integer
visitors:
type: integer
views:
type: integer
cr:
type: number
format: float
average_duration_seconds:
type: integer
meta_keys:
type: array
items:
type: string
TotalStats:
type: object
properties:
visitors:
type: integer
views:
type: integer
sessions:
type: integer
bounces:
type: integer
bounce_rate:
type: number
format: float
cr:
type: number
format: float
custom_metric_avg:
type: number
format: float
custom_metric_total:
type: number
format: float
VisitorStats:
type: object
properties:
day:
type: string
format: date-time
week:
type: string
format: date-time
month:
type: string
format: date-time
year:
type: string
format: date-time
visitors:
type: integer
views:
type: integer
sessions:
type: integer
bounces:
type: integer
bounce_rate:
type: number
format: float
cr:
type: number
format: float
custom_metric_avg:
type: number
format: float
custom_metric_total:
type: number
format: float
ActiveVisitors:
type: object
properties:
stats:
type: array
items:
type: object
countries:
type: array
items:
type: object
visitors:
type: integer
ReferrerStats:
type: object
properties:
referrer:
type: string
referrer_name:
type: string
referrer_icon:
type: string
visitors:
type: integer
sessions:
type: integer
relative_visitors:
type: number
format: float
bounces:
type: integer
bounce_rate:
type: number
format: float
PlatformStats:
type: object
properties:
platform_desktop:
type: integer
platform_mobile:
type: integer
platform_unknown:
type: integer
relative_platform_desktop:
type: number
format: float
relative_platform_mobile:
type: number
format: float
relative_platform_unknown:
type: number
format: float
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: Pass an OAuth2 access token obtained from POST /token, or a static access key, as a Bearer token in the Authorization header.