# Pirsch Analytics > Pirsch is a privacy-first, cookie-free web analytics platform built and hosted in Germany by Emvi Software GmbH. It tracks page views, sessions, custom events, conversion goals, funnels and traffic sources without storing personal data, and exposes everything through a REST API at https://api.pirsch.io/api/v1 with OAuth2 client-credentials tokens or write-only `pa_` access keys. Generated by API Evangelist on 2026-08-13. Pirsch serves no llms.txt of its own — https://pirsch.io/llms.txt and https://docs.pirsch.io/llms.txt both returned HTTP 404 on that date — so this file is generated from the apis.yml profile and the artifacts in this repo. Method: generated. Source: https://github.com/api-evangelist/pirsch ## Start here - [API v1 reference](https://docs.pirsch.io/api-sdks/api-v1): the production API — every endpoint, filter and parameter - [API v1 guide](https://docs.pirsch.io/api-sdks/api-guide-v1): authentication, rate limits, error shape, filtering - [Frontend integration](https://docs.pirsch.io/get-started/frontend-integration): the `https://api.pirsch.io/pa.js` tracking script and its data-* options - [Backend integration](https://docs.pirsch.io/get-started/backend-integration): server-side tracking through the SDKs - [Official SDKs](https://docs.pirsch.io/api-sdks/sdks): JavaScript, Go and PHP - [Pricing](https://pirsch.io/pricing): Standard $6/mo, Plus $12/mo, Enterprise on request; 30-day trial, no card ## Authentication - Base URL: `https://api.pirsch.io/api/v1` - OAuth2 client credentials: `POST /token` with `client_id` and `client_secret`, returns `access_token` + `expires_at`; send as `Authorization: Bearer ` - Access keys: `pa_`-prefixed static keys, sent the same way, **write-only** (tracking endpoints only) - A 401 means the token expired — request a new one and retry - Detail: authentication/pirsch-authentication.yml ## Rate limits - Security endpoints (login, password reset): 10 requests/minute - Configuration endpoints (`/domain`, `/member`, `/client`, `/goal`, `/funnel`, `/webhook`, `/filter`, `/link`, `/report`, `/view`): 60 requests/minute - Statistics and data-collection endpoints: currently unlimited - Signalled by `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset` and `Retry-After` - Detail: rate-limits/pirsch-rate-limits.yml ## Errors Pirsch does not use RFC 9457. The envelope is: ```json { "validation": { "field": "message" }, "error": ["message"], "context": {} } ``` Detail: errors/pirsch-problem-types.yml ## APIs - [Tracking API](https://docs.pirsch.io/api-sdks/api-v1): `POST /hit`, `/hit/batch`, `/event`, `/event/batch`, `/session`, `/session/batch` - [Statistics API](https://docs.pirsch.io/api-sdks/api-v1): `/statistics/total`, `/visitor`, `/page`, `/referrer`, `/channel`, `/utm/*`, `/country`, `/region`, `/city`, `/language`, `/browser`, `/os`, `/platform`, `/events`, `/goals`, `/funnel`, `/active`, `/session/list`, `/session/details`, `/growth`, `/keywords` - [Domains API](https://docs.pirsch.io/api-sdks/api-v1): `/domain` and its settings sub-resources - [Conversion Goals API](https://docs.pirsch.io/api-sdks/api-v1): `/goal`, `/goal/regex` - [Funnels API](https://docs.pirsch.io/api-sdks/api-v1): `/funnel` - [Short Links API](https://docs.pirsch.io/api-sdks/api-v1): `/link` - [Webhooks API](https://docs.pirsch.io/api-sdks/api-v1): `/webhook` - [Email Reports API](https://docs.pirsch.io/api-sdks/api-v1): `/report` - [Members API](https://docs.pirsch.io/api-sdks/api-v1): `/member`, `/invitation` - [Access Links API](https://docs.pirsch.io/api-sdks/api-v1): `/domain/link` - [Clients API](https://docs.pirsch.io/api-sdks/api-v1): `/client` - [Traffic Management API](https://docs.pirsch.io/api-sdks/api-v1): `/filter`, `/traffic/spike`, `/traffic/warning` - [Views API](https://docs.pirsch.io/api-sdks/api-v1): `/view` - [User API](https://docs.pirsch.io/api-sdks/api-v1): `/user` and its settings sub-resources ## Specs and artifacts - [OpenAPI (full)](https://raw.githubusercontent.com/api-evangelist/pirsch/main/openapi/_original/pirsch-pirsch-api-openapi.yml) - [apis.yml](https://raw.githubusercontent.com/api-evangelist/pirsch/main/apis.yml) - Conventions: conventions/pirsch-conventions.yml - Data model: data-model/pirsch-data-model.yml - Webhook catalog: asyncapi/pirsch-webhooks.yml - Changelog: changelog/pirsch-changelog.yml - Lifecycle: lifecycle/pirsch-lifecycle.yml - Conformance: conformance/pirsch-conformance.yml - Packages/SDKs: packages/pirsch-packages.yml - Agent skills: skills/_index.yml ## SDKs - JavaScript / TypeScript: `npm install pirsch-sdk` — https://github.com/pirsch-analytics/pirsch-js-sdk - Go: `go get github.com/pirsch-analytics/pirsch-go-sdk/v2` — https://github.com/pirsch-analytics/pirsch-go-sdk - PHP: `composer require pirsch-analytics/sdk` — https://github.com/pirsch-analytics/pirsch-php-sdk - Laravel: `composer require pirsch-analytics/laravel-pirsch` - WordPress plugin: https://wordpress.org/plugins/pirsch-analytics/ - Self-hosted Go engine: `go get github.com/pirsch-analytics/pirsch/v6` ## What Pirsch does NOT publish Recorded so an agent does not go looking. All probed 2026-08-13: - No OpenAPI/Swagger document (`/openapi.json`, `/openapi.yaml`, `/swagger.json` on api.pirsch.io all 404) - No GraphQL endpoint - No first-party MCP server (`mcp.pirsch.io` is a wildcard SPA catch-all, not an endpoint) - No A2A agent card at either well-known path - No `/.well-known/` surface at all — no security.txt, no OIDC or OAuth metadata, no api-catalog - No public status page - No published deprecation policy or Sunset/Deprecation header support - No idempotency-key support - No OAuth scopes (tokens are all-or-nothing per client) - No CLI - No sandbox or test-mode credentials ## Optional - [Changelog](https://docs.pirsch.io/changelog): dated, versioned, currently 2.14.17 - [Webhooks](https://docs.pirsch.io/advanced/webhooks): fire on custom events - [Dashboard embedding](https://docs.pirsch.io/advanced/embedding): iframe with `ui`, `mode` and `lang` parameters - [Privacy and compliance](https://docs.pirsch.io/privacy): GDPR, CCPA, PECR, DPA on request - [Blog](https://pirsch.io/blog) - [GitHub organization](https://github.com/pirsch-analytics)