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-distribution—
—
List explorable contact attributes for the distribution explorer
GET /api/v1/cdp/attribute-distribution/attributes—
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.
Filter to one functional category.
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.Case-insensitive substring matched over provider id, name, description and appended attributes.
Get one enrichment provider
GET /api/v1/cdp/enrichment-catalog/{provider_id}The provider slug (e.g. orbit_first_party, hubspot_breeze).
Get a provider’s activation state
GET /api/v1/cdp/enrichment-catalog/{provider_id}/activationThe provider slug.
Get a provider’s account-scoring firmographic signals
GET /api/v1/cdp/enrichment-catalog/{provider_id}/scoring-signalsThe provider slug.
Get the GDPR erasure propagation status trail
GET /api/v1/cdp/erasure/{erasureId}/propagate—
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.
Max candidates returned (post-ranking). Out-of-range values fall back to 50.
Confidence floor, 0–100. Defaults to the
review-band threshold so the queue surfaces every candidate a human should look at.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}—
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}—
Get a streaming destination config
GET /api/v1/cdp/streaming-destinations/{provider}credentials_configured presence flag. Owner / admin / developer only.
—
List event-transform functions
GET /api/v1/cdp/transform-functionsGet one event-transform function
GET /api/v1/cdp/transform-functions/{id}—
Activate an ad-platform audience
POST /api/v1/cdp/audience/activate/{platform}—
Forward CDP track events as ad-platform conversions
POST /api/v1/cdp/conversions/forward/{platform}—
Run an on-demand CRM object sync
POST /api/v1/cdp/crm-sync/run/{destination}—
Run a live multi-vendor broker enrichment
POST /api/v1/cdp/enrichment-catalog/{provider_id}/broker-enrichA third-party enrichment vendor slug.
The contact identifiers handed to the vendor.
Tenant margin percent applied over the vendor list cost.
Number of lookups to price.
Preview a multi-vendor broker enrichment
POST /api/v1/cdp/enrichment-catalog/{provider_id}/broker-previewA third-party enrichment vendor slug.
A sample vendor response to normalize onto canonical attributes (any shape). Omit for pricing only.
Tenant margin percent applied over the vendor list cost.
Number of lookups to price.
Derive and merge a first-party enrichment patch
POST /api/v1/cdp/enrichment-catalog/{provider_id}/deriveThe provider slug (a live-backend provider such as orbit_first_party).
The first-party facts Orbit already holds about the contact.
The contact’s current attributes map the patch is merged onto (capped at 200 keys).
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-configThe provider slug.
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}/propagate—
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).
—
Accepts E.164 or display formats; normalized server-side.
—
—
—
Max candidates returned (post-scoring).
Confidence floor for the
review band. Must be <= auto_merge_threshold.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}/compile—
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.
Contact identifier. Orbit reads this contact’s last 30 days of events and deterministic signals to generate the tags.
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}/preview—
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-modes—
Update one ad-platform audience mapping
PATCH /api/v1/cdp/audience/config/{platform}—
Update one ad-platform conversion-forwarding mapping
PATCH /api/v1/cdp/conversions/config/{platform}—
Update one CRM object-sync destination mapping
PATCH /api/v1/cdp/crm-sync/config/{destination}—
Partially update a linked audience
PATCH /api/v1/cdp/linked-audiences/{id}—
Partially update a SQL-native computed-trait definition
PATCH /api/v1/cdp/sql-traits/{id}—
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.
—
Partially update an event-transform function
PATCH /api/v1/cdp/transform-functions/{id}—
Delete a linked audience
DELETE /api/v1/cdp/linked-audiences/{id}—
Delete a SQL-native computed-trait definition
DELETE /api/v1/cdp/sql-traits/{id}—
Delete an event-transform function
DELETE /api/v1/cdp/transform-functions/{id}—