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