> For the complete documentation index, see [llms.txt](https://docs.dinmo.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dinmo.io/customer-hub/profiles-api.md).

# Personalization API

Retrieve up-to-date personalization data from DinMo using a business identifier.

## Turn your warehouse data into personalized experiences

Bring the data you prepare in your warehouse into the moments that matter: a product recommendation, a tailored offer, or a decision inside your application.

The Personalization API makes selected data from your DinMo models available through a low-latency API. Your application sends a business identifier and receives the fields you chose to expose—ready to use in the experience you are building.

### From data to action, in a single API call

* **Make your data useful at the point of interaction.** Retrieve recommendations, scores, eligibility flags, or customer attributes when your application needs them.
* **Keep control over what you serve.** Choose the model, lookup key, and fields that support your use case.
* **Keep experiences aligned with your data.** Served data is updated as the underlying model is refreshed.
* **Let DinMo handle the serving infrastructure.** Use a managed API without building and maintaining your own serving layer.

### Common use cases

**Recommendations where they matter**\
Retrieve product recommendations prepared in your warehouse and use them to tailor an in-app experience or website visit.

**Offers that fit the customer**\
Give your application access to a customer’s eligibility, preferences, or value score to help select a relevant offer.

**Decisions powered by your data**\
Make computed scores and business flags available to a backend service at the moment it needs to make a decision.

**Richer events and interactions**\
Look up selected customer attributes to enrich server-side events or give an application the context it needs.

## Performance and freshness

The API is designed for low-latency, real-time use cases: in-region p99 latency is below 30 ms. It supports 500 requests per second on a sustained basis and bursts up to 1,000 requests per second.

Data is refreshed when the underlying model is refreshed. With a five-minute model refresh cadence, the maximum expected data staleness is under five minutes. If a record is no longer present in the model, subsequent requests return `404 Not Found`.

## Security

All traffic is encrypted with TLS and requests require a Personalization API key. API keys provide read access to the Personalization API records in the workspace.

Call the API from a trusted backend or edge function. Do not expose API keys in browser or mobile application code. Rotate keys regularly and delete keys that are no longer needed.

## How it works

{% hint style="info" %}
The Personalization API is a native DinMo destination. It must be enabled for your workspace before you can use it. Contact your DinMo representative if it is not available in the activation destination list.
{% endhint %}

1. Create an activation from the model that contains the data you want to serve.
2. Select the **Personalization API** destination.
3. Choose a lookup key and map the fields to return.
4. Run the activation. DinMo creates an exposure and an endpoint for the activation.
5. Create an API key, then call the endpoint with a record identifier.

The endpoint is specific to an exposure. Its response schema reflects the lookup key and fields configured in that activation.

## Next steps

* [Set up the Personalization API](/customer-hub/profiles-api/set-up.md)
* [Personalization API reference](/customer-hub/profiles-api/api-reference.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.dinmo.io/customer-hub/profiles-api.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
