---
title: "Get Brand Perception Attribute History"
method: GET
path: "/brand-perception/attribute-history"
tags: ["Brand Perception"]
---

# Get Brand Perception Attribute History

`GET /brand-perception/attribute-history`

## Request

- Base URL: `https://api.peec.ai/customer/v1`
- URL: `https://api.peec.ai/customer/v1/brand-perception/attribute-history`
- Auth: one of:
  - API key in header `X-API-Key`
  - API key in query parameter `api_key`
  - HTTP bearer

How one brand's prominence on each brand-perception attribute has moved over time: one series per attribute, each point a day and the brand's average prominence (0-100) across that day's AI answers about the attribute. These are the same scores as the competitive breakdown, split by day instead of aggregated. The brand defaults to the project's own brand. The data covers the brand-perception runs of one industry and one target market. Pass `industry` to pick the industry; omitted, it is the one with the most recent completed run. The target market is always the industry's most recently completed one and cannot be picked. Both are returned as `industry` and `target_market`. Pagination applies to attributes.

## Query parameters

- `project_id` string: Required if using a company api key
- `brand` string: The brand whose history to read, spelled as the competitive-breakdown endpoint reports it. Omit to read the project's own brand.
- `model_channel_ids` string[]: Only include answers from these AI engine channels (repeat the parameter for multiple values). Omit to aggregate across all tracked channels.
- `industry` string: Only read the runs dispatched for this industry, as returned by the brand-perception industries endpoint. Omit to read the industry marked `is_default` there — the one with the most recent completed run.
- `limit` integer
- `offset` integer

## Response `200`

Success

- object: Success
  - `data` object[], required: Attributes sorted by the brand's score on the latest day, strongest first.
    - `attribute` string, required: The attribute (cluster representative name).
    - `points` object[], required: One point per day with data, oldest first. Every attribute carries the same days, so the series line up.
      - `date` string, date, required: The day the answers were collected.
      - `score` number, required: The brand's average prominence for this attribute across that day's AI answers about it, 0-100. Answers the brand was absent from count as 0.
  - `total_count` number, required: Total number of attributes, ignoring pagination
  - `brand` string, nullable, required: The brand the series describe; null when no brand was passed and the project has no own brand.
  - `industry` string, nullable, required: The industry the data was read from; null when the project has no brand-perception runs yet.
  - `target_market` string, nullable, required: The target market the read narrowed to within that industry — its most recently completed one. Runs dispatched for the industry's other markets are not included.
  - `industries` object[]: Every industry the project has runs for, latest-started first — present only when there is more than one. Pass a name as `industry` to read that one instead.
    - `name` string, required
    - `has_completed_run` boolean, required: False while the industry's first run is still in flight, so its data is partial.

## Changes

- **2026-11-03** `9d774600c8eb`: 1 info
  - added the enum value `exa-0` to the property `items/` of the `query` request parameter `model_channel_ids`
- **2026-11-03** `9fdffdff48a5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/peec/apis/peec-ai-customer-api/changes/brand-perception/attribute-history/get.md)

---

[API](https://skmtc.dev/peec/apis/peec-ai-customer-api.md) - [All operations](https://skmtc.dev/peec/apis/peec-ai-customer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/peec/apis/peec-ai-customer-api/revisions/9d774600c8eb?raw)
