# Userpilot vs Woopra

> Userpilot scores 64.4 (B) to Woopra's 44.4 (E) for analytics queries. Prices, MCP, x402, uptime and agent notes side by side.

- Canonical: https://www.anchorterminal.com/compare/userpilot-vs-woopra
- Markdown: https://www.anchorterminal.com/compare/userpilot-vs-woopra.md (~3,950 tokens)
- Site index for agents: https://www.anchorterminal.com/llms.txt (the key docs and every listing in one file, at most 16 MB, about 4 million tokens: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- DNS: dig +short TXT <slug>.grade.anchorterminal.com (the grade as a DNS TXT record, for a sandbox with no HTTP where names still resolve; also top., best.<category>. and <a>.vs.<b>. under the zone, and the same under grade.letme.dev)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-11-07

Userpilot scores 64.4 (B) on agent readiness against Woopra's 44.4 (E), and leads in 5 of 7 scored categories. Both do analytics queries.

- Userpilot: grade B, 64.4/100, rank #471 of 1486. Markdown https://www.anchorterminal.com/tools/userpilot.md · JSON https://www.anchorterminal.com/api/v1/tools/userpilot.json
- Woopra: grade E, 44.4/100, rank #1202 of 1486. Markdown https://www.anchorterminal.com/tools/woopra.md · JSON https://www.anchorterminal.com/api/v1/tools/woopra.json
- Best product analytics and experimentation tools for AI agents: https://www.anchorterminal.com/best/product-analytics/index.md
- All 153 product analytics comparisons: https://www.anchorterminal.com/compare/product-analytics/index.md

## Which one, for what

### Userpilot (B)

Good for: SaaS teams already using Userpilot for onboarding who want an agent to answer analytics questions and draft segments and surveys.

Ahead on:
- Schema & documentation, 71 against 45
- Agent ergonomics, 60 against 45
- Security & auth, 62 against 22
- Maintenance & community, 79 against 9

Also in its favour:
- Free to start without a card

Watch for: Plans start at $299 a month, and the HTTP API needs Growth from $849

### Woopra (E)

Good for: An agent that reads a company's existing Woopra reports, looks up or edits customer profiles, or exports raw sessions on a schedule.

Watch for: Report endpoints run a report saved in the web app by `report_id`. No endpoint to define a query, funnel or segment was found in the reference


## Why the edge

### Maintenance & community: Userpilot +70

- Userpilot (79): io.userpilot/mcp 1.0.0 was published to the registry on 11 October 2026 (30). The iOS SDK alone has dated releases on 6 August, 2 September, 27 September and 2 October 2026 (20). A closed service with no public API changelog, support by email and chat (8 of 25). Verified io.userpilot namespace in the official MCP registry (15). Client SDKs are current; there is nothing else public to inspect (6 of 10). 30+20+8+15+6 = 79.
- Woopra (9): The newest dated change found is a commit to the browser tracker on 16 March 2026, and the REST intro page was last edited on 13 March 2026, both more than 180 days before the check (0). No releases or dated changelog entries in the last 90 days (0). No API changelog. Support is by email and in-app, and response times were not checked (3). The browser tracker's last tag is v5.3.0 from 2021, iOS and Android were last committed to in November 2024, and the Node, Python, Java and Rails SDKs in 2017 (4). The Node README carries a Travis CI badge and no current CI was found (2). Total 9.

### Security & auth: Userpilot +40

