API Reference

This document covers the Userlens HTTP API for direct integration or server-side event forwarding.

Authentication

All API requests require your Write Code in the Authorization header using HTTP Basic Auth.

The token must be base64 encoded in the format write_code: (with trailing colon, empty password):

const authToken = Buffer.from(`${WRITE_CODE}:`).toString('base64');
// Header: Authorization: Basic <authToken>

Get your Write Code from Userlens Settings.


Base URLs

Purpose
URL

Identify & Group

https://events.userlens.io

Event Tracking

https://raw.userlens.io


Endpoints

1. Identify User

Sync user traits with Userlens. Call this when a user signs up, logs in, or updates their profile.

Request Body:

Fields:

Field
Type
Required
Description

type

string

Yes

Must be "identify"

userId

string

Yes

Unique user identifier

source

string

Yes

"userlens-js-analytics-sdk" or "userlens-restapi"

traits

object

Yes

User properties

Example (Node.js):


2. Group (Company/Organization)

Associate a user with a company or organization. Essential for B2B analytics.

Request Body:

Fields:

Field
Type
Required
Description

type

string

Yes

Must be "group"

groupId

string

Yes

Unique company/org identifier

userId

string

Yes

User being associated

source

string

Yes

"userlens-js-analytics-sdk" or "userlens-restapi"

traits

object

No

Company properties


3. Track Custom Event

Send a single custom event directly to Userlens.

Request Body:

Fields:

Field
Type
Required
Description

type

string

Yes

Must be "track"

userId

string

Yes

User who performed action

source

string

Yes

"userlens-restapi"

event

string

Yes

Event name

properties

object

No

Event metadata


4. Forward SDK Events (Batch)

Forward events collected by the Userlens SDK. This is the endpoint your proxy server should use.

Request Body:

Event Types:

Type

is_raw

event Value

Description

Click

true

XPath selector

Auto-captured click

Custom

false

Event name

Manually tracked via pushEvent()

Page View

N/A

"$ul_pageview"

Navigation event


Event Schemas

Raw Event (Auto-Captured Click)

Pushed Event (Custom)

Page View Event

DOM Snapshot Node


Response Codes

Code
Meaning

200

Success

400

Invalid request body

401

Invalid or missing Write Code

500

Server error


Rate Limits

The API is designed for high throughput. Contact support if you're sending more than 10,000 events per minute.


SDK Methods Reference

EventCollector

Configuration Options

React Hook


Next Steps

Last updated