Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Insider User Data APIs API
version: 1.0.0
contact:
name: Insider One Support
email: support@useinsider.com
url: https://academy.insiderone.com/docs/insider-one-apis-1
termsOfService: https://insiderone.com/terms-of-use/
description: 'Operations tagged User Data APIs across 2 of this provider''s published API definitions: insider-contact-openapi.yml, insider-unification-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://contact.useinsider.com
- url: https://unification.useinsider.com
tags:
- name: User Data APIs
paths:
/fps/v1/upload:
post:
operationId: uploadFirstPartySegments
summary: Upload first-party segments
tags:
- User Data APIs
description: "The First-Party Segment API allows you to easily create a first-party segment through an API. When the uploading process is completed, the segment is automatically created on your First-Party Segment page under Saved Segments. In addition, you can see the results of the segment creation on the callback.\n\nThe FPS segments don't generate new users; instead, they group existing users into segments based on their attribute values.\n\nUse Cases\n\nAssume that you want to pass your custom segment(s) via API to Insider but do not want to create a segment on Insider's InOne panel. Thanks to the FPS API, you can maintain the entire segment creation process through the API from beginning to end.\n\nLet's say you want to target a set of specific user attributes that contain “Store ID” on UCD. You can basically create a .csv file and name its column as Store ID with the store ID values. To make these attribute values produce a segment, you can pass this file’s URL to the payload, and at the end of the request, you can get the number of users who have these values.\n\nStore ID\n\nid1\n\nid2\n\nAssume that you have 17k store owners as your customers. Instead of multi-selecting 17k values under the segmentation filter, you can list those store_id values on a sheet and upload them to the FPS segment upload field. This way, a snapshot of the people with those store ID values is generated.\n\nYou do not need to include a header row in the CSV file. The attribute name (e.g., \"Store ID\") has already been specified in the API payload. The values in the CSV file should be listed without a header.\n\nBody Parameters\n\nParameter\nDescription\nData Type\nRequired\n\nsegmentName\nIt is the name of the segment.\nString\nYes\n\nfileUrl\nIt is the URL where CSV is hosted. This URL should be downloadable.\nString\nYes\n\ncallbackUrl\nCallback URL is to receive the result of segment creation. This URL should accept POST request.\nString\nYes\n\nattributeName\nIt is the name of the user attribute on which the segment is created. It refers to the attribute names on UCD. This field basically enables you to match your users who have the given attribute. Attribute names should be in accordance with Attribute Name field on Default Attributes page. It can be either an identifier or any attribute.\nString\nYes\n\nSample Example\nSample Request\nEvery request made to the request endpoint requires a request body formatted in JSON containing the required body parameters.\n\ncurl --location --request POST 'https://contact.useinsider.com/fps/v1/upload' \\\n--header 'X-REQUEST-TOKEN: acb123' \\\n--header 'X-PARTNER-NAME: mybrand' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"segmentName\": \"My Segment Name\",\n \"fileUrl\": \"https://s3.amazonaws.com/sample_csv_file.csv\",\n \"callbackUrl\": \"https://localhost/12345\",\n \"attributeName\": \"em\"\n}'\n\nThe attribute em stands for email address in Insider's system.\n\nSample Responses\n200 OK\n{\n \"statusMessage\": \"OK\"\n}\n\n400 BAD REQUEST\n{\n \"statusMessage\": \"segment name already in use\"\n}\n\n401 UNAUTHORIZED\n{\n \"statusMessage\": \"Unauthorized\"\n}\n\n405 INVALID PAYLOAD\n{\n \"error\": \"Invalid Payload.\"\n}\n\nError Messages\n\nError\nDescription\n\nsegment name already in use\nThe segment name in the request already exists on your panel. You should name your segment with a different name.\n\nthe file URL is invalid. The URL should include .csv extension\nThe CSV URL is invalid. The URL should include .csv extension.\n\nfile size is more than the limit\nFile size cannot be more than 10MB.\n\npartner name is missing\nX-PARTNER-NAME needs to be available.\n\nSample Callback Responses\n200 OK\n{\n \"segment_name\": \"My unique segment\",\n \"valid_values_count\": 5,\n \"invalid_values_count\": 7,\n \"total_entered_values\": 12\n}\n\nvalid_values_count: The number of valid row values for the given attribute in the body.\n\ninvalid_values_count: The number of invalid row values for the given attribute in the body. For example, you tried to map the CSV file given below with the age attribute. Since age attribute is a number, the invalid_values_count will be 2 in this case.\n\ntotal_entered_values: the total number of rows in the .csv file.\n\nLimitations\n\nAll functions must be executed with a simple HTTPS POST request.\n\nThe API Key should be provided as the authorization key in the request header. If the key is incorrect, the operation will not be executed and an authorization error will return in the response.\n\nThe value of the X-PARTNER-NAME header should be lowercase.\n\ncallbackUrl needs to accept POST response\n\nFile size cannot be more than 50MB.\n\nSegmentName can have a maximum of 40 characters."
security:
- PartnerName: []
- RequestToken: []
requestBody:
content:
application/json:
example:
segmentName: My Segment Name
fileUrl: https://s3.amazonaws.com/sample_csv_file.csv
callbackUrl: https://localhost/12345
attributeName: em
responses:
'429':
$ref: '#/components/responses/TooManyRequests'
servers:
- url: https://contact.useinsider.com
/api/raw/v1/export:
post:
operationId: exportRawUserData
summary: Export raw user data
tags:
- User Data APIs
description: "This API prepares the raw user data, exports it into Insider's AWS S3 Bucket, and returns a link to your webhook endpoint as a response. This link enables you to access the raw user data and transfer it to your end.\n\nThe API prepares the raw user data for all users for all requested attributes and for a list of events and their event parameters. You can filter to narrow down the user set (e.g., the raw user data can return the users who made a purchase on the last day).\n\nThe API can prepare the raw data for attributes and events together. You can choose the events you will receive and the attributes that will be added to each event entry.\n\nSuggested Reading: Understanding Events and Attributes\n\nYou should provide a webhook endpoint in the request to be notified when the export link is ready. After sending a request, your webhook endpoint receives an export link as follows to have access to the raw user data.\n\nhttps://insider-data-export.useinsider.com/{partner name}/p/{file name}\n\nYou can export raw user data to analyze user information using a business intelligence tool and sync the data that you want via daily jobs.\n\nUsing the Export API, Insider sends the file as a link via Webhook to your endpoint. Export files are sent from specific Insider IP addresses. To enhance security, whitelist Insider IP addresses on your system to restrict access to your endpoint. Remember that whitelisting our IP addresses is about restricting access to your endpoint, which ensures only approved sources can access your endpoint. To add our IP addresses to your approved list for whitelisting, reach out to the Insider team.\n\nIt might take several hours to receive the file after you get the 200 response. If there is an issue with the file size while exporting, you will be notified. In this case, try exporting the data in a smaller range. If you still do not receive the export link, we highly suggest checking if your endpoint is publicly accessible and functioning properly.\n\nThe Raw Export logs events based on their actual timestamp, regardless of when they are recorded in the User Content Database (UCD). In contrast, the S3 Export captures events within specific intervals, like the past hour, according to their UCD entry time. For example, the event counts displayed on the Metadata Analytics page represent all transmissions sent to UCD. Sending the same event 100 times results in only one entry in the database but shows a transmission count of 100 on the page, while Raw Export will show only 1. If an event was timestamped three days ago but sent today, it will appear in S3 Export based on the current transmission timeframe, like the last hour.\n\nBody Parameters\nBefore starting the implementation, make sure to share the following information with your Insider Technical Account Manager:\n\nA webhook endpoint that will be notified when the export link is ready\n\nA preferred format: CSV or Parquet\n\nA list of attributes, events, and event parameters that you want to export\n\nA dynamic segment that you want to export\n\nYou can consult the Insider team on which parameters to add to the request.\n\nThe date range of the segments in requests to the Raw Export API must align with the date range of the requested events. For example, if you're requesting data for the last 5 days of a segment, the event date range should also cover that same period. If the event date range is set to only 2 days, data for users who entered the segment in the last 3 days will not appear in the export.\n\nEach request must have attributes or events object to return the respective user profiles. If you are using an events object, its keys are required, as stated in the table below.\n\nParameter\nDescription\nData Type\nRequired\n\nsegment\nSegment ID of the user filter. Refer here to find your Dynamic Segment ID.\nObject\nYes\n\nattributes\nArray of attributes\nArray (of string)\nYes (if the body does not have the events object)\n\nevents\nArray of events\nObject\nYes (if the body does not have the attributes object)\n\nstart_date\nBeginning of the date range for the wanted events\nNumber\nYes (if the body has the events object)\n\nend_date\nEnd of the date range for the wanted events\nNumber\nYes (if the body has the events object)\n\nwanted\nObject of the wanted events\nArray\nYes (if the body has the events object)\n\nevent_name\nName of the event\nString\nYes (if the body has the events object)\n\nparams\nEvent parameters of the event\nArray (of string)\nYes (if the body has the events object)\n\nformat\nThe export format\nString\nYes\n\nhook\nYour webhook endpoint\nString\nYes\n\nSample Body\nThe sample below displays a request to get the raw user data with all attributes.\n\n{\n \"segment\": {\n \"segment_id\": 123456789\n },\n \"attributes\": [\n \"*\"\n ],\n \"events\": {\n \"start_date\": 1606311893,\n \"end_date\": 1611582293,\n \"wanted\": [\n {\n \"event_name\": \"email_click\",\n \"params\": [\n \"email_campaign_id\",\n \"timestamp\"\n ]\n },\n {\n \"event_name\": \"item_added_to_cart\",\n \"params\": [\n \"product_id\",\n \"name\",\n \"timestamp\"\n ]\n },\n {\n \"event_name\": \"journey_entered\",\n \"params\": [\n \"journey_id\",\n \"timestamp\"\n ]\n }\n ]\n },\n \"format\": \"parquet\",\n \"hook\": \"xyz.test.com\"\n}\n\nThe sample below displays a request to get the raw user data with selected attributes.\n\n{\n \"segment\": {\n \"segment_id\": 123456789\n },\n \"attributes\": [\n \"last_visited_product\",\n \"email\",\n \"name\",\n \"c_custom_attribute\"\n ],\n \"events\": {\n \"start_date\": 1606311893,\n \"end_date\": 1611582293,\n \"wanted\": [\n {\n \"event_name\": \"custom_event\",\n \"params\": [\n \"c_custom_parameter\",\n \"timestamp\"\n ],\n \"filters\": [\n {\n \"key\": \"email_campaign_id\",\n \"operator\": \"eq\",\n \"values\": [369, 877]\n }\n ]\n },\n {\n \"event_name\": \"item_added_to_cart\",\n \"params\": [\n \"product_id\",\n \"name\",\n \"timestamp\"\n ]\n },\n {\n \"event_name\": \"journey_entered\",\n \"params\": [\n \"journey_id\",\n \"timestamp\"\n ]\n }\n ]\n },\n \"format\": \"parquet\",\n \"hook\": \"https://xyz.test.com\"\n}\n\nSample Responses\n200 OK\nThe following response returns if the request is successful.\n\n{\"url\":\"https://insider-data-export.useinsider.com/{partner name}/p/{file name}\"}\n\n429 Too Many Requests\nThe following response returns if you exceed the rate limit.\n\n{\n \"error\": \"rejected: too many requests\"\n}\n\nLimitations\nWhen sending your request, make sure to follow these limitations:\n\nAll functions must be executed with a simple HTTPS POST request.\n\nOnly a response that states whether the request is successful or failed can be received via this API. No data can be inserted.\n\nThe request token should be provided in the request header. If the token is incorrect, the operation will not be executed.\n\nThe exported data can be in CSV, Parquet (version 1.0), or JSON formats.\n\nThe export link expires in 24 hours after it is ready.\n\nThe rate limit for raw export is 1 request per day. Failed requests don't count. Based on the UTC zone, the API can be called only once in 24 hours. The limitation timeline resets at UTC 00:00.\n\nThe value of X-PARTNER-NAME header should be lowercase.\n\nSince https://webhook.site blocks Insider, you cannot retrieve hooks containing download links with URLs belonging here. We will make efforts to address this issue; however, there are currently limitations to resolving it."
security:
- PartnerName: []
- RequestToken: []
requestBody:
content:
application/json:
examples:
default:
value:
segment:
segment_id: 123456789
attributes:
- '*'
events:
start_date: 1606311893
end_date: 1611582293
wanted:
- event_name: email_click
params:
- campaign_id
- timestamp
- event_name: item_added_to_cart
params:
- product_id
- name
- timestamp
- event_name: journey_entered
params:
- journey_id
- timestamp
format: parquet
hook: xyz.test.com
export-app-push-results-with-raw-user-data:
summary: Export app push results with raw user data
value:
segment:
segment_id: 123456789
attributes:
- iid
- udid
- pn
- uuid
- em
- app_version
- mo
- ov
events:
start_date: 1693907940
end_date: 1693994340
wanted:
- event_name: push_delivered
params:
- timestamp
- camp_id
- camp_type
- variant_id
- event_name: push_session
params:
- timestamp
- camp_id
- camp_type
- variant_id
format: csv
hook: xyz.test.com
export-app-template-results-with-raw-user-data:
summary: Export app template results with raw user data
value:
segment:
segment_id: 123456789
attributes:
- iid
- udid
- pn
- uuid
- em
- app_version
- mo
- ov
events:
start_date: 1693907940
end_date: 1693994340
wanted:
- event_name: inapp_seen
params:
- timestamp
- inapp_id
- variant_id
- dismiss_type
format: csv
hook: xyz.test.com
export-app-survey-results-with-raw-user-data:
summary: Export app survey results with raw user data
value:
segment:
segment_id: 123456789
attributes:
- iid
- udid
- pn
- uuid
- em
- app_version
- mo
- ov
events:
start_date: 1606311893
end_date: 1611582293
wanted:
- event_name: survey_result
params:
- timestamp
- answer
- camp_id
- question
- variant_id
format: parquet
hook: xyz.test.com
responses:
'200':
description: OK
'429':
$ref: '#/components/responses/TooManyRequests'
servers:
- url: https://unification.useinsider.com
/api/user/v1/attribute/delete:
post:
operationId: deleteUserAttribute
summary: Delete user attribute
tags:
- User Data APIs
description: "This API enables you to delete your customer attributes when you need to. You can either delete the whole attribute from the user, or delete a specific value from an array typed attribute.\n\nFor example, your customer might have selected GDPR’s “right-to-be-forgotten” option and you need to delete some attributes that capture such customer information.\n\nThis deletion action cannot be undone. Please carefully consider before proceeding.\n\nAn attribute defined as an identifier cannot be deleted with this request. To delete this type of attribute (since it functions as an identifier), you must use the Delete Identifiers API.\n\nBody Parameters\nEach POST body must have a unifier field under identifiers object. You can use the default identifiers such as email, phone number, or uuid and also the custom identifier to define a unifier.\n\nParameter\nDescription\nData Type\nRequired\n\nusers\nArray of user information such as identifiers, attributes and values to be deleted\nArray\nYes\n\nidentifiers\nUser's identifier information.\nObject\nYes\n\ncustom\nUser's custom identifier information.\nObject\nNo\n\nwhole\nArray of attributes that are going to be deleted fully from the corresponding user\nArray\nNo\n\npartial\nAttributes that are going to be deleted partially. (Ex. removing one of the values from an array attribute)\nObject\nNo\n\ncustom\nCustom attributes that are going to be deleted either whole or partially\nObject\nNo\n\nemail\nUser's email address.\nString\nNo\n\nphone_number\nUser's phone number in E.164 format (e.g. +6598765432)\nString\nNo\n\nuuid\nUser's unique user identifier.\nString\nNo\n\nemail_optin\nAttribute. User's permission for marketing emails: True = emails allowed; False = email not allowed\nBoolean\nNo\n\ngdpr_optin\nAttribute. User's permission for Insider campaigns, data collection and processing: False = user will not see any Insider campaign or receive any message from any channel; True or empty = Insider may interact with the user through personalization campaigns\nBoolean\nNo\n\nsms_optin\nAttribute. User's permission for SMS: True = SMS allowed; False = SMS not allowed\nBoolean\nNo\n\nname\nAttribute. User's name.\nString\nNo\n\nsurname\nAttribute. User's surname.\nString\nNo\n\nbirthday\nAttribute. User's birthday in RFC 3339 format (e.g. 1993-03-12T00:00:00Z). Note: Send the birthdays without the time offset.\nDatetime\nNo\n\ngender\nAttribute. Gender of the user.\nString\nNo\n\nage\nAttribute. Age of the user\nNumber\nNo\n\nlanguage\nLanguage information of the user.\nString\nNo\n\ncountry\nAttribute. Country information of the user in ISO 3166-1 alpha-2 format.\nString\nNo\n\ncity\nAttribute. City information of the user.\nString\nNo\n\nlist_id\nAttribute. Newsletter contact list IDs (users are added directly).\nNumbers (Number array)\nNo\n\nSample Body\nThe following is a sample JSON to delete user attributes.\n\ncurl --location --request POST 'https://unification.useinsider.com/api/user/v1/attribute/delete' \\\n--header 'X-PARTNER-NAME: mybrand' \\\n--header 'X-REQUEST-TOKEN: 1a2b3c4d5e6f' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"users\": [\n {\n \"identifiers\": {\n \"email\": \"sample@useinsider.com\",\n \"uuid\": \"1x2y3z\",\n \"custom\": {\n \"custom_identifier\": \"xyz123\"\n }\n },\n \"whole\": [\n \"name\",\n \"surname\",\n \"email_optin\"\n ],\n \"partial\": {\n \"list_id\": [\n 1,\n 2\n ]\n },\n \"custom\": {\n \"whole\": [\n \"custom_string_attribute\",\n \"custom_array_attribute\"\n ],\n \"partial\": {\n \"custom_array_attribute\": [\n \"value1\",\n \"value2\",\n \"value3\"\n ]\n }\n }\n }\n ]\n}'\n\nThe sample below displays a request to get user data with insider_id.\n\ninsider_id is an internal ID maintained by the Insider for each user. To find the insider_id, you can refer to the Profile ID on the User Profile.\n\ncurl --location --request POST 'https://unification.useinsider.com/api/user/v1/attribute/delete' \\\n--header 'X-PARTNER-NAME: mybrand' \\\n--header 'X-REQUEST-TOKEN: 1a2b3c4d5e6f' \\\n--header 'Content-Type: application/json' \\\n--data-raw '{\n \"users\": [\n {\n \"insider_id\": \"sampleinsiderid\",\n \"whole\": [\n \"name\",\n \"surname\",\n \"email_optin\"\n ],\n \"partial\": {\n \"list_id\": [\n 1,\n 2\n ]\n },\n \"custom\": {\n \"whole\": [\n \"custom_string_attribute\",\n \"custom_array_attribute\"\n ],\n \"partial\": {\n \"custom_array_attribute\": [\n \"value1\",\n \"value2\",\n \"value3\"\n ]\n }\n }\n }\n ]\n}'\n\nSample Responses\n200 OK\nThe following response returns if the request is successful.\n\n{}\n\n403 Forbidden\nThe following response returns in case of an authentication error.\n\n{\n \"success\": false,\n \"message\": \"Access Denied. You do not have sufficient access to perform this action.\"\n}\n\n429 Too Many Requests\nThe following response returns if you exceed the rate limit.\n\n{\n \"error\": \"rejected: too many requests\"\n}\n\n500 Internal Server Error\n{\n \"success\": false,\n \"message\": \"The request processing has failed because of an unknown error.\"\n}\n\nLimitations\nWhen sending your request, make sure to follow these limitations.\n\nAll functions must be executed with a simple HTTPS POST request.\n\nOnly delete requests can be sent via this API. No data can be retrieved.\n\nThe request token should be provided in the request header. If the token is incorrect, the operation will not be executed.\n\nA single HTTPS POST request can pass a maximum of 1,000 records (users).\n\nRate limit is shared with User Upsert API with a total of 25,000 requests per minute.\n\nThe entire request must not exceed 5 MB.\n\nThe value of X-PARTNER-NAME header should be lowercase."
security:
- PartnerName: []
- RequestToken: []
requestBody:
content:
application/json:
example:
users:
- identifiers:
email: sample@mail.com
uuid: 1x2y3z
custom:
custom_identifier: xyz123
whole:
- name
- surname
- email_optin
partial:
list_id:
- 1
- 2
custom:
whole:
- custom_string_attribute
- custom_array_attribute
partial:
custom_array_attribute:
- value1
- value2
- value3
responses:
'200':
description: OK
content:
application/json:
example:
data:
successful:
count: 1
fail: {}
'429':
$ref: '#/components/responses/TooManyRequests'
servers:
- url: https://unification.useinsider.com
/api/user/v1/identity:
patch:
operationId: updateIdentifiers
summary: Update identifiers
tags:
- User Data APIs
description: "This API enables you to update the value of the identifiers that are already associated with users.\n\nFor example, an existing user that is already a known user to Insider may have updated their email address in your system. Accordingly, you may need to change the identifier(s) of this user. With this API, you can change the value of an existing identifier to a new value.\n\nBody Parameters\nEach PATCH request must have an identifier type, old value, and new value specified in it. You can use either one of the default identifiers which are uuid, email, and phone_number, or any one of the custom identifiers you are using.\n\nParameter\nDescription\nData Type\nRequired\n\nold_identifier\nUser’s current identifier value\nObject\nYes\n\nnew_identifier\nUser’s next identifier value\nObject\nYes\n\ncustom\nUser’s custom identifiers information\nObject\nNo\n\nemail\nUser's email address\nString\nNo\n\nphone_number\nUser's phone number in E.164 format (e.g. +6598765432)\nString\nNo\n\nuuid\nUser's unique user identifier\nString\nNo\n\nSample Body\nBelow is a sample body with default identifiers.\n\n{\n \"old_identifier\": {\n \"email\": \"sample@mail.com\"\n },\n \"new_identifier\": {\n \"email\": \"sample2@mail.com\"\n }\n}\n\nBelow is a sample body with custom identifiers.\n\n{\n \"old_identifier\": {\n \"custom\": {\n \"user_loyalty_id\": \"xyz123\"\n }\n },\n \"new_identifier\": {\n \"custom\": {\n \"user_loyalty_id\": \"xyz123\"\n }\n }\n}\n\nSample Responses\n400 Bad Request\nThe following response returns if the identifier values are the same.\n\n{\n \"error\": \"identifier values are the same: bad request\"\n}\n\n400 Bad Request\nThe following response returns if you do not have 1 entry for both new and old identifiers.\n\n{\n \"error\": \"there must be exactly 1 entry for both new and old identifiers: bad request\"\n}\n\nLimitations\nWhen sending your request, make sure to follow these limitations.\n\nAll functions must be executed with a simple HTTPS PATCH request.\n\nThe request token should be provided in the request header. If the token is incorrect, no operation will be executed.\n\nA single HTTPS PATCH request can pass only one record (user).\n\nA maximum of 2000 requests can be sent per minute.\n\nIdentifiers that are to be replaced should be of the same type.\n\nThe entire request must not exceed 5 MB.\n\nThe value of X-PARTNER-NAME header should be lowercase."
security:
- PartnerName: []
- RequestToken: []
requestBody:
content:
application/json:
example:
old_identifier:
email: sample@mail.com
new_identifier:
email: sample2@mail.com
responses:
'200':
description: OK
content:
application/json:
example: {}
'429':
$ref: '#/components/responses/TooManyRequests'
delete:
operationId: deleteIdentifiers
summary: Delete identifiers
tags:
- User Data APIs
description: "This API enables you to delete the value of the identifiers that are already associated with users.\n\nFor example, an existing user that is already a known user to Insider may have deleted their phone number from your system. Accordingly, you may need to delete the phone number of this user. With this API, you can delete the value of an existing identifier.\n\nThis deletion action cannot be undone. Please carefully consider before proceeding.\n\nBody Parameters\nEach DELETE request must have an identifier type, and the value specified in it. You can use either one of the default identifiers, which are uuid, email, and phone_number, or any one of the custom identifiers you are using.\n\nIf the user is associated with only one identifier, you cannot delete it.\n\nParameter\nDescription\nData Type\nRequired\n\nidentifiers\nUser’s current identifier in use\nObject\nYes\n\ncustom\nUser’s custom identifiers information\nObject\nNo\n\nemail\nUser's email address\nString\nNo\n\nphone_number\nUser's phone number in E.164 format (e.g. +6598765432)\nString\nNo\n\nuuid\nUser's unique user identifier\nString\nNo\n\nSample Body\nBelow is a sample body with a default identifier.\n\n{\n \"identifiers\": {\n \"email\": \"sample@mail.com\"\n }\n}\n\nBelow is a sample body with a custom identifier.\n\n{\n \"identifiers\": {\n \"custom\": {\n \"user_loyalty_id\": \"xyz123\"\n }\n }\n}\n\nSample Responses\n400 Bad Request\nThe following response returns if the user has only one identifier.\n\n{\n \"error\": \"you cannot delete the sole identifier specified for a user: bad request\"\n}\n\n429 Too Many Requests\nIf you exceed the rate limits, you receive an error shown below:\n\n{\n \"error\": \"rejected: too many requests\"\n}\n\nLimitations\nWhen sending your request, make sure to follow these limitations.\n\nAll functions must be executed with a simple HTTPS DELETE request.\n\nThe request token should be provided in the request header. If the token is incorrect, no operation will be executed.\n\nA single HTTPS DELETE request can pass only 1 record (user).\n\nA maximum of 25,000 requests can be sent per minute.\n\nIdentifier that are to be deleted cannot be the only identifier associated with the corresponding user profile.\n\nThe entire request must not exceed 5 MB.\n\nThe value of X-PARTNER-NAME header should be lowercase."
security:
- PartnerName: []
- RequestToken: []
requestBody:
content:
application/json:
example:
identifiers:
email: sample@mail.com
responses:
'200':
description: Delete identifiers
'429':
$ref: '#/components/responses/TooManyRequests'
servers:
- url: https://unification.useinsider.com
/api/user/v1/profile:
post:
operationId: getUserProfiles
summary: Get user profiles
tags:
- User Data APIs
description: "This API returns the attributes and events you request for a single user that you specify by an identifier. It takes identifier, attribute list, and event list within the date range. In its response, it provides the data you choose.\n\nYou can get user profiles for various use cases. For example, you can personalize the content for your other pr
# --- truncated at 32 KB (66 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/insider/refs/heads/main/openapi/insider-user-data-apis-api-openapi.yml