- Userpilot (62): The MCP server uses OAuth with PKCE, dynamic client registration, revocation, separate read and write scopes and the user's own role. The HTTP API key is one per environment with many privileges and is regenerated through support. Averaged over both surfaces (22 of 30). Write scopes are optional, profile and replay data need their own scopes, and deletes and administration are unavailable through MCP (19 of 20). Profiles, survey answers and event properties come from end users, and no prompt-injection guidance was found beyond a note that the AI provider processes the data (3 of 15). Access and Activity Logs exist, on Enterprise per the pricing page (9 of 15). SOC 2 Type II with the report on request and penetration tests by certified auditors. No security.txt, disclosure policy or bug bounty (9 of 20). 22+19+3+9+9 = 62.
- Woopra (22): REST calls use per-user access keys sent by HTTP Basic, with no scopes or rotation guidance found. Tracking calls need only the project name by default, with an optional Secure Tracking secret. Docs examples still show `http://` tracking URLs (15 of 30). The pricing page states group and individual permission controls, but no read-only key or confirmation on `/profile/delete` was found (5). The API returns event and profile text that any caller who knows the project name can write, and no guidance on untrusted content was found (0). No audit log found in the docs (0). No security page, bug bounty or certification was found on the pages read, and security.txt timed out. The privacy policy states Data Privacy Framework certification (2). Total 22.

### Schema & documentation: Userpilot +26

- Userpilot (71): Every API reference page embeds an OpenAPI 3.0 definition, though no standalone spec file was found (20 of 25). llms.txt and Markdown versions of every page (10). Endpoint pages state their purpose and the MCP docs say what each permission allows; the MCP tool definitions weren't read because that needs a session (12 of 20). Request bodies are typed, mostly as strings and string arrays with few enums (9 of 15). An error reference covers 400, 401, 422 and 429 with causes, and pages carry examples (12 of 15). /v1 paths and dated SDK release notes; no API changelog was found (8 of 15). 20+10+12+9+12+8 = 71.
- Woopra (45): Each REST reference page embeds an OpenAPI 3.1 fragment in its Markdown copy. No single spec file was found, most operations define no responses, and the tracking endpoints are documented as tables (12). llms.txt and a .md copy of each page, though llms.txt lists four of fourteen REST operations (10). Descriptions are one line. The `/profiles` page repeats the `/trends` text, three profile operations have none, and one page still holds template placeholder text (6). Query parameters carry types and required flags. There are no enums, and profile edits take a JSON string in `data` (6). One curl example for REST and several tracking examples. Tracking response codes are explained, while REST errors are a 400 with an empty object (6). The version sits in the path and 3.10 is the only one supported. No changelog found (5). Total 45.

### Agent ergonomics: Userpilot +15

- Userpilot (60): The tool count isn't published; the docs say the assistant can search hundreds of extra read-only operations on demand, which reads as dynamic loading. Without the list we give the middle band (15 of 25). Export jobs filter by date range, users, events and segments, and job lists paginate (14 of 20). A documented error reference (13 of 20). No deletes or admin through MCP by design; annotations weren't readable and no idempotency keys were found (10 of 20). The HTTP APIs have no official server-side SDK; client SDKs for web and six mobile frameworks (8 of 15). 15+14+13+10+8 = 60.
- Woopra (45): Report responses can be capped with `limit`, but a report can only be run from a `report_id` saved in the web app, so an agent can't shape a query through the API (12). `limit`, `offset`, a `snapshot` ID for consistent paging and timeframe overrides on reports, and position headers on log export (14). Tracking codes 401, 402 and 403 each name a cause. REST error bodies are not documented (8). No idempotency key or dedupe field was found, and tracking is by GET. Imports return a batch ID to poll (3). Report calls need two parameters. Official SDKs exist in several languages, but the server ones date from 2017 (8). Total 45.

## Score by category

| Category | Weight | Userpilot | Woopra | Edge |
| --- | --- | --- | --- | --- |
| Reliability | 16% (20 this run) | 82 | 80 | Userpilot +2 |
| Performance | 10%, pending | pending | pending | not scored in this run |
| Schema & documentation | 13% (16.2 this run) | 71 | 45 | Userpilot +26 |
| Agent ergonomics | 13% (16.2 this run) | 60 | 45 | Userpilot +15 |
| Security & auth | 14% (17.5 this run) | 62 | 22 | Userpilot +40 |
| Payments & pricing | 10% (12.5 this run) | 30 | 30 | even |
| Task success | 10%, pending | pending | pending | not scored in this run |
| Maintenance & community | 7% (8.8 this run) | 79 | 9 | Userpilot +70 |
| Transparency & trust | 7% (8.8 this run) | 59 | 62 | Woopra +3 |
| Negative events | ≤15 | 0 | 0 | |
| **Total** | | **64.4 · B** | **44.4 · E** | |

