{
  "data": {
    "a": {
      "slug": "heap",
      "name": "Heap",
      "vendor": "Contentsquare (Content Square, Inc.)",
      "vendorUrl": "https://www.heap.io",
      "kind": "http-api",
      "category": "product-analytics",
      "summary": "Heap is Contentsquare's product analytics service, which captures web and mobile interactions automatically. Its server-side HTTP API accepts custom events, identities, user and account properties, and user deletion requests.",
      "url": "https://www.anchorterminal.com/tools/heap",
      "markdownUrl": "https://www.anchorterminal.com/tools/heap.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/heap.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/heap.json",
      "license": "Proprietary service under Contentsquare's master services agreement. The React Native bridge and the Node client on npm are MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://heapanalytics.com",
      "packages": [
        {
          "registry": "npm",
          "name": "heap-api"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. Track, identify and property calls need only `app_id`, the environment ID shown on the Projects page and used in the web snippet, with no secret. User deletion needs an API key that an admin generates under Account, Manage, Privacy \u0026 Security, exchanged by HTTP Basic for a temporary Bearer token. No OAuth, scopes or partner approval were found in the developer docs.",
      "pricing": "freemium",
      "pricingNotes": "Free plan up to 10,000 sessions a month with six months of history, APIs included, so an agent's owner can start without a contract. Growth is priced by estimate after signup, and Pro and Premier by quote. Whether signup asks for a card was not established (https://www.heap.io/pricing, checked 2026-10-07).",
      "priceSummary": "Freemium",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs or on the pricing page (checked 2026-10-07).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 213,
        "pypiWeekly": null,
        "asOf": "2026-10-07"
      },
      "docsUrl": "https://developers.heap.io",
      "llmsTxt": "https://developers.heap.io/llms.txt",
      "capabilities": [
        "analytics.events"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "llms-txt",
        "free-tier",
        "no-oauth",
        "write-only",
        "eu-region",
        "status-page",
        "soc2",
        "sales-led"
      ],
      "lastRelease": "2026-10-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 53,
        "grade": "D",
        "agentReady": false,
        "rank": 643,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 10,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 49,
          "maintenance": 63,
          "payments": 25,
          "reliability": 72,
          "schema": 57,
          "security": 41,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-10-07"
        },
        "negative": 0,
        "verdict": "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.",
        "bestFor": "An agent that records backend events or enriches user and account properties in a company's existing Heap project, or that files privacy deletions.",
        "strengths": [
          "Rate limits are published. Track allows 30 requests per 30 seconds per identity, and bulk track 15,000 events a minute per environment",
          "Track and bulk track accept an `idempotency_key`, and bulk calls take up to 1,000 events or users per request",
          "llms.txt and a Markdown copy of every developer page, with an OpenAPI 3.1 fragment embedded in the reference pages we read",
          "Free plan with up to 10,000 sessions a month and six months of history, with APIs and the User Privacy API included",
          "Sub-processor list (June 2026) names AWS regions in Ireland, Frankfurt and Virginia, and the customer chooses Europe or the USA"
        ],
        "weaknesses": [
          "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",
          "Track, identify and property calls carry no secret. The only identifier is the environment ID that the web snippet also publishes",
          "Three incidents marked major on status.heap.io in the 90 days to 7 October 2026, one of them still open",
          "Paid plans have no public price. Growth asks for an estimate after signup, and Pro and Premier say Contact Us",
          "Error responses for track and identify are documented as a 400 with an empty object, and no 429 guidance was found"
        ],
        "agentNotes": [
          "Send EU projects to https://c.eu.heap-api.com instead of https://heapanalytics.com. The path stays the same",
          "Pass one of `identity` or `user_id` on track, never both",
          "Set `idempotency_key` on every track event so a retry doesn't duplicate it",
          "Stay under 30 requests per 30 seconds per identity, or batch up to 1,000 events in one bulk call",
          "For deletion, exchange the app_id and API key of the Main Production environment for a token first. Any other environment ID returns Unauthorized"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 53
          }
        ],
        "editorialScores": {
          "ergonomics": 49,
          "maintenance": 63,
          "payments": 25,
          "reliability": 72,
          "schema": 57,
          "security": 41,
          "transparency": 61
        },
        "provenanceScore": 66
      },
      "connect": {
        "http": "curl -X POST \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"app_id\": \"11\",\n    \"identity\": \"alice@example.com\",\n    \"event\": \"Send Transactional Email\",\n    \"properties\": {\"subject\": \"Welcome to My App!\"}\n  }' \\\n  https://heapanalytics.com/api/track"
      },
      "letme": {
        "capability": "https://letme.dev/analytics.events",
        "tool": "https://letme.dev/heap"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Free",
          "unit": "month",
          "usd": 0,
          "note": "up to 10,000 sessions a month"
        }
      ],
      "provenance": {
        "legalEntity": "Content Square, Inc.",
        "domain": "heap.io",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://www.heap.io/legal/heap-master-services-agreement",
        "privacy": "https://www.heap.io/privacy",
        "statusPage": "https://status.heap.io",
        "changelog": "https://developers.heap.io/docs/heapjs-5-changelog",
        "securityTxt": "none",
        "checked": "2026-10-07",
        "notes": [
          "The Heap master services agreement URL redirects to Contentsquare's terms at contentsquare.com/legal/terms-conditions. The entity schedule names Content Square, Inc., 60 Hudson St, New York, for customers in the Americas, and other Contentsquare entities elsewhere.",
          "heap.io/terms is a website terms of use from Heap Inc., a Delaware corporation, last updated 30 August 2019. heap.io/privacy says the Heap policy has been consolidated into Contentsquare's.",
          "API calls go to heapanalytics.com and, for EU projects, c.eu.heap-api.com. Both are Heap domains named in the vendor's docs, not heap.io itself.",
          "www.heap.io/.well-known/security.txt and heapanalytics.com/.well-known/security.txt return 404. contentsquare.com publishes a signed security.txt that expires on 31 January 2028.",
          "RDAP has no service for .io through rdap.org, so the registration date of heap.io was not established.",
          "The only changelogs found are for the SDKs (heap.js 5, Android, iOS, React Native, Flutter). No changelog for the server-side API was found."
        ],
        "score": 66
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/heap.json",
      "live": {
        "slug": "heap",
        "probe": {
          "target": "https://heapanalytics.com",
          "method": "get",
          "lastAt": "2026-10-09T11:46:30.254943562Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 326,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 327,
          "p95ms24h": 413,
          "samples24h": 218,
          "samples30d": 218,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 93
            },
            {
              "date": "2026-10-09",
              "probes": 125,
              "ok": 125
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.heap.io",
          "indicator": "minor",
          "summary": "Minor Service Outage",
          "checkedAt": "2026-10-09T11:39:35.160667038Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "heap-api",
            "version": "1.0.1",
            "seenAt": "2026-10-08T16:15:35.796443098Z"
          }
        ],
        "npmWeekly": 213,
        "securityTxt": {
          "url": "https://heap.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:30.698501929Z"
        },
        "pages": [
          {
            "url": "https://developers.heap.io/docs/heapjs-5-changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:42.369829827Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "65fc0b011bef"
          },
          {
            "url": "https://www.heap.io/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:28:12.583035239Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4e41474dc6c8"
          },
          {
            "url": "https://www.heap.io/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:28:15.159309204Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9848a05d56da"
          },
          {
            "url": "https://www.heap.io/legal/heap-master-services-agreement",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:28:10.261171384Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f20f9632d33b"
          }
        ],
        "updatedAt": "2026-10-09T11:46:30.254943562Z"
      }
    },
    "answer": "Heap scores 53 (D) on agent readiness against Woopra's 44.4 (E), and leads in 5 of 7 scored categories. Woopra leads on reliability and payments \u0026 pricing.",
    "b": {
      "slug": "woopra",
      "name": "Woopra",
      "vendor": "Woopra, Inc.",
      "vendorUrl": "https://www.woopra.com",
      "kind": "http-api",
      "category": "product-analytics",
      "summary": "Woopra is a hosted customer journey and product analytics service from Woopra, Inc., an Appier affiliate. Its HTTP tracking API records events and visitor properties, and its REST API returns saved reports, profiles and raw session logs.",
      "url": "https://www.anchorterminal.com/tools/woopra",
      "markdownUrl": "https://www.anchorterminal.com/tools/woopra.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/woopra.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/woopra.json",
      "repo": "https://github.com/Woopra/js-client-tracker",
      "license": "Proprietary service under Woopra's terms of service. The browser tracker and the SDKs on GitHub are MIT, and the Node package is ISC",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://www.woopra.com/rest/3.10",
      "packages": [
        {
          "registry": "npm",
          "name": "woopra"
        },
        {
          "registry": "npm",
          "name": "@woopra/browser-tracker"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. REST calls use HTTP Basic with an App ID and Secret Key that each user generates on the Access Keys tab of the members area. Tracking calls need only the project name unless the owner enables Secure Tracking, which adds a generated ID and secret sent by HTTP Basic. No OAuth, scopes or partner approval were found in the docs.",
      "pricing": "paid",
      "pricingNotes": "Pro starts at $999 a month for 5 million events, with a 30-day trial that an agent's owner can start without a contract. Overage fees apply past the event quota, at rates the pricing page does not state. Enterprise is quoted. Whether the trial signup asks for a card was not established (https://www.woopra.com/pricing, checked 2026-10-09).",
      "priceSummary": "$999 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs or on the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 415,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://docs.woopra.com",
      "llmsTxt": "https://docs.woopra.com/llms.txt",
      "capabilities": [
        "analytics.query",
        "analytics.events",
        "analytics.funnels"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "llms-txt",
        "basic-auth",
        "no-oauth",
        "free-trial",
        "status-page",
        "rate-limits",
        "export",
        "sales-led"
      ],
      "lastRelease": "2026-03-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 44.4,
        "grade": "E",
        "agentReady": false,
        "rank": 779,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 12,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 45,
          "maintenance": 9,
          "payments": 30,
          "reliability": 80,
          "schema": 45,
          "security": 22,
          "transparency": 61
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "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.",
        "bestFor": "An agent that reads a company's existing Woopra reports, looks up or edits customer profiles, or exports raw sessions on a schedule.",
        "strengths": [
          "Rate limits are published per project at 300 calls a minute, 600 an hour and 3,000 a day, and limited calls return 429",
          "Report endpoints take `limit`, `offset`, a `snapshot` ID for consistent paging past 1,000 records, and `timeframe_from` and `timeframe_to` overrides",
          "status.woopra.com (Statuspage) lists no incidents for August, September or October 2026 across Data Processing, Data Collection and the front-end application",
          "`/logs/export` returns raw sessions as line-separated JSON, and `/logs/import` loads them in bulk and returns a batch ID to poll",
          "The terms of service (10 December 2025) name nine sub-processors with addresses and countries, and say the customer owns the tracking data"
        ],
        "weaknesses": [
          "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",
          "`/track/ce` and `/track/identify` accept data with only the project name unless the owner turns on Secure Tracking",
          "No API changelog, deprecation policy or SLA was found. The terms promise commercially reasonable efforts on availability",
          "Server SDKs are old. The Node, Python, Java and Rails repositories were last committed to in 2017, and npm `woopra` is 1.0.2",
          "The terms of service forbid using any robot, spider, scraper or other automated means to access the Site, a term defined to include the Services",
          "Most REST operations document no response schema, and the `/profiles` page repeats the `/trends` description"
        ],
        "agentNotes": [
          "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`",
          "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/`",
          "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",
          "Reuse the `snapshot` ID from the first response when paging with `offset`, or pages past 1,000 records may not agree",
          "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",
          "When reading `/logs/export`, delete the profile named in each `type: \"delete\"` line. The following lines log its data again under `new_id`"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 44.4
          }
        ],
        "editorialScores": {
          "ergonomics": 45,
          "maintenance": 9,
          "payments": 30,
          "reliability": 80,
          "schema": 45,
          "security": 22,
          "transparency": 45
        },
        "provenanceScore": 77
      },
      "connect": {
        "http": "curl \\\n--user \u003cApp Id\u003e:\u003cSecret Key\u003e \\\n\"https://www.woopra.com/rest/3.10/trends?project=mybusiness.com\u0026start_day=2017-4-12\u0026end_day=2017-5-19\u0026report_id=83mYcoe6jX\""
      },
      "letme": {
        "capability": "https://letme.dev/analytics.query",
        "tool": "https://letme.dev/woopra"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Pro, 5 million events a month",
          "unit": "month",
          "usd": 999,
          "note": "starting price, overage fees apply"
        }
      ],
      "provenance": {
        "legalEntity": "Woopra, Inc.",
        "domain": "woopra.com",
        "domainRegistered": "2007-02-23",
        "endpointOnVendorDomain": true,
        "terms": "https://www.woopra.com/tos",
        "privacy": "https://www.woopra.com/privacy",
        "statusPage": "https://status.woopra.com",
        "changelog": "",
        "securityTxt": "unknown",
        "checked": "2026-10-09",
        "notes": [
          "The terms of service (last updated 10 December 2025) are a contract with Woopra, Inc., its subsidiaries and affiliated companies including Appier, and cover the website and the subscription services in one document. They give 600 California St, Fl 11, San Francisco, CA 94108 as the legal address.",
          "The privacy policy (last updated 1 August 2025) covers customers and site visitors and says it does not apply to end-user data that Woopra processes for customers. It names Appier Netherlands B.V. as EU representative. No public DPA was found, and the GDPR page says a copy is sent on request.",
          "The REST and tracking endpoints answer under https://www.woopra.com/rest and https://www.woopra.com/track, on the vendor's own domain. robots.txt on that host disallows both paths, and we sent no request to either.",
          "www.woopra.com/.well-known/security.txt timed out twice with no bytes received, so its presence is unknown.",
          "status.woopra.com is an Atlassian Statuspage site. Its address was not linked from the pages we read and was tried directly.",
          "No changelog for the API was found. docs.woopra.com/changelog returns 404, and the browser tracker's CHANGELOG.md stops at v5.3.0 of 15 September 2021.",
          "RDAP for woopra.com gives a registration date of 2007-02-23 and Spaceship, Inc. as registrar."
        ],
        "score": 77
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/woopra.json",
      "live": {
        "slug": "woopra",
        "probe": {
          "target": "https://www.woopra.com/rest/3.10",
          "method": "get",
          "lastAt": "2026-10-09T11:46:46.117292866Z",
          "lastOk": false,
          "lastStatus": 500,
          "lastMs": 40,
          "lastNote": "server error",
          "authRequired": false,
          "uptime24h": 0,
          "uptime30d": 0,
          "p50ms24h": 0,
          "p95ms24h": 0,
          "samples24h": 44,
          "samples30d": 44,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 44,
              "ok": 0
            }
          ],
          "outages": [
            {
              "start": "2026-10-09T07:40:43.906309049Z",
              "end": "0001-01-01T00:00:00Z",
              "note": "HTTP 500 server error"
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.woopra.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-09T11:41:17.894640446Z"
        },
        "updatedAt": "2026-10-09T11:46:46.117292866Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Contentsquare (Content Square, Inc.)",
        "b": "Woopra, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://heapanalytics.com",
        "b": "https://www.woopra.com/rest/3.10",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "not published",
        "b": "$999 per month (plan)",
        "name": "Price for analytics events"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Contentsquare's master services agreement. The React Native bridge and the Node client on npm are MIT",
        "b": "Proprietary service under Woopra's terms of service. The browser tracker and the SDKs on GitHub are MIT, and the Node package is ISC",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-06",
        "b": "2026-03-16",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2025-12-10",
        "name": "Terms last updated"
      },
      {
        "a": "couldn't be read",
        "b": "2025-08-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "213 npm/wk",
        "b": "415 npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Heap scores 53 (D) on agent readiness against Woopra's 44.4 (E), and leads in 5 of 7 scored categories. Woopra leads on reliability and payments \u0026 pricing.",
        "question": "Which is better for AI agents, Heap or Woopra?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Heap and Woopra need an API key?"
      },
      {
        "answer": "Yes. Heap has a hosted endpoint at https://heapanalytics.com and Woopra at https://www.woopra.com/rest/3.10.",
        "question": "Can an agent call Heap and Woopra without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 57 against 45",
          "Security \u0026 auth, 41 against 22",
          "Maintenance \u0026 community, 63 against 9"
        ],
        "also": null,
        "goodFor": "An agent that records backend events or enriches user and account properties in a company's existing Heap project, or that files privacy deletions.",
        "slug": "heap",
        "watchFor": "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"
      },
      {
        "aheadOn": [
          "Reliability, 80 against 72",
          "Payments \u0026 pricing, 30 against 25"
        ],
        "also": null,
        "goodFor": "An agent that reads a company's existing Woopra reports, looks up or edits customer profiles, or exports raw sessions on a schedule.",
        "slug": "woopra",
        "watchFor": "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"
      }
    ],
    "job": {
      "capability": "analytics.events",
      "name": "Analytics events"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amplitude-vs-woopra.json",
        "title": "Amplitude vs Woopra",
        "url": "https://www.anchorterminal.com/compare/amplitude-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/countly-vs-woopra.json",
        "title": "Countly vs Woopra",
        "url": "https://www.anchorterminal.com/compare/countly-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fullstory-vs-woopra.json",
        "title": "Fullstory vs Woopra",
        "url": "https://www.anchorterminal.com/compare/fullstory-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/growthbook-vs-woopra.json",
        "title": "GrowthBook vs Woopra",
        "url": "https://www.anchorterminal.com/compare/growthbook-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mixpanel-vs-woopra.json",
        "title": "Mixpanel vs Woopra",
        "url": "https://www.anchorterminal.com/compare/mixpanel-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/optimizely-vs-woopra.json",
        "title": "Optimizely Experimentation vs Woopra",
        "url": "https://www.anchorterminal.com/compare/optimizely-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pendo-vs-woopra.json",
        "title": "Pendo vs Woopra",
        "url": "https://www.anchorterminal.com/compare/pendo-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/posthog-vs-woopra.json",
        "title": "PostHog vs Woopra",
        "url": "https://www.anchorterminal.com/compare/posthog-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/statsig-vs-woopra.json",
        "title": "Statsig vs Woopra",
        "url": "https://www.anchorterminal.com/compare/statsig-vs-woopra"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amplitude-vs-heap.json",
        "title": "Amplitude vs Heap",
        "url": "https://www.anchorterminal.com/compare/amplitude-vs-heap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/countly-vs-heap.json",
        "title": "Countly vs Heap",
        "url": "https://www.anchorterminal.com/compare/countly-vs-heap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fullstory-vs-heap.json",
        "title": "Fullstory vs Heap",
        "url": "https://www.anchorterminal.com/compare/fullstory-vs-heap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/growthbook-vs-heap.json",
        "title": "GrowthBook vs Heap",
        "url": "https://www.anchorterminal.com/compare/growthbook-vs-heap"
      },
      {
        "json": "https://www.anchorterminal.com/compare/heap-vs-mixpanel.json",
        "title": "Heap vs Mixpanel",
        "url": "https://www.anchorterminal.com/compare/heap-vs-mixpanel"
      },
      {
        "json": "https://www.anchorterminal.com/compare/heap-vs-pendo.json",
        "title": "Heap vs Pendo",
        "url": "https://www.anchorterminal.com/compare/heap-vs-pendo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/heap-vs-posthog.json",
        "title": "Heap vs PostHog",
        "url": "https://www.anchorterminal.com/compare/heap-vs-posthog"
      },
      {
        "json": "https://www.anchorterminal.com/compare/heap-vs-statsig.json",
        "title": "Heap vs Statsig",
        "url": "https://www.anchorterminal.com/compare/heap-vs-statsig"
      }
    ],
    "scores": [
      {
        "by": 8,
        "edge": "woopra",
        "heap": 72,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16,
        "woopra": 80
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 12,
        "edge": "heap",
        "heap": 57,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13,
        "woopra": 45
      },
      {
        "by": 4,
        "edge": "heap",
        "heap": 49,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13,
        "woopra": 45
      },
      {
        "by": 19,
        "edge": "heap",
        "heap": 41,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14,
        "woopra": 22
      },
      {
        "by": 5,
        "edge": "woopra",
        "heap": 25,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10,
        "woopra": 30
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 54,
        "edge": "heap",
        "heap": 63,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7,
        "woopra": 9
      },
      {
        "by": 3,
        "edge": "heap",
        "heap": 64,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7,
        "woopra": 61
      }
    ],
    "summary": "Heap scores 53 (D) on agent readiness against Woopra's 44.4 (E), and leads in 5 of 7 scored categories. Woopra leads on reliability and payments \u0026 pricing. Both do analytics events.",
    "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.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/heap-vs-woopra",
    "json": "https://www.anchorterminal.com/compare/heap-vs-woopra.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/heap-vs-woopra.md",
    "slim": "https://www.anchorterminal.com/compare/heap-vs-woopra.min.md"
  },
  "markdown": "Heap scores 53 (D) on agent readiness against Woopra's 44.4 (E), and leads in 5 of 7 scored categories. Woopra leads on reliability and payments \u0026 pricing. Both do analytics events.\n\n- Heap: grade D, 53/100, rank #643 of 842. Markdown https://www.anchorterminal.com/tools/heap.md · JSON https://www.anchorterminal.com/api/v1/tools/heap.json\n- Woopra: grade E, 44.4/100, rank #779 of 842. Markdown https://www.anchorterminal.com/tools/woopra.md · JSON https://www.anchorterminal.com/api/v1/tools/woopra.json\n\n## Which one, for what\n\n### Heap (D)\n\nGood 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.\n\nAhead on:\n- Schema \u0026 documentation, 57 against 45\n- Security \u0026 auth, 41 against 22\n- Maintenance \u0026 community, 63 against 9\n\nWatch 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\n\n### Woopra (E)\n\nGood for: An agent that reads a company's existing Woopra reports, looks up or edits customer profiles, or exports raw sessions on a schedule.\n\nAhead on:\n- Reliability, 80 against 72\n- Payments \u0026 pricing, 30 against 25\n\nWatch 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\n\n\n## Score by category\n\n| Category | Weight | Heap | Woopra | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 72 | 80 | Woopra +8 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 57 | 45 | Heap +12 |\n| Agent ergonomics | 13% (16.2 this run) | 49 | 45 | Heap +4 |\n| Security \u0026 auth | 14% (17.5 this run) | 41 | 22 | Heap +19 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 25 | 30 | Woopra +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 63 | 9 | Heap +54 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 64 | 61 | Heap +3 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **53 · D** | **44.4 · E** | |\n\n## Facts side by side\n\n| Fact | Heap | Woopra |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Contentsquare (Content Square, Inc.) | Woopra, Inc. |\n| Hosted endpoint | `https://heapanalytics.com` | `https://www.woopra.com/rest/3.10` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Paid |\n| Price for analytics events | not published | $999 per month (plan) |\n| x402 | no | no |\n| Licence | Proprietary service under Contentsquare's master services agreement. The React Native bridge and the Node client on npm are MIT | Proprietary service under Woopra's terms of service. The browser tracker and the SDKs on GitHub are MIT, and the Node package is ISC |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-06 | 2026-03-16 |\n| Terms last updated | no date given | 2025-12-10 |\n| Privacy policy last updated | couldn't be read | 2025-08-01 |\n| Customer content may train models | yes | not found in the text |\n| Terms restrict automated access | not found in the text | yes |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 213 npm/wk | 415 npm/wk |\n\n## Verdicts\n\n**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.\n\n**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.\n\n## Before you call either\n\n### Heap\n\n1. Send EU projects to https://c.eu.heap-api.com instead of https://heapanalytics.com. The path stays the same\n2. Pass one of `identity` or `user_id` on track, never both\n3. Set `idempotency_key` on every track event so a retry doesn't duplicate it\n4. Stay under 30 requests per 30 seconds per identity, or batch up to 1,000 events in one bulk call\n5. For deletion, exchange the app_id and API key of the Main Production environment for a token first. Any other environment ID returns Unauthorized\n\n### Woopra\n\n1. 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`\n2. 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/`\n3. 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\n4. Reuse the `snapshot` ID from the first response when paging with `offset`, or pages past 1,000 records may not agree\n5. 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\n6. When reading `/logs/export`, delete the profile named in each `type: \"delete\"` line. The following lines log its data again under `new_id`\n\n## Questions\n\n### Which is better for AI agents, Heap or Woopra?\n\nHeap scores 53 (D) on agent readiness against Woopra's 44.4 (E), and leads in 5 of 7 scored categories. Woopra leads on reliability and payments \u0026 pricing.\n\n### Do Heap and Woopra need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Heap and Woopra without installing anything?\n\nYes. Heap has a hosted endpoint at https://heapanalytics.com and Woopra at https://www.woopra.com/rest/3.10.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/heap-vs-woopra.json, and with the fewest tokens: https://www.anchorterminal.com/compare/heap-vs-woopra.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"heap\", \"b\": \"woopra\"}`. From a terminal: `anchor compare heap woopra`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/heap.json and https://www.anchorterminal.com/api/v1/tools/woopra.json\n\n## Other comparisons with Heap or Woopra\n\n- [Amplitude vs Woopra](https://www.anchorterminal.com/compare/amplitude-vs-woopra.md)\n- [Countly vs Woopra](https://www.anchorterminal.com/compare/countly-vs-woopra.md)\n- [Fullstory vs Woopra](https://www.anchorterminal.com/compare/fullstory-vs-woopra.md)\n- [GrowthBook vs Woopra](https://www.anchorterminal.com/compare/growthbook-vs-woopra.md)\n- [Mixpanel vs Woopra](https://www.anchorterminal.com/compare/mixpanel-vs-woopra.md)\n- [Optimizely Experimentation vs Woopra](https://www.anchorterminal.com/compare/optimizely-vs-woopra.md)\n- [Pendo vs Woopra](https://www.anchorterminal.com/compare/pendo-vs-woopra.md)\n- [PostHog vs Woopra](https://www.anchorterminal.com/compare/posthog-vs-woopra.md)\n- [Statsig vs Woopra](https://www.anchorterminal.com/compare/statsig-vs-woopra.md)\n- [Amplitude vs Heap](https://www.anchorterminal.com/compare/amplitude-vs-heap.md)\n- [Countly vs Heap](https://www.anchorterminal.com/compare/countly-vs-heap.md)\n- [Fullstory vs Heap](https://www.anchorterminal.com/compare/fullstory-vs-heap.md)\n- [GrowthBook vs Heap](https://www.anchorterminal.com/compare/growthbook-vs-heap.md)\n- [Heap vs Mixpanel](https://www.anchorterminal.com/compare/heap-vs-mixpanel.md)\n- [Heap vs Pendo](https://www.anchorterminal.com/compare/heap-vs-pendo.md)\n- [Heap vs PostHog](https://www.anchorterminal.com/compare/heap-vs-posthog.md)\n- [Heap vs Statsig](https://www.anchorterminal.com/compare/heap-vs-statsig.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Heap vs Woopra",
        "url": ""
      }
    ],
    "description": "Heap scores 53 (D) on agent readiness against Woopra's 44.4 (E), and leads in 5 of 7 scored categories. Woopra leads on reliability and payments \u0026 pricing. Both do analytics events. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Heap D 53",
      "Woopra E 44.4",
      "scores"
    ],
    "h1": "Heap vs Woopra",
    "image": "https://www.anchorterminal.com/assets/og/compare-heap-vs-woopra.png",
    "path": "/compare/heap-vs-woopra",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Heap vs Woopra for AI agents, D 53 vs E 44.4 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/heap-vs-woopra"
  },
  "tokens": {
    "markdown": 2200,
    "slim": 680
  },
  "version": 1
}
