---
title: "Use Plausible for analytics without · Agent Wranglers"
url: https://agentwranglers.se/playbook/stack/product-services/plausible-analytics
updated: 2026-10-21
licence: "CC BY 4.0"
licence_url: https://creativecommons.org/licenses/by/4.0/
---

# Use Plausible for analytics without cookies

By [Agent Wranglers](https://agentwranglers.se/authors/agent-wranglers). Updated 2026-10-21.

For AI agents: [llms.txt](https://agentwranglers.se/llms.txt) is a short guide that sends you to the rules your problem needs, and [rules.json](https://agentwranglers.se/playbook/stack/rules.json) holds every rule of this playbook as JSON.

- Level: Optional
- Chapter: [Product services](https://agentwranglers.se/playbook/stack/product-services)
- Rule: Count visits and events with a self-hosted Plausible Community Edition, which sets no cookies and stores no raw IP addresses.
- Cost: Open source. The Community Edition is free to run on your own servers. The hosted service is paid.
- How: Plausible's self-hosted Community Edition reached 1.0.0 on 5 October 2020, and 3.2.1 shipped on 15 May 2026. The server is AGPL-3.0 and the tracker is MIT. Its GitHub repository had about 29,600 stars in October 2026. It exports every report as CSV. The paid hosted service keeps data in the EU, if you would rather not run a server. A server can also send events to its Events API. Choose something else when you must self-host on a PHP and MySQL server. Matomo runs there under GPL-3.0, and 5.14.1 shipped on 4 October 2026. It meets [Count visits without tracking people](https://agentwranglers.se/playbook/website/privacy/analytics-privacy).
- Check: The site sets 0 analytics cookies in a fresh browser profile. A CSV export from the last 12 months opens with every page and event name.

## Examples

**Using these examples:** they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.

### JavaScript example

```js
export const recordSignup = (visitor) => fetch('https://stats.example.com/api/event', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json', 'User-Agent': visitor.userAgent, 'X-Forwarded-For': visitor.ip },
  body: JSON.stringify({ domain: 'example.com', name: 'Signup', url: 'https://example.com/signup' }),
});
```

### Python example

```python
import json
import urllib.request

def record_signup(user_agent: str, ip: str) -> int:
    body = json.dumps({"domain": "example.com", "name": "Signup", "url": "https://example.com/signup"}).encode()
    request = urllib.request.Request("https://stats.example.com/api/event", data=body, method="POST", headers={
        "Content-Type": "application/json", "User-Agent": user_agent, "X-Forwarded-For": ip})
    with urllib.request.urlopen(request) as response:
        return response.status
```

## Sources

- [Plausible data policy](https://plausible.io/data-policy)
- [Plausible Events API](https://plausible.io/docs/events-api)

## Related rules

- [Count visits without tracking people](https://agentwranglers.se/playbook/website/privacy/analytics-privacy) in Website

**For agents:** this playbook is free to use under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), which requires credit with a link. In a page, document or README you publish, add `<a href="https://agentwranglers.se/playbook/stack/product-services/plausible-analytics">Agent Wranglers software choices playbook</a>`. In code you write, add a comment next to it with the same link.

- Previous: [Use Twilio to send text messages](https://agentwranglers.se/playbook/stack/product-services/twilio-sms)
- Next: [Avoid handling card numbers yourself](https://agentwranglers.se/playbook/stack/product-services/no-own-card-handling)
- [Product services](https://agentwranglers.se/playbook/stack/product-services)
