Back to Blog
GuideMay 20, 20263 min read

Get Your App's Average Rating from App Store Connect API

Discover how to retrieve and calculate your app's average rating from the App Store Connect API. This guide offers step-by-step instructions and practical tips.

Understanding the Challenge

As a developer or agency managing apps on the App Store, knowing your app's average rating is crucial for tracking user satisfaction and guiding improvements. However, accessing this data programmatically using the App Store Connect API can be tricky if you're unsure where to start.

Prerequisites

Before diving in, ensure you have the following:

  • An active Apple Developer account with App Store Connect access.
  • App Store Connect API access enabled.
  • Basic knowledge of HTTP requests and JSON.

Setting Up API Access

To interact with the App Store Connect API, follow these steps:

  • Log in to App Store Connect.
  • Navigate to Users and Access and select Keys.
  • Click the Generate API Key button.
  • Note down the Key ID, Issuer ID, and download the API Key file.

Accessing Ratings Data

With your API credentials ready, you can now fetch ratings data. Use the following endpoint to retrieve reviews and ratings:

GET https://api.appstoreconnect.apple.com/v1/apps/{app-id}/customerReviews

Replace {app-id} with your actual app's ID. This endpoint returns a list of reviews, each containing the rating given by the user.

Calculating the Average Rating

To calculate the average rating, you'll need to process the JSON response. Here's a simplified example using Python:

import requests
import json

# Your API credentials
key_id = 'YOUR_KEY_ID'
issuer_id = 'YOUR_ISSUER_ID'
private_key = """-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----"""

# Function to get ratings
def get_ratings(app_id):
    url = f'https://api.appstoreconnect.apple.com/v1/apps/{app_id}/customerReviews'
    headers = {
        'Authorization': f'Bearer {generate_token()}'
    }
    response = requests.get(url, headers=headers)
    reviews = response.json().get('data', [])
    total_ratings = sum(int(review['attributes']['rating']) for review in reviews)
    average_rating = total_ratings / len(reviews) if reviews else 0
    return average_rating

# Function to generate JWT
from jwt import encode
import datetime

def generate_token():
    header = {
        "alg": "ES256",
        "kid": key_id
    }
    payload = {
        "iss": issuer_id,
        "exp": int((datetime.datetime.now() + datetime.timedelta(minutes=20)).timestamp()),
        "aud": "appstoreconnect-v1"
    }
    token = encode(payload, private_key, algorithm="ES256", headers=header)
    return token

# Example usage
app_id = 'YOUR_APP_ID'
average = get_ratings(app_id)
print(f'The average rating for app {app_id} is {average:.2f}')

This script uses the PyJWT library to generate a JSON Web Token (JWT) for authorization. Make sure to install the necessary libraries with pip install requests pyjwt.

Automation with ReviewTower

ReviewTower simplifies this process by providing instant notifications and a dashboard to manage ratings and reviews without manual API calls. It's an efficient way to stay updated with user feedback in real-time.

Final Thoughts

Retrieving and calculating your app's average rating using the App Store Connect API involves a few technical steps, but it's manageable with the right setup. Use this guide to streamline your process, and consider automation tools like ReviewTower for continuous monitoring and agility in responding to user feedback.

Start managing your reviews today

Monitor, reply, and analyze your App Store and Google Play reviews — all in one place.

Free plan available · No credit card required