Adobe Experience Platform (AEP) is the most powerful, flexible, and open system for building and managing complete customer experience solutions. A secure, single system of truth, Experience Platform provides shared, composable, and AI-supported capabilities — including real-time data unification, customer profile management, audience segmentation, and AI-driven insights — that power Adobe Experience Cloud applications. AEP enables organizations to centralize and standardize customer data from any system, unify it into real-time customer profiles, and activate those profiles at scale across applications and channels. With built-in data governance, privacy controls, and predictive AI capabilities, AEP empowers teams to make data-driven decisions quickly and orchestrate personalized customer experiences in real time.
Power end-to-end data operations for your Adobe Experience Platform API with Nexla. Our bi-directional Adobe Experience Platform connector is purpose-built for Adobe Experience Platform, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Adobe Experience Platform or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Adobe Experience Platform workflows fast, secure, and fully governed.
Features
Type: API
SourceDestination
Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
Before creating an Adobe Experience Platform credential in Nexla, you must set up an OAuth Server-to-Server integration in the Adobe Developer Console. Adobe Experience Platform uses OAuth 2.0 Server-to-Server authentication for all API access — the previously supported JWT authentication method has been deprecated as of June 30, 2025, and all integrations must use OAuth Server-to-Server credentials.
Your Adobe account must have developer and user permissions for an Experience Platform product profile. If your account does not yet have developer access, a system administrator can grant it through the Adobe Admin Console.
Click Create new project on the Projects overview page. Alternatively, select an existing project if you want to add Experience Platform API access to it.
On the Project Overview screen, click Add API.
In the API catalog, select the product icon for Adobe Experience Platform, then choose Experience Platform API and click Next.
On the authentication configuration screen, select OAuth Server-to-Server as the credential type and click Next.
Select the appropriate product profile (e.g., AEP-Default-All-Users) and click Save Configured API.
The product profile you select determines what data and operations are accessible via the API. Contact your Adobe Experience Platform administrator to confirm which product profile grants the level of access required for your Nexla integration.
After saving, navigate to Credentials > OAuth Server-to-Server in the left panel of your project. Here you will find the following values needed for the Nexla credential:
Client ID — the public identifier for your integration
Client Secret — the private secret used to generate access tokens (click Retrieve Client Secret to reveal it)
Organization ID — your Adobe IMS Organization ID, also shown as IMS Org ID
Important
Copy the Client Secret immediately after retrieving it and store it securely. Treat this value like a password — it grants access to your Adobe Experience Platform organization.
Note your Sandbox Name. By default, Adobe Experience Platform provides a production sandbox and one or more development sandboxes. Each API request is scoped to a specific sandbox. You can find your available sandboxes by navigating to Data Management > Sandboxes in the Experience Platform UI, or by querying the Sandboxes API.
For production workloads, use the prod sandbox. For development and testing, Adobe recommends using a dedicated development sandbox to avoid affecting production data.
2-legged OAuth via Adobe IMS client_credentials grant. Requires a Developer project in Adobe Developer Console with Experience Platform API added and an OAuth Server-to-Server credential.
Field
Required
Secret
Description
Client ID
Yes
No
OAuth Server-to-Server Client ID from Adobe Developer Console project.
Client Secret
Yes
Yes
OAuth Server-to-Server Client Secret from Adobe Developer Console project. Treat as a password.
IMS Organization ID
Yes
No
Your Adobe IMS Organization ID (x-gw-ims-org-id). Format: XXXXXXXXXXXXXXXXXXXXXXXX@AdobeOrg. Found in Developer Console under Project Overview.
Sandbox Name
Yes
No
Target AEP sandbox name (x-sandbox-name). Use 'prod' for the production sandbox or the name of a development sandbox.
After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Adobe Experience Platform uses OAuth 2.0 Server-to-Server authentication. Nexla uses your Client ID, Client Secret, and Organization ID to request short-lived access tokens automatically — you do not need to generate or manage access tokens manually.
Enter your Client ID in the Client ID field. This value is displayed on the OAuth Server-to-Server credentials page in your Adobe Developer Console project.
Enter your Client Secret in the Client Secret field. This value is available by clicking Retrieve Client Secret on the OAuth Server-to-Server credentials page in your Adobe Developer Console project. Store this value securely, as it cannot be retrieved again after leaving the page.
Enter your Organization ID in the Organization ID (or IMS Org ID) field. This is your Adobe IMS Organization ID, displayed on the OAuth Server-to-Server credentials page and also visible in the top-right corner of the Experience Platform UI.
Enter the name of the Adobe Experience Platform sandbox you want to access in the Sandbox Name field. Use prod for the production sandbox or the name of a development sandbox (e.g., dev or your custom sandbox name).
All Experience Platform API requests are scoped to a specific sandbox. If you need to access data from multiple sandboxes, create a separate Nexla credential for each sandbox.
Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.
The Adobe Experience Platform connector enables you to ingest customer profiles, audience segments, datasets, schemas, and other Experience Platform data into Nexla for downstream processing, analysis, or delivery to any destination. To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Adobe Experience Platform connector tile, then select the credential that will be used to connect to the Adobe Experience Platform instance, and click Next; or, create a new Adobe Experience Platform credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Adobe Experience Platform endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.
List Datasets
Retrieve dataset metadata from AEP Catalog Service. Returns name, schema, tags, creation/update timestamps, and ingestion status for all datasets in the sandbox.
Dataset Name Filter (Optional): Optional. Filter datasets by name (case-sensitive partial match). Leave blank to return all datasets.
Connector ID Filter (Optional): Optional. Filter datasets by their source connector ID. Leave blank to return all datasets.
All parameters are optional; omitting filters returns all available records.
List Batches
Retrieve batch ingestion records from AEP Catalog Service. Returns status, record counts, dataset linkage, and error information for all ingestion batches in the sandbox.
Batch Status Filter (Optional): Filter batches by ingestion status. Leave blank to retrieve all statuses. Accepted values: 'All (no filter)', 'Success', 'Failed', 'Processing'.
Dataset ID Filter (Optional): Optional. Return only batches that ingested data into this specific dataset ID. Leave blank for all datasets.
Started After (epoch ms) (Optional): Return only batches that started on or after this Unix epoch timestamp in milliseconds. Use {now-7} macro (converted to ms) for incremental pulls.
All parameters are optional; omitting filters returns all available records.
List XDM Schemas
Retrieve XDM schema definitions from the AEP Schema Registry. Returns tenant and global schemas including class, mixins, and field group metadata.
Schema Container (Optional): The Schema Registry container to query. Use 'tenant' for your organization's custom schemas, 'global' for Adobe-standard schemas. Accepted values: 'Tenant (custom org schemas)', 'Global (Adobe standard schemas)'.
All parameters are optional; omitting filters returns all available records.
List Sandboxes
Retrieve all sandbox environments for the IMS organization. Returns sandbox name, title, type (production/development), region, and status.
All parameters are optional; omitting filters returns all available records.
List Query Service Queries
Retrieve SQL query execution history from AEP Query Service. Returns query text, state (SUCCESS/FAILED/IN_PROGRESS), elapsed time, row counts, and linked dataset references.
Property Filter (Optional): Optional. Filter queries using the Query Service property filter syntax. Example: created>2024-01-01 or state==SUCCESS. Leave blank for no filter.
Exclude Soft-Deleted (Optional): If true, excludes queries that have been soft-deleted from the results. Accepted values: 'true (exclude deleted)', 'false (include deleted)'.
All parameters are optional; omitting filters returns all available records.
List Segment Definitions
Retrieve audience segment definitions from AEP Segmentation Service. Returns segment name, description, PQL filter expression, merge policy, and evaluation type (batch/streaming/edge).
Sort Order (Optional): Sort order for segment definitions. Use field name with optional +/- prefix for direction. Accepted values: 'Newest First', 'Oldest First', 'Recently Updated', 'Name A-Z'.
All parameters are optional; omitting filters returns all available records.
List Identity Namespaces
Retrieve all identity namespaces for the IMS org from AEP Identity Service. Returns namespace code, name, type (COOKIE, CROSS_DEVICE, DEVICE, EMAIL, MOBILE, PHONE), and custom/standard flag.
All parameters are optional; omitting filters returns all available records.
List Segment Export Jobs
Retrieve segment export job history from AEP Segmentation Service. Returns job status, dataset destination, and record counts. Use to audit profile exports for downstream activation or analytics.
Export Job Status Filter (Optional): Optional. Filter export jobs by status. Leave blank to retrieve all statuses. Accepted values: 'All (no filter)', 'New', 'Succeeded', 'Failed', 'Processing'.
All parameters are optional; omitting filters returns all available records.
List Batch Files (Data Access)
Retrieve all dataset files under a specific ingestion batch via the AEP Data Access API. Returns file IDs, sizes, and download hrefs for downstream export or validation pipelines.
Batch ID (Required): The AEP batch ingestion ID to retrieve files for. Found in catalog batch metadata or from the list_batches endpoint.
The Batch ID parameter is required to identify the specific resource to retrieve.
List Flow Service Flows
Retrieve all data flows (source-to-destination pipelines) from AEP Flow Service. Returns flow name, state (enabled/disabled), schedule, source and target connection IDs, and last run details.
Schema Container (Optional): The Schema Registry container. Use 'tenant' for custom field groups, 'global' for Adobe-standard field groups. Accepted values: 'Tenant (custom org field groups)', 'Global (Adobe standard field groups)'.
All parameters are optional; omitting filters returns all available records.
List Data Types
Retrieve custom data type definitions from the AEP Schema Registry.
Schema Container (Optional): The Schema Registry container. Use 'tenant' for custom data types, 'global' for Adobe-standard data types. Accepted values: 'Tenant (custom org data types)', 'Global (Adobe standard data types)'.
All parameters are optional; omitting filters returns all available records.
List Union Schemas
Retrieve combined schemas for Profile and ExperienceEvent classes to query available fields for segment building.
All parameters are optional; omitting filters returns all available records.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
Adobe Experience Platform data sources can also be manually configured to ingest data from any valid Adobe Experience Platform API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.
Adobe Experience Platform exposes several base URLs depending on the service being accessed. Common base URLs include:
Platform API (general): https://platform.adobe.io
Catalog Service (datasets, batches): https://platform.adobe.io/data/foundation/catalog
For example, to retrieve a list of datasets in your sandbox, the full endpoint URL would be https://platform.adobe.io/data/foundation/catalog/dataSets. Adobe Experience Platform APIs typically accept ISO 8601 date-time strings (e.g., 2024-01-01T00:00:00Z) or Unix epoch milliseconds in date/time macros, which are particularly useful for endpoints that filter datasets or batches by creation or modification date. Lookup-based macros are useful for referencing Adobe Experience Platform resource IDs — such as dataset IDs, segment IDs, or schema IDs — stored in another Nexla data source.
Setting the path to data is essential for Adobe Experience Platform API responses, which often include wrapper objects, pagination metadata (e.g., _links.next), request IDs, and total record counts alongside the actual data. For example, a Catalog Service request to list datasets returns a JSON object where each key is a dataset ID, while the Segmentation API returns segments in a segments array — so the path to the relevant data would be $.segments[*].
Nexla automatically provides the Authorization (Bearer token), x-api-key (Client ID), x-gw-ims-org-id (Organization ID), and x-sandbox-name headers on every request using the values from your Adobe Experience Platform credential — you do not need to include them in the Request Headers field or the URL. Additional headers you may need to include manually are x-request-id (a custom UUID value you can include to trace requests in Adobe logs), Accept (required by some APIs — e.g., application/vnd.adobe.xed+json for Schema Registry requests), and Content-Type (required for POST requests, e.g., application/json).
Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Adobe Experience Platform data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.
Click the + icon on the Nexset that will be sent to the Adobe Experience Platform destination, and select the Send to Destination option from the menu. Select the Adobe Experience Platform connector from the list of available destination connectors, then select the credential that will be used to connect to the Adobe Experience Platform organization, and click Next; or, create a new Adobe Experience Platform credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Adobe Experience Platform endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.
Create Query (Run SQL)
Submit a SQL query for execution in AEP Query Service. Nexset must include: dbName (e.g. 'prod:all') and sql. Optional: name, description, insertIntoParameters for CTAS jobs.
All parameters are optional; omitting filters returns all available records.
Create Ingestion Batch
Initialize a new batch ingestion job in AEP Data Ingestion Service. Nexset must include: datasetId and inputFormat.format (parquet or json). Returns a batchId for file upload.
All parameters are optional; omitting filters returns all available records.
Create Segment Definition
Create a new audience segment definition in AEP Segmentation Service. Nexset must include: name, expression.type ('PQL/text'), expression.value (PQL filter), schema.name (XDM class), mergePolicyId.
All parameters are optional; omitting filters returns all available records.
Upload File to Batch
Upload Parquet or JSON file to a batch for ingestion. Core batch data load operation for ETL pipelines.
Batch ID (Required): The batch ID to upload the file to (from create_batch endpoint).
Dataset ID (Required): The target dataset ID for the file upload.
File Name (Required): The name of the file being uploaded (e.g., data.parquet, records.json).
The Batch ID parameter is required to identify the specific resource to retrieve.
Complete Batch Ingestion
Signal batch completion to trigger validation and commit. Finalize batch ingestion workflow after all file uploads.
Batch ID (Required): The batch ID to signal completion for.
The Batch ID parameter is required to identify the specific resource to retrieve.
Adobe Experience Platform destinations can also be manually configured to send data to any valid Adobe Experience Platform API endpoint — common use cases include ingesting records into datasets via the Batch Ingestion API, upserting Real-Time Customer Profile records, or triggering segment evaluations via the Segmentation API. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.
For update or upsert operations, include the ID of the object to be updated at the end of the URL where required by the specific API endpoint. Adobe Experience Platform APIs typically accept JSON or JSON Lines (newline-delimited JSON) for data ingestion — when using the Batch Ingestion API to upload data to a dataset, the accepted format depends on the dataset schema (Parquet or JSON); for direct API calls such as Profile upserts or segment operations, use application/json. Nexla automatically provides the required Adobe Experience Platform headers — Authorization, x-api-key, x-gw-ims-org-id, and x-sandbox-name — from the credential configuration; headers you may need to specify manually include Content-Type (e.g., application/json for JSON payloads, application/octet-stream for binary file uploads to the Batch Ingestion API) and x-request-id (a custom UUID you can include to trace requests in Adobe's audit logs).
Adobe Experience Platform Batch Ingestion is a two-step process: first create a batch, then upload data files to that batch, and finally signal completion. When a batch is created, the API returns a batch ID in the response — enabling the Response Webhook option (Would you like to process the API response as a Nexla Webhook source?) captures this response as a Nexla webhook data source, allowing you to use that batch ID in subsequent Nexla flows to upload data files or signal batch completion.
Adobe Experience Platform's Batch Ingestion API supports large file uploads, but individual API calls to the Profile API or Segmentation API have size limits. For bulk data loads to datasets, consider using the Batch Ingestion workflow. For Profile upserts, keep individual payloads manageable and use record batching to group multiple records per API call.
Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to the configured Adobe Experience Platform endpoint, open the destination resource menu, and select Activate.
The Nexset data will not be sent to Adobe Experience Platform until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.