Profiles API
Deliver real‑time customer context to any digital touchpoint—directly from your warehouse‑native Composable CDP.
1 Overview
DinMo Profiles API is a fully‑managed, low‑latency service that exposes the freshest customer profiles—together with their audience memberships and attribute values—over simple HTTPS endpoints.
Think of it as a composable personalisation layer powered by your warehouse, accessible via simple HTTP calls., purpose‑built for onsite personalisation, experimentation, and decisioning.
Once enabled:
🔌 Zero infrastructure to manage—DinMo hosts and scales the fleet.
⚡ p99 latency < 30 ms in‑region; sustained throughput 500 RPS, bursts 1 000 RPS.
🛡️ All traffic is TLS‑encrypted and requires API‑key authentication.
🧩 Data stays composable: you define profile data from your datawarehouse; DinMo automatically refreshes the cache whenever that data changes.
Typical use cases • Dynamic web banners, content blocks, or search results • Feature‑flag evaluation & experimentation • Enriching server‑side events (e.g. product recommendations)
2 Key Concepts
We ship with a built-in profiles collection—no need to define custom tables. Each profile is based on a user model and includes:
Identifiers
A field that uniquely locates a profile (e.g. profile_id
, email
, anonymous_id
).
Attributes
Custom key/value pair (string, number, boolean, JSON) attached to a profile.
Audience membership flags
Boolean flag indicating membership in a segment computed in DinMo.
Metrics snapshots
per-profile aggregates from event data
3 Architecture (High level)
Warehouse → DinMo Refresh Pipeline – You declare a SQL model that returns one row per profile, plus columns for attributes and audience flags.
Materialized Cache – DinMo streams the model into a globally distributed, in‑memory database. Refresh cadence can be as low as every 5 minutes.
Edge API Layer – HTTPS endpoints served from the region closest to your application.
4 Getting Started
4.1 Enable the API
Contact your account manager to activate the Customer Hub module (Enterprise only).
Pick the serving region:
us-east-1
,us-west-2
,eu-west-1
.Generate an API Key from Settings → API Keys (shown once).
4.2 Define Your Profiles
Create a parent model of type Users in DinMo.
Profiles will automatically be created from this model.
Include identifiers, attributes, and any fields used in metrics or segmentation.
Once profiles are defined and refreshed, the Profiles API becomes available.
5 Authentication
All requests require an API key presented as a Bearer token:
Keys grant read‑only access to all profiles in your workspace. We strongly recommend calling the API from a trusted back‑end or edge function—not directly from browsers or mobile apps.
6 Endpoint Reference
Base URL template:
6.1 Get Profile by Primary ID
profile_id
path
string
Primary identifier defined in the dataset (e.g. 12345).
Example
Success 200 Response
6.2 Get Profile by Secondary Identifier
namespace
path
email
, anonymous_id
, device_id
Which identifier to search on.
value
path
jane.doe@example.com
The identifier value.
6.3 Selective Field Retrieval (optional)
Add the query string fields=
to limit the payload:
Valid tokens: identifiers
, attributes
, audiences
.
7 Rate Limits & Quotas
Requests per second
500 RPS sustained, burst 1 000 RPS (≤ 2 min)
429 on exceed with Retry‑After
.
Payload size
≤ 1 MB (recommend ≤ 256 KB)
Larger payloads rejected 413.
Concurrent connections
Unlimited (auto‑scales)
Contact support to raise limits.
8 Error Codes
200
OK
Success.
400
Bad Request
Malformed URL or unsupported identifier namespace.
401
Unauthorized
Missing / invalid API key.
404
Not Found
No profile matches the provided identifier.
429
Too Many Requests
Rate limit exceeded.
5xx
Server Error
Temporary DinMo outage—retry with exponential backoff.
9 Data Freshness & Deletions
Automatic updates – Each time your profile dataset refreshes, DinMo writes the changes to the cache within seconds.
Automatic evictions – If a profile disappears from the source query, it is removed from the cache during the same refresh cycle; subsequent API calls return 404 Not Found.
SLA – With a 5‑minute refresh cadence, worst‑case staleness is < 5 minutes.
Last updated