{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/amplitude/refs/heads/main/json-schema/identify-api-identification-schema.json", "title": "Identification", "description": "Identification schema from Amplitude Identify API", "type": "object", "properties": { "user_id": { "type": "string", "description": "A readable ID specified by you. Required unless device_id is present." }, "device_id": { "type": "string", "description": "A device-specific identifier. Required unless user_id is present." }, "user_properties": { "type": "object", "description": "An object containing user property operations. Each key is an operation type and the value is an object of property names to values.", "properties": { "$set": { "type": "object", "description": "Set the value of a user property. If the property already exists, the value is overwritten.", "additionalProperties": true }, "$setOnce": { "type": "object", "description": "Set the value of a user property only if it has not already been set. Useful for properties like initial_referrer.", "additionalProperties": true }, "$add": { "type": "object", "description": "Increment a numeric user property by the specified value.", "additionalProperties": { "type": "number" } }, "$append": { "type": "object", "description": "Append a value or values to a list user property.", "additionalProperties": true }, "$prepend": { "type": "object", "description": "Prepend a value or values to a list user property.", "additionalProperties": true }, "$unset": { "type": "object", "description": "Remove a user property by setting its value to the string $unset.", "additionalProperties": true }, "$remove": { "type": "object", "description": "Remove a value from a list user property.", "additionalProperties": true } } } } }