Head to head · Event analytics · October 2026 research run

Heap vs Userpilot

Userpilot scores 64.4 (B) on agent readiness against Heap's 48.2 (D), and leads in 6 of 7 scored categories. Heap leads on transparency & trust. Both do event analytics.

Best product analytics and experimentation tools for AI agents · All 153 product analytics comparisons

Which one, for what

Heap D

Best for An agent that records backend events or enriches user and account properties in a company's existing Heap project, or that files privacy deletions.

Ahead on

  • Transparency & trust, 66 against 59

Watch for

No query, export or definitions endpoint in the developer reference. Reading results needs the app, Heap Connect or the MCP server we couldn't read

Userpilot B

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

Ahead on

  • Reliability, 82 against 47
  • Schema & documentation, 71 against 57
  • Agent ergonomics, 60 against 49
  • Security & auth, 62 against 41
  • Payments & pricing, 30 against 25
  • Maintenance & community, 79 against 63

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

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Reliability Userpilot +35

Heap 47

Graded on the server-side API with the hosted lines. Heap's status page is an Atlassian Statuspage at status.heap.io, the address heap.io links to, which sits on a heap.io host whose terms bar robots, so it wasn't read on 4 November. The same page also answers at heap.statuspage.io, but that copy names status.heap.io as its canonical address and no Heap page links to it, so it wasn't used. The 7 October component and incident readings came only from Statuspage's JSON API, which this run doesn't use, so they are struck. No component list could be read (0) and no incident history could be read (5). Rate limits published with numbers, 30 requests per 30 seconds per identity on track and 15,000 events a minute per environment on bulk track, per the 7 October check, not re-read on 4 November (15). No 429 or backoff guidance found, but track takes an idempotency_key, per the 7 October check, not re-read on 4 November (7, the earlier partial kept, since keys without any 429 or backoff guidance meet none of the line's values in full). Contentsquare's support package states 99.5 per cent availability for Product Analytics Pro and Enterprise, measured on the user interface, per the 7 October check, not re-read on 4 November (10). The API carries no beta label (10). 0+5+15+7+10+10 = 47.

Userpilot 82

Graded on the hosted service with the hosted lines. Better Stack status page at status.userpilot.io with components for ingestion in three regions, the SDKs, the web application APIs and the website (20). From August to November 2026 the page shows only scheduled maintenance windows of two to four hours, with no incidents; the MCP server isn't a component (30). 600 requests a minute per token for the real-time APIs, but no numbers for MCP or export (12 of 15). 429 documented with exponential backoff guidance; no Retry-After or idempotency guidance (10 of 15). The SLA is a custom Enterprise contract term, not published (0). The MCP server is 1.0.0 in the registry with no beta label (10). 20+30+12+10+0+10 = 82.

Security & auth Userpilot +21

Heap 41

Track, identify and property calls carry no secret. The OpenAPI fragment declares an empty security requirement and the only identifier is the environment ID that the web snippet publishes. User deletion uses one admin-generated API key per account, exchanged for a temporary token. No scopes or rotation guidance found (8 of 30). Ingest is write-only by design. Deletion of up to 10,000 users has no confirmation step (5). The API returns no untrusted content (10). Audit logs are unchecked because help.heap.io answered with a bot check, so none are counted (0). Contentsquare publishes a signed security.txt valid to 31 January 2028 on contentsquare.com (not on heap.io), a disclosure policy, an invitation-only YesWeHack bounty, SOC 2 Type II and ISO 27001 (18). Total 41. Per the 7 October check, not re-read on 4 November, because heap.io and contentsquare.com terms bar robots and crawling.

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.

Maintenance & community Userpilot +16

Heap 63

heap.js 5.3.17 shipped on 6 October 2026, but that is the browser SDK. The server-side track reference last changed on 3 June 2026 and has no changelog, so we scored this line between the two (20 of 30). heap.js 5.3.15, 5.3.16 and 5.3.17 and Android Core 0.9.5 fall inside 90 days (20). Dated public changelogs and a community at community.contentsquare.com, whose response times we didn't check (8). Client SDKs for web, Android, iOS, React Native and Flutter are current. The Node server client is from 2016 (10). CI not checked (5). Total 63. Per the 7 October check, not re-read on 4 November (developers.heap.io is paused on its terms). The three heap.js releases still fall inside the 90 days from 6 August.

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.

Schema & documentation Userpilot +14

Heap 57

OpenAPI 3.1 fragments are embedded in the Markdown of the track and identify pages. No single spec file was found, the property pages we read had empty fragments and user deletion is prose only (15). llms.txt and a .md copy of every page (10). Descriptions state purpose, limits and reserved keys, with little on when not to use a call (12). Required fields are marked and lengths stated in prose, with string types throughout, no enums and a free-form properties object (8). Curl examples on every page. Track and identify document 200 and 400 with an empty object, and only user deletion describes its error body (7). SDK changelogs are dated, but no changelog or version policy for the server-side API was found. Paths mix unversioned, v1 and v0 (5). Total 57. Per the 7 October check, not re-read on 4 November, because developers.heap.io sits on a host whose terms bar robots.

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.

