> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appeeky.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Store Presence History

> Daily category and overall chart ranks, rating and App Store featuring for an app, per country, for up to 400 days.

**Store presence** is a daily record of where an app stood on the store: its category and overall chart ranks (free, paid, grossing), its average rating and rating count, and on the App Store, every day it was featured on the Today tab.

Appeeky records presence once a day for every live app in a [My Apps](https://docs.appeeky.com/docs/my-apps.md) list, in up to 10 countries per app (the countries where its owners track keywords or listings). History starts the day the app was first added.

***

## API

| Method | Endpoint | Description | Credits |
| - | - | - | - |
| GET | `/v1/apps/:id/presence` | Daily presence snapshots and featuring log | 1 |

| Name | Type | Required | Default | Description |
| - | - | - | - | - |
| `id` | path | Yes | — | App Store numeric id or Google Play package name |
| `platform` | string | No | `apple` | `apple` or `google` |
| `days` | number | No | `90` | Lookback window, 1–400 |

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl "https://api.appeeky.com/v1/apps/123456789/presence?days=30" \
  -H "X-API-Key: $APPEEKY_API_KEY"
```

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "data": {
    "platform": "apple",
    "storeAppId": "123456789",
    "days": 30,
    "countries": ["us", "gb", "de"],
    "snapshots": [
      {
        "platform": "apple",
        "storeAppId": "123456789",
        "country": "us",
        "snapshotDate": "2026-10-31",
        "categoryId": "6013",
        "categoryName": "Health & Fitness",
        "categoryRanks": { "free": 42, "paid": null, "grossing": 88 },
        "overallRanks": { "free": null, "paid": null, "grossing": null },
        "ratingAvg": 4.7,
        "ratingCount": 12840,
        "ratingHistogram": { "1": 310, "2": 120, "3": 400, "4": 1810, "5": 10200 },
        "featured": false
      }
    ],
    "featuring": [
      {
        "country": "us",
        "featuredOn": "2026-10-12",
        "placement": "collection",
        "groupName": "Build Better Habits",
        "tagline": null
      }
    ],
    "featuringSupported": true
  }
}
```

### Fields

| Field | Meaning |
| - | - |
| `countries` | Countries with snapshots, most-covered first |
| `snapshots` | One row per country per day, oldest first |
| `categoryRanks`, `overallRanks` | Chart position on `free`, `paid` and `grossing`; `null` when the app wasn't on that chart |
| `ratingHistogram` | Ratings by star, when the store provides it |
| `featured` | Whether the app was featured that day; `null` on Google Play |
| `featuring` | App Store featuring log, newest first. `placement` is `app_of_the_day`, `game_of_the_day`, `story` or `collection` |
| `featuringSupported` | `false` on Google Play, which has no public featuring source |

An app that isn't in any My Apps list returns empty `snapshots`.

***

## Errors

| Status | Code | When |
| - | - | - |
| 400 | `INVALID_APP_ID` | `id` doesn't match the platform's id format |
| 400 | `INVALID_PLATFORM` | `platform` is not `apple` or `google` |
| 400 | `INVALID_DAYS` | `days` is not an integer from 1 to 400 |

***

## Related

* [Country Rankings](https://docs.appeeky.com/docs/country-rankings.md): an app's live chart position across countries
* [Featured](https://docs.appeeky.com/docs/featured.md): today's App Store editorial picks


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.