OpenAPI Specification
openapi: 3.1.0
info:
title: Swetrix Admin Annotations Sessions 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: Sessions
description: Individual visitor session data
paths:
/v1/log/sessions:
get:
operationId: listSessions
summary: List Sessions
description: Returns a paginated list of individual visitor sessions for the specified project and time period. Maximum 150 sessions per request.
tags:
- Sessions
parameters:
- $ref: '#/components/parameters/pid'
- $ref: '#/components/parameters/period'
- $ref: '#/components/parameters/from'
- $ref: '#/components/parameters/to'
- $ref: '#/components/parameters/timezone'
- $ref: '#/components/parameters/filters'
- $ref: '#/components/parameters/take'
- $ref: '#/components/parameters/skip'
responses:
'200':
description: Paginated list of sessions
content:
application/json:
schema:
$ref: '#/components/schemas/SessionListResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v1/log/session:
get:
operationId: getSession
summary: Get Session Details
description: Returns detailed information for a single visitor session including all pages visited, session metadata, and chart data.
tags:
- Sessions
parameters:
- $ref: '#/components/parameters/pid'
- name: psid
in: query
required: true
schema:
type: string
description: Session identifier
- $ref: '#/components/parameters/timezone'
responses:
'200':
description: Session details with pages visited
content:
application/json:
schema:
$ref: '#/components/schemas/SessionDetail'
'401':
$ref: '#/components/responses/Unauthorized'
components:
parameters:
filters:
name: filters
in: query
schema:
type: string
description: JSON array of filter objects
pid:
name: pid
in: query
required: true
schema:
type: string
description: Project ID
take:
name: take
in: query
schema:
type: integer
default: 30
maximum: 150
description: Number of results to return (max 150)
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
skip:
name: skip
in: query
schema:
type: integer
default: 0
description: Number of results to skip for pagination
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)
responses:
Unauthorized:
description: Unauthorized - missing or invalid API key
content:
application/json:
schema:
type: object
properties:
message:
type: string
schemas:
SessionDetail:
type: object
properties:
pages:
type: array
items:
type: object
sessionDetails:
type: object
chart:
type: object
SessionSummary:
type: object
properties:
psid:
type: string
description: Session identifier
browser:
type: string
os:
type: string
country:
type: string
device:
type: string
duration:
type: integer
description: Session duration in seconds
pageviews:
type: integer
created:
type: string
format: date-time
SessionListResponse:
type: object
properties:
sessions:
type: array
items:
$ref: '#/components/schemas/SessionSummary'
total:
type: integer
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