GoatCounter website screenshot

GoatCounter

GoatCounter is open-source, privacy-friendly web analytics from Martin Tournoij, offered both as a free donation-supported hosted service at goatcounter.com and as a self-hostable Go binary backed by SQLite or PostgreSQL. It tracks pageviews without cookies or persistent personal identifiers. The unversioned JSON API, prefixed /api/v0 and served from each account's own subdomain, covers counting pageviews and events from a backend, reading dashboard statistics (totals, per-path hits, referrals, browser/system/location breakdowns), running asynchronous CSV and JSON exports with an incremental hit-ID cursor, and managing sites and users. Authentication is a per-site API key sent as an HTTP bearer token, and the provider publishes its own OpenAPI 2.0 contract at https://www.goatcounter.com/api.json.

GoatCounter publishes 6 APIs on the APIs.io network, including Exports API, Pageviews API, Paths API, and 3 more. Tagged areas include Analytics, Page Views, Privacy, Statistics, and Web Analytics.

GoatCounter’s developer surface includes authentication, documentation, signup flow, API reference, getting-started guide, support, pricing, and 27 more developer resources.

57.0/100 strong ▬ flat Agent 36/100 agent ready Full breakdown ↓
scored 2026-08-20 · rubric v0.12.0
AccessFreeSelf serve⚡ Free to try
6 APIs
AnalyticsPage ViewsPrivacyStatisticsWeb AnalyticsOpen-SourceSelf-HostedEventData ExportDeveloper Tools

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-08-20 · rubric v0.12.0
Composite quality — 57.0/100 · strong
Contract Quality 13.1 / 25
Developer Ergonomics 12.3 / 20
Access Clarity 14.7 / 20
Operational Transparency 6.8 / 13
Contract Governance 2.0 / 12
Discoverability 8.2 / 10
Agent readiness — 36/100 · agent ready
Machine-Readable Contract 18 / 18
Agentic Access Contract 10 / 10
Documented Reversibility 0 / 6
MCP Server 0 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 8 / 8
Request/Response Examples 0 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 0 / 6
Agent Skills 5 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 3 / 3
A2A Agent Card 0 / 8
Dry-Run / Simulate Mode 0 / 4
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/goatcounter: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs 6

Individual APIs this provider publishes, each with its own machine-readable definition.

GoatCounter Exports API

The Exports API from GoatCounter — 3 operation(s) for exports.

GoatCounter Pageviews API

The Pageviews API from GoatCounter — 1 operation(s) for pageviews.

GoatCounter Paths API

The Paths API from GoatCounter — 1 operation(s) for paths.

GoatCounter Sites API

The Sites API from GoatCounter — 2 operation(s) for sites.

GoatCounter Statistics API

The Statistics API from GoatCounter — 5 operation(s) for statistics.

GoatCounter Users API

The Users API from GoatCounter — 1 operation(s) for users.

Open Collections 8

Open, tool-agnostic API collections (OpenAPI-derived and Bruno).

API Collection

OPEN COLLECTION

GoatCounter Exports API

OPEN COLLECTION

GoatCounter API

OPEN COLLECTION

Scroll for all 8

Pricing Plans 1

Published pricing tiers and plan structures.

Rate Limits 1

Documented rate limits and quota policies.

Goatcounter Rate Limits

1 limits

RATE LIMITS

FinOps 1

Cost, billing, and metering signals for API financial operations.

Security Posture 3

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Goatcounter Authentication

http · 2 schemes

SECURITY

Goatcounter Domain Security

TLSv1.3 · DNSSEC

SECURITY

Goatcounter Vulnerability Disclosure

Hackerone · security.txt · contact published

SECURITY

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

Goatcounter Agentic Access

16 operations · 5 acting

16 operations · 5 acting

AGENTIC

Resources

Get Started 3

Portal, sign-up, and the first successful call

Documentation 3

Reference material describing how the API behaves

Agent Surfaces 3

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 6

Pagination, idempotency, versioning, errors, and events

