GoatCounter
- Free allowance
- Free for reasonable public usage: a personal website or a small-to-medium business is fine, while sending millions of pageviews a day is not; no numeric cap is stated
- Verdict
- caveatusable, with a named limit or an unprobed read path
- Cost
- free tier
- Identity
- emailno card, no phone
- Binding limit
- volume-quotafree for reasonable public usage, with no number stated; millions of pageviews a day are outside it
- Evidence
- documented14 sources; a first-party page was read and the sentence quoted
- Freshness
- stale on 2026-12-02checked 2026-11-01 (live); stale on 2026-12-02
| Free tier | Free for reasonable public usage: a personal website or a small-to-medium business is fine, while sending millions of pageviews a day is not; no numeric cap is stated unit unlimited; metered on none; Financed by donations through GitHub Sponsors. Several sites can share one account (Settings, sites). The hosted service and the open-source app share the same code; the hosted service is the offer recorded here. |
|---|---|
| Price | none stated |
| Limits |
The backend count endpoint has higher rate limits than the browser endpoint and accepts several pageviews in one request. |
| Binding | volume-quota The only quota is the unstated reasonable-use ceiling; the 4-requests-a-second API limit binds only on programmatic reads. |
| Identity | email The sign-up form asks for an account name, an optional site domain, an email address and a password of at least 8 characters, plus a human check that asks the visitor to type a shown number; no payment field appears on it. |
| Egress | all data can be exported as CSV at any time, through the dashboard or the export endpoints of the API; the API allows 4 requests per second |
| Per-object cap | unverified: no per-pageview or per-request size is stated on the pages read |
| Retention | unverified: no retention period of the hosted service is stated on the pages read; all data can be exported at any time |
| Interface | rest REST API under /api/v0 on the account's own host (CODE.goatcounter.com), authenticated by an API key created in the account as a Bearer token (HTTP Basic also works); POST /api/v0/count sends pageviews from a backend in batches, POST /api/v0/export starts a CSV export, and GET endpoints list sites, paths and statistics. The browser side is one script tag, a no-JavaScript tracking pixel, backend middleware or log file import. endpoint: https://CODE.goatcounter.com/api/v0 |
| Tooling | a single script tag, the tracking pixel, middleware or log file import for the data in, and any HTTP client with an API key for the data out. As a last resort the open-source app can be self-hosted: the user installs and runs it on a rented or free machine. |
| Composes with | Pageview counting for a static site on any free host with one script tag and no cookies, with the numbers readable and exportable through the API. |
| Reliability | no throttle, ban or data loss is stated on the pages read; the service is financed by donations |
| Notes | Third-party lists give a monthly pageview cap and a retention period that the first-party pages read do not state, so neither is recorded as a limit. |
| Evidence note | documented The free offer, the sign-up fields and the API limits are quoted from first-party pages. No account was opened and no numeric allowance or retention period is published, so both are unverified. |
| Parsed numbers |
|
Evidence 14
| date | source | what it proved |
|---|---|---|
| 2026-11-01 | www.goatcounter.com/ | the hosted service is free for reasonable public usage and millions of pageviews a day are outside that |
| 2026-11-01 | www.goatcounter.com/ | the hosted service is financed by donations |
| 2026-11-01 | www.goatcounter.com/ | the app can be self-hosted from its GitHub repository |
| 2026-11-01 | www.goatcounter.com/ | data can be exported and the account cancelled at any time |
| 2026-11-01 | www.goatcounter.com/ | the browser side is a single script tag, with a no-JavaScript image tracker, middleware and log file alternatives |
| 2026-11-01 | www.goatcounter.com/help/api | the API is limited to 4 requests per second |
| 2026-11-01 | www.goatcounter.com/help/api | the API authenticates with a Bearer API key created in the account |
| 2026-11-01 | www.goatcounter.com/help/api | HTTP Basic authentication with the API key as the password is also supported |
| 2026-11-01 | www.goatcounter.com/help/api | the count endpoint sends pageviews from a backend with higher rate limits and batching |
| 2026-11-01 | www.goatcounter.com/help/api | a CSV export is started through the API |
| 2026-11-01 | www.goatcounter.com/signup | the sign-up form asks for an email address and a password of at least 8 characters |
| 2026-11-01 | www.goatcounter.com/signup | the password needs at least 8 characters |
| 2026-11-01 | www.goatcounter.com/signup | the sign-up form has a human check that asks the visitor to type a shown number |
| 2026-11-01 | www.goatcounter.com/terms | an email address is required to register an account |