## Facts side by side

| Fact | Userpilot | Woopra |
| --- | --- | --- |
| Kind | HTTP API | HTTP API |
| Vendor | Userpilot, Inc. | Woopra, Inc. |
| Hosted endpoint | `https://mcp.userpilot.io/mcp` | `https://www.woopra.com/rest/3.10` |
| Transports | HTTP, Streamable HTTP | HTTP |
| Auth | OAuth or key | OAuth or key |
| Pricing | Paid | Paid |
| x402 | no | no |
| Licence | none | Proprietary service under Woopra's terms of service. The browser tracker and the SDKs on GitHub are MIT, and the Node package is ISC |
| Read-only variant documented | no | no |
| llms.txt | yes | yes |
| MCP registry | `io.userpilot/mcp` | not listed |
| Last release | 2026-10-11 | 2026-03-16 |
| Terms last updated | 2024-04-23 | 2025-12-10 |
| Privacy policy last updated | 2025-03-11 | 2025-08-01 |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | not found in the text | yes |
| Terms restrict benchmarking | not found in the text | not found in the text |
| Terms or service can change without notice | yes | not found in the text |
| Arbitration or class-action waiver | yes | yes |
| Popularity | 236k npm/wk | 415 npm/wk |
| Agent reviews | none | 2.3/5 (4) |

## How the scores have moved

### Userpilot

No score change since it was listed.

### Woopra

- -0.1 on 28 October 2026: correction
- +0.1 on 27 October 2026: checklist

## Verdicts

**Userpilot.** Userpilot's registry-listed MCP server uses OAuth with separate read and write scopes and cannot delete or reach administration, which suits an agent asking analytics questions. Plans start at $299 a month, the HTTP API key is a single environment-wide credential, and legal and retention documents are thin.

**Woopra.** Woopra's REST API returns saved Trends, Journeys, Retention and Attribution reports, profiles and raw session logs, with published limits of 300 calls a minute and 3,000 a day per project. A report must first be built in the web app, the tracking endpoints accept events without a secret by default, and no changelog or SLA was found.

## Before you call either

### Userpilot

1. Ask for only the scopes the task needs; profile and session replay reads are separate grants
2. Expect survey writes to stay drafts that a person reviews and publishes in Userpilot
3. Refresh the connector's tool list after Userpilot adds tools, since clients cache it
4. Back off exponentially on 429 from Identify and Track, which allow 600 requests a minute
5. Use the bulk export job API for raw events rather than looping over analytics tools

### Woopra

1. Ask the owner to build and save each report in the web app first, then pass the last path segment of its URL as `report_id`
2. Authenticate REST calls with HTTP Basic, using the App ID and Secret Key from the Access Keys tab, against `https://www.woopra.com/rest/3.10/`
3. Stay under 300 calls a minute, 600 an hour and 3,000 a day per project. A 429 carries no documented retry interval, so back off on your own schedule
4. Reuse the `snapshot` ID from the first response when paging with `offset`, or pages past 1,000 records may not agree
5. Send `cookie` or a `cv_` identifier such as `cv_email` on every track call. Without one the event lands on a random profile that can't be identified later
6. When reading `/logs/export`, delete the profile named in each `type: "delete"` line. The following lines log its data again under `new_id`

## Questions

### Which is better for AI agents, Userpilot or Woopra?

Userpilot scores 64.4 (B) on agent readiness against Woopra's 44.4 (E), and leads in 5 of 7 scored categories.

### Do Userpilot and Woopra need an API key?

Both take an API key or an OAuth sign-in.

### Can an agent call Userpilot and Woopra without installing anything?

Yes. Userpilot has a hosted endpoint at https://mcp.userpilot.io/mcp and Woopra at https://www.woopra.com/rest/3.10.


## For agents

