---
title: "Keyword Ranked Apps History"
method: POST
path: "/data/keyword/apps/history"
tags: ["Keyword"]
---

# Keyword Ranked Apps History

`POST /data/keyword/apps/history`

## Request

- Base URL: `https://data.applyzer.com` (the document declares no server; this is the origin it was published from)
- URL: `https://data.applyzer.com/data/keyword/apps/history`
- Auth: API key in header `Authorization`

Return ALL apps ranking for a keyword per date (and store) over a date<br/>range. Unlike /data/keyword/rank/history (which returns a single app's rank),<br/>this returns the full ranked app list captured for the keyword each day.<br/>

Credit Cost: 20

## Request body

- object
  - `device` string, required: play / iphone / ipad / mac
  - `keyword` string, required: search term
  - `language` string, required: locale code such as en-US. The store/country is derived from this (e.g. en-US -> US store).
  - `market` string, required: IOS / PLAY
  - `startdate` string, required: Start date (YYYY-MM-DD)
  - `enddate` string, required: End date (YYYY-MM-DD)
  - `ranklimit` integer: Optional. Only return apps ranked at or above this position.

## Response `200`

Successful operation. `response.data` is keyed by date (YYYY-MM-DD); each value is the ranked list of app ids for that day, ordered by rank (index 0 = rank 1). `totals` holds the full number of ranked apps per day before `ranklimit` is applied, so it can exceed the length of the matching `data` list. `searchscore` and `impressions` are keyed by the same dates; a day only appears there if a search score was recorded, and `impressions` is null when the score has no impressions lookup entry for that store. If the keyword is not in the library the request still returns 200 with an empty `data` object and no `totals`/`searchscore`/`impressions`.

- object
  - `message` string
  - `response` object
    - `keyword` string: The keyword, lowercased and trimmed.
    - `device` string
    - `market` string
    - `data` object: Date (YYYY-MM-DD) -> app ids ordered by rank (index 0 = rank 1).
    - `totals` object: Date -> total apps that ranked for the keyword that day (before ranklimit).
    - `searchscore` object: Date -> search (traffic) score of the keyword for that store.
    - `impressions` object: Date -> estimated impressions the search score maps to (null when unknown).

## Other responses

- `400`: Missing or invalid parameter
- `404`: No data found

---

[API](https://skmtc.dev/applyzer/apis/applyzer-data-api.md) - [All operations](https://skmtc.dev/applyzer/apis/applyzer-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/applyzer/apis/applyzer-data-api/revisions/ffe6cc179bf5?raw)
