---
title: "Get Marketing Agent KPI values"
method: GET
path: "/api/apps/{app_id}/cmo/kpi-values"
---

# Get Marketing Agent KPI values

`GET /api/apps/{app_id}/cmo/kpi-values`

## Request

- Base URL: `https://app.base44.com`
- URL: `https://app.base44.com/api/apps/{app_id}/cmo/kpi-values`
- Auth: HTTP bearer

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Returns what each KPI in the Marketing Agent's plan measures right now, read from the app's analytics.

`values` is in the same order as `kpis` in [Get Marketing Agent state](/api-reference/get-marketing-agent-state), so match the two by position rather than by name. A plan with no KPIs yet returns an empty list. Read `state` before `value`: a KPI that can't be measured has no `value` rather than a `0`.

Values can be up to an hour old. They're read again when the KPIs change, and on every call while any KPI is `not_tracked` or `unavailable`, so a newly recorded event shows up on the next call.

This is limited to 120 requests a minute per app for each workspace's personal API keys, so every key in a workspace shares one allowance, across every Marketing Agent endpoint. Some workspaces have a different limit.

<Note>This endpoint accepts a personal API key belonging to a user with editor access to the app and an editor role in its workspace. Read-only keys and workspace API keys are refused.</Note>

## Path parameters

- `app_id` string, required: ID of the app.

## Response `200`

Successful Response

- KpiValuesResponse
  - `values` KpiValue[], required: One entry per KPI, in the same order as `kpis` in [Get Marketing Agent state](/api-reference/get-marketing-agent-state).
    - `state` 'measured' | 'awaiting_data' | 'window_too_short' | 'not_tracked' | 'unbound' | 'unavailable', required: What the value means. `measured` is a full measurement. `awaiting_data` means the event started being recorded inside the KPI's window, so `value` covers less than the whole window. `window_too_short` means a retention KPI's event is recorded but no user has been around for `n` days yet. `not_tracked` means the app doesn't record the KPI's event yet. `unbound` means the KPI has no `metric`, so there's nothing to measure. `unavailable` means the analytics read failed, so try again later.
    - `value` number, nullable: The measured number, present only when `state` is `measured` or `awaiting_data`. A count for most KPIs, and a percentage rounded to one decimal place for a `retention_dn` KPI.
    - `unit` 'percent', nullable: `percent` on a measured `retention_dn` KPI. Absent otherwise, where `value` is a count.
    - `first_seen` string, nullable: When the app first recorded the KPI's event, as a UTC ISO 8601 timestamp. Absent when `state` is `not_tracked`, `unbound`, or `unavailable`, except on a `retention_dn` KPI that isn't tracked, where it's `null`.
    - `window_days` integer, nullable: Number of days `value` counts over, on a KPI that isn't `retention_dn`. Absent otherwise.
    - `n` integer, nullable: Day a `retention_dn` KPI measures the return at. Absent on other KPIs.
    - `cohort` integer, nullable: Number of users a measured `retention_dn` KPI's percentage is out of. Absent otherwise.

## Other responses

- `401`: Missing or invalid credentials.
- `403`: You don't have editor access to this app or an editor role in its workspace, the app is a mobile app, Superagent is turned off for the workspace, or you used a read-only or workspace API key. Setup, chat, generation and enabling autonomy also return `app_marketing_not_allowed` when the app's owning workspace has the FERPA designation. Historical reads, reset and disabling autonomy remain available.
- `404`: App not found.
- `429`: Rate limit exceeded.

## Changes

- **2026-10-11** `80287813ab84`: 1 info
  - the endpoint scheme security `PersonalAccessTokenAuth` was added to the API
- **2026-10-10** `fc604cdcc3a2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/idealspot/apis/base44-app-management-api/changes/api/apps/:app_id/cmo/kpi-values/get.md)

---

[API](https://skmtc.dev/idealspot/apis/base44-app-management-api.md) - [All operations](https://skmtc.dev/idealspot/apis/base44-app-management-api/llms.txt) - [OpenAPI document](https://skmtc.dev/idealspot/apis/base44-app-management-api/revisions/b5b4ebd82a1e?raw)
