When to Use
Use the HTTP Track API when:- Recording events from server-side code (e.g., payment completed, subscription changed)
- Tracking actions that don’t happen in a browser
- Syncing events from external systems (CRM, billing, support)
userpilot.track() instead when:
- User performs action in your web application
- You need the event immediately available for content triggering
Prerequisites
- User must already exist in Userpilot (identified via SDK or API)
- Userpilot API Key from Settings > Environment
Endpoint
Headers
Request Body
Example
Example cURL Command
Response
A successful event tracking returns HTTP status code 202 Accepted.Common Issues
Related
- Identify User API - Create users before tracking events
- JavaScript SDK track() - Browser-based event tracking
- Events Dashboard - View tracked events
- Funnel Reports - Analyze event sequences
FAQs
What's the difference between the Track Event API and SDK's userpilot.track()?
What's the difference between the Track Event API and SDK's userpilot.track()?
Use the Track Event API for server-side events, actions that don’t happen in a browser and use the JavaScript SDK’s userpilot.track() when the action happens in your web app and you need the event available immediately for content triggering.
How long does it take for a tracked event to appear in the dashboard?
How long does it take for a tracked event to appear in the dashboard?
Events may take up to 15 minutes to appear due to processing delay. If an event still hasn’t shown up after that, check that the request returned 202 Accepted and that user_id matches an already-identified user.
What data types can I send in metadata?
What data types can I send in metadata?
Only primitive types such as string, number, boolean, or null are supported currently and
nested objects/ arrays aren’t supported.
nested objects/ arrays aren’t supported.