Identify a contact
Server-side identity: create or update a contact from whatever identities the developer’s backend knows. At least one of external_id, email or anonymous_id is required.
Resolution order is external_id, then email — external_id is the developer’s own primary key and the stronger claim. When an anonymous_id arrives alongside an identifying kind, the visitor it belonged to is folded in, attribution and all. Everything runs in one transaction: an identify that half-merged a visitor would be worse than one that failed.
Answers 201 when the contact was created, 200 when it already existed.
Authorizations
An organization API key, uk_sk_live_… or uk_sk_test_…. The environment is resolved from the stored key row on every request, never from a request parameter.
Body
The developer's own primary key for this person.
The device id captured before this person was known.
First touch, captured on the visitor at first load and preserved through a merge. All fields optional; empty means unknown.