> For the complete documentation index, see [llms.txt](https://docs.mediarithmics.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mediarithmics.io/api-reference/userpoint/userpoint-identifiers.md).

# Userpoint Identifiers

Operations related to **UserPoint Identifiers**, the various identifiers used to recognize and merge UserPoints across devices and channels. Supports multiple identifier types:

* **User Agents** - Device/browser IDs with vector\_id and mappings (cookies, mobile IDs)
* **User Accounts** - Authenticated user identifiers (compartment\_id + user\_account\_id pairs)
* **User Emails** - Hashed email addresses for cross-device matching

Multiple identifiers can be associated with a single UserPoint, enabling cross-device identity resolution and automatic UserPoint merging when common identifiers are discovered.

Relevant documentation:

* [User identifiers](https://developer.mediarithmics.io/user-points/user-identifiers/userdevicetechnicalid)
* [User identifiers association](https://developer.mediarithmics.io/data-ingestion/bulk-processing/user-identifiers-association)

## POST /datamarts/{datamart\_id}/user\_identifiers\_association\_declarations

> Declare a user point association

```json
{"openapi":"3.1.1","info":{"title":"mediarithmics openapi API","version":"1.0.0"},"tags":[{"name":"Userpoint Identifiers","description":"Operations related to **UserPoint Identifiers**, the various identifiers used to recognize and merge UserPoints across devices and channels. Supports multiple identifier types:\n- **User Agents** - Device/browser IDs with vector_id and mappings (cookies, mobile IDs)\n- **User Accounts** - Authenticated user identifiers (compartment_id + user_account_id pairs)\n- **User Emails** - Hashed email addresses for cross-device matching\n\nMultiple identifiers can be associated with a single UserPoint, enabling cross-device identity resolution and automatic UserPoint merging when common identifiers are discovered.\n\nRelevant documentation:\n- [User identifiers](https://developer.mediarithmics.io/user-points/user-identifiers/userdevicetechnicalid)\n- [User identifiers association](https://developer.mediarithmics.io/data-ingestion/bulk-processing/user-identifiers-association)\n"}],"servers":[{"url":"http://api.mediarithmics.local/v1","description":"Development server"},{"url":"https://api.mediarithmics.com/v1","description":"Production server"}],"paths":{"/datamarts/{datamart_id}/user_identifiers_association_declarations":{"post":{"operationId":"associateUserIdentifiers","tags":["Userpoint Identifiers"],"requestBody":{"description":"The user identifiers association declaration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserIdentifiersAssociationDeclarationResource"}}},"required":true},"summary":"Declare a user point association","responses":{"200":{"$ref":"#/components/responses/simple"},"400":{"$ref":"#/components/responses/error"},"401":{"$ref":"#/components/responses/error"},"403":{"$ref":"#/components/responses/error"},"404":{"$ref":"#/components/responses/error"},"500":{"$ref":"#/components/responses/error"},"503":{"$ref":"#/components/responses/error"}},"description":"","parameters":[{"name":"datamart_id","description":"Datamart id","schema":{"type":"integer","format":"int64"},"required":true,"in":"path","explode":false,"style":"simple"}]}}},"components":{"schemas":{"UserIdentifiersAssociationDeclarationResource":{"type":"object","properties":{"identifiers":{"type":"array","items":{"$ref":"#/components/schemas/UserIdentifierResource"},"readOnly":false}},"required":["identifiers"]},"UserIdentifierResource":{"discriminator":{"propertyName":"type","mapping":{"USER_ACCOUNT":"#/components/schemas/UserAccountIdentifierResource","USER_EMAIL":"#/components/schemas/UserEmailIdentifierResource","USER_AGENT":"#/components/schemas/UserAgentIdentifierResource"}},"oneOf":[{"$ref":"#/components/schemas/UserAccountIdentifierResource"},{"$ref":"#/components/schemas/UserEmailIdentifierResource"},{"$ref":"#/components/schemas/UserAgentIdentifierResource"}],"properties":{"type":{"type":"string","enum":["USER_ACCOUNT","USER_EMAIL","USER_AGENT"]}},"required":["type"]},"UserAccountIdentifierResource":{"type":"object","properties":{"compartment_id":{"type":"string","readOnly":false},"user_account_id":{"type":"string","readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["compartment_id","user_account_id"]},"UserEmailIdentifierResource":{"type":"object","properties":{"hash":{"type":"string","readOnly":false},"email":{"type":"string","readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["hash"]},"UserAgentIdentifierResource":{"type":"object","properties":{"user_agent_id":{"type":"string","readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["user_agent_id"]},"errorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"error_code":{"type":"string","enum":["AUTHENTICATION_ERROR","AUTHORIZATION_ERROR","BAD_REQUEST_DATA","BAD_REQUEST_FORMAT","CONSTRAINT_VIOLATION_EXCEPTION","EMAIL_ALREADY_EXISTS","MAC_ERROR","RESOURCE_NOT_FOUND","SERVICE_UNAVAILABLE","TOKEN_ERROR"]},"error_id":{"type":"string"},"error":{"type":"string"}},"required":["error","error_code","error_id","status"]}},"responses":{"simple":{"description":"Success response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]}},"required":["status"]}}}},"error":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}}}}
```

## GET /datamarts/{datamart\_id}/email\_identifiers/{email\_hash}/providers/{technical\_name}

> Find user email identifier provider

```json
{"openapi":"3.1.1","info":{"title":"mediarithmics openapi API","version":"1.0.0"},"tags":[{"name":"Userpoint Identifiers","description":"Operations related to **UserPoint Identifiers**, the various identifiers used to recognize and merge UserPoints across devices and channels. Supports multiple identifier types:\n- **User Agents** - Device/browser IDs with vector_id and mappings (cookies, mobile IDs)\n- **User Accounts** - Authenticated user identifiers (compartment_id + user_account_id pairs)\n- **User Emails** - Hashed email addresses for cross-device matching\n\nMultiple identifiers can be associated with a single UserPoint, enabling cross-device identity resolution and automatic UserPoint merging when common identifiers are discovered.\n\nRelevant documentation:\n- [User identifiers](https://developer.mediarithmics.io/user-points/user-identifiers/userdevicetechnicalid)\n- [User identifiers association](https://developer.mediarithmics.io/data-ingestion/bulk-processing/user-identifiers-association)\n"}],"servers":[{"url":"http://api.mediarithmics.local/v1","description":"Development server"},{"url":"https://api.mediarithmics.com/v1","description":"Production server"}],"paths":{"/datamarts/{datamart_id}/email_identifiers/{email_hash}/providers/{technical_name}":{"get":{"summary":"Find user email identifier provider","description":"","tags":["Userpoint Identifiers"],"responses":{"200":{"description":"Success !","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]},"data":{"$ref":"#/components/schemas/UserEmailIdentifierProviderResource"}},"required":["data","status"]}}}},"400":{"$ref":"#/components/responses/error"},"401":{"$ref":"#/components/responses/error"},"403":{"$ref":"#/components/responses/error"},"404":{"$ref":"#/components/responses/error"},"500":{"$ref":"#/components/responses/error"},"503":{"$ref":"#/components/responses/error"}},"parameters":[{"in":"path","style":"simple","name":"datamart_id","required":true,"schema":{"type":"integer","format":"int64"},"explode":false},{"explode":false,"in":"path","style":"simple","required":true,"schema":{"$ref":"#/components/schemas/EmailHash"},"name":"email_hash"},{"style":"simple","name":"technical_name","schema":{"type":"string"},"explode":false,"required":true,"in":"path"}],"operationId":"findUserEmailIdentifierProvider"}}},"components":{"schemas":{"UserEmailIdentifierProviderResource":{"type":"object","properties":{"last_modified_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"status":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"active":{"type":"boolean","default":false,"readOnly":false},"technical_name":{"type":"string","readOnly":false}},"required":["technical_name"]},"errorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"error_code":{"type":"string","enum":["AUTHENTICATION_ERROR","AUTHORIZATION_ERROR","BAD_REQUEST_DATA","BAD_REQUEST_FORMAT","CONSTRAINT_VIOLATION_EXCEPTION","EMAIL_ALREADY_EXISTS","MAC_ERROR","RESOURCE_NOT_FOUND","SERVICE_UNAVAILABLE","TOKEN_ERROR"]},"error_id":{"type":"string"},"error":{"type":"string"}},"required":["error","error_code","error_id","status"]},"EmailHash":{"allOf":[{"$ref":"#/components/schemas/UserIdentifier"},{"type":"object","properties":{"hash":{"type":"string","readOnly":false},"email":{"type":"string","readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["hash"]}]},"UserIdentifier":{"type":"object"}},"responses":{"error":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}}}}
```

## PUT /datamarts/{datamart\_id}/email\_identifiers/{email\_hash}/providers/{technical\_name}

> Update user email identifier provider

```json
{"openapi":"3.1.1","info":{"title":"mediarithmics openapi API","version":"1.0.0"},"tags":[{"name":"Userpoint Identifiers","description":"Operations related to **UserPoint Identifiers**, the various identifiers used to recognize and merge UserPoints across devices and channels. Supports multiple identifier types:\n- **User Agents** - Device/browser IDs with vector_id and mappings (cookies, mobile IDs)\n- **User Accounts** - Authenticated user identifiers (compartment_id + user_account_id pairs)\n- **User Emails** - Hashed email addresses for cross-device matching\n\nMultiple identifiers can be associated with a single UserPoint, enabling cross-device identity resolution and automatic UserPoint merging when common identifiers are discovered.\n\nRelevant documentation:\n- [User identifiers](https://developer.mediarithmics.io/user-points/user-identifiers/userdevicetechnicalid)\n- [User identifiers association](https://developer.mediarithmics.io/data-ingestion/bulk-processing/user-identifiers-association)\n"}],"servers":[{"url":"http://api.mediarithmics.local/v1","description":"Development server"},{"url":"https://api.mediarithmics.com/v1","description":"Production server"}],"paths":{"/datamarts/{datamart_id}/email_identifiers/{email_hash}/providers/{technical_name}":{"put":{"requestBody":{"description":"The new value of the identifier","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserEmailIdentifierProviderResource"}}},"required":true},"tags":["Userpoint Identifiers"],"parameters":[{"name":"datamart_id","in":"path","schema":{"type":"integer","format":"int64"},"style":"simple","required":true,"explode":false},{"schema":{"$ref":"#/components/schemas/EmailHash"},"explode":false,"name":"email_hash","style":"simple","in":"path","required":true},{"in":"path","name":"technical_name","explode":false,"style":"simple","required":true,"schema":{"type":"string"}},{"in":"query","style":"form","description":"Force replace","explode":true,"schema":{"type":"boolean","default":false},"name":"force_replace","required":false}],"operationId":"updateUserEmailIdentifierProvider","summary":"Update user email identifier provider","description":"","responses":{"200":{"description":"Success !","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]},"data":{"$ref":"#/components/schemas/UserEmailIdentifierProviderResource"}},"required":["data","status"]}}}},"400":{"$ref":"#/components/responses/error"},"401":{"$ref":"#/components/responses/error"},"403":{"$ref":"#/components/responses/error"},"404":{"$ref":"#/components/responses/error"},"500":{"$ref":"#/components/responses/error"},"503":{"$ref":"#/components/responses/error"}}}}},"components":{"schemas":{"UserEmailIdentifierProviderResource":{"type":"object","properties":{"last_modified_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"status":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"active":{"type":"boolean","default":false,"readOnly":false},"technical_name":{"type":"string","readOnly":false}},"required":["technical_name"]},"EmailHash":{"allOf":[{"$ref":"#/components/schemas/UserIdentifier"},{"type":"object","properties":{"hash":{"type":"string","readOnly":false},"email":{"type":"string","readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["hash"]}]},"UserIdentifier":{"type":"object"},"errorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"error_code":{"type":"string","enum":["AUTHENTICATION_ERROR","AUTHORIZATION_ERROR","BAD_REQUEST_DATA","BAD_REQUEST_FORMAT","CONSTRAINT_VIOLATION_EXCEPTION","EMAIL_ALREADY_EXISTS","MAC_ERROR","RESOURCE_NOT_FOUND","SERVICE_UNAVAILABLE","TOKEN_ERROR"]},"error_id":{"type":"string"},"error":{"type":"string"}},"required":["error","error_code","error_id","status"]}},"responses":{"error":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}}}}
```

## DELETE /datamarts/{datamart\_id}/email\_identifiers/{email\_hash}/providers/{technical\_name}

> Delete user email identifier provider

```json
{"openapi":"3.1.1","info":{"title":"mediarithmics openapi API","version":"1.0.0"},"tags":[{"name":"Userpoint Identifiers","description":"Operations related to **UserPoint Identifiers**, the various identifiers used to recognize and merge UserPoints across devices and channels. Supports multiple identifier types:\n- **User Agents** - Device/browser IDs with vector_id and mappings (cookies, mobile IDs)\n- **User Accounts** - Authenticated user identifiers (compartment_id + user_account_id pairs)\n- **User Emails** - Hashed email addresses for cross-device matching\n\nMultiple identifiers can be associated with a single UserPoint, enabling cross-device identity resolution and automatic UserPoint merging when common identifiers are discovered.\n\nRelevant documentation:\n- [User identifiers](https://developer.mediarithmics.io/user-points/user-identifiers/userdevicetechnicalid)\n- [User identifiers association](https://developer.mediarithmics.io/data-ingestion/bulk-processing/user-identifiers-association)\n"}],"servers":[{"url":"http://api.mediarithmics.local/v1","description":"Development server"},{"url":"https://api.mediarithmics.com/v1","description":"Production server"}],"paths":{"/datamarts/{datamart_id}/email_identifiers/{email_hash}/providers/{technical_name}":{"delete":{"tags":["Userpoint Identifiers"],"responses":{"200":{"$ref":"#/components/responses/simple"},"400":{"$ref":"#/components/responses/error"},"401":{"$ref":"#/components/responses/error"},"403":{"$ref":"#/components/responses/error"},"404":{"$ref":"#/components/responses/error"},"500":{"$ref":"#/components/responses/error"},"503":{"$ref":"#/components/responses/error"}},"parameters":[{"required":true,"in":"path","name":"datamart_id","style":"simple","schema":{"type":"integer","format":"int64"},"explode":false},{"name":"email_hash","explode":false,"schema":{"$ref":"#/components/schemas/EmailHash"},"in":"path","style":"simple","required":true},{"in":"path","name":"technical_name","style":"simple","required":true,"schema":{"type":"string"},"explode":false}],"description":"","operationId":"deleteUserEmailIdentifierProvider","summary":"Delete user email identifier provider"}}},"components":{"responses":{"simple":{"description":"Success response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]}},"required":["status"]}}}},"error":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}},"schemas":{"errorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"error_code":{"type":"string","enum":["AUTHENTICATION_ERROR","AUTHORIZATION_ERROR","BAD_REQUEST_DATA","BAD_REQUEST_FORMAT","CONSTRAINT_VIOLATION_EXCEPTION","EMAIL_ALREADY_EXISTS","MAC_ERROR","RESOURCE_NOT_FOUND","SERVICE_UNAVAILABLE","TOKEN_ERROR"]},"error_id":{"type":"string"},"error":{"type":"string"}},"required":["error","error_code","error_id","status"]},"EmailHash":{"allOf":[{"$ref":"#/components/schemas/UserIdentifier"},{"type":"object","properties":{"hash":{"type":"string","readOnly":false},"email":{"type":"string","readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["hash"]}]},"UserIdentifier":{"type":"object"}}}}
```

## GET /datamarts/{datamart\_id}/mum\_ids/{mum\_id}/mappings

> Get MUM\_ID mappings

```json
{"openapi":"3.1.1","info":{"title":"mediarithmics openapi API","version":"1.0.0"},"tags":[{"name":"Userpoint Identifiers","description":"Operations related to **UserPoint Identifiers**, the various identifiers used to recognize and merge UserPoints across devices and channels. Supports multiple identifier types:\n- **User Agents** - Device/browser IDs with vector_id and mappings (cookies, mobile IDs)\n- **User Accounts** - Authenticated user identifiers (compartment_id + user_account_id pairs)\n- **User Emails** - Hashed email addresses for cross-device matching\n\nMultiple identifiers can be associated with a single UserPoint, enabling cross-device identity resolution and automatic UserPoint merging when common identifiers are discovered.\n\nRelevant documentation:\n- [User identifiers](https://developer.mediarithmics.io/user-points/user-identifiers/userdevicetechnicalid)\n- [User identifiers association](https://developer.mediarithmics.io/data-ingestion/bulk-processing/user-identifiers-association)\n"}],"servers":[{"url":"http://api.mediarithmics.local/v1","description":"Development server"},{"url":"https://api.mediarithmics.com/v1","description":"Production server"}],"paths":{"/datamarts/{datamart_id}/mum_ids/{mum_id}/mappings":{"get":{"parameters":[{"name":"datamart_id","schema":{"type":"string"},"in":"path","explode":false,"required":true,"style":"simple"},{"style":"simple","in":"path","explode":false,"required":true,"schema":{"type":"string"},"name":"mum_id"}],"operationId":"getMumIdMappings","tags":["Userpoint Identifiers"],"responses":{"200":{"description":"Success !","content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer"},"status":{"type":"string","enum":["ok"]},"max_results":{"type":"integer"},"first_result":{"type":"integer"},"total":{"type":"integer"},"data":{"type":"array","items":{"$ref":"#/components/schemas/UserAgentIdMappingResource"}}},"required":["count","data","first_result","max_results","status","total"]}}}},"400":{"$ref":"#/components/responses/error"},"401":{"$ref":"#/components/responses/error"},"403":{"$ref":"#/components/responses/error"},"404":{"$ref":"#/components/responses/error"},"500":{"$ref":"#/components/responses/error"},"503":{"$ref":"#/components/responses/error"}},"summary":"Get MUM_ID mappings","description":""}}},"components":{"schemas":{"UserAgentIdMappingResource":{"type":"object","properties":{"user_agent_id":{"$ref":"#/components/schemas/UserAgentId"},"realm_name":{"type":"string","readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["last_activity_ts","realm_name","user_agent_id"]},"UserAgentId":{"allOf":[{"$ref":"#/components/schemas/UserIdentifier"},{"type":"object"}]},"UserIdentifier":{"type":"object"},"errorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"error_code":{"type":"string","enum":["AUTHENTICATION_ERROR","AUTHORIZATION_ERROR","BAD_REQUEST_DATA","BAD_REQUEST_FORMAT","CONSTRAINT_VIOLATION_EXCEPTION","EMAIL_ALREADY_EXISTS","MAC_ERROR","RESOURCE_NOT_FOUND","SERVICE_UNAVAILABLE","TOKEN_ERROR"]},"error_id":{"type":"string"},"error":{"type":"string"}},"required":["error","error_code","error_id","status"]}},"responses":{"error":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}}}}
```

## GET /datamarts/{datamart\_id}/user\_identifiers/compartment\_id={compartment\_id}/user\_account\_id={user\_account\_id}

> Find user identifiers

```json
{"openapi":"3.1.1","info":{"title":"mediarithmics openapi API","version":"1.0.0"},"tags":[{"name":"Userpoint Identifiers","description":"Operations related to **UserPoint Identifiers**, the various identifiers used to recognize and merge UserPoints across devices and channels. Supports multiple identifier types:\n- **User Agents** - Device/browser IDs with vector_id and mappings (cookies, mobile IDs)\n- **User Accounts** - Authenticated user identifiers (compartment_id + user_account_id pairs)\n- **User Emails** - Hashed email addresses for cross-device matching\n\nMultiple identifiers can be associated with a single UserPoint, enabling cross-device identity resolution and automatic UserPoint merging when common identifiers are discovered.\n\nRelevant documentation:\n- [User identifiers](https://developer.mediarithmics.io/user-points/user-identifiers/userdevicetechnicalid)\n- [User identifiers association](https://developer.mediarithmics.io/data-ingestion/bulk-processing/user-identifiers-association)\n"}],"servers":[{"url":"http://api.mediarithmics.local/v1","description":"Development server"},{"url":"https://api.mediarithmics.com/v1","description":"Production server"}],"paths":{"/datamarts/{datamart_id}/user_identifiers/compartment_id={compartment_id}/user_account_id={user_account_id}":{"get":{"operationId":"findUserIdentifiersFromUserAccount","parameters":[{"required":true,"explode":false,"style":"simple","schema":{"type":"integer","format":"int64"},"name":"datamart_id","in":"path"},{"in":"path","schema":{"type":"integer","format":"int64"},"style":"simple","name":"compartment_id","explode":false,"required":true},{"name":"user_account_id","required":true,"explode":false,"in":"path","style":"simple","schema":{"type":"string"}}],"tags":["Userpoint Identifiers"],"description":"","responses":{"200":{"description":"Success !","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/UserIdentifierInfo"}},"total":{"type":"integer"},"status":{"type":"string","enum":["ok"]},"first_result":{"type":"integer"},"max_results":{"type":"integer"},"count":{"type":"integer"}},"required":["count","data","first_result","max_results","status","total"]}}}},"400":{"$ref":"#/components/responses/error"},"401":{"$ref":"#/components/responses/error"},"403":{"$ref":"#/components/responses/error"},"404":{"$ref":"#/components/responses/error"},"500":{"$ref":"#/components/responses/error"},"503":{"$ref":"#/components/responses/error"}},"summary":"Find user identifiers"}}},"components":{"schemas":{"UserIdentifierInfo":{"discriminator":{"propertyName":"type","mapping":{"USER_AGENT":"#/components/schemas/UserAgentIdentifierInfo","USER_DEVICE_POINT":"#/components/schemas/UserDevicePointIdentifierInfo","USER_EMAIL":"#/components/schemas/UserEmailIdentifierInfo","USER_POINT":"#/components/schemas/UserPointIdentifierInfo","USER_ACCOUNT":"#/components/schemas/UserAccountIdentifierInfo"}},"oneOf":[{"$ref":"#/components/schemas/UserDevicePointIdentifierInfo"},{"$ref":"#/components/schemas/UserPointIdentifierInfo"},{"$ref":"#/components/schemas/UserAgentIdentifierInfo"},{"$ref":"#/components/schemas/UserEmailIdentifierInfo"},{"$ref":"#/components/schemas/UserAccountIdentifierInfo"}],"properties":{"type":{"type":"string","enum":["USER_DEVICE_POINT","USER_POINT","USER_AGENT","USER_EMAIL","USER_ACCOUNT"]}},"required":["type"]},"UserDevicePointIdentifierInfo":{"type":"object","properties":{"technical_identifiers":{"type":"array","items":{"$ref":"#/components/schemas/UserDeviceTechnicalIdentifierInfo"},"readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"device":{"$ref":"#/components/schemas/UserAgentInfo"},"id":{"$ref":"#/components/schemas/VectorId"},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["creation_ts","last_activity_ts","technical_identifiers"]},"UserDeviceTechnicalIdentifierInfo":{"type":"object","properties":{"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"user_agent_id":{"$ref":"#/components/schemas/UserAgentId"},"registry_id":{"type":"string","readOnly":false},"type":{"$ref":"#/components/schemas/DeviceIdRegistryType"}},"required":["creation_ts","last_activity_ts","registry_id","type","user_agent_id"]},"UserAgentId":{"allOf":[{"$ref":"#/components/schemas/UserIdentifier"},{"type":"object"}]},"UserIdentifier":{"type":"object"},"DeviceIdRegistryType":{"type":"string","enum":["INSTALLATION_ID","MUM_ID","NETWORK_DEVICE_ID","CUSTOM_DEVICE_ID","MOBILE_ADVERTISING_ID","MOBILE_VENDOR_ID","TV_ADVERTISING_ID","IP_V4_ADDRESS_ID","IP_V6_ADDRESS_ID"],"readOnly":false},"UserAgentInfo":{"type":"object","properties":{"carrier":{"type":"string","readOnly":false},"initial_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"browser_version":{"type":"string","readOnly":false},"model":{"type":"string","readOnly":false},"form_factor":{"$ref":"#/components/schemas/FormFactor"},"os_family":{"$ref":"#/components/schemas/OperatingSystemFamily"},"brand":{"type":"string","readOnly":false},"raw_value":{"type":"string","readOnly":false},"browser_family":{"$ref":"#/components/schemas/BrowserFamily"},"os_version":{"type":"string","readOnly":false}},"required":["form_factor","initial_ts","os_family"]},"FormFactor":{"type":"string","enum":["OTHER","PERSONAL_COMPUTER","SMART_TV","GAME_CONSOLE","SMARTPHONE","TABLET","WEARABLE_COMPUTER"],"readOnly":false},"OperatingSystemFamily":{"type":"string","enum":["OTHER","WINDOWS","MAC_OS","LINUX","ANDROID","IOS","TIZEN","WEB_OS","ANDROID_TV","GOOGLE_TV","TV_OS","FIRE_TV","ROKU_TV","TITAN_OS"],"readOnly":false},"BrowserFamily":{"type":"string","enum":["OTHER","CHROME","IE","FIREFOX","SAFARI","OPERA","STOCK_ANDROID","BOT","EMAIL_CLIENT","MICROSOFT_EDGE"],"readOnly":false},"VectorId":{"type":"string","description":"The vector id formatted as vec:id or the User device point id formatted as udp:id","pattern":"^(vec|udp):\\d+$"},"UserPointIdentifierInfo":{"type":"object","properties":{"user_point_id":{"type":"string","format":"uuid","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["user_point_id"]},"UserAgentIdentifierInfo":{"type":"object","properties":{"providers":{"type":"array","items":{"$ref":"#/components/schemas/UserAgentIdentifierProviderResource"},"readOnly":false},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/UserAgentIdMappingResource"},"readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"device":{"$ref":"#/components/schemas/UserAgentInfo"},"installation_ids":{"type":"array","items":{"$ref":"#/components/schemas/InstallationIdResource"},"readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"vector_id":{"$ref":"#/components/schemas/VectorId"}},"required":["creation_ts","installation_ids","last_activity_ts","mappings","providers","vector_id"]},"UserAgentIdentifierProviderResource":{"type":"object","properties":{"technical_name":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["technical_name"]},"UserAgentIdMappingResource":{"type":"object","properties":{"user_agent_id":{"$ref":"#/components/schemas/UserAgentId"},"realm_name":{"type":"string","readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["last_activity_ts","realm_name","user_agent_id"]},"InstallationIdResource":{"type":"object","properties":{"channel_id":{"type":"string","readOnly":false},"installation_id":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"last_seen_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["channel_id","installation_id"]},"UserEmailIdentifierInfo":{"type":"object","properties":{"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"email":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"providers":{"type":"array","items":{"$ref":"#/components/schemas/UserEmailIdentifierProviderResource"},"readOnly":false},"operator":{"type":"string","readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"hash":{"type":"string","readOnly":false}},"required":["creation_ts","hash","last_activity_ts","providers"]},"UserEmailIdentifierProviderResource":{"type":"object","properties":{"last_modified_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"status":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"active":{"type":"boolean","default":false,"readOnly":false},"technical_name":{"type":"string","readOnly":false}},"required":["technical_name"]},"UserAccountIdentifierInfo":{"type":"object","properties":{"user_account_id":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"compartment_id":{"type":"integer","default":0,"format":"int64","readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["creation_ts","user_account_id"]},"errorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"error_code":{"type":"string","enum":["AUTHENTICATION_ERROR","AUTHORIZATION_ERROR","BAD_REQUEST_DATA","BAD_REQUEST_FORMAT","CONSTRAINT_VIOLATION_EXCEPTION","EMAIL_ALREADY_EXISTS","MAC_ERROR","RESOURCE_NOT_FOUND","SERVICE_UNAVAILABLE","TOKEN_ERROR"]},"error_id":{"type":"string"},"error":{"type":"string"}},"required":["error","error_code","error_id","status"]}},"responses":{"error":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}}}}
```

## GET /datamarts/{datamart\_id}/user\_identifiers/{user\_identifier}

> Find user identifiers

```json
{"openapi":"3.1.1","info":{"title":"mediarithmics openapi API","version":"1.0.0"},"tags":[{"name":"Mediarithmics most used API","description":"These operations where flagged by mediarithmics teams as most useful."},{"name":"Userpoint Identifiers","description":"Operations related to **UserPoint Identifiers**, the various identifiers used to recognize and merge UserPoints across devices and channels. Supports multiple identifier types:\n- **User Agents** - Device/browser IDs with vector_id and mappings (cookies, mobile IDs)\n- **User Accounts** - Authenticated user identifiers (compartment_id + user_account_id pairs)\n- **User Emails** - Hashed email addresses for cross-device matching\n\nMultiple identifiers can be associated with a single UserPoint, enabling cross-device identity resolution and automatic UserPoint merging when common identifiers are discovered.\n\nRelevant documentation:\n- [User identifiers](https://developer.mediarithmics.io/user-points/user-identifiers/userdevicetechnicalid)\n- [User identifiers association](https://developer.mediarithmics.io/data-ingestion/bulk-processing/user-identifiers-association)\n"}],"servers":[{"url":"http://api.mediarithmics.local/v1","description":"Development server"},{"url":"https://api.mediarithmics.com/v1","description":"Production server"}],"paths":{"/datamarts/{datamart_id}/user_identifiers/{user_identifier}":{"get":{"description":"","operationId":"findUserIdentifiers","tags":["Userpoint Identifiers","Mediarithmics most used API"],"responses":{"200":{"description":"Success !","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer"},"count":{"type":"integer"},"status":{"type":"string","enum":["ok"]},"max_results":{"type":"integer"},"first_result":{"type":"integer"},"data":{"type":"array","items":{"$ref":"#/components/schemas/UserIdentifierInfo"}}},"required":["count","data","first_result","max_results","status","total"]}}}},"400":{"$ref":"#/components/responses/error"},"401":{"$ref":"#/components/responses/error"},"403":{"$ref":"#/components/responses/error"},"404":{"$ref":"#/components/responses/error"},"500":{"$ref":"#/components/responses/error"},"503":{"$ref":"#/components/responses/error"}},"parameters":[{"explode":false,"schema":{"type":"integer","format":"int64"},"style":"simple","required":true,"in":"path","name":"datamart_id"},{"explode":false,"schema":{"$ref":"#/components/schemas/PublicUserIdentifiers"},"required":true,"name":"user_identifier","in":"path","style":"simple"}],"summary":"Find user identifiers"}}},"components":{"schemas":{"UserIdentifierInfo":{"discriminator":{"propertyName":"type","mapping":{"USER_AGENT":"#/components/schemas/UserAgentIdentifierInfo","USER_DEVICE_POINT":"#/components/schemas/UserDevicePointIdentifierInfo","USER_EMAIL":"#/components/schemas/UserEmailIdentifierInfo","USER_POINT":"#/components/schemas/UserPointIdentifierInfo","USER_ACCOUNT":"#/components/schemas/UserAccountIdentifierInfo"}},"oneOf":[{"$ref":"#/components/schemas/UserDevicePointIdentifierInfo"},{"$ref":"#/components/schemas/UserPointIdentifierInfo"},{"$ref":"#/components/schemas/UserAgentIdentifierInfo"},{"$ref":"#/components/schemas/UserEmailIdentifierInfo"},{"$ref":"#/components/schemas/UserAccountIdentifierInfo"}],"properties":{"type":{"type":"string","enum":["USER_DEVICE_POINT","USER_POINT","USER_AGENT","USER_EMAIL","USER_ACCOUNT"]}},"required":["type"]},"UserDevicePointIdentifierInfo":{"type":"object","properties":{"technical_identifiers":{"type":"array","items":{"$ref":"#/components/schemas/UserDeviceTechnicalIdentifierInfo"},"readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"device":{"$ref":"#/components/schemas/UserAgentInfo"},"id":{"$ref":"#/components/schemas/VectorId"},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["creation_ts","last_activity_ts","technical_identifiers"]},"UserDeviceTechnicalIdentifierInfo":{"type":"object","properties":{"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"user_agent_id":{"$ref":"#/components/schemas/UserAgentId"},"registry_id":{"type":"string","readOnly":false},"type":{"$ref":"#/components/schemas/DeviceIdRegistryType"}},"required":["creation_ts","last_activity_ts","registry_id","type","user_agent_id"]},"UserAgentId":{"allOf":[{"$ref":"#/components/schemas/UserIdentifier"},{"type":"object"}]},"UserIdentifier":{"type":"object"},"DeviceIdRegistryType":{"type":"string","enum":["INSTALLATION_ID","MUM_ID","NETWORK_DEVICE_ID","CUSTOM_DEVICE_ID","MOBILE_ADVERTISING_ID","MOBILE_VENDOR_ID","TV_ADVERTISING_ID","IP_V4_ADDRESS_ID","IP_V6_ADDRESS_ID"],"readOnly":false},"UserAgentInfo":{"type":"object","properties":{"carrier":{"type":"string","readOnly":false},"initial_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"browser_version":{"type":"string","readOnly":false},"model":{"type":"string","readOnly":false},"form_factor":{"$ref":"#/components/schemas/FormFactor"},"os_family":{"$ref":"#/components/schemas/OperatingSystemFamily"},"brand":{"type":"string","readOnly":false},"raw_value":{"type":"string","readOnly":false},"browser_family":{"$ref":"#/components/schemas/BrowserFamily"},"os_version":{"type":"string","readOnly":false}},"required":["form_factor","initial_ts","os_family"]},"FormFactor":{"type":"string","enum":["OTHER","PERSONAL_COMPUTER","SMART_TV","GAME_CONSOLE","SMARTPHONE","TABLET","WEARABLE_COMPUTER"],"readOnly":false},"OperatingSystemFamily":{"type":"string","enum":["OTHER","WINDOWS","MAC_OS","LINUX","ANDROID","IOS","TIZEN","WEB_OS","ANDROID_TV","GOOGLE_TV","TV_OS","FIRE_TV","ROKU_TV","TITAN_OS"],"readOnly":false},"BrowserFamily":{"type":"string","enum":["OTHER","CHROME","IE","FIREFOX","SAFARI","OPERA","STOCK_ANDROID","BOT","EMAIL_CLIENT","MICROSOFT_EDGE"],"readOnly":false},"VectorId":{"type":"string","description":"The vector id formatted as vec:id or the User device point id formatted as udp:id","pattern":"^(vec|udp):\\d+$"},"UserPointIdentifierInfo":{"type":"object","properties":{"user_point_id":{"type":"string","format":"uuid","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["user_point_id"]},"UserAgentIdentifierInfo":{"type":"object","properties":{"providers":{"type":"array","items":{"$ref":"#/components/schemas/UserAgentIdentifierProviderResource"},"readOnly":false},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/UserAgentIdMappingResource"},"readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"device":{"$ref":"#/components/schemas/UserAgentInfo"},"installation_ids":{"type":"array","items":{"$ref":"#/components/schemas/InstallationIdResource"},"readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"vector_id":{"$ref":"#/components/schemas/VectorId"}},"required":["creation_ts","installation_ids","last_activity_ts","mappings","providers","vector_id"]},"UserAgentIdentifierProviderResource":{"type":"object","properties":{"technical_name":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["technical_name"]},"UserAgentIdMappingResource":{"type":"object","properties":{"user_agent_id":{"$ref":"#/components/schemas/UserAgentId"},"realm_name":{"type":"string","readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["last_activity_ts","realm_name","user_agent_id"]},"InstallationIdResource":{"type":"object","properties":{"channel_id":{"type":"string","readOnly":false},"installation_id":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"last_seen_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["channel_id","installation_id"]},"UserEmailIdentifierInfo":{"type":"object","properties":{"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"email":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"providers":{"type":"array","items":{"$ref":"#/components/schemas/UserEmailIdentifierProviderResource"},"readOnly":false},"operator":{"type":"string","readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"hash":{"type":"string","readOnly":false}},"required":["creation_ts","hash","last_activity_ts","providers"]},"UserEmailIdentifierProviderResource":{"type":"object","properties":{"last_modified_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"status":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"active":{"type":"boolean","default":false,"readOnly":false},"technical_name":{"type":"string","readOnly":false}},"required":["technical_name"]},"UserAccountIdentifierInfo":{"type":"object","properties":{"user_account_id":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"compartment_id":{"type":"integer","default":0,"format":"int64","readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["creation_ts","user_account_id"]},"errorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"error_code":{"type":"string","enum":["AUTHENTICATION_ERROR","AUTHORIZATION_ERROR","BAD_REQUEST_DATA","BAD_REQUEST_FORMAT","CONSTRAINT_VIOLATION_EXCEPTION","EMAIL_ALREADY_EXISTS","MAC_ERROR","RESOURCE_NOT_FOUND","SERVICE_UNAVAILABLE","TOKEN_ERROR"]},"error_id":{"type":"string"},"error":{"type":"string"}},"required":["error","error_code","error_id","status"]},"PublicUserIdentifiers":{"type":"string","description":"User identifier in one of the following format : - a UUID (a.k.a userpoint id) - user_point_id=xxx where xxx is a UUID - compartment_id=xxx,user_account_id=yyy - user_agent_id=xxx - email_hash=xxx ","pattern":"^([0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}|user_point_id=[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}|compartment_id=\\d+,user_account_id=\\S+|user_account_id=\\S+(,compartment_id=\\d+)?|user_agent_id=\\S+|email_hash=\\S+)$"}},"responses":{"error":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}}}}
```

## GET /datamarts/{datamart\_id}/email\_identifiers/{email\_hash}/providers

> Find user email identifier providers

```json
{"openapi":"3.1.1","info":{"title":"mediarithmics openapi API","version":"1.0.0"},"tags":[{"name":"Userpoint Identifiers","description":"Operations related to **UserPoint Identifiers**, the various identifiers used to recognize and merge UserPoints across devices and channels. Supports multiple identifier types:\n- **User Agents** - Device/browser IDs with vector_id and mappings (cookies, mobile IDs)\n- **User Accounts** - Authenticated user identifiers (compartment_id + user_account_id pairs)\n- **User Emails** - Hashed email addresses for cross-device matching\n\nMultiple identifiers can be associated with a single UserPoint, enabling cross-device identity resolution and automatic UserPoint merging when common identifiers are discovered.\n\nRelevant documentation:\n- [User identifiers](https://developer.mediarithmics.io/user-points/user-identifiers/userdevicetechnicalid)\n- [User identifiers association](https://developer.mediarithmics.io/data-ingestion/bulk-processing/user-identifiers-association)\n"}],"servers":[{"url":"http://api.mediarithmics.local/v1","description":"Development server"},{"url":"https://api.mediarithmics.com/v1","description":"Production server"}],"paths":{"/datamarts/{datamart_id}/email_identifiers/{email_hash}/providers":{"get":{"responses":{"200":{"description":"Success !","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]},"total":{"type":"integer"},"count":{"type":"integer"},"data":{"type":"array","items":{"$ref":"#/components/schemas/UserEmailIdentifierProviderResource"}},"max_results":{"type":"integer"},"first_result":{"type":"integer"}},"required":["count","data","first_result","max_results","status","total"]}}}},"400":{"$ref":"#/components/responses/error"},"401":{"$ref":"#/components/responses/error"},"403":{"$ref":"#/components/responses/error"},"404":{"$ref":"#/components/responses/error"},"500":{"$ref":"#/components/responses/error"},"503":{"$ref":"#/components/responses/error"}},"parameters":[{"required":true,"style":"simple","in":"path","name":"datamart_id","explode":false,"schema":{"type":"integer","format":"int64"}},{"schema":{"$ref":"#/components/schemas/EmailHash"},"required":true,"in":"path","name":"email_hash","explode":false,"style":"simple"}],"tags":["Userpoint Identifiers"],"description":"","summary":"Find user email identifier providers","operationId":"findUserEmailIdentifierProviders"}}},"components":{"schemas":{"UserEmailIdentifierProviderResource":{"type":"object","properties":{"last_modified_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"status":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"active":{"type":"boolean","default":false,"readOnly":false},"technical_name":{"type":"string","readOnly":false}},"required":["technical_name"]},"errorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"error_code":{"type":"string","enum":["AUTHENTICATION_ERROR","AUTHORIZATION_ERROR","BAD_REQUEST_DATA","BAD_REQUEST_FORMAT","CONSTRAINT_VIOLATION_EXCEPTION","EMAIL_ALREADY_EXISTS","MAC_ERROR","RESOURCE_NOT_FOUND","SERVICE_UNAVAILABLE","TOKEN_ERROR"]},"error_id":{"type":"string"},"error":{"type":"string"}},"required":["error","error_code","error_id","status"]},"EmailHash":{"allOf":[{"$ref":"#/components/schemas/UserIdentifier"},{"type":"object","properties":{"hash":{"type":"string","readOnly":false},"email":{"type":"string","readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["hash"]}]},"UserIdentifier":{"type":"object"}},"responses":{"error":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}}}}
```

## GET /datamarts/{datamart\_id}/user\_points/compartment\_id={compartment\_id}/user\_account\_id={user\_account\_id}/user\_identifiers

> Find user identifiers by user account id

```json
{"openapi":"3.1.1","info":{"title":"mediarithmics openapi API","version":"1.0.0"},"tags":[{"name":"Userpoint Identifiers","description":"Operations related to **UserPoint Identifiers**, the various identifiers used to recognize and merge UserPoints across devices and channels. Supports multiple identifier types:\n- **User Agents** - Device/browser IDs with vector_id and mappings (cookies, mobile IDs)\n- **User Accounts** - Authenticated user identifiers (compartment_id + user_account_id pairs)\n- **User Emails** - Hashed email addresses for cross-device matching\n\nMultiple identifiers can be associated with a single UserPoint, enabling cross-device identity resolution and automatic UserPoint merging when common identifiers are discovered.\n\nRelevant documentation:\n- [User identifiers](https://developer.mediarithmics.io/user-points/user-identifiers/userdevicetechnicalid)\n- [User identifiers association](https://developer.mediarithmics.io/data-ingestion/bulk-processing/user-identifiers-association)\n"}],"servers":[{"url":"http://api.mediarithmics.local/v1","description":"Development server"},{"url":"https://api.mediarithmics.com/v1","description":"Production server"}],"paths":{"/datamarts/{datamart_id}/user_points/compartment_id={compartment_id}/user_account_id={user_account_id}/user_identifiers":{"get":{"summary":"Find user identifiers by user account id","description":"","responses":{"200":{"description":"Success !","content":{"application/json":{"schema":{"type":"object","properties":{"first_result":{"type":"integer"},"status":{"type":"string","enum":["ok"]},"count":{"type":"integer"},"total":{"type":"integer"},"data":{"type":"array","items":{"$ref":"#/components/schemas/UserIdentifierInfo"}},"max_results":{"type":"integer"}},"required":["count","data","first_result","max_results","status","total"]}}}},"400":{"$ref":"#/components/responses/error"},"401":{"$ref":"#/components/responses/error"},"403":{"$ref":"#/components/responses/error"},"404":{"$ref":"#/components/responses/error"},"500":{"$ref":"#/components/responses/error"},"503":{"$ref":"#/components/responses/error"}},"operationId":"findUserIdentifiersByCompartmentIdUserAccount","tags":["Userpoint Identifiers"],"parameters":[{"style":"simple","required":true,"in":"path","name":"datamart_id","explode":false,"schema":{"type":"integer","format":"int64"}},{"explode":false,"name":"compartment_id","schema":{"type":"integer","format":"int64"},"in":"path","required":true,"style":"simple"},{"name":"user_account_id","explode":false,"required":true,"in":"path","style":"simple","schema":{"type":"string"}},{"style":"form","in":"query","schema":{"type":"array","items":{"$ref":"#/components/schemas/UserIdentifierType"}},"explode":true,"name":"user_identifier_type_filter","required":false}]}}},"components":{"schemas":{"UserIdentifierInfo":{"discriminator":{"propertyName":"type","mapping":{"USER_AGENT":"#/components/schemas/UserAgentIdentifierInfo","USER_DEVICE_POINT":"#/components/schemas/UserDevicePointIdentifierInfo","USER_EMAIL":"#/components/schemas/UserEmailIdentifierInfo","USER_POINT":"#/components/schemas/UserPointIdentifierInfo","USER_ACCOUNT":"#/components/schemas/UserAccountIdentifierInfo"}},"oneOf":[{"$ref":"#/components/schemas/UserDevicePointIdentifierInfo"},{"$ref":"#/components/schemas/UserPointIdentifierInfo"},{"$ref":"#/components/schemas/UserAgentIdentifierInfo"},{"$ref":"#/components/schemas/UserEmailIdentifierInfo"},{"$ref":"#/components/schemas/UserAccountIdentifierInfo"}],"properties":{"type":{"type":"string","enum":["USER_DEVICE_POINT","USER_POINT","USER_AGENT","USER_EMAIL","USER_ACCOUNT"]}},"required":["type"]},"UserDevicePointIdentifierInfo":{"type":"object","properties":{"technical_identifiers":{"type":"array","items":{"$ref":"#/components/schemas/UserDeviceTechnicalIdentifierInfo"},"readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"device":{"$ref":"#/components/schemas/UserAgentInfo"},"id":{"$ref":"#/components/schemas/VectorId"},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["creation_ts","last_activity_ts","technical_identifiers"]},"UserDeviceTechnicalIdentifierInfo":{"type":"object","properties":{"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"user_agent_id":{"$ref":"#/components/schemas/UserAgentId"},"registry_id":{"type":"string","readOnly":false},"type":{"$ref":"#/components/schemas/DeviceIdRegistryType"}},"required":["creation_ts","last_activity_ts","registry_id","type","user_agent_id"]},"UserAgentId":{"allOf":[{"$ref":"#/components/schemas/UserIdentifier"},{"type":"object"}]},"UserIdentifier":{"type":"object"},"DeviceIdRegistryType":{"type":"string","enum":["INSTALLATION_ID","MUM_ID","NETWORK_DEVICE_ID","CUSTOM_DEVICE_ID","MOBILE_ADVERTISING_ID","MOBILE_VENDOR_ID","TV_ADVERTISING_ID","IP_V4_ADDRESS_ID","IP_V6_ADDRESS_ID"],"readOnly":false},"UserAgentInfo":{"type":"object","properties":{"carrier":{"type":"string","readOnly":false},"initial_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"browser_version":{"type":"string","readOnly":false},"model":{"type":"string","readOnly":false},"form_factor":{"$ref":"#/components/schemas/FormFactor"},"os_family":{"$ref":"#/components/schemas/OperatingSystemFamily"},"brand":{"type":"string","readOnly":false},"raw_value":{"type":"string","readOnly":false},"browser_family":{"$ref":"#/components/schemas/BrowserFamily"},"os_version":{"type":"string","readOnly":false}},"required":["form_factor","initial_ts","os_family"]},"FormFactor":{"type":"string","enum":["OTHER","PERSONAL_COMPUTER","SMART_TV","GAME_CONSOLE","SMARTPHONE","TABLET","WEARABLE_COMPUTER"],"readOnly":false},"OperatingSystemFamily":{"type":"string","enum":["OTHER","WINDOWS","MAC_OS","LINUX","ANDROID","IOS","TIZEN","WEB_OS","ANDROID_TV","GOOGLE_TV","TV_OS","FIRE_TV","ROKU_TV","TITAN_OS"],"readOnly":false},"BrowserFamily":{"type":"string","enum":["OTHER","CHROME","IE","FIREFOX","SAFARI","OPERA","STOCK_ANDROID","BOT","EMAIL_CLIENT","MICROSOFT_EDGE"],"readOnly":false},"VectorId":{"type":"string","description":"The vector id formatted as vec:id or the User device point id formatted as udp:id","pattern":"^(vec|udp):\\d+$"},"UserPointIdentifierInfo":{"type":"object","properties":{"user_point_id":{"type":"string","format":"uuid","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["user_point_id"]},"UserAgentIdentifierInfo":{"type":"object","properties":{"providers":{"type":"array","items":{"$ref":"#/components/schemas/UserAgentIdentifierProviderResource"},"readOnly":false},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/UserAgentIdMappingResource"},"readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"device":{"$ref":"#/components/schemas/UserAgentInfo"},"installation_ids":{"type":"array","items":{"$ref":"#/components/schemas/InstallationIdResource"},"readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"vector_id":{"$ref":"#/components/schemas/VectorId"}},"required":["creation_ts","installation_ids","last_activity_ts","mappings","providers","vector_id"]},"UserAgentIdentifierProviderResource":{"type":"object","properties":{"technical_name":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["technical_name"]},"UserAgentIdMappingResource":{"type":"object","properties":{"user_agent_id":{"$ref":"#/components/schemas/UserAgentId"},"realm_name":{"type":"string","readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["last_activity_ts","realm_name","user_agent_id"]},"InstallationIdResource":{"type":"object","properties":{"channel_id":{"type":"string","readOnly":false},"installation_id":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"last_seen_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["channel_id","installation_id"]},"UserEmailIdentifierInfo":{"type":"object","properties":{"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"email":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"providers":{"type":"array","items":{"$ref":"#/components/schemas/UserEmailIdentifierProviderResource"},"readOnly":false},"operator":{"type":"string","readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"hash":{"type":"string","readOnly":false}},"required":["creation_ts","hash","last_activity_ts","providers"]},"UserEmailIdentifierProviderResource":{"type":"object","properties":{"last_modified_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"status":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"active":{"type":"boolean","default":false,"readOnly":false},"technical_name":{"type":"string","readOnly":false}},"required":["technical_name"]},"UserAccountIdentifierInfo":{"type":"object","properties":{"user_account_id":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"compartment_id":{"type":"integer","default":0,"format":"int64","readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["creation_ts","user_account_id"]},"errorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"error_code":{"type":"string","enum":["AUTHENTICATION_ERROR","AUTHORIZATION_ERROR","BAD_REQUEST_DATA","BAD_REQUEST_FORMAT","CONSTRAINT_VIOLATION_EXCEPTION","EMAIL_ALREADY_EXISTS","MAC_ERROR","RESOURCE_NOT_FOUND","SERVICE_UNAVAILABLE","TOKEN_ERROR"]},"error_id":{"type":"string"},"error":{"type":"string"}},"required":["error","error_code","error_id","status"]},"UserIdentifierType":{"type":"string","enum":["USER_POINT","USER_ACCOUNT","USER_EMAIL","USER_AGENT","USER_AGENT_WITHOUT_DEVICE_POINT","USER_DEVICE_POINT_WITH_AGENT","USER_DEVICE_POINT"],"readOnly":false}},"responses":{"error":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}}}}
```

## DELETE /datamarts/{datamart\_id}/user\_account\_identifiers/compartment\_id={compartment\_id}/user\_account\_id={user\_account\_id}

> Delete user account identifier

```json
{"openapi":"3.1.1","info":{"title":"mediarithmics openapi API","version":"1.0.0"},"tags":[{"name":"Mediarithmics most used API","description":"These operations where flagged by mediarithmics teams as most useful."},{"name":"Userpoint Identifiers","description":"Operations related to **UserPoint Identifiers**, the various identifiers used to recognize and merge UserPoints across devices and channels. Supports multiple identifier types:\n- **User Agents** - Device/browser IDs with vector_id and mappings (cookies, mobile IDs)\n- **User Accounts** - Authenticated user identifiers (compartment_id + user_account_id pairs)\n- **User Emails** - Hashed email addresses for cross-device matching\n\nMultiple identifiers can be associated with a single UserPoint, enabling cross-device identity resolution and automatic UserPoint merging when common identifiers are discovered.\n\nRelevant documentation:\n- [User identifiers](https://developer.mediarithmics.io/user-points/user-identifiers/userdevicetechnicalid)\n- [User identifiers association](https://developer.mediarithmics.io/data-ingestion/bulk-processing/user-identifiers-association)\n"}],"servers":[{"url":"http://api.mediarithmics.local/v1","description":"Development server"},{"url":"https://api.mediarithmics.com/v1","description":"Production server"}],"paths":{"/datamarts/{datamart_id}/user_account_identifiers/compartment_id={compartment_id}/user_account_id={user_account_id}":{"delete":{"summary":"Delete user account identifier","responses":{"200":{"$ref":"#/components/responses/simple"},"400":{"$ref":"#/components/responses/error"},"401":{"$ref":"#/components/responses/error"},"403":{"$ref":"#/components/responses/error"},"404":{"$ref":"#/components/responses/error"},"500":{"$ref":"#/components/responses/error"},"503":{"$ref":"#/components/responses/error"}},"tags":["Userpoint Identifiers","Mediarithmics most used API"],"operationId":"deleteUserAccountIdentifier","description":"","parameters":[{"explode":false,"name":"datamart_id","style":"simple","schema":{"type":"integer","format":"int64"},"in":"path","required":true},{"name":"compartment_id","style":"simple","in":"path","schema":{"type":"string"},"explode":false,"required":true},{"style":"simple","name":"user_account_id","in":"path","explode":false,"required":true,"schema":{"type":"string"}}]}}},"components":{"responses":{"simple":{"description":"Success response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]}},"required":["status"]}}}},"error":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}},"schemas":{"errorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"error_code":{"type":"string","enum":["AUTHENTICATION_ERROR","AUTHORIZATION_ERROR","BAD_REQUEST_DATA","BAD_REQUEST_FORMAT","CONSTRAINT_VIOLATION_EXCEPTION","EMAIL_ALREADY_EXISTS","MAC_ERROR","RESOURCE_NOT_FOUND","SERVICE_UNAVAILABLE","TOKEN_ERROR"]},"error_id":{"type":"string"},"error":{"type":"string"}},"required":["error","error_code","error_id","status"]}}}}
```

## POST /datamarts/{datamart\_id}/user\_identifiers\_dissociation\_declarations

> Declare a user point dissociation

```json
{"openapi":"3.1.1","info":{"title":"mediarithmics openapi API","version":"1.0.0"},"tags":[{"name":"Userpoint Identifiers","description":"Operations related to **UserPoint Identifiers**, the various identifiers used to recognize and merge UserPoints across devices and channels. Supports multiple identifier types:\n- **User Agents** - Device/browser IDs with vector_id and mappings (cookies, mobile IDs)\n- **User Accounts** - Authenticated user identifiers (compartment_id + user_account_id pairs)\n- **User Emails** - Hashed email addresses for cross-device matching\n\nMultiple identifiers can be associated with a single UserPoint, enabling cross-device identity resolution and automatic UserPoint merging when common identifiers are discovered.\n\nRelevant documentation:\n- [User identifiers](https://developer.mediarithmics.io/user-points/user-identifiers/userdevicetechnicalid)\n- [User identifiers association](https://developer.mediarithmics.io/data-ingestion/bulk-processing/user-identifiers-association)\n"}],"servers":[{"url":"http://api.mediarithmics.local/v1","description":"Development server"},{"url":"https://api.mediarithmics.com/v1","description":"Production server"}],"paths":{"/datamarts/{datamart_id}/user_identifiers_dissociation_declarations":{"post":{"summary":"Declare a user point dissociation","description":"","responses":{"200":{"$ref":"#/components/responses/simple"},"400":{"$ref":"#/components/responses/error"},"401":{"$ref":"#/components/responses/error"},"403":{"$ref":"#/components/responses/error"},"404":{"$ref":"#/components/responses/error"},"500":{"$ref":"#/components/responses/error"},"503":{"$ref":"#/components/responses/error"}},"requestBody":{"description":"The user identifiers dissociation declaration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserIdentifiersDissociationDeclarationResource"}}},"required":true},"tags":["Userpoint Identifiers"],"parameters":[{"in":"path","required":true,"style":"simple","explode":false,"schema":{"type":"integer","format":"int64"},"name":"datamart_id"}],"operationId":"dissociateUserIdentifiers"}}},"components":{"responses":{"simple":{"description":"Success response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]}},"required":["status"]}}}},"error":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}},"schemas":{"errorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"error_code":{"type":"string","enum":["AUTHENTICATION_ERROR","AUTHORIZATION_ERROR","BAD_REQUEST_DATA","BAD_REQUEST_FORMAT","CONSTRAINT_VIOLATION_EXCEPTION","EMAIL_ALREADY_EXISTS","MAC_ERROR","RESOURCE_NOT_FOUND","SERVICE_UNAVAILABLE","TOKEN_ERROR"]},"error_id":{"type":"string"},"error":{"type":"string"}},"required":["error","error_code","error_id","status"]},"UserIdentifiersDissociationDeclarationResource":{"type":"object","properties":{"group1":{"type":"array","items":{"$ref":"#/components/schemas/UserIdentifierResource"},"readOnly":false},"group2":{"type":"array","items":{"$ref":"#/components/schemas/UserIdentifierResource"},"readOnly":false}},"required":["group1","group2"]},"UserIdentifierResource":{"discriminator":{"propertyName":"type","mapping":{"USER_ACCOUNT":"#/components/schemas/UserAccountIdentifierResource","USER_EMAIL":"#/components/schemas/UserEmailIdentifierResource","USER_AGENT":"#/components/schemas/UserAgentIdentifierResource"}},"oneOf":[{"$ref":"#/components/schemas/UserAccountIdentifierResource"},{"$ref":"#/components/schemas/UserEmailIdentifierResource"},{"$ref":"#/components/schemas/UserAgentIdentifierResource"}],"properties":{"type":{"type":"string","enum":["USER_ACCOUNT","USER_EMAIL","USER_AGENT"]}},"required":["type"]},"UserAccountIdentifierResource":{"type":"object","properties":{"compartment_id":{"type":"string","readOnly":false},"user_account_id":{"type":"string","readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["compartment_id","user_account_id"]},"UserEmailIdentifierResource":{"type":"object","properties":{"hash":{"type":"string","readOnly":false},"email":{"type":"string","readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["hash"]},"UserAgentIdentifierResource":{"type":"object","properties":{"user_agent_id":{"type":"string","readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["user_agent_id"]}}}}
```

## GET /datamarts/{datamart\_id}/email\_identifiers/{email\_hash}

> Find user email identifier

```json
{"openapi":"3.1.1","info":{"title":"mediarithmics openapi API","version":"1.0.0"},"tags":[{"name":"Userpoint Identifiers","description":"Operations related to **UserPoint Identifiers**, the various identifiers used to recognize and merge UserPoints across devices and channels. Supports multiple identifier types:\n- **User Agents** - Device/browser IDs with vector_id and mappings (cookies, mobile IDs)\n- **User Accounts** - Authenticated user identifiers (compartment_id + user_account_id pairs)\n- **User Emails** - Hashed email addresses for cross-device matching\n\nMultiple identifiers can be associated with a single UserPoint, enabling cross-device identity resolution and automatic UserPoint merging when common identifiers are discovered.\n\nRelevant documentation:\n- [User identifiers](https://developer.mediarithmics.io/user-points/user-identifiers/userdevicetechnicalid)\n- [User identifiers association](https://developer.mediarithmics.io/data-ingestion/bulk-processing/user-identifiers-association)\n"}],"servers":[{"url":"http://api.mediarithmics.local/v1","description":"Development server"},{"url":"https://api.mediarithmics.com/v1","description":"Production server"}],"paths":{"/datamarts/{datamart_id}/email_identifiers/{email_hash}":{"get":{"description":"","summary":"Find user email identifier","parameters":[{"name":"datamart_id","schema":{"type":"integer","format":"int64"},"explode":false,"in":"path","required":true,"style":"simple"},{"schema":{"$ref":"#/components/schemas/EmailHash"},"required":true,"explode":false,"in":"path","name":"email_hash","style":"simple"}],"tags":["Userpoint Identifiers"],"operationId":"findUserEmailIdentifier","responses":{"200":{"description":"Success !","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]},"data":{"$ref":"#/components/schemas/UserEmailResource"}},"required":["data","status"]}}}},"400":{"$ref":"#/components/responses/error"},"401":{"$ref":"#/components/responses/error"},"403":{"$ref":"#/components/responses/error"},"404":{"$ref":"#/components/responses/error"},"500":{"$ref":"#/components/responses/error"},"503":{"$ref":"#/components/responses/error"}}}}},"components":{"schemas":{"EmailHash":{"allOf":[{"$ref":"#/components/schemas/UserIdentifier"},{"type":"object","properties":{"hash":{"type":"string","readOnly":false},"email":{"type":"string","readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["hash"]}]},"UserIdentifier":{"type":"object"},"UserEmailResource":{"type":"object","properties":{"hash":{"type":"string","readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"email":{"type":"string","readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"operator":{"type":"string","readOnly":false}},"required":["creation_ts","hash"]},"errorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"error_code":{"type":"string","enum":["AUTHENTICATION_ERROR","AUTHORIZATION_ERROR","BAD_REQUEST_DATA","BAD_REQUEST_FORMAT","CONSTRAINT_VIOLATION_EXCEPTION","EMAIL_ALREADY_EXISTS","MAC_ERROR","RESOURCE_NOT_FOUND","SERVICE_UNAVAILABLE","TOKEN_ERROR"]},"error_id":{"type":"string"},"error":{"type":"string"}},"required":["error","error_code","error_id","status"]}},"responses":{"error":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}}}}
```

## PUT /datamarts/{datamart\_id}/email\_identifiers/{email\_hash}

> Update user email identifier

```json
{"openapi":"3.1.1","info":{"title":"mediarithmics openapi API","version":"1.0.0"},"tags":[{"name":"Userpoint Identifiers","description":"Operations related to **UserPoint Identifiers**, the various identifiers used to recognize and merge UserPoints across devices and channels. Supports multiple identifier types:\n- **User Agents** - Device/browser IDs with vector_id and mappings (cookies, mobile IDs)\n- **User Accounts** - Authenticated user identifiers (compartment_id + user_account_id pairs)\n- **User Emails** - Hashed email addresses for cross-device matching\n\nMultiple identifiers can be associated with a single UserPoint, enabling cross-device identity resolution and automatic UserPoint merging when common identifiers are discovered.\n\nRelevant documentation:\n- [User identifiers](https://developer.mediarithmics.io/user-points/user-identifiers/userdevicetechnicalid)\n- [User identifiers association](https://developer.mediarithmics.io/data-ingestion/bulk-processing/user-identifiers-association)\n"}],"servers":[{"url":"http://api.mediarithmics.local/v1","description":"Development server"},{"url":"https://api.mediarithmics.com/v1","description":"Production server"}],"paths":{"/datamarts/{datamart_id}/email_identifiers/{email_hash}":{"put":{"responses":{"200":{"description":"Success !","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]},"data":{"$ref":"#/components/schemas/UserEmailResource"}},"required":["data","status"]}}}},"400":{"$ref":"#/components/responses/error"},"401":{"$ref":"#/components/responses/error"},"403":{"$ref":"#/components/responses/error"},"404":{"$ref":"#/components/responses/error"},"500":{"$ref":"#/components/responses/error"},"503":{"$ref":"#/components/responses/error"}},"summary":"Update user email identifier","parameters":[{"required":true,"in":"path","explode":false,"name":"datamart_id","schema":{"type":"integer","format":"int64"},"style":"simple"},{"schema":{"$ref":"#/components/schemas/EmailHash"},"in":"path","required":true,"name":"email_hash","explode":false,"style":"simple"},{"required":false,"schema":{"type":"boolean","default":false},"style":"form","in":"query","description":"Force replace","name":"force_replace","explode":true}],"description":"","requestBody":{"description":"The new value of the identifier","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserEmailResource"}}},"required":true},"operationId":"updateUserEmailIdentifier","tags":["Userpoint Identifiers"]}}},"components":{"schemas":{"UserEmailResource":{"type":"object","properties":{"hash":{"type":"string","readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"email":{"type":"string","readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"operator":{"type":"string","readOnly":false}},"required":["creation_ts","hash"]},"errorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"error_code":{"type":"string","enum":["AUTHENTICATION_ERROR","AUTHORIZATION_ERROR","BAD_REQUEST_DATA","BAD_REQUEST_FORMAT","CONSTRAINT_VIOLATION_EXCEPTION","EMAIL_ALREADY_EXISTS","MAC_ERROR","RESOURCE_NOT_FOUND","SERVICE_UNAVAILABLE","TOKEN_ERROR"]},"error_id":{"type":"string"},"error":{"type":"string"}},"required":["error","error_code","error_id","status"]},"EmailHash":{"allOf":[{"$ref":"#/components/schemas/UserIdentifier"},{"type":"object","properties":{"hash":{"type":"string","readOnly":false},"email":{"type":"string","readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["hash"]}]},"UserIdentifier":{"type":"object"}},"responses":{"error":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}}}}
```

## DELETE /datamarts/{datamart\_id}/email\_identifiers/{email\_hash}

> Delete user email identifier

```json
{"openapi":"3.1.1","info":{"title":"mediarithmics openapi API","version":"1.0.0"},"tags":[{"name":"Userpoint Identifiers","description":"Operations related to **UserPoint Identifiers**, the various identifiers used to recognize and merge UserPoints across devices and channels. Supports multiple identifier types:\n- **User Agents** - Device/browser IDs with vector_id and mappings (cookies, mobile IDs)\n- **User Accounts** - Authenticated user identifiers (compartment_id + user_account_id pairs)\n- **User Emails** - Hashed email addresses for cross-device matching\n\nMultiple identifiers can be associated with a single UserPoint, enabling cross-device identity resolution and automatic UserPoint merging when common identifiers are discovered.\n\nRelevant documentation:\n- [User identifiers](https://developer.mediarithmics.io/user-points/user-identifiers/userdevicetechnicalid)\n- [User identifiers association](https://developer.mediarithmics.io/data-ingestion/bulk-processing/user-identifiers-association)\n"}],"servers":[{"url":"http://api.mediarithmics.local/v1","description":"Development server"},{"url":"https://api.mediarithmics.com/v1","description":"Production server"}],"paths":{"/datamarts/{datamart_id}/email_identifiers/{email_hash}":{"delete":{"operationId":"deleteUserEmailIdentifier","parameters":[{"in":"path","explode":false,"style":"simple","required":true,"schema":{"type":"integer","format":"int64"},"name":"datamart_id"},{"required":true,"name":"email_hash","style":"simple","explode":false,"in":"path","schema":{"$ref":"#/components/schemas/EmailHash"}}],"summary":"Delete user email identifier","description":"","tags":["Userpoint Identifiers"],"responses":{"200":{"$ref":"#/components/responses/simple"},"400":{"$ref":"#/components/responses/error"},"401":{"$ref":"#/components/responses/error"},"403":{"$ref":"#/components/responses/error"},"404":{"$ref":"#/components/responses/error"},"500":{"$ref":"#/components/responses/error"},"503":{"$ref":"#/components/responses/error"}}}}},"components":{"schemas":{"EmailHash":{"allOf":[{"$ref":"#/components/schemas/UserIdentifier"},{"type":"object","properties":{"hash":{"type":"string","readOnly":false},"email":{"type":"string","readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["hash"]}]},"UserIdentifier":{"type":"object"},"errorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"error_code":{"type":"string","enum":["AUTHENTICATION_ERROR","AUTHORIZATION_ERROR","BAD_REQUEST_DATA","BAD_REQUEST_FORMAT","CONSTRAINT_VIOLATION_EXCEPTION","EMAIL_ALREADY_EXISTS","MAC_ERROR","RESOURCE_NOT_FOUND","SERVICE_UNAVAILABLE","TOKEN_ERROR"]},"error_id":{"type":"string"},"error":{"type":"string"}},"required":["error","error_code","error_id","status"]}},"responses":{"simple":{"description":"Success response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["ok"]}},"required":["status"]}}}},"error":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}}}}
```

## GET /datamarts/{datamart\_id}/user\_points/{user\_identifier}/user\_identifiers

> Find user identifiers by user point id

```json
{"openapi":"3.1.1","info":{"title":"mediarithmics openapi API","version":"1.0.0"},"tags":[{"name":"Userpoint Identifiers","description":"Operations related to **UserPoint Identifiers**, the various identifiers used to recognize and merge UserPoints across devices and channels. Supports multiple identifier types:\n- **User Agents** - Device/browser IDs with vector_id and mappings (cookies, mobile IDs)\n- **User Accounts** - Authenticated user identifiers (compartment_id + user_account_id pairs)\n- **User Emails** - Hashed email addresses for cross-device matching\n\nMultiple identifiers can be associated with a single UserPoint, enabling cross-device identity resolution and automatic UserPoint merging when common identifiers are discovered.\n\nRelevant documentation:\n- [User identifiers](https://developer.mediarithmics.io/user-points/user-identifiers/userdevicetechnicalid)\n- [User identifiers association](https://developer.mediarithmics.io/data-ingestion/bulk-processing/user-identifiers-association)\n"}],"servers":[{"url":"http://api.mediarithmics.local/v1","description":"Development server"},{"url":"https://api.mediarithmics.com/v1","description":"Production server"}],"paths":{"/datamarts/{datamart_id}/user_points/{user_identifier}/user_identifiers":{"get":{"summary":"Find user identifiers by user point id","parameters":[{"explode":false,"name":"datamart_id","in":"path","required":true,"style":"simple","schema":{"type":"integer","format":"int64"}},{"in":"path","required":true,"name":"user_identifier","style":"simple","schema":{"$ref":"#/components/schemas/PublicUserIdentifiers"},"explode":false},{"in":"query","schema":{"type":"array","items":{"$ref":"#/components/schemas/UserIdentifierType"}},"name":"user_identifier_type_filter","style":"form","explode":true,"required":false}],"operationId":"findUserIdentifiersByUserPoint","tags":["Userpoint Identifiers"],"description":"","responses":{"200":{"description":"Success !","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/UserIdentifierInfo"}},"total":{"type":"integer"},"first_result":{"type":"integer"},"count":{"type":"integer"},"status":{"type":"string","enum":["ok"]},"max_results":{"type":"integer"}},"required":["count","data","first_result","max_results","status","total"]}}}},"400":{"$ref":"#/components/responses/error"},"401":{"$ref":"#/components/responses/error"},"403":{"$ref":"#/components/responses/error"},"404":{"$ref":"#/components/responses/error"},"500":{"$ref":"#/components/responses/error"},"503":{"$ref":"#/components/responses/error"}}}}},"components":{"schemas":{"PublicUserIdentifiers":{"type":"string","description":"User identifier in one of the following format : - a UUID (a.k.a userpoint id) - user_point_id=xxx where xxx is a UUID - compartment_id=xxx,user_account_id=yyy - user_agent_id=xxx - email_hash=xxx ","pattern":"^([0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}|user_point_id=[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}|compartment_id=\\d+,user_account_id=\\S+|user_account_id=\\S+(,compartment_id=\\d+)?|user_agent_id=\\S+|email_hash=\\S+)$"},"UserIdentifierType":{"type":"string","enum":["USER_POINT","USER_ACCOUNT","USER_EMAIL","USER_AGENT","USER_AGENT_WITHOUT_DEVICE_POINT","USER_DEVICE_POINT_WITH_AGENT","USER_DEVICE_POINT"],"readOnly":false},"UserIdentifierInfo":{"discriminator":{"propertyName":"type","mapping":{"USER_AGENT":"#/components/schemas/UserAgentIdentifierInfo","USER_DEVICE_POINT":"#/components/schemas/UserDevicePointIdentifierInfo","USER_EMAIL":"#/components/schemas/UserEmailIdentifierInfo","USER_POINT":"#/components/schemas/UserPointIdentifierInfo","USER_ACCOUNT":"#/components/schemas/UserAccountIdentifierInfo"}},"oneOf":[{"$ref":"#/components/schemas/UserDevicePointIdentifierInfo"},{"$ref":"#/components/schemas/UserPointIdentifierInfo"},{"$ref":"#/components/schemas/UserAgentIdentifierInfo"},{"$ref":"#/components/schemas/UserEmailIdentifierInfo"},{"$ref":"#/components/schemas/UserAccountIdentifierInfo"}],"properties":{"type":{"type":"string","enum":["USER_DEVICE_POINT","USER_POINT","USER_AGENT","USER_EMAIL","USER_ACCOUNT"]}},"required":["type"]},"UserDevicePointIdentifierInfo":{"type":"object","properties":{"technical_identifiers":{"type":"array","items":{"$ref":"#/components/schemas/UserDeviceTechnicalIdentifierInfo"},"readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"device":{"$ref":"#/components/schemas/UserAgentInfo"},"id":{"$ref":"#/components/schemas/VectorId"},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["creation_ts","last_activity_ts","technical_identifiers"]},"UserDeviceTechnicalIdentifierInfo":{"type":"object","properties":{"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"user_agent_id":{"$ref":"#/components/schemas/UserAgentId"},"registry_id":{"type":"string","readOnly":false},"type":{"$ref":"#/components/schemas/DeviceIdRegistryType"}},"required":["creation_ts","last_activity_ts","registry_id","type","user_agent_id"]},"UserAgentId":{"allOf":[{"$ref":"#/components/schemas/UserIdentifier"},{"type":"object"}]},"UserIdentifier":{"type":"object"},"DeviceIdRegistryType":{"type":"string","enum":["INSTALLATION_ID","MUM_ID","NETWORK_DEVICE_ID","CUSTOM_DEVICE_ID","MOBILE_ADVERTISING_ID","MOBILE_VENDOR_ID","TV_ADVERTISING_ID","IP_V4_ADDRESS_ID","IP_V6_ADDRESS_ID"],"readOnly":false},"UserAgentInfo":{"type":"object","properties":{"carrier":{"type":"string","readOnly":false},"initial_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"browser_version":{"type":"string","readOnly":false},"model":{"type":"string","readOnly":false},"form_factor":{"$ref":"#/components/schemas/FormFactor"},"os_family":{"$ref":"#/components/schemas/OperatingSystemFamily"},"brand":{"type":"string","readOnly":false},"raw_value":{"type":"string","readOnly":false},"browser_family":{"$ref":"#/components/schemas/BrowserFamily"},"os_version":{"type":"string","readOnly":false}},"required":["form_factor","initial_ts","os_family"]},"FormFactor":{"type":"string","enum":["OTHER","PERSONAL_COMPUTER","SMART_TV","GAME_CONSOLE","SMARTPHONE","TABLET","WEARABLE_COMPUTER"],"readOnly":false},"OperatingSystemFamily":{"type":"string","enum":["OTHER","WINDOWS","MAC_OS","LINUX","ANDROID","IOS","TIZEN","WEB_OS","ANDROID_TV","GOOGLE_TV","TV_OS","FIRE_TV","ROKU_TV","TITAN_OS"],"readOnly":false},"BrowserFamily":{"type":"string","enum":["OTHER","CHROME","IE","FIREFOX","SAFARI","OPERA","STOCK_ANDROID","BOT","EMAIL_CLIENT","MICROSOFT_EDGE"],"readOnly":false},"VectorId":{"type":"string","description":"The vector id formatted as vec:id or the User device point id formatted as udp:id","pattern":"^(vec|udp):\\d+$"},"UserPointIdentifierInfo":{"type":"object","properties":{"user_point_id":{"type":"string","format":"uuid","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["user_point_id"]},"UserAgentIdentifierInfo":{"type":"object","properties":{"providers":{"type":"array","items":{"$ref":"#/components/schemas/UserAgentIdentifierProviderResource"},"readOnly":false},"mappings":{"type":"array","items":{"$ref":"#/components/schemas/UserAgentIdMappingResource"},"readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"device":{"$ref":"#/components/schemas/UserAgentInfo"},"installation_ids":{"type":"array","items":{"$ref":"#/components/schemas/InstallationIdResource"},"readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"vector_id":{"$ref":"#/components/schemas/VectorId"}},"required":["creation_ts","installation_ids","last_activity_ts","mappings","providers","vector_id"]},"UserAgentIdentifierProviderResource":{"type":"object","properties":{"technical_name":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["technical_name"]},"UserAgentIdMappingResource":{"type":"object","properties":{"user_agent_id":{"$ref":"#/components/schemas/UserAgentId"},"realm_name":{"type":"string","readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["last_activity_ts","realm_name","user_agent_id"]},"InstallationIdResource":{"type":"object","properties":{"channel_id":{"type":"string","readOnly":false},"installation_id":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"last_seen_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["channel_id","installation_id"]},"UserEmailIdentifierInfo":{"type":"object","properties":{"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"email":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"providers":{"type":"array","items":{"$ref":"#/components/schemas/UserEmailIdentifierProviderResource"},"readOnly":false},"operator":{"type":"string","readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"hash":{"type":"string","readOnly":false}},"required":["creation_ts","hash","last_activity_ts","providers"]},"UserEmailIdentifierProviderResource":{"type":"object","properties":{"last_modified_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"status":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"last_activity_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"active":{"type":"boolean","default":false,"readOnly":false},"technical_name":{"type":"string","readOnly":false}},"required":["technical_name"]},"UserAccountIdentifierInfo":{"type":"object","properties":{"user_account_id":{"type":"string","readOnly":false},"creation_ts":{"type":"integer","format":"int64","default":0,"readOnly":false},"compartment_id":{"type":"integer","default":0,"format":"int64","readOnly":false},"expiration_ts":{"type":"integer","format":"int64","default":0,"readOnly":false}},"required":["creation_ts","user_account_id"]},"errorResponse":{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"error_code":{"type":"string","enum":["AUTHENTICATION_ERROR","AUTHORIZATION_ERROR","BAD_REQUEST_DATA","BAD_REQUEST_FORMAT","CONSTRAINT_VIOLATION_EXCEPTION","EMAIL_ALREADY_EXISTS","MAC_ERROR","RESOURCE_NOT_FOUND","SERVICE_UNAVAILABLE","TOKEN_ERROR"]},"error_id":{"type":"string"},"error":{"type":"string"}},"required":["error","error_code","error_id","status"]}},"responses":{"error":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponse"}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.mediarithmics.io/api-reference/userpoint/userpoint-identifiers.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