Agent ergonomics Userpilot +11

Heap 49

Responses are an empty object, so context cost is small, but there is nothing to read back (15). No pagination or filtering because the reference has no read endpoint. Bulk calls take 1,000 events or users (5). Errors on track and identify are a bare 400. User deletion returns err.message with 401 and 404 explained (6). idempotency_key on track and bulk track, and property writes overwrite, so retries are safe (15). Track needs three fields and timestamps default to now. No current official server SDK was found. heap-api on npm is 1.0.1 from 2016 (8). Total 49. Per the 7 October check, not re-read on 4 November, because developers.heap.io sits on a host whose terms bar robots.

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.

Transparency & trust Heap +7

Heap 66

Closed service with published terms, now Contentsquare's master services agreement (15). The DPA (June 2026) caps Product Analytics retention at 37 months from collection unless agreed otherwise and links the sub-processor list. heap.io still carries a 2019 website terms page from Heap Inc. beside the Contentsquare documents (22). No deprecation policy for the API was found. Contentsquare's docs carry migration guides from the Heap SDKs to the CSQ SDK without an end date that we found (4). Sub-processor list (June 2026) with locations, AWS in Ireland, Frankfurt and Virginia and OpenAI for Sense Chat (20). Total 61. Per the 7 October check, not re-read on 4 November, apart from the heap.io website terms (still dated 30 August 2019) and Contentsquare's terms of service (29 January 2026).

Userpilot 59

A closed service with terms dated 23 April 2024 (15 of 30). The privacy policy of 11 March 2025 names a DPO and two sub-processors (AWS and Cloudflare), while the security page names AWS, Google Cloud and Stripe. The DPA is on request and no customer-data retention period is stated (14 of 30). No deprecation policy or dated API notices found (3 of 20). Sub-processors are named with addresses but not data locations, though an EU ingestion endpoint exists (10 of 20). 15+14+3+10 = 42.

Score by category

CategoryWeight this runHeapUserpilotEdge
Reliability16%204782Userpilot +35
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.25771Userpilot +14
Agent ergonomics13%16.24960Userpilot +11
Security & auth14%17.54162Userpilot +21
Payments & pricing10%12.52530Userpilot +5
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.86379Userpilot +16
Transparency & trust7%8.86659Heap +7
Negative events≤1500
TotalD 48.2/100B 64.4/100

Facts side by side

FactHeapUserpilot
KindHTTP APIHTTP API
VendorContentsquare (Content Square, Inc.)Userpilot, Inc.
Hosted endpointhttps://heapanalytics.comhttps://mcp.userpilot.io/mcp
TransportsHTTPHTTP, Streamable HTTP
AuthOAuth or keyOAuth or key
PricingFreemiumPaid
x402nono
LicenceProprietary service under Contentsquare's master services agreement. The React Native bridge and the Node client on npm are MITnone
Read-only variant documentednono
llms.txtyesyes
MCP registrynot listedio.userpilot/mcp
Last release2026-10-062026-10-11
Terms last updatedno date given2024-04-23
Privacy policy last updatedcouldn't be read2025-03-11
Customer content may train modelsyesnot found in the text
Terms restrict automated accessnot found in the textnot found in the text
Terms restrict benchmarkingyesnot found in the text
Terms or service can change without noticenot found in the textyes
Arbitration or class-action waivernot found in the textyes
Popularity213 npm/wk236k npm/wk

How the scores have moved

Verdicts

Heap

Heap's server-side API suits an agent that records events. Limits are published, bulk calls take 1,000 items and track accepts an idempotency key. The API returns no analytics, and ingest calls carry no secret beyond the environment ID. Heap's help centre lists a Heap MCP article, which a bot check stopped us reading, so the MCP server is ungraded.

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.

Before you call either

Heap

  1. Send EU projects to https://c.eu.heap-api.com instead of https://heapanalytics.com. The path stays the same
  2. Pass one of identity or user_id on track, never both
  3. Set idempotency_key on every track event so a retry doesn't duplicate it
  4. Stay under 30 requests per 30 seconds per identity, or batch up to 1,000 events in one bulk call
  5. For deletion, exchange the app_id and API key of the Main Production environment for a token first. Any other environment ID returns Unauthorized

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

Questions

Which is better for AI agents, Heap or Userpilot?

Userpilot scores 64.4 (B) on agent readiness against Heap's 48.2 (D), and leads in 6 of 7 scored categories. Heap leads on transparency & trust.

Do Heap and Userpilot need an API key?

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

Can an agent call Heap and Userpilot without installing anything?

Yes. Heap has a hosted endpoint at https://heapanalytics.com and Userpilot at https://mcp.userpilot.io/mcp.

Other comparisons with Heap or Userpilot

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.