---
title: "Conversion Rate Benchmarks - History"
method: GET
path: "/categories/benchmarks"
tags: ["Conversion Rate Benchmarks"]
---

# Conversion Rate Benchmarks - History

`GET /categories/benchmarks`

## Request

- Base URL: `https://public-api.apptweak.com/api/public/store`
- URL: `https://public-api.apptweak.com/api/public/store/categories/benchmarks`
- Auth: API key in header `x-apptweak-key`

Shows the average conversion rates per category for a selected country, channel and date range. <br/><br/> <b>Price</b> <table> <thead><tr><th>Datapoint</th><th>Description</th><th>Credits for 1 request</th></tr></thead> <tbody> <tr><td><b>category_benchmarks</b></td><td>A hash that contains the category name, category id and the information about the conversion rates for that category during the selected date range.</td><td>1000</td></tr> </tbody> </table>

## Query parameters

- `country` string
- `channel` string
- `type` 'free' | 'paid'
- `device` 'iphone' | 'ipad' | 'android'
- `start_date` string, date
- `end_date` string, date

## Response `200`

Successful response.

- object
  - `result` object
    - `category_benchmarks` CategoryBenchmark[]: One element per valid category of the requested store. There is no overall row.
      - `category` string: On iOS a numeric genre ID as a string; on Google Play a category token.
      - `category_name` string: Human-readable name of `category`.
      - `impressions_to_page_views` number, nullable: Average click-through rate of the category's apps: page views over impressions, as a percentage. iOS only.
      - `page_views_to_installs` number, nullable: Average conversion rate of the category's apps, as a percentage. The formula differs by store: on iOS installs over page views, on Google Play store-listing acquisitions over store-listing visitors. Can exceed 100.
      - `impressions_to_installs` number, nullable: Average installs over impressions, as a percentage. iOS only.
      - `number_of_apps` number, nullable: How many apps the averages were computed over. On Google Play this is the daily average across the requested range, so it is fractional.
  - `metadata` ResponseMetadata: Standard response envelope, identical on every endpoint.
    - `request` object
      - `path` string: The path that was called.
      - `params` object, nullable: The query as the API parsed it, with defaults applied.
      - `cost` integer: Credits actually charged for this call.
      - `max_credit_cost` integer: Credits the call could have cost if every datapoint requested had been available.
      - `status` integer: HTTP status of the response.
    - `response` object, nullable: Endpoint-specific notes; null when there are none.

## Other responses

- `401`: Unauthorized. Unknown or missing API token.
- `403`: Forbidden. Not enough credits to perform the request.
- `422`: Validation error. Returned when a parameter is invalid.

## Changes

- **2026-11-03** `a4af4000f1e3`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/apptweak/apis/apptweak-store-api/changes/categories/benchmarks/get.md)

---

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