---
title: "Get SEO score"
method: GET
path: "/api/apps/{app_id}/seo/summary"
---

# Get SEO score

`GET /api/apps/{app_id}/seo/summary`

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Returns the [score](/developers/references/apps-api/sections/seo#the-score-and-the-checklist) from the app's last SEO scan, without the checklist behind it.

This endpoint retrieves the score from a scan that already ran. It doesn't run a new scan itself. It returns `null` until the app has been scanned at least once, so run [Run SEO scan](/api-reference/run-seo-scan) first if you haven't. Use [Get last SEO scan](/api-reference/get-last-seo-scan) when you need the individual checks.

The score and the checklist are stored separately, and two scans running at once can interleave those two writes. So compare `scanned_at` with the one [Get last SEO scan](/api-reference/get-last-seo-scan) returns before treating the two as one scan's.

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>

## Path parameters

- `app_id` string, required — ID of the app.

## Response `200`

The last scan's score, or `null` if the app has never been scanned.

- SEOScoreResponse — The score rollup.
  - `result` SEOScoreRollup — The last scan's score, without its checks.
    - `overall` integer, required — Overall SEO score for the app, 0 to 100.
    - `grade` string, required — Letter grade for `overall`: `A`, `B`, `C`, `D` or `F`.
    - `failures` integer — How many checks failed in that scan.
    - `warnings` integer — How many checks returned a warning in that scan.
    - `scanned_at` string, required — When the scan ran, as an ISO 8601 UTC timestamp.

## Other responses

- `401` — Missing or invalid credentials.
- `403` — You don't have access to this app, you used a workspace API key, or you used a read-only personal access token. These endpoints accept a user's credentials only, and none of them accept a read-only credential, including the ones that only read.
- `404` — App not found.
- `429` — Rate limit exceeded. The base limit is 30 requests per minute, shared with the app's other SEO endpoints. See [Rate limits](/developers/references/apps-api/get-started/rate-limits) for the multiplier your plan gets.

---

[API](https://skmtc.dev/base44/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/base44/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/base44/apis/base44-app-management-api/revisions/cf164639a9bf?raw)
