CDP API
CDP endpoints exposed by the Devotel CPaaS API Base path:/api/v1/cdp
Endpoint count: 55
Value-distribution / cardinality for one contact attribute
GET /api/v1/cdp/attribute-distributionstring
required
—
integer
—
List explorable contact attributes for the distribution explorer
GET /api/v1/cdp/attribute-distribution/attributesinteger
—
List ad-platform audience activation history
GET /api/v1/cdp/audience/activationsList ad-platform audience mappings
GET /api/v1/cdp/audience/configList ad-platform conversion-forwarding mappings
GET /api/v1/cdp/conversions/configList ad-platform conversion-forward history
GET /api/v1/cdp/conversions/forwardsList CRM object-sync destination mappings
GET /api/v1/cdp/crm-sync/configList CRM object-sync run history
GET /api/v1/cdp/crm-sync/runsRead the CDP data graph (entity-relationship metadata)
GET /api/v1/cdp/data-graphList third-party data-enrichment providers
GET /api/v1/cdp/enrichment-catalogdeprecated) and kept catalogued for discovery only, not a coming-soon peer. Returns per-category facet counts alongside the matching providers. Static product metadata — no tenant data and no secrets are exposed. Owner / admin / developer only.
string (enum: firmographic|demographic|contact_data|intent)
Filter to one functional category.
string (enum: ga|beta|coming_soon|deprecated)
Filter to one provider status.
deprecated marks a provider whose own service was retired and is kept for discovery only (e.g. Clearbit) — distinct from coming_soon, which is catalogued but not yet wired to a live backend.string
Case-insensitive substring matched over provider id, name, description and appended attributes.
Get one enrichment provider
GET /api/v1/cdp/enrichment-catalog/{provider_id}string
required
The provider slug (e.g. orbit_first_party, hubspot_breeze).
Get a provider’s activation state
GET /api/v1/cdp/enrichment-catalog/{provider_id}/activationstring
required
The provider slug.
Get a provider’s account-scoring firmographic signals
GET /api/v1/cdp/enrichment-catalog/{provider_id}/scoring-signalsstring
required
The provider slug.
Get the GDPR erasure propagation status trail
GET /api/v1/cdp/erasure/{erasureId}/propagatestring
required
—
Get GDPR erasure per-destination propagation modes
GET /api/v1/cdp/erasure/destination-modesdelete | suppress) and whether it comes from an operator override (configured) or the destination’s native default. Owner / admin only.
Probabilistic merge-candidate review queue
GET /api/v1/cdp/identity/merge-candidatesmin_confidence. Each candidate carries its band (auto_merge | review), the per-signal similarity breakdown, and a suggested primary/secondary so a reviewer can approve a merge in one click. READ-ONLY: it derives candidates on the fly and never merges or mutates a contact — approving a candidate calls the existing POST /contacts/merge. Owner / admin / developer with the contacts:read scope (the payload embeds masked contact PII). Off-spec query params degrade to their defaults rather than erroring.
integer
Max candidates returned (post-ranking). Out-of-range values fall back to 50.
integer
Confidence floor, 0–100. Defaults to the
review-band threshold so the queue surfaces every candidate a human should look at.boolean
When false, drops
auto_merge-band candidates and returns only the human-review mid-band.List linked audiences
GET /api/v1/cdp/linked-audiencesGet one linked audience
GET /api/v1/cdp/linked-audiences/{id}string
required
—
Next progressive-profiling fields to ask (only fields not yet known)
GET /api/v1/cdp/progressive-profiling/nextList SQL-native computed-trait definitions
GET /api/v1/cdp/sql-traitsGet one SQL-native computed-trait definition
GET /api/v1/cdp/sql-traits/{id}string
required
—
Get a streaming destination config
GET /api/v1/cdp/streaming-destinations/{provider}credentials_configured presence flag. Owner / admin / developer only.
string
required
—
List event-transform functions
GET /api/v1/cdp/transform-functionsGet one event-transform function
GET /api/v1/cdp/transform-functions/{id}string
required
—
Activate an ad-platform audience
POST /api/v1/cdp/audience/activate/{platform}string
required
—
Forward CDP track events as ad-platform conversions
POST /api/v1/cdp/conversions/forward/{platform}string
required
—
Run an on-demand CRM object sync
POST /api/v1/cdp/crm-sync/run/{destination}string
required
—
Run a live multi-vendor broker enrichment
POST /api/v1/cdp/enrichment-catalog/{provider_id}/broker-enrichstring
required
A third-party enrichment vendor slug.
object
The contact identifiers handed to the vendor.
number
Tenant margin percent applied over the vendor list cost.
integer
Number of lookups to price.
Preview a multi-vendor broker enrichment
POST /api/v1/cdp/enrichment-catalog/{provider_id}/broker-previewstring
required
A third-party enrichment vendor slug.
any
A sample vendor response to normalize onto canonical attributes (any shape). Omit for pricing only.
number
Tenant margin percent applied over the vendor list cost.
integer
Number of lookups to price.
Derive and merge a first-party enrichment patch
POST /api/v1/cdp/enrichment-catalog/{provider_id}/derivestring
required
The provider slug (a live-backend provider such as orbit_first_party).
object
required
The first-party facts Orbit already holds about the contact.
object
The contact’s current attributes map the patch is merged onto (capped at 200 keys).
boolean
When true, overwrite attributes that already hold a value. Defaults to false.
Validate a provider connect-form config
POST /api/v1/cdp/enrichment-catalog/{provider_id}/validate-configstring
required
The provider slug.
object
required
The operator-supplied credential/config map keyed by the provider’s configFields[].key. Secret values are echoed back redacted. Capped at 40 keys.
Propagate a completed GDPR erasure to downstream destinations
POST /api/v1/cdp/erasure/{erasureId}/propagatestring
required
—
Probabilistic (fuzzy) identity match
POST /api/v1/cdp/identity-resolution/probabilistic-matchauto_merge | review), a per-field similarity breakdown, and a recommended action. Closes the deterministic-only gap: the identity graph keys on exact match_types (external_id / phone / email / anonymous_id), so two records of the same person that arrived with no shared exact key cannot be unified by rules alone. Supply at least one of email, phone, first_name, last_name, or company — an all-empty body is rejected. This surface is READ-ONLY: it scores and ranks, it never merges or mutates a contact. Owner / admin / developer with the contacts:read scope (the payload embeds contact PII).
string
—
string
Accepts E.164 or display formats; normalized server-side.
string
—
string
—
string
—
integer
Max candidates returned (post-scoring).
number
Confidence floor for the
review band. Must be <= auto_merge_threshold.number
Confidence at/above which a candidate is banded
auto_merge.Create a linked audience
POST /api/v1/cdp/linked-audiencesCompile a stored linked audience to its traversal plan
POST /api/v1/cdp/linked-audiences/{id}/compilestring
required
—
Validate a linked-audience query against the stored graph without persisting it
POST /api/v1/cdp/linked-audiences/validateCapture progressive-profiling answers + return the next fields
POST /api/v1/cdp/progressive-profiling/captureCreate a SQL-native computed-trait definition
POST /api/v1/cdp/sql-traitsValidate a SQL trait body without persisting it
POST /api/v1/cdp/sql-traits/validateAuto-derive contact trait tags via LLM
POST /api/v1/cdp/traits/auto-derivehigh-LTV, churn-risk, engaged-7d, …). The generated tags replace the contact’s existing derived trait tags rather than being added to them.
string
required
Contact identifier. Orbit reads this contact’s last 30 days of events and deterministic signals to generate the tags.
integer
Soft cap on the number of tags to generate. The server enforces an upper bound so the returned tag set stays a manageable size.
Create an event-transform function
POST /api/v1/cdp/transform-functionsPreview a stored transform against a sample event (no delivery)
POST /api/v1/cdp/transform-functions/{id}/previewstring
required
—
Validate an event-transform spec without persisting it
POST /api/v1/cdp/transform-functions/validateReplace the CDP data graph
PUT /api/v1/cdp/data-graphUpdate GDPR erasure per-destination propagation modes
PUT /api/v1/cdp/erasure/destination-modesobject
required
—
Update one ad-platform audience mapping
PATCH /api/v1/cdp/audience/config/{platform}string
required
—
Update one ad-platform conversion-forwarding mapping
PATCH /api/v1/cdp/conversions/config/{platform}string
required
—
Update one CRM object-sync destination mapping
PATCH /api/v1/cdp/crm-sync/config/{destination}string
required
—
Partially update a linked audience
PATCH /api/v1/cdp/linked-audiences/{id}string
required
—
Partially update a SQL-native computed-trait definition
PATCH /api/v1/cdp/sql-traits/{id}string
required
—
Update a streaming destination config
PATCH /api/v1/cdp/streaming-destinations/{provider}provider: Kafka accepts brokers / SASL fields, Kinesis accepts region / access_key_id. The secret credential is encrypted at rest before write and never returned. The destination.provider discriminator must equal the path segment. Owner / admin / developer only.
string
required
—
Partially update an event-transform function
PATCH /api/v1/cdp/transform-functions/{id}string
required
—
Delete a linked audience
DELETE /api/v1/cdp/linked-audiences/{id}string
required
—
Delete a SQL-native computed-trait definition
DELETE /api/v1/cdp/sql-traits/{id}string
required
—
Delete an event-transform function
DELETE /api/v1/cdp/transform-functions/{id}string
required
—