Skip to content
IForevents Docs
IForevents Docs
HomeDashboardGitHubPrivacyTermsSecurityIntroduction
Support and SLA

Identify users

Attach your own user ids and profile fields to events

Identify adds what you know about a person (name, e-mail, traits) to their profile. It is optional and idempotent: the profile already exists from the first event sent with that id in X-User-Id, and calling identify again with the same custom_id updates it instead of creating a second user.

Request

POST /v1/events/identify with the project key:

curl -X POST https://api.iforevents.com/v1/events/identify \
  -H "X-Project-Key: <project key>" \
  -H "Content-Type: application/json" \
  -d '{"custom_id":"user-123","name":"Ada Lovelace","email":"[email protected]","properties":{"plan":"pro"}}'
FieldRequiredNotes
custom_idyesYour identifier for the person (database id, username, e-mail), the same value your events carry in X-User-Id
name, email, phone_numbernoShown on the user profile in the dashboard
propertiesnoAny other traits; stored as strings

Response

201 Created with the user record. Events keep using custom_id in X-User-Id; the uuid is IForevents' own key for the profile, which you need only for the privacy routes.

{"user":{"uuid":"0c9e6c1a-2b3d-4e5f-8a90-1b2c3d4e5f60","custom_id":"user-123"}}

In the Flutter SDK

await iforevents.identify(
  event: IdentifyEvent(
    customID: 'user-123',
    properties: {'email': '[email protected]', 'plan': 'pro'},
  ),
);

The SDK switches its X-User-Id from the anonymous id it generated to customID, keeps it across restarts and adds the header to every later event by itself. Device brand, model, OS and app version are collected automatically.

Privacy

Emails and names are personal data: only send what you need, and use /v1/privacy/subjects/{uuid} to export or erase a person on request.

On this page

RequestResponseIn the Flutter SDKPrivacy