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" }}'
| Field | Required | Description |
|---|---|---|
| deviceId | ✓ | The device to link. Must already exist — an unknown device returns 404 |
| userId | ✓ | Your internal user ID |
| — | User email — shown in the dashboard and live feed | |
| meta | — | Any 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.
| Field | Required | Description |
|---|---|---|
| deviceId | ✓ | Stable device identifier |
| platform | — | web | ios | android. Anything else is coerced to web — unlike /track/, this endpoint does not accept "server" |
| stableId | — | Reinstall-stable identifier, used to re-link a device after an app reinstall |
| deviceInfo | — | Object with browser/OS/device details |
| appVersion | — | Build version — also records a release sighting |
| osVersion | — | Operating system version |