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

# Reviews & Vitals

> List Google Play reviews, reply to users, query Android vitals, and inspect anomalies

Reviews and Android vitals use Google's official APIs. They are live owner-data endpoints, not public Play Store scraping endpoints.

***

## Reviews

### List Reviews

```bash curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl "https://api.appeeky.com/v1/connect/google-play/apps/com.example.app/reviews" \
  -H "X-API-Key: YOUR_APEEKY_KEY"
```

Optional query parameters:

| Name                  | Description                              |
| --------------------- | ---------------------------------------- |
| `maxResults`          | Page size supported by Google            |
| `token`               | Pagination token from Google             |
| `translationLanguage` | Language code for translated review text |

### Get One Review

```bash curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl "https://api.appeeky.com/v1/connect/google-play/apps/com.example.app/reviews/REVIEW_ID" \
  -H "X-API-Key: YOUR_APEEKY_KEY"
```

### Reply to a Review

```bash curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X POST "https://api.appeeky.com/v1/connect/google-play/apps/com.example.app/reviews/REVIEW_ID/reply" \
  -H "X-API-Key: YOUR_APPEEKY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "replyText": "Thanks for the feedback. We fixed this in the latest update."
  }'
```

Google's review reply endpoint accepts a reply up to 350 characters.

<Warning>
  Replying to a review writes to Google Play. Use read-only permissions for customers who only want review analytics or triage.
</Warning>

***

## Review Permissions

| Action          | Permission guidance        |
| --------------- | -------------------------- |
| List reviews    | Review read access         |
| Get one review  | Review read access         |
| Reply to review | Review reply/manage access |

If review listing works but replies fail, the service account likely has read access but not reply permission.

***

## Android Vitals

Android vitals are queried through the Google Play Developer Reporting API.

### Metric Metadata

```bash curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl "https://api.appeeky.com/v1/connect/google-play/apps/com.example.app/vitals/crashRate" \
  -H "X-API-Key: YOUR_APPEEKY_KEY"
```

Supported metric sets:

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
anrRate
crashRate
errorCount
excessiveWakeupRate
lmkRate
slowRenderingRate
slowStartRate
stuckBackgroundWakelockRate
```

### Query Metric Data

```bash curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X POST "https://api.appeeky.com/v1/connect/google-play/apps/com.example.app/vitals/crashRate/query" \
  -H "X-API-Key: YOUR_APPEEKY_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "timelineSpec": {
      "aggregationPeriod": "DAILY",
      "startTime": { "year": 2026, "month": 5, "day": 1 },
      "endTime": { "year": 2026, "month": 6, "day": 1 }
    }
  }'
```

The body follows Google's metric query schema. Use the analytics vitals sync endpoint when you want Appeeky to store crash and ANR rates for dashboards.

***

## Anomalies

```bash curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl "https://api.appeeky.com/v1/connect/google-play/apps/com.example.app/anomalies" \
  -H "X-API-Key: YOUR_APPEEKY_KEY"
```

Anomalies help identify unusual spikes in technical quality metrics.

***

## Empty Vitals Rows

Vitals can return no rows even when credentials are valid.

Common reasons:

1. The selected date range has no data.
2. Google suppresses data below thresholds.
3. The service account lacks app quality / vitals access.
4. The app has too little traffic for the metric.

Try a wider date range and verify the same app has vitals data in Play Console.