Build 3

SDKs, sample code, and the tooling you integrate with

Access & Security 5

Authentication, authorization, and security posture

Operate 4

Status, limits, changes, and where to get help

Commercial 5

Pricing, plans, and the legal terms of use

Company 1

The organization behind the API

Other 1

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml Raw ↑
aid: goatcounter
name: GoatCounter
description: GoatCounter is open-source, privacy-friendly web analytics from Martin Tournoij, offered both as a free donation-supported
  hosted service at goatcounter.com and as a self-hostable Go binary backed by SQLite or PostgreSQL. It tracks pageviews without
  cookies or persistent personal identifiers. The unversioned JSON API, prefixed /api/v0 and served from each account's own
  subdomain, covers counting pageviews and events from a backend, reading dashboard statistics (totals, per-path hits, referrals,
  browser/system/location breakdowns), running asynchronous CSV and JSON exports with an incremental hit-ID cursor, and managing
  sites and users. Authentication is a per-site API key sent as an HTTP bearer token, and the provider publishes its own OpenAPI
  2.0 contract at https://www.goatcounter.com/api.json.
type: Index
accessModel:
  pricing: free
  onboarding: self-serve
  trial: false
  try_now: true
  public: false
  label: Free (donation-supported) · Self-serve signup
  confidence: high
  source:
  - plans
  - authentication
  generated: '2026-08-13'
  method: searched
  note: Corrected 2026-08-13 from "freemium" to "free". GoatCounter publishes no paid tier — the hosted service is offered
    free for reasonable public usage and funded by donations, with self-hosting as the route for heavier use. Source https://www.goatcounter.com/#pricing
position: Consumer
access: 3rd-Party
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/goatcounter.png
tags:
- Analytics
- Page Views
- Privacy
- Statistics
- Web Analytics
- Open-Source
- Self-Hosted
- Event
- Data Export
- Developer Tools
tags_raw:
- Analytics
- Pageviews
- Privacy
- Statistics
- Web Analytics
- Open Source
- Self-Hosted
- Events
- Data Export
- Developer Tools
created: '2025-02-08'
modified: '2026-08-13'
url: https://raw.githubusercontent.com/api-evangelist/goatcounter/refs/heads/main/apis.yml
specificationVersion: '0.23'
apis:
- aid: goatcounter:goatcounter-exports-api
  name: GoatCounter Exports API
  description: The Exports API from GoatCounter — 3 operation(s) for exports.
  humanURL: https://www.goatcounter.com/help/api
  baseURL: https://{code}.goatcounter.com/api/v0
  tags:
  - Export
  tags_raw:
  - Exports
  properties:
  - type: OpenAPI
    url: openapi/goatcounter-exports-api-openapi.yml
  - type: Documentation
    url: https://www.goatcounter.com/help/api
- aid: goatcounter:goatcounter-pageviews-api
  name: GoatCounter Pageviews API
  description: The Pageviews API from GoatCounter — 1 operation(s) for pageviews.
  humanURL: https://www.goatcounter.com/help/api
  baseURL: https://{code}.goatcounter.com/api/v0
  tags:
  - Page Views
  tags_raw:
  - Pageviews
  properties:
  - type: OpenAPI
    url: openapi/goatcounter-pageviews-api-openapi.yml
  - type: Documentation
    url: https://www.goatcounter.com/help/api
- aid: goatcounter:goatcounter-paths-api
  name: GoatCounter Paths API
  description: The Paths API from GoatCounter — 1 operation(s) for paths.
  humanURL: https://www.goatcounter.com/help/api
  baseURL: https://{code}.goatcounter.com/api/v0
  tags:
  - Paths
  properties:
  - type: OpenAPI
    url: openapi/goatcounter-paths-api-openapi.yml
  - type: Documentation
    url: https://www.goatcounter.com/help/api
