DocumentationIdentify API

Identify API

Called by linkUser() internally. Links a device to a real user identity on the backend.

POST /api/tracker/link-user/

bash
curl -X POST https://www.nohmo.in/api/tracker/link-user/ \
-H "Content-Type: application/json" \
-H "X-API-Key: pk_xxxx" \
-d '{
"deviceId": "a1b2c3d4...",
"userId": "user_123",
"email": "alice@example.com",
"meta": { "plan": "pro" }
}'
FieldRequiredDescription
deviceIdThe device to link. Must already exist — an unknown device returns 404
userIdYour internal user ID
emailUser email — shown in the dashboard and live feed
metaAny extra JSON metadata to store on the device

Note: The field is email, not userEmail. Authentication is by API key alone, so there is no projectId to send.

Linking is retroactive: every event and session already recorded for this device that had no user attached is updated to this userId, so a signup keeps the anonymous journey that led to it.

Note: If the same userId has been seen on another device before, Nohmo merges the user email and metadata onto this device automatically.

POST /api/tracker/identify/

A different endpoint, for a different job: it creates or updates the device itself — platform, app version, OS — and is what the SDK calls on session start. It does not link a user; use link-user/ above for that.

FieldRequiredDescription
deviceIdStable device identifier
platformweb | ios | android. Anything else is coerced to web — unlike /track/, this endpoint does not accept "server"
stableIdReinstall-stable identifier, used to re-link a device after an app reinstall
deviceInfoObject with browser/OS/device details
appVersionBuild version — also records a release sighting
osVersionOperating system version