Use this endpoint to delete one or more attributes from a user profile. You can delete an attribute entirely from the profile or remove specific values from an array-typed attribute.
For example, a user has exercised the GDPR right to erasure, and specific profile attributes must be deleted from your Insider One account.
Attribute deletion cannot be undone. Deleted attribute data cannot be recovered. Review your request carefully before sending.
Attributes defined as identifiers cannot be deleted with this endpoint. To delete an identifier attribute, use the Delete Identifiers API.
Endpoint and Headers
POST https://unification.useinsider.com/api/user/v1/attribute/delete
Visit our Postman collection to test this request.
Headers
Header | Sample Value | Description |
|---|---|---|
X-PARTNER-NAME | mybrand | This is your partner name in lowercase. Navigate to Inone Settings > Account Settings to copy your partner name. |
X-REQUEST-TOKEN | 1a2b3c4d5e6f | This key is required to authorize your request. Refer to API Authentication Tokens to generate your token. |
Content-Type | application/json | This header specifies the media type of the resource. |
Body Parameters
Each POST body must have a unifier field under the identifiers object that you decide on. You can use the default identifiers, such as email, phone number, or UUID, as well as custom identifiers to define a unifier.
Parameter | Description | Data Type | Required |
|---|---|---|---|
users | Array of user objects. Maximum 1,000 users per request. | Array | Yes |
identifiers | User's identifier information. | Object | Yes |
custom | User's custom identifier information. | Object | No |
insider_id | Insider One's internal user ID. Available as the Profile ID on the User Profiles page. Use this as an alternative to the identifiers object | String | Yes, unless identifiers used. |
whole | Array of default attribute names to delete entirely from the user profile. The full attribute and all its values are removed. | Array | No |
partial | Map of default attribute names to arrays of values to remove. Use this for array-typed attributes where you want to remove specific values rather than the entire attribute. | Object | No |
custom | Contains whole and partial keys for custom attributes, following the same structure as the default whole and partial fields above. | Object | No |
User's email address. | String | No | |
phone_number | User's phone number in E.164 format (e.g. +6598765432) | String | No |
uuid | User's unique user identifier. | String | No |
email_optin | Attribute. User's permission for marketing emails: | Boolean | No |
gdpr_optin | Attribute. User's permission for Insider campaigns, data collection, and processing: | Boolean | No |
sms_optin | Attribute. User's permission for SMS: | Boolean | No |
name | Attribute. User's name. | String | No |
surname | Attribute. User's surname. | String | No |
birthday | Attribute. User's birthday in RFC 3339 format (e.g., 1993-03-12T00:00:00Z). | Datetime | No |
gender | Attribute. Gender of the user. | String | No |
age | Attribute. Age of the user | Number | No |
language | Language information of the user. | String | No |
country | Attribute. Country information of the user in ISO 3166-1 alpha-2 format. | String | No |
city | Attribute. City information of the user. | String | No |
static_segment_id | Attribute. Static segment IDs (users are added directly). | Numbers (Number array) | No |
Whole vs partial deletion:
Whole deletion removes an attribute and all its data entirely from the user profile. Use this when you need to erase all data for a given attribute.
Partial deletion removes specific values from an array-typed attribute while keeping the attribute and any remaining values intact. Use this when a user has multiple values stored in an array attribute and you only need to remove some of them.
Example: A user has static_segment_id: [1, 2, 3]. Passing "whole": ["static_segment_id"] removes the attribute entirely. Passing "partial": {"static_segment_id": [1, 2]} removes only segments 1 and 2, leaving static_segment_id: [3].
Sample Requests
Delete using standard identifiers
This request deletes name, surname, and email_optin entirely, removes segment IDs 1 and 2 from static_segment_id, and deletes custom attributes.
curl --location --request POST 'https://unification.useinsider.com/api/user/v1/attribute/delete' \
--header 'X-PARTNER-NAME: mybrand' \
--header 'X-REQUEST-TOKEN: 1a2b3c4d5e6f' \
--header 'Content-Type: application/json' \
--data-raw '{
"users": [
{
"identifiers": {
"email": "sample@useinsider.com",
"uuid": "1x2y3z",
"custom": {
"custom_identifier": "xyz123"
}
},
"whole": [
"name",
"surname",
"email_optin"
],
"partial": {
"static_segment_id": [1, 2]
},
"custom": {
"whole": [
"custom_string_attribute",
"custom_array_attribute"
],
"partial": {
"custom_array_attribute": [
"value1",
"value2",
"value3"
]
}
}
}
]
}'Delete using insider_id
Use this request when the user is identified by Insider One's internal Profile ID rather than a standard identifier.
curl --location --request POST 'https://unification.useinsider.com/api/user/v1/attribute/delete' \
--header 'X-PARTNER-NAME: mybrand' \
--header 'X-REQUEST-TOKEN: 1a2b3c4d5e6f' \
--header 'Content-Type: application/json' \
--data-raw '{
"users": [
{
"insider_id": "sampleinsiderid",
"whole": [
"name",
"surname",
"email_optin"
],
"partial": {
"static_segment_id": [1, 2]
},
"custom": {
"whole": [
"custom_string_attribute",
"custom_array_attribute"
],
"partial": {
"custom_array_attribute": [
"value1",
"value2",
"value3"
]
}
}
}
]
}'Sample Responses
200 OK
An empty object indicates the request was accepted and processed successfully. Attribute deletion takes effect immediately on the user profile.
{}400 Bad Request
Returned in the following cases:
The X-PARTNER-NAME header value is incorrect, contains spaces, or is not lowercase.
A required field is missing from the request body.
An identifier value is in an invalid format, for example, a phone number not in E.164 format.
{
"success": false,
"message": "Partner is invalid."
}403 Forbidden
Returned when the X-REQUEST-TOKEN is invalid, missing, or does not have permission to use this endpoint.
{
"success": false,
"message": "Access Denied. You do not have sufficient access to perform this action."
}429 Too Many Requests
Returned when the rate limit is exceeded. See rate limit details in Limitations below.
{
"error": "rejected: too many requests"
}500 Internal Server Error
Returns when an unexpected error occurs on the server. Retry the request after a short wait. If the error persists, contact the Insider One team.
{
"success": false,
"message": "The request processing has failed because of an unknown error."
}Limitations
All functions must be executed with a simple HTTPS POST request.
Only deletion operations can be performed with this endpoint. No data can be read or retrieved.
The X-PARTNER-NAME header value must be lowercase.
A single request can include a maximum of 1,000 user objects in the users array.
This endpoint shares a rate limit of 25,000 requests per minute with the User Upsert API. If you use both APIs, plan your request volume accordingly to avoid hitting the shared limit. To request a higher threshold, contact the Insider One team via the Help Center or refer to API Rate Limits.
The entire request must not exceed 5 MB.
Identifier attributes cannot be deleted with this endpoint. Use the Delete Identifiers API instead.
The default limit shown here is a standard baseline. If your use case requires higher capacity, feel free to reach out to the Insider One team — we can adjust it to fit your needs.