V4 Profiles 1 by 1 calls
The Profiles API allows you to manage your profiles data by performing CRUD operations on a single profile at a time.
The V5 Profiles API simplifies your developments by covering the exact same scope as the V4 Profiles API, but while only needing 5 calls, thanks to the re-thought use of HTTP methods.
What is the timing?
The V4 Profiles calls should be replcaed by the V5 equivalents by the end of the 1st quarter of 2026.
Retrieving profile information
Get a profile
The V4 call to 'Get a profile' could be used to get the details of the single profile corresponding to the provided unique reference.
GET /v4/entity/{entity}/table/{table}/profile/{profileKey}
It can be replaced by the V5 call to 'Get a single profile'.
GET /profiles/v5/entities/{entity}/profile-tables/{profileTableId}/profiles/{profileKey}
Get all subscriptions of a profile
The V4 call to 'Get all subscriptions of a profile' could be used to get the list of subscriptions of the provided profile.
GET /v4/entity/{entity}/table/{table}/profile/{profileKey}/subscription
It can be replaced by the standard 'Get a single profile' V5 call, with the use of the subscriptions
query parameter to only retrieve the subscriptions whose status you're interested in.
GET /profiles/v5/entities/{entity}/profile-tables/{profileTableId}/profiles/{profileKey}?subscriptions=newsletter,marketing
Get all segmentations of a profile
The V4 call to 'Get all segmentations of a profile' could be used to get the segmentations linked to the provided profile.
GET /v4/entity/{entity}/table/{table}/profile/{profileKey}/segmentation
It can be replaced by the standard 'Get a single profile' V5 call, with the use of the segmentations
query parameter to only retrieve the segmentations whose status you're interested in.
The includeNulls
query parameters allows you to also retrieve non-mandatory segmentations that have no value to get a whole picture.
GET /profiles/v5/entities/{entity}/profile-tables/{profileTableId}/profiles/{profileKey}?segmentations=client,VIP&includeNulls=true
Creating/updating/managing subscriptions and segmentations of a profile
Creating or updating a profile
The V4 call to 'Create or update a profile' could be used to update a single profile with the provided attributes if it matches an existing profile in the DB or create a new one if none is matched.
POST /v4/entity/{entity}/table/{table}/profile
There are 2 options to implement a V5 equivalent to this call:
- If you only want to CREATE a new profile, with no possibility to update an existing one, you can use the V5 call to Create a new profile.
POST /profiles/v5/entities/{entity}/profile-tables/{profileTableId}/profiles
- If you need to be able to CREATE a new profile if none exists, or to UPDATE an existing one if the value of the key matches a value in the DB, you can use the V5 call to 'Create or update a profile'.
PUT /profiles/v5/entities/{entity}/profile-tables/{profileTableId}/profiles
Updating a profile
The V4 call to 'Update a profile' could be used to update an existing profile corresponding to the provided unique reference with the provided attributes.
PUT /v4/entity/{entity}/table/{table}/profile/{profileKey}
This call assumes the profile is known as it is directly referenced in its path.
The direct equivalent is the V5 call to 'Patch an existing profile':
PATCH /profiles/v5/entities/{entity}/profile-tables/{profileTableId}/profiles/{profileKey}
Like its predecessor, this call implies that the profile is already known. If it's not the case, you can use the V5 PUT call to create or update a profile.
Subscribing and unsubscribing a profile
The V4 call to 'Subscribe a profile' could be used to add a subscription to a known profile.
POST /v4/entity/{entity}/table/{table}/profile/{profileKey}/subscription/{subscription}
The V4 call to 'Unsubscribe a profile' could be used to remove a subscription from a known profile.
DELETE /v4/entity/{entity}/table/{table}/profile/{profileKey}/subscription/{subscription}
Both directly referenced the subscription in their path and could only be used to add 1 subscription per call.
The equivalent is the V5 call to 'Patch an existing profile':
PATCH /profiles/v5/entities/{entity}/profile-tables/{profileTableId}/profiles/{profileKey}
Thanks to the PATCH
method, only provided elements are updated. This way, you can push multiple subscription updates (both subscribe and unsubscribe) directly in the body of the call, without modifying any other element.
The 'Data Collection' fields, or GDPR attributes are extra information that you can push to provide context on how/when you obtained the optin of the profile.
{
"subscriptions": {
"newsletter": false,
"product": true
},
"dataCollection": {
"date": "2019-03-14T12:00:00Z",
"source": "a profile collection source",
"way": "a profile collection way"
}
}
Adding or removing a segmentation for a profile
The V4 call to 'Add or update a segmentation for a profile' could be used to update an (exclusive) segmentation if the provile was already part of a segment, or add it to a segmentation if not already part of it.
PUT /v4/entity/{entity}/table/{table}/profile/{profileKey}/segmentation/{segmentation}
The V4 call to 'Remove a segmentation' could be used to remove an existing profile from a given segmentation.
DELETE /v4/entity/{entity}/table/{table}/profile/{profileKey}/segmentation/{segmentation}
Both directly referenced the segmentation in their path and could only be used to add 1 segmentation per call.
The equivalent is the V5 call to 'Patch an existing profile':
PATCH /profiles/v5/entities/{entity}/profile-tables/{profileTableId}/profiles/{profileKey}
Thanks to the PATCH
method, only provided elements are updated. This way, you can push multiple segmentation updates (both entering and exiting a segment) directly in the body of the call, without modifying any other element.
{
"segments": {
"client": false,
"rfm": "SILVER"
}
}
Deleting a profile
The V4 call to 'Delete a profile' could be used to completely remove a existing profile from the database.
DELETE /v4/entity/{entity}/table/{table}/profile/{profileKey}
The equivalent is the V5 to 'Delete a single profile'.
DELETE /profiles/v5/entities/{entity}/profile-tables/{profileTableId}/profiles/{profileKey}
The V5 call allows you to push 'Data Collection' fields (or GDPR attributes) to provide context on why/when the profile is deleted.