Preview sample status endpoint (Profile preview)
Adobe Experience Platform enables you to ingest customer data from multiple sources in order to build a robust, unified profile for each of your individual customers. As data is ingested into Platform, a sample job is run to update the profile count and other Real-Time Customer Profile data-related metrics.
The results of this sample job can be viewed using the /previewsamplestatus
endpoint, part of the Real-Time Customer Profile API. This endpoint can also be used to list profile distributions by both dataset and identity namespace, as well as to generate multiple reports in order to gain visibility into the composition of your organization’s Profile store. This guide walks through the steps required to view these metrics using the /previewsamplestatus
API endpoint.
Getting started
The API endpoint used in this guide is part of the Real-Time Customer Profile API. Before continuing, please review the getting started guide for links to related documentation, a guide to reading the sample API calls in this document, and important information regarding required headers that are needed to successfully make calls to any Experience Platform API.
Profile fragments vs merged profiles
This guide references both “profile fragments” and “merged profiles”. It is important to understand the difference between these terms before proceeding.
Each individual customer profile is composed of multiple profile fragments that have been merged to form a single view of that customer. For example, if a customer interacts with your brand across several channels, your organization likely has multiple profile fragments related to that single customer appearing in multiple datasets.
When profile fragments are ingested into Platform, they are merged together (based on a merge policy) in order to create a single profile for that customer. Therefore, the total number of profile fragments is likely to always be higher than the total number of merged profiles, as each profile is composed of multiple fragments.
To learn more about profiles and their role within Experience Platform, please begin by reading the Real-Time Customer Profile overview.
How the sample job is triggered
As data enabled for Real-Time Customer Profile is ingested into Platform, it is stored within the Profile data store. When the ingestion of records into the Profile store increases or decreases the total profile count by more than 5%, a sampling job is triggered to update the count. The way in which the sample is triggered depends on the type of ingestion being used:
- For streaming data workflows, a check is done on an hourly basis to determine if the 5% increase or decrease threshold has been met. If it has, a sample job is automatically triggered to update the count.
- For batch ingestion, within 15 minutes of successfully ingesting a batch into the Profile store, if the 5% increase or decrease threshold is met, a job is run to update the count. Using the Profile API you can preview the latest successful sample job, as well as list profile distribution by dataset and by identity namespace.
The profile count and profiles by namespace metrics are also available within the Profiles section of the Experience Platform UI. For information on how to access Profile data using the UI, please visit the Profile UI guide.
View last sample status view-last-sample-status
You can perform a GET request to the /previewsamplestatus
endpoint to view the details for the last successful sample job that was run for your organization. This includes the total number of profiles in the sample, as well as the profile count metric, or total number of profiles your organization has within Experience Platform.
The profile count is generated after merging together profile fragments to form a single profile for each individual customer. In other words, when profile fragments are merged together they return a count of “1” profile because they are all related to the same individual.
The profile count also includes both profiles with attributes (record data) as well as profiles containing only time series (event) data, such as Adobe Analytics profiles. The sample job is refreshed regularly as Profile data is ingested in order to provide an up-to-date total number of profiles within Platform.
API format
GET /previewsamplestatus
Request
curl -X GET \
https://platform.adobe.io/data/core/ups/previewsamplestatus \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
Response
The response includes the details for the last successful sample job that was run for the organization.
numRowsToRead
and totalRows
are equal to each other. Depending on the number of profiles your organization has in Experience Platform this may be the case. However, generally these two numbers are different, with numRowsToRead
being the smaller number because it represents the sample as a subset of the total number of profiles (totalRows
).{
"numRowsToRead": "41003",
"sampleJobRunning": {
"status": true,
"submissionTimestamp": "2020-08-01 17:57:57.0"
},
"docCount": "\"300803\"",
"totalFragmentCount": 47429,
"lastSuccessfulBatchTimestamp": "\"null\"",
"streamingDriven": "\"false\"",
"totalRows": "41003",
"lastBatchId": "\"null\"",
"status": "TASK_FINISHED",
"samplingRatio": 1.0,
"mergeStrategy": "timestampOrdered_auto",
"lastSampledTimestamp": "2020-08-01 17:57:57.0"
}
numRowsToRead
sampleJobRunning
true
when a sample job is in progress. Provides transparency into the latency that occurs from when a batch file is uploaded to when it is actually added to the Profile store.docCount
totalFragmentCount
lastSuccessfulBatchTimestamp
streamingDriven
totalRows
lastBatchId
status
samplingRatio
numRowsToRead
) to total merged profiles (totalRows
), expressed as a percentage in decimal format.mergeStrategy
lastSampledTimestamp
List profile distribution by dataset
To see the distribution of profiles by dataset, you can perform a GET request to the /previewsamplestatus/report/dataset
endpoint.
API format
GET /previewsamplestatus/report/dataset
GET /previewsamplestatus/report/dataset?{QUERY_PARAMETERS}
date
date=2024-12-31
Request
The following request uses the date
parameter to return the most recent report for the date specified.
curl -X GET \
https://platform.adobe.io/data/core/ups/previewsamplestatus/report/dataset?date=2020-08-01 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
Response
The response includes a data
array, containing a list of dataset objects. The response shown has been truncated to show three datasets.
{
"data": [
{
"sampleCount": 12577,
"samplePercentage": 0.306734,
"fullIDsCount": 20988,
"fullIDsPercentage": 0.511865,
"name": "CRM Profiles",
"description": "Profiles from the CRM.",
"value": "5f160106be34361915754b9c",
"streamingIngestionEnabled": "",
"createdUser": "{CREATED_USER}",
"reportTimestamp": "2020-08-01T17:57:58.697",
},
{
"sampleCount": 12938,
"samplePercentage": 0.315538,
"fullIDsCount": 21796,
"fullIDsPercentage": 0.531571,
"name": "AAM Authenticated Profiles",
"description": "This data set contains AAM authenticated profiles.",
"value": "5dc77ec6eed47f18a796ca90",
"streamingIngestionEnabled": "",
"createdUser": "{CREATED_USER}",
"reportTimestamp": "2020-08-01T17:57:58.697"
},
{
"sampleCount": 22725,
"samplePercentage": 0.554228,
"fullIDsCount": 41003,
"fullIDsPercentage": 1.0,
"name": "Loyalty Program Members",
"description": "Members of the loyalty program at all levels.",
"value": "5d0fda92274e55144d4de620",
"streamingIngestionEnabled": "",
"createdUser": "{CREATED_USER}",
"reportTimestamp": "2020-08-01T17:57:58.697"
}
],
"reportTimestamp": "2020-08-01T17:57:58.697"
}
sampleCount
samplePercentage
sampleCount
as a percentage of the total number of sampled merged profiles (the numRowsToRead
value as returned in the last sample status), expressed in decimal format.fullIDsCount
fullIDsPercentage
fullIDsCount
as a percentage of the total number of merged profiles (the totalRows
value as returned in the last sample status), expressed in decimal format.name
description
value
streamingIngestionEnabled
createdUser
reportTimestamp
date
parameter was provided during the request, the report returned is for the date provided. If no date
parameter is provided, the most recent report is returned.List profile distribution by identity namespace
You can perform a GET request to the /previewsamplestatus/report/namespace
endpoint to view the breakdown by identity namespace across all of the merged profiles in your Profile store. This includes both the standard identities provided by Adobe, as well as the custom identities defined by your organization.
Identity namespaces are an important component of Adobe Experience Platform Identity Service that serve as indicators of the context to which customer data relates. To learn more, begin by reading the identity namespace overview.
API format
GET /previewsamplestatus/report/namespace
GET /previewsamplestatus/report/namespace?{QUERY_PARAMETERS}
date
date=2024-12-31
Request
The following request does not specify a date
parameter and will therefore return the most recent report.
curl -X GET \
https://platform.adobe.io/data/core/ups/previewsamplestatus/report/namespace \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
Response
The response includes a data
array, with individual objects containing the details for each namespace. The response shown has been truncated to show four namespaces.
{
"data": [
{
"sampleCount": 12148,
"samplePercentage": 0.296271,
"reportTimestamp": "2020-08-01T17:57:58.697",
"fullIDsFragmentCount": 13141,
"fullIDsCount": 12631,
"fullIDsPercentage": 0.308051,
"code": "Email",
"value": "6"
},
{
"sampleCount": 6989,
"samplePercentage": 0.170451,
"reportTimestamp": "2020-08-01T17:57:58.697",
"fullIDsFragmentCount": 7543,
"fullIDsCount": 7042,
"fullIDsPercentage": 0.171744,
"code": "ECID",
"value": "4"
},
{
"sampleCount": 888,
"samplePercentage": 0.021657,
"reportTimestamp": "2020-08-01T17:57:58.697",
"fullIDsFragmentCount": 3801,
"fullIDsCount": 3206,
"fullIDsPercentage": 0.078189,
"code": "AAID",
"value": "10"
},
{
"sampleCount": 21809,
"samplePercentage": 0.531888,
"reportTimestamp": "2020-08-01T17:57:58.697",
"fullIDsFragmentCount": 27023,
"fullIDsCount": 21936,
"fullIDsPercentage": 0.534985,
"code": "Phone",
"value": "7"
}
],
"reportTimestamp": "2020-08-01T17:57:58.697"
}
sampleCount
samplePercentage
sampleCount
as a percentage of sampled merged profiles (the numRowsToRead
value as returned in the last sample status), expressed in decimal format.reportTimestamp
date
parameter was provided during the request, the report returned is for the date provided. If no date
parameter is provided, the most recent report is returned.fullIDsFragmentCount
fullIDsCount
fullIDsPercentage
fullIDsCount
as a percentage of total merged profiles (the totalRows
value as returned in the last sample status), expressed in decimal format.code
code
for the namespace. This can be found when working with namespaces using the Adobe Experience Platform Identity Service API and is also referred to as the Identity symbol in the Experience Platform UI. To learn more, visit the identity namespace overview.value
id
value for the namespace. This can be found when working with namespaces using the Identity Service API.Generate the dataset overlap report
The dataset overlap report provides visibility into the composition of your organization’s Profile store by exposing the datasets that contribute most to your addressable audience (merged profiles). In addition to providing insights into your data, this report can help you take actions to optimize license usage, such as setting expirations for certain datasets.
You can generate the dataset overlap report by performing a GET request to the /previewsamplestatus/report/dataset/overlap
endpoint.
For step-by-step instructions outlining how to generate the dataset overlap report using the command line or the Postman UI, please refer to the generating the dataset overlap report tutorial.
API format
GET /previewsamplestatus/report/dataset/overlap
GET /previewsamplestatus/report/dataset/overlap?{QUERY_PARAMETERS}
date
date=2024-12-31
Request
The following request uses the date
parameter to return the most recent report for the date specified.
curl -X GET \
https://platform.adobe.io/data/core/ups/previewsamplestatus/report/dataset/overlap?date=2021-12-29 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
Response
A successful request returns HTTP Status 200 (OK) and the dataset overlap report.
{
"data": {
"5d92921872831c163452edc8,5da7292579975918a851db57,5eb2cdc6fa3f9a18a7592a98": 123,
"5d92921872831c163452edc8,5eb2cdc6fa3f9a18a7592a98": 454412,
"5eeda0032af7bb19162172a7": 107
},
"reportTimestamp": "2021-12-29T19:55:31.147"
}
data
data
object contains comma-separated lists of datasets and their respective profile counts.reportTimestamp
date
parameter was provided during the request, the report returned is for the date provided. If no date
parameter is provided, the most recent report is returned.Interpreting the dataset overlap report
The results of the report can be interpreted from the datasets and profile counts in the response. Consider the following example report data
object:
"5d92921872831c163452edc8,5da7292579975918a851db57,5eb2cdc6fa3f9a18a7592a98": 123,
"5d92921872831c163452edc8,5eb2cdc6fa3f9a18a7592a98": 454412,
"5eeda0032af7bb19162172a7": 107
This report provides the following information:
- There are 123 profiles comprised of data coming from the following datasets:
5d92921872831c163452edc8
,5da7292579975918a851db57
,5eb2cdc6fa3f9a18a7592a98
. - There are 454,412 profiles comprised of data coming from these two datasets:
5d92921872831c163452edc8
and5eb2cdc6fa3f9a18a7592a98
. - There are 107 profiles that are comprised only of data from dataset
5eeda0032af7bb19162172a7
. - There is a total of 454,642 profiles in the organization.
Generate the identity namespace overlap report identity-overlap-report
The identity namespace overlap report provides visibility into the composition of your organization’s Profile store by exposing the identity namespaces that contribute most to your addressable audience (merged profiles). This includes both the standard identity namespaces provided by Adobe, as well as the custom identity namespaces defined by your organization.
You can generate the identity namespace overlap report by performing a GET request to the /previewsamplestatus/report/namespace/overlap
endpoint.
API format
GET /previewsamplestatus/report/namespace/overlap
GET /previewsamplestatus/report/namespace/overlap?{QUERY_PARAMETERS}
date
date=2024-12-31
Request
The following request uses the date
parameter to return the most recent report for the date specified.
curl -X GET \
https://platform.adobe.io/data/core/ups/previewsamplestatus/report/namespace/overlap?date=2021-12-29 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
Response
A successful request returns HTTP Status 200 (OK) and the identity namespace overlap report.
{
"data": {
"Email,crmid,loyal": 2,
"ECID,Email,crmid": 7,
"ECID,Email,mobilenr": 12,
"AAID,ECID,loyal": 1,
"mobilenr": 25,
"AAID,ECID": 1508,
"ECID,crmid": 1,
"AAID,ECID,crmid": 2,
"Email,crmid": 328,
"CORE": 49,
"AAID": 446,
"crmid,loyal": 20988,
"Email": 10904,
"crmid": 249,
"ECID,Email": 74,
"Phone": 40,
"Email,Phone,loyal": 48,
"AAID,AVID,ECID": 85,
"Email,loyal": 1002,
"AAID,ECID,Email,Phone,crmid": 5,
"AAID,ECID,Email,crmid,loyal": 23,
"AAID,AVID,ECID,Email,crmid": 2,
"AVID": 3,
"AAID,ECID,Phone": 1,
"loyal": 43,
"ECID,Email,crmid,loyal": 6,
"AAID,ECID,Email,Phone,crmid,loyal": 1,
"AAID,ECID,Email": 2,
"AAID,ECID,Email,crmid": 142,
"AVID,ECID": 24,
"ECID": 6565
},
"reportTimestamp": "2021-12-29T16:55:03.624"
}
data
data
object contains comma-separated lists with unique combinations of identity namespace codes and their respective profile counts.code
is a short form for each identity namespace name. A mapping of each code
to its name
can be found using the Adobe Experience Platform Identity Service API. The code
is also referred to as the Identity symbol in the Experience Platform UI. To learn more, visit the identity namespace overview.reportTimestamp
date
parameter was provided during the request, the report returned is for the date provided. If no date
parameter is provided, the most recent report is returned.Interpreting the identity namespace overlap report
The results of the report can be interpreted from the identities and profile counts in the response. The numerical value of each row tells you how many profiles are composed of that exact combination of standard and custom identity namespaces.
Consider the following excerpt from the data
object:
"AAID,ECID,Email,crmid": 142,
"AVID,ECID": 24,
"ECID": 6565
This report provides the following information:
- There are 142 profiles composed of
AAID
,ECID
, andEmail
standard identities, as well as from a customcrmid
identity namespace. - There are 24 profiles that are composed of
AAID
andECID
identity namespaces. - There are 6,565 profiles that include only an
ECID
identity.
Generate the unstitched profiles report
You can gain further visibility into the composition of your organization’s Profile store through the unstitched profiles report. An “unstitched” profile is a profile that contains only one profile fragment. An “unknown” profile is a profile that is associated with pseudonymous identity namespaces such as ECID
and AAID
. Unknown profiles are inactive, which means they have not added new events for the specified time period. The unstitched profiles report provides a breakdown of profiles for a period of 7, 30, 60, 90, and 120 days.
You can generate the unstitched profiles report by performing a GET request to the /previewsamplestatus/report/unstitchedProfiles
endpoint.
API format
GET /previewsamplestatus/report/unstitchedProfiles
Request
The following request returns the unstitched profiles report.
curl -X GET \
https://platform.adobe.io/data/core/ups/previewsamplestatus/report/unstitchedProfiles \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
Response
A successful request returns HTTP Status 200 (OK) and the unstitched profiles report.
"120days"
and “7days
” time periods. The full unstitched profiles report provides a breakdown of profiles for a period of 7, 30, 60, 90, and 120 days.{
"data": {
"totalNumberOfProfiles": 63606,
"totalNumberOfEvents": 130977,
"unstitchedProfiles": {
"120days": {
"countOfProfiles": 1644,
"eventsAssociated": 26824,
"nsDistribution": {
"Email": {
"countOfProfiles": 18,
"eventsAssociated": 95
},
"loyal": {
"countOfProfiles": 26,
"eventsAssociated": 71
},
"ECID": {
"countOfProfiles": 1600,
"eventsAssociated": 26658
}
}
},
"7days": {
"countOfProfiles": 1782,
"eventsAssociated": 29151,
"nsDistribution": {
"Email": {
"countOfProfiles": 19,
"eventsAssociated": 97
},
"ECID": {
"countOfProfiles": 1734,
"eventsAssociated": 28591
},
"loyal": {
"countOfProfiles": 29,
"eventsAssociated": 463
}
}
}
}
},
"reportTimestamp": "2025-08-25T22:14:55.186"
}
data
data
object contains the information returned for the unstitched profiles report.totalNumberOfProfiles
totalNumberOfEvents
unstitchedProfiles
countOfProfiles
eventsAssociated
nsDistribution
countOfProfiles
for each identity namespace in the nsDistribution
object equals the countOfProfiles
for the time period. The same is true for eventsAssociated
per namespace and the total eventsAssociated
per time period.reportTimestamp
Interpreting the unstitched profiles report
The results of the report can provide insight into how many unstitched and inactive profiles your organization has within its Profile store.
Consider the following excerpt from the data
object:
"7days": {
"countOfProfiles": 1782,
"eventsAssociated": 29151,
"nsDistribution": {
"Email": {
"countOfProfiles": 19,
"eventsAssociated": 97
},
"ECID": {
"countOfProfiles": 1734,
"eventsAssociated": 28591
},
"loyal": {
"countOfProfiles": 29,
"eventsAssociated": 463
}
}
}
This report provides the following information:
- There are 1,782 profiles that contain only one profile fragment and have no new events for the past seven days.
- There are 29,151 ExperienceEvents associated with the 1,782 unstitched profiles.
- There are 1,734 unstitched profiles containing a single profile fragment from the identity namespace of ECID.
- There are 28,591 events associated with the 1,734 unstitched profiles that contain a single profile fragment from the identity namespace of ECID.
Next steps
Now that you know how to preview sample data in the Profile store and run multiple reports on the data, you can also use the estimate and preview endpoints of the Segmentation Service API to view summary-level information regarding your segment definitions. This information helps to ensure you are isolating your expected audience. To learn more about working with previews and estimates using the Segmentation API, please visit the preview and estimate endpoints guide.