- aid: goatcounter:goatcounter-sites-api
  name: GoatCounter Sites API
  description: The Sites API from GoatCounter — 2 operation(s) for sites.
  humanURL: https://www.goatcounter.com/help/api
  baseURL: https://{code}.goatcounter.com/api/v0
  tags:
  - Sites
  properties:
  - type: OpenAPI
    url: openapi/goatcounter-sites-api-openapi.yml
  - type: Documentation
    url: https://www.goatcounter.com/help/api
- aid: goatcounter:goatcounter-statistics-api
  name: GoatCounter Statistics API
  description: The Statistics API from GoatCounter — 5 operation(s) for statistics.
  humanURL: https://www.goatcounter.com/help/api
  baseURL: https://{code}.goatcounter.com/api/v0
  tags:
  - Statistics
  properties:
  - type: OpenAPI
    url: openapi/goatcounter-statistics-api-openapi.yml
  - type: Documentation
    url: https://www.goatcounter.com/help/api
- aid: goatcounter:goatcounter-users-api
  name: GoatCounter Users API
  description: The Users API from GoatCounter — 1 operation(s) for users.
  humanURL: https://www.goatcounter.com/help/api
  baseURL: https://{code}.goatcounter.com/api/v0
  tags:
  - User
  tags_raw:
  - Users
  properties:
  - type: OpenAPI
    url: openapi/goatcounter-users-api-openapi.yml
  - type: Documentation
    url: https://www.goatcounter.com/help/api
common:
- type: AgenticAccess
  url: agentic-access/goatcounter-agentic-access.yml
- type: DomainSecurity
  url: security/goatcounter-domain-security.yml
- type: Authentication
  url: authentication/goatcounter-authentication.yml
- type: Website
  url: https://www.goatcounter.com/
- type: Documentation
  url: https://www.goatcounter.com/help/api
- type: SignUp
  url: https://www.goatcounter.com/signup
- type: GitHubOrganization
  url: https://github.com/arp242/goatcounter
- type: OpenAPI
  name: GoatCounter API (provider-published OpenAPI 2.0)
  url: openapi/_original/goatcounter-api-swagger20.json
- type: APIReference
  url: https://www.goatcounter.com/api2.html
- type: GettingStarted
  url: https://www.goatcounter.com/help/start
- type: Support
  url: https://www.goatcounter.com/contact
- type: Pricing
  url: https://www.goatcounter.com/#pricing
- type: TermsOfService
  url: https://www.goatcounter.com/help/terms
- type: PrivacyPolicy
  url: https://www.goatcounter.com/help/privacy
- type: StatusPage
  url: https://www.goatcounter.com/status
- type: Security
  url: https://www.goatcounter.com/security.txt
- type: SecurityTxt
  url: well-known/goatcounter-security.txt
- type: VulnerabilityDisclosure
  url: security/goatcounter-vulnerability-disclosure.yml
- type: Packages
  url: packages/goatcounter-packages.yml
- type: CLI
  url: cli/goatcounter-cli.yml
- type: Components
  url: components/goatcounter-components.yml
- type: Sandbox
  url: sandbox/goatcounter-sandbox.yml
- type: Conventions
  url: conventions/goatcounter-conventions.yml
- type: ErrorCatalog
  url: errors/goatcounter-problem-types.yml
- type: DataModel
  url: data-model/goatcounter-data-model.yml
- type: Lifecycle
  url: lifecycle/goatcounter-lifecycle.yml
- type: ChangeLog
  url: changelog/goatcounter-changelog.yml
- type: Conformance
  url: conformance/goatcounter-conformance.yml
- type: Overlay
  url: overlays/goatcounter-api-overlay.yaml
- type: LLMsTxt
  url: llms/goatcounter-llms.txt
- type: AgentSkill
  url: skills/_index.yml
- type: Plans
  url: plans/goatcounter-plans-pricing.yml
- type: RateLimits
  url: rate-limits/goatcounter-rate-limits.yml
- type: FinOps
  url: finops/goatcounter-finops.yml
maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com
x-enrichment:
  date: '2026-08-13'
  status: enriched
  artifacts_added: 18
  pass: local-v1