> 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

## Overview

The Personalization API lets your application retrieve a record from a dedicated DinMo model using a business identifier. Use it to deliver recommendations, personalization, decisioning, scoring, or enrichment data to a website, application, or trusted backend service.

An API record contains the lookup key and the fields that you selected in its activation. DinMo keeps those fields up to date as the source model is refreshed.

{% 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 %}

### 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

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.

## Typical use cases

* Display product recommendations or personalized content.
* Enrich server-side events with customer attributes.
* Provide a decisioning service with a score or eligibility flag.
* Retrieve a compact, current customer context at request time.

## 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
