Skip to main content
πŸ”Œ This is a fallback, not an alternative integration path. Autoplay MCP is how you connect an agent β€” it’s the only way to reach onboarding progress, proactivity criteria, guided tours, and confirmed completions. Use this endpoint only when your platform can’t speak MCP but can call an external HTTP endpoint (for example a chatbot builder that only supports β€œcustom actions”). You never need both.
This endpoint returns a user’s recent in-app footsteps β€” pages viewed, buttons clicked, forms submitted β€” as the same envelope get_live_user_activity returns over MCP.

🌐 The endpoint

Auth β€” Authorization: Bearer YOUR_MCP_KEY (the mcp_key from your Quickstart product registration).
  • 401 β€” token missing or invalid.
  • 403 β€” the token is valid but its external_id doesn’t match the {product_id} in the URL (a key for product A can’t read product B).

πŸ“¦ The response

The envelope, with actions ordered oldest β†’ newest:
Each action carries type, title, description, timestamp_start, timestamp_end, raw_url, canonical_url, and index. The user_id lives on the envelope, not inside each action.
Test it from your terminal before wiring anything. Use a real product id, a user_id you’ve actually identified, and your mcp_key:
A 200 with a populated actions array means the endpoint is working and the user has footsteps on file.

🚫 What this endpoint does not give you

Activity is the only surface with a REST fallback. Everything else is MCP-only: If you need any of those, connect over MCP.

⏳ Before activity appears

This endpoint returns something only once Autoplay has recorded activity for that user β€” your activity source must be wired up and the user must have generated events. With PostHog (the source used in the Quickstart): complete Quickstart Steps 1–3 β€” the snippet, posthog.identify(...), product registration, and the ingest webhook. Other sources (e.g. Amplitude) follow the same idea through their own ingestion path.
Identifying a user alone stores nothing. With PostHog, activity is built only from $pageview and $autocapture events (page loads, clicks, form submits) β€” a user who has identified but not yet browsed returns an empty actions array. Other sources capture their own equivalent events. Make sure capture is enabled and the user has actually navigated or clicked before expecting results.
Retention β€” this is short-lived β€œlive” memory, not an archive:
  • 4-hour TTL (ACTIVITY_TTL_S = 14400) β€” older activity expires.
  • 50 actions max per user (ACTIVITY_MAX_EVENTS = 50) β€” older ones are trimmed.