OpenAPI Specification
openapi: 3.1.0
info:
title: Swetrix Admin Annotations Traffic API
description: The Swetrix Admin API manages analytics projects, funnels, annotations, project views (segments), and organisations. Supports full CRUD operations for all Swetrix account resources. All requests require authentication via the X-Api-Key header. Rate limit is 600 requests/hour.
version: '1.0'
contact:
name: Swetrix Support
url: https://swetrix.com/contact
termsOfService: https://swetrix.com/privacy
license:
name: AGPL-3.0
url: https://github.com/Swetrix/swetrix-api/blob/main/LICENSE
servers:
- url: https://api.swetrix.com
description: Swetrix Production API
security:
- ApiKeyAuth: []
tags:
- name: Traffic
description: Aggregated traffic and pageview analytics
paths:
/v1/log:
get:
operationId: getTrafficLog
summary: Get Traffic Log
description: Retrieves aggregated traffic data for a project. Returns the same data shown in the Traffic tab of the dashboard, represented as JSON. Supports periodic or cumulative modes and custom metric objects.
tags:
- Traffic
parameters:
- $ref: '#/components/parameters/pid'
- $ref: '#/components/parameters/timeBucket'
- $ref: '#/components/parameters/period'
- $ref: '#/components/parameters/from'
- $ref: '#/components/parameters/to'
- $ref: '#/components/parameters/timezone'
- $ref: '#/components/parameters/filters'
- name: mode
in: query
schema:
type: string
enum:
- periodic
- cumulative
description: Data aggregation mode
- name: metrics
in: query
schema:
type: string
description: Up to 3 custom metric objects (JSON array)
responses:
'200':
description: Traffic log data
content:
application/json:
schema:
$ref: '#/components/schemas/TrafficLogResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/v1/log/birdseye:
get:
operationId: getBirdseyeSummary
summary: Get Birdseye Traffic Summary
description: Returns summary traffic data for one or more projects, comparing the current period against the previous period. Useful for dashboards showing traffic trends.
tags:
- Traffic
parameters:
- name: pids
in: query
schema:
type: string
description: Comma-separated list of project IDs (use pid or pids)
- $ref: '#/components/parameters/pid'
- $ref: '#/components/parameters/period'
- $ref: '#/components/parameters/from'
- $ref: '#/components/parameters/to'
- $ref: '#/components/parameters/timezone'
- $ref: '#/components/parameters/filters'
responses:
'200':
description: Per-project birdseye summaries
content:
application/json:
schema:
type: object
'401':
$ref: '#/components/responses/Unauthorized'
/v1/log/live-visitors:
get:
operationId: getLiveVisitors
summary: Get Live Visitors
description: Returns currently active visitors on a project. Each visitor record includes device type, browser, operating system, country, and session ID.
tags:
- Traffic
parameters:
- $ref: '#/components/parameters/pid'
responses:
'200':
description: Array of active visitor objects
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LiveVisitor'
'401':
$ref: '#/components/responses/Unauthorized'
/v1/log/keywords:
get:
operationId: getKeywords
summary: Get Search Keywords
description: Returns search keyword data from Google Search Console integration for the specified project and period.
tags:
- Traffic
parameters:
- $ref: '#/components/parameters/pid'
- $ref: '#/components/parameters/period'
- $ref: '#/components/parameters/from'
- $ref: '#/components/parameters/to'
- $ref: '#/components/parameters/timezone'
responses:
'200':
description: Search keyword data
content:
application/json:
schema:
type: object
'401':
$ref: '#/components/responses/Unauthorized'
/v1/log/user-flow:
get:
operationId: getUserFlow
summary: Get User Navigation Flow
description: Returns user navigation flow diagram data showing how visitors move between pages on the site.
tags:
- Traffic
parameters:
- $ref: '#/components/parameters/pid'
- $ref: '#/components/parameters/timeBucket'
- $ref: '#/components/parameters/period'
- $ref: '#/components/parameters/from'
- $ref: '#/components/parameters/to'
- $ref: '#/components/parameters/timezone'
- $ref: '#/components/parameters/filters'
responses:
'200':
description: User flow diagram data
content:
application/json:
schema:
type: object
'401':
$ref: '#/components/responses/Unauthorized'
/v1/log/filters:
get:
operationId: getFilters
summary: Get Available Filter Values
description: Returns available filter values for a specific analytics dimension such as browser, OS, or country code.
tags:
- Traffic
parameters:
- $ref: '#/components/parameters/pid'
- name: type
in: query
required: true
schema:
type: string
enum:
- br
- os
- cc
- lc
- ref
- so
- me
- ca
- pg
description: Dimension type to get filter values for
responses:
'200':
description: Available filter values
content:
application/json:
schema:
type: array
items:
type: string
'401':
$ref: '#/components/responses/Unauthorized'
components:
parameters:
filters:
name: filters
in: query
schema:
type: string
description: JSON array of filter objects
timeBucket:
name: timeBucket
in: query
required: true
schema:
type: string
enum:
- minute
- hour
- day
- week
- month
- year
description: Time bucket for data aggregation
pid:
name: pid
in: query
required: true
schema:
type: string
description: Project ID
to:
name: to
in: query
schema:
type: string
format: date
description: Custom range end date (YYYY-MM-DD)
period:
name: period
in: query
required: true
schema:
type: string
enum:
- 1h
- today
- yesterday
- 1d
- 7d
- 4w
- 3M
- 12M
- 24M
- all
description: Time period for the query
from:
name: from
in: query
schema:
type: string
format: date
description: Custom range start date (YYYY-MM-DD)
timezone:
name: timezone
in: query
schema:
type: string
default: Etc/GMT
description: IANA timezone name (default Etc/GMT)
schemas:
TrafficLogResponse:
type: object
properties:
params:
type: object
description: Query parameters echo
chart:
type: object
description: Chart data grouped by time bucket
customs:
type: object
description: Custom event data
properties:
type: object
description: Page properties data
appliedFilters:
type: array
items:
type: object
description: Applied filter objects
LiveVisitor:
type: object
properties:
sessionId:
type: string
device:
type: string
browser:
type: string
os:
type: string
country:
type: string
responses:
Unauthorized:
description: Unauthorized - missing or invalid API key
content:
application/json:
schema:
type: object
properties:
message:
type: string
BadRequest:
description: Bad request - invalid parameters
content:
application/json:
schema:
type: object
properties:
message:
type: string
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-Api-Key
description: API key from Swetrix account settings (https://swetrix.com/user-settings)
externalDocs:
description: Swetrix Admin API Documentation
url: https://swetrix.com/docs/admin-api