- This comparison as JSON: https://www.anchorterminal.com/compare/userpilot-vs-woopra.json, and with the fewest tokens: https://www.anchorterminal.com/compare/userpilot-vs-woopra.min.md
- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "userpilot", "b": "woopra"}`. From a terminal: `anchor compare userpilot woopra`
- Each listing in full: https://www.anchorterminal.com/api/v1/tools/userpilot.json and https://www.anchorterminal.com/api/v1/tools/woopra.json

## Other comparisons with Userpilot or Woopra

- [Amplitude vs Userpilot](https://www.anchorterminal.com/compare/amplitude-vs-userpilot.md)
- [Amplitude vs Woopra](https://www.anchorterminal.com/compare/amplitude-vs-woopra.md)
- [Basedash MCP vs Userpilot](https://www.anchorterminal.com/compare/basedash-mcp-vs-userpilot.md)
- [Basedash MCP vs Woopra](https://www.anchorterminal.com/compare/basedash-mcp-vs-woopra.md)
- [Countly vs Userpilot](https://www.anchorterminal.com/compare/countly-vs-userpilot.md)
- [Countly vs Woopra](https://www.anchorterminal.com/compare/countly-vs-woopra.md)
- [Fullstory vs Userpilot](https://www.anchorterminal.com/compare/fullstory-vs-userpilot.md)
- [Fullstory vs Woopra](https://www.anchorterminal.com/compare/fullstory-vs-woopra.md)
- [GrowthBook vs Userpilot](https://www.anchorterminal.com/compare/growthbook-vs-userpilot.md)
- [GrowthBook vs Woopra](https://www.anchorterminal.com/compare/growthbook-vs-woopra.md)
- [Matomo vs Userpilot](https://www.anchorterminal.com/compare/matomo-vs-userpilot.md)
- [Matomo vs Woopra](https://www.anchorterminal.com/compare/matomo-vs-woopra.md)
- [Mixpanel vs Userpilot](https://www.anchorterminal.com/compare/mixpanel-vs-userpilot.md)
- [Mixpanel vs Woopra](https://www.anchorterminal.com/compare/mixpanel-vs-woopra.md)
- [Mostly Good Metrics vs Userpilot](https://www.anchorterminal.com/compare/mostly-good-metrics-vs-userpilot.md)
- [Mostly Good Metrics vs Woopra](https://www.anchorterminal.com/compare/mostly-good-metrics-vs-woopra.md)
- [OpenPanel vs Userpilot](https://www.anchorterminal.com/compare/openpanel-vs-userpilot.md)
- [OpenPanel vs Woopra](https://www.anchorterminal.com/compare/openpanel-vs-woopra.md)
- [Optimizely Experimentation vs Userpilot](https://www.anchorterminal.com/compare/optimizely-vs-userpilot.md)
- [Optimizely Experimentation vs Woopra](https://www.anchorterminal.com/compare/optimizely-vs-woopra.md)
- [Pendo vs Userpilot](https://www.anchorterminal.com/compare/pendo-vs-userpilot.md)
- [Pendo vs Woopra](https://www.anchorterminal.com/compare/pendo-vs-woopra.md)
- [PostHog vs Userpilot](https://www.anchorterminal.com/compare/posthog-vs-userpilot.md)
- [PostHog vs Woopra](https://www.anchorterminal.com/compare/posthog-vs-woopra.md)
- [Statsig vs Userpilot](https://www.anchorterminal.com/compare/statsig-vs-userpilot.md)
- [Statsig vs Woopra](https://www.anchorterminal.com/compare/statsig-vs-woopra.md)
- [Flagsmith vs Woopra](https://www.anchorterminal.com/compare/flagsmith-vs-woopra.md)
- [Harness Feature Management & Experimentation vs Woopra](https://www.anchorterminal.com/compare/harness-fme-vs-woopra.md)
- [Heap vs Userpilot](https://www.anchorterminal.com/compare/heap-vs-userpilot.md)
- [Heap vs Woopra](https://www.anchorterminal.com/compare/heap-vs-woopra.md)

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
