---
title: CDP Export API
description: Article describing how to use export API
---

[Skip to content](https://content.raptorservices.com/help-center/cdp-export-api#main-content)

![raptor-qntm-logo\_horizontal\_gradient.png\]](https://content.raptorservices.com/hs-fs/hubfs/raptor-qntm-logo_horizontal_gradient.png?height=40&name=raptor-qntm-logo_horizontal_gradient.png)

Open main navigation

Close main navigation

- [Go to raptorservices.com](https://raptorservices.com/)

[Go to raptorservices.com](https://raptorservices.com/)

 Hello. How can we help you?

- There are no suggestions because the search field is empty.

1. [Help Center](https://content.raptorservices.com/help-center?hsLang=en)
2. [Customer Data Platform](https://content.raptorservices.com/help-center/customer-data-platform?hsLang=en)

# CDP Export API

*API version: 1*

Your CDP holds millions of valuable data points, all neatly unified to the profiles living in the platform. These data points are mainly used to create audiences that are synced to an e-mail send-out system or your social platforms. With the **CDP Export API, you can export your CDP data to any system or destination**. Create an export configuration for each of your use cases and let the data flow. 

Exportable data:

- Identifiers
- Profile Data (all data connected to Person Data schemas)
- Audience Memberships
- Customer Life Time values
- *Calculated Attributes (will be added in v2 of the API)*
- *Relation Data (will be added in v2 of the API)*

You can mix any combination of data points to fit your exact use case. 

![Skærmbillede 2026-09-09 125257](https://content.raptorservices.com/hs-fs/hubfs/Sk%C3%A6rmbillede%202026-09-09%20125257.png?width=670&height=319&name=Sk%C3%A6rmbillede%202026-09-09%20125257.png)

### **How to use this guide**

This is a practical walk-through of the CDP Export API: how to build an export configuration in the Control Panel, how to authenticate, how to pull data, and what the payload actually contains. It assumes you are comfortable with REST, OAuth 2.0 and JSON.

**🔍Note: **If you do not need to export user data from the CDP, but simply need to look up if a profile is present in a specific audience, or extract a list of profiles in a specific audience, please refer to our [Audience API](https://content.raptorservices.com/help-center/cdp/activations/cdp-api?hsLang=en)

### **Before you start**

You need:

- A Control Panel user with access to Customer Data Platform on the relevant account (the account picker in the top bar shows which account you are in – the number in brackets is your customer ID).
- At least one published audience in Audience Builder. Audiences are the gate for the whole export.
- PersonData schemas ingested, if you want profile attributes.
- A CLV model, if you want Customer Lifetime Value attributes.
- Somewhere to store a cursor value between calls. This is the only state your integration must keep.

### **The mental model**

An export configuration is a subscription, not a query. You do not ask "give me all people in audience X". You subscribe to a set of audiences and a set of data points, and the API then hands you a stream of changes for the people who match, in the order they changed.

Three things follow from that, and they explain most of the behaviour you will see:

1\. A configuration owns three independent subscription sets - audiences, attributes (CLV and person), identifiers - all chosen when it is created.

2\. Only subscribed data comes back. If a person has 200 attributes and you subscribed to one, you get one.

3\. Only members of a subscribed audience appear at all. Attribute changes for people outside your audiences will not affect the export.

Configurations are single-purpose by design. Build one per consumer (one for the ESP, one for the data warehouse, one for the loyalty app) rather than one big configuration that everyone shares.

### **How to create a configuration**

You find the Export API setup page under **Customer Data Platform \> Export API** in the left-hand navigation. On the landing page you will find an overview of active Export API configurations. 

1. Click **Create your first configuration** (or the **create** button once configurations exist). 
2. Give the configuration a name. Use something a colleague can identify at 3am: "Braze - newsletter segment", not "Test 2". Names are for humans only; the API addresses configurations by id.
3. **Select audiences (max 5)** in the drop-down list or search with the type-ahead search bar. Selected audiences appear as removable chips. The five-audience ceiling is enforced by the UI.
4. **Select CLV attributes.** These are grouped by CLV model because an account can run several models with the same metric names.  Type-ahead searches across all metrics.
5. **Select person attributes.** Multi-select among all attributes on every connected Person Data schema, grouped by schema. Type-ahead searches across all schemas at once.
6. **Select the identifiers** you want to export in the list of identifiers configured for the account (email address, user ID, cookie ID, phone number etc.). These become the identifiers array in the payload and are how the receiving system joins the record to its own records.
7. **Click Save & publish**

**![Skærmbillede 2026-09-21 143724](https://content.raptorservices.com/hs-fs/hubfs/Sk%C3%A6rmbillede%202026-09-21%20143724.png?width=670&height=316&name=Sk%C3%A6rmbillede%202026-09-21%20143724.png)**

**🔍Note:** Once a configuration is saved, it cannot be edited. Should you need to change a configuration, you will have to delete the current one and create a new.

### **Give your data points an alias**

You can rename your CLV and person data attributes by providing them with an alias. By default, you should keep the name of the attribute as is, but you can provide an alias of two reasons:

1. If you across schemas have multiple attributes with the same name. This will be the case if you have multiple CLV models. The UI will prevent overlapping names
2. If the attributes are better understood in the receiving end by different names. If for example your attributes exist with technical names in the CDP, you might want to rename them to make them clearer when they are to be used outside the CDP

**How to provide an alias**

1. Select a **CLV or a Person** attribute
2. Click **"Provide alias"** in the dropdown to the right
3. Change the name and press enter or click the green accept-button

The alias now appears in a chip in the field of selected attributes. When opening the dropdown, the original name is still visible next to the alias for reference.

![Skærmbillede 2026-09-24 234127](https://content.raptorservices.com/hs-fs/hubfs/Sk%C3%A6rmbillede%202026-09-24%20234127.png?width=670&height=410&name=Sk%C3%A6rmbillede%202026-09-24%20234127.png)

Providing an alias will take effect downstream when exporting your data - it will not change anything related to schemas, the Audience Builder, or anywhere else in the system.   

### **API access and authentication**

Machine-to-machine access uses the OAuth 2.0 client credentials grant.

**Generating credentials**

On Export Configurations, click API access \> Generate credentials. You get a client\_id and a client\_secret. The credentials are tenant-wide - they apply to all configurations on the account, not one per configuration. Instead, each configuration has a Configuration ID visible on the configuration card.

![Skærmbillede 2026-09-09 133705](https://content.raptorservices.com/hs-fs/hubfs/Sk%C3%A6rmbillede%202026-09-09%20133705.png?width=483&height=321&name=Sk%C3%A6rmbillede%202026-09-09%20133705.png)

Rotation is destructive and immediate. The dialog warns that generating new credentials revokes the current ones, and any integration still using the old secret stops working until it is updated. Copy the secret when it is shown; assume you cannot retrieve it again.

**Getting a token**

```
POST https://cdp-export-api.raptorsmartadvisor.com/api/v1/oauth/token Content-Type: application/x-www-form-urlencoded grant_type=client_credentials&client_id=...&client_secret=... 
```

The response contains access\_token (a signed JWT) and expires\_in in seconds. Cache the token and reuse it until it expires - do not fetch a token per request. The token endpoint is rate limited: exceeding it returns 429 Too Many Requests with a Retry-After header in seconds, and you should wait that long before retrying. Caching the token for its full lifetime keeps you comfortably inside the limit.

The token is bound to your account. The API only returns data for the customerId your client is authorised for, so a leaked token cannot be pointed at someone else's account - but it can read everything your configurations expose, so treat it as a production secret.

### **Pulling data: the attributeChanges endpoint**

```
GET https://cdp-export-api.raptorsmartadvisor.com/api/v1/customers/{customerId}/attributeChanges/{configurationId}?nextSequenceNumber=0Authorization: Bearer <access_token>  
```

- **customerId** – your account id (the number next to the account name in the Control Panel).
- **configurationId** – the configuration to read, can be found on the overview page on each configuration card.
- **nextSequenceNumber** – the paging cursor. Start at 0.

Paging is cursor-based on a sequence number, not offset-based, so it is safe to resume and cannot skip or duplicate records the way offset paging can under concurrent writes. **Each response returns up to 1000 records plus the cursor to use next.**

**The loop:**

1. Call with the cursor you have stored (0 on first ever run).
2. Process personData.
3. Store the returned nextSequenceNumber.
4. Repeat until you are caught up.

You are caught up when the response comes back with an empty personData array and the same nextSequenceNumber you sent. That is the "nothing new" signal - there is no separate flag - so poll on a schedule rather than spinning.

Persist the cursor in durable storage, not in memory. Losing it means restarting from 0 and re-processing the entire history of the configuration; your consumer should therefore be idempotent on rupId.

**API output**

```
{   "personData": [    {      "rupId": "...",      "lastUpdated": "2026-07-14T...",      "identifiers": [ { "key": "email", "value": "john@doe.com" } ],      "attributes": [ { "key": "firstname", "value": "John" } ],      "audienceMemberships": [ { "key": "<audience publicId>", "value": "<audience name>" } ]    }  ],  "nextSequenceNumber": 4460 } 
```

- rupId – the unified profile id. This is the stable primary key of the record; use it for upserts.
- lastUpdated – timestamp of the change that put the person in the stream.
- identifiers / attributes / audienceMemberships – arrays of key/value pairs, containing only what the configuration subscribes to.

How key is populated differs by array, and this matters when you map the payload:

- Identifiers and attributes: key is the alias defined per subscription on the configuration (for example "email"). Aliases are unique within a configuration, so exported JSON keys never collide – this is what saves you when two PersonData schemas both expose "Gender".
- Audience memberships: key is the audience's public id (a GUID) and value is the audience name. Audiences have no alias. Join on the GUID and treat the name as a display label – names get edited.

### **Use the Single Customer View Endpoint**

The API offers you to call a configuration to fetch the attributes of a single profile. This could be when you need specific information on the fly, e.g. a loyalty club status, the customer lifetime value of the profile or if she is a member of your "Serial returners" audience. 

Here is how to call the Single Customer View endpoint

```
GET https://cdp-export-api.raptorsmartadvisor.com/api/v1/customers/{customerId}/profile/{configurationId}/identifier/{identifier}?value={identifierValue}
```

The identifier is typically email, customer ID, phone number or Cookie ID, but can also be RUPID. It will return the data you have selected in the configuration. If the profile does not exist in the selected audiences the endpoint will return "Not found" 

### **Entering and leaving audiences**

Audience membership is the gate. A person only enters the stream while they are a member of at least one subscribed audience. A profile shows up as soon as they join a subscribed audience, and again on every later change while they remain a member.

When a person leaves the last subscribed audience they are bumped one final time - but only if they had been exported before. That record arrives with an empty audienceMemberships array, and that emptiness is the departure signal. There is no removed flag. Handle it explicitly: an empty audienceMemberships means "suppress / remove downstream", not "no data this time".

A profile will be completely removed from the export configuration after a period of 14 days past leaving the last subscribed audience.  

### **Configurations overview**

![Skærmbillede 2026-09-24 234903](https://content.raptorservices.com/hs-fs/hubfs/Sk%C3%A6rmbillede%202026-09-24%20234903.png?width=670&height=353&name=Sk%C3%A6rmbillede%202026-09-24%20234903.png)

When entering the Export API page, you will see an overview of your existing configurations. These are set and cannot be changed. On the card of each configuration, you will be able to see who created it, when it was created, audiences in scope, configuration name and configuration ID. By clicking "View" on a configuration, you can see which attributes are included.

You can delete a configuration by clicking "Delete" on a configuration card. Deleting a configuration will cause the API to stop providing data with a 400 Bad request status.  

### **Common sense usage**

The only system limitation applied to the CDP Export API is the 5 audiences per configuration ceiling. Other than that, you are free to add as many attributes as you like, and you can create all the configurations you need. 

This approach appeals to the use of common sense when setting up your configurations and deciding on the polling frequency.

**Healthy practice to consider**: 

- Always consider limiting the amount of data you export to the data points you need for your use case. 
- Create audiences that are scoped for the export; if you in fact only need to export data about profiles who have recently made a purchase, do not make a brought audience that also include everyone who only visited your site without leaving an order
- Make a configuration per use case, so that all integrations/data transfers do not stop working because of small adjustments in the export
- Consider how often you poll the API. If you simply need to update your Power BI to create occasional analysis or update general dashboards, lower the frequency to once every 24 hours tops  

After an evaluation period, we will consider if further limitation should be enforced.

### **Latency and freshness**

The CDP is not a real-time engine, and in general profiles are updated once or twice a day, depending on which metrics. Interaction data streaming into the CDP through the data manager and the profile unification engine create the grounds for audience memberships, CLV metrics, and calculated attributes, which all have different calculation schedules. Person data generally slip through the engine faster. 

The API will respond instantly when called, so you can rely on looking up metrics for a profile on the fly. But you need to bear in mind that the freshness of the information can carry a latency of between 1 and 24 hours.   

### **Error handling **

Status codes the endpoints return: 

| **Status code** | **Meaning** | **Cause/Action** |
| --- | --- | --- |
| 200 | Ok | Success response |
| 400 | Bad request | The requested export configuration does not exist. Check, if customerId and configurationId are correct  |
| 408 | Request timeout | The request timed out. Often due to slow or unstable network connection. Retry. |
| 429 | Too many requests | The token endpoint is rate limited. If you exceed it you get 429 Too Many Requests with a Retry-After header (seconds); wait that long before retrying. Caching the token for its lifetime keeps you well under the limit. |
| 500 | Internal server error | Something went wrong on Raptor side. Retry. Reach out to Raptor if the problem continues. |

 

### FAQ

**Q**: **Which data points are NOT exportable through the Export API?**

**A**: Raw tracking data (interactions) are not available through the Export API due to potential extreme volumes of data. We recommend to aggregate your interaction data as calculated attributes and export these instead (not included in v1) 

**Q**: **What happens if a data source included in an export configuration is deleted?**

**A**: A CLV model or a person data schema can be deleted elsewhere in the CDP. In both cases, a configuration containing attributes from the deleted model or schema is invalidated and will stop updating. Delete the configuration and create a new. It is not possible to delete an audience that is contained in an export configuration. 

**Q:** **What happens if a user is deleted from the CDP (through the GDPR deletion endpoint)?**

**A**: When deletion is registered in your CDP, the API will bump the user one last time with null as the value in each column.

- [Welcome to Raptor](https://content.raptorservices.com/help-center/welcome-to-raptor?hsLang=en#main-content)

    - [Introduction](https://content.raptorservices.com/help-center/welcome-to-raptor?hsLang=en#introduction)
- [Analytics & Insights](https://content.raptorservices.com/help-center/analytics-insights?hsLang=en)
- [Data Management](https://content.raptorservices.com/help-center/data-management?hsLang=en#main-content)

    - [Implementing Tracking](https://content.raptorservices.com/help-center/data-management?hsLang=en#implementing-tracking)
    - [Implementing Raptor Recommendation](https://content.raptorservices.com/help-center/data-management?hsLang=en#implementing-raptor-recommendation)
    - [Email Marketing Integration](https://content.raptorservices.com/help-center/data-management?hsLang=en#email-marketing-integration)
    - [The Data Manager](https://content.raptorservices.com/help-center/data-management?hsLang=en#the-data-manager)
    - [Streaming API](https://content.raptorservices.com/help-center/data-management?hsLang=en#streaming-api)
    - [Destinations](https://content.raptorservices.com/help-center/data-management?hsLang=en#destinations)
- [Customer Data Platform](https://content.raptorservices.com/help-center/customer-data-platform?hsLang=en#main-content)

    - [Introduction](https://content.raptorservices.com/help-center/customer-data-platform?hsLang=en#introduction)
    - [Profile Unification](https://content.raptorservices.com/help-center/customer-data-platform?hsLang=en#profile-unification)
    - [Audience Builder](https://content.raptorservices.com/help-center/customer-data-platform?hsLang=en#audience-builder)
    - [Audience Insights](https://content.raptorservices.com/help-center/customer-data-platform?hsLang=en#audience-insights)
    - [Calculated Attributes](https://content.raptorservices.com/help-center/customer-data-platform?hsLang=en#calculated-attributes)
    - [Activations](https://content.raptorservices.com/help-center/customer-data-platform?hsLang=en#activations)
    - [Single Customer View](https://content.raptorservices.com/help-center/customer-data-platform?hsLang=en#single-customer-view)
- [Website Recommendations](https://content.raptorservices.com/help-center/website-recommendations?hsLang=en#main-content)

    - [Introduction](https://content.raptorservices.com/help-center/website-recommendations?hsLang=en#introduction)
    - [Recommendation Strategies](https://content.raptorservices.com/help-center/website-recommendations?hsLang=en#recommendation-strategies)
    - [Feeds](https://content.raptorservices.com/help-center/website-recommendations?hsLang=en#feeds)
    - [Tuning Parameters](https://content.raptorservices.com/help-center/website-recommendations?hsLang=en#tuning-parameters)
    - [Working with the Raptor API](https://content.raptorservices.com/help-center/website-recommendations?hsLang=en#working-with-the-raptor-api)
- [Mail Recommendations](https://content.raptorservices.com/help-center/mail-recommendations?hsLang=en)
- [E-mail Triggers](https://content.raptorservices.com/help-center/e-mail-triggers?hsLang=en#main-content)

    - [Get started](https://content.raptorservices.com/help-center/e-mail-triggers?hsLang=en#get-started)
    - [E-mail Trigger Documentation](https://content.raptorservices.com/help-center/e-mail-triggers?hsLang=en#e-mail-trigger-documentation)
    - [E-mail trigger integrations](https://content.raptorservices.com/help-center/e-mail-triggers?hsLang=en#e-mail-trigger-integrations)
- [Site Search](https://content.raptorservices.com/help-center/site-search?hsLang=en#main-content)

    - [Search Tracking](https://content.raptorservices.com/help-center/site-search?hsLang=en#search-tracking)
    - [Introduction](https://content.raptorservices.com/help-center/site-search?hsLang=en#introduction)
    - [Implementing Site Search](https://content.raptorservices.com/help-center/site-search?hsLang=en#implementing-site-search)
    - [Search Ranking & Recommendations](https://content.raptorservices.com/help-center/site-search?hsLang=en#search-ranking-recommendations)
    - [Reporting](https://content.raptorservices.com/help-center/site-search?hsLang=en#reporting)
- [Merchandising](https://content.raptorservices.com/help-center/merchandising?hsLang=en#main-content)

    - [Introduction to Merchandising](https://content.raptorservices.com/help-center/merchandising?hsLang=en#introduction-to-merchandising)
    - [Boosted Campaigns](https://content.raptorservices.com/help-center/merchandising?hsLang=en#boosted-campaigns)
    - [Customized Feeds](https://content.raptorservices.com/help-center/merchandising?hsLang=en#customized-feeds)
- [AI Models](https://content.raptorservices.com/help-center/ai-models?hsLang=en#main-content)

    - [Customer Lifetime Value](https://content.raptorservices.com/help-center/ai-models?hsLang=en#customer-lifetime-value)
- [Administration](https://content.raptorservices.com/help-center/administration?hsLang=en#main-content)

    - [Trust Center](https://content.raptorservices.com/help-center/administration?hsLang=en#trust-center)
    - [User Management](https://content.raptorservices.com/help-center/administration?hsLang=en#user-management)
    - [Operational Insights](https://content.raptorservices.com/help-center/administration?hsLang=en#operational-insights)
    - [Data Retention](https://content.raptorservices.com/help-center/administration?hsLang=en#data-retention)

[![Raptor Services](https://content.raptorservices.com/hubfs/Logo%20_By%20Ibexa%20-%20Color-Raptor.svg "Raptor Services")](https://www.raptorservices.com/)

raptorsmartadvisor.com Help Center

<https://www.linkedin.com/company/raptorservices/mycompany/> <https://www.instagram.com/raptorservices/>

Copyright © 2026, Raptor Services A/S