---
title: "Get the latest agent readiness report"
method: GET
path: "/v1/projects/{projectId}/geo/agent-readiness"
tags: ["GEO"]
---

# Get the latest agent readiness report

`GET /v1/projects/{projectId}/geo/agent-readiness`

## Request

- Base URL: `https://api.usenotra.com`
- URL: `https://api.usenotra.com/v1/projects/{projectId}/geo/agent-readiness`
- Auth: HTTP bearer

The most recent completed report for the project's website, any newer run still in flight or failed, and the score history. Returns stored data only; it never starts a scan.

## Path parameters

- `projectId` string, required

## Response `200`

Report fetched successfully

- GeoAgentReadinessResponse
  - `targetUrl` string, required
  - `report` GeoAgentReadinessReport, nullable, required: Latest completed report, if any.
    - `id` string, required
    - `status` 'running' | 'completed' | 'failed', required
    - `targetUrl` string, required
    - `score` number, nullable, required
    - `scoreLabel` string, nullable, required
    - `scoreBreakdown` object, nullable, required
      - `essential` object, required
        - `earned` number, required
        - `available` number, required
        - `passing` number, required
        - `total` number, required
      - `recommended` object, required
        - `earned` number, required
        - `available` number, required
        - `passing` number, required
        - `total` number, required
      - `bonus` object, required
        - `points` number, required
        - `positiveSignals` number, required
    - `issues` object[], required
      - `id` string, required
      - `name` string, required
      - `tier` 'essential' | 'recommended' | 'bonus', required
      - `result` 'failed' | 'partial', required
      - `details` string, nullable, required
      - `recommendation` string, nullable, required
    - `eligibleChecks` integer, nullable, required
    - `reportUrl` string, nullable, required
    - `errorMessage` string, nullable, required
    - `scannedAt` string, nullable, required
    - `createdAt` string, required
  - `scan` object, nullable, required: Latest run newer than the completed report, if any.
    - `id` string, required
    - `status` 'running' | 'completed' | 'failed', required
    - `targetUrl` string, required
    - `score` number, nullable, required
    - `scoreLabel` string, nullable, required
    - `scoreBreakdown` object, nullable, required
      - `essential` object, required
        - `earned` number, required
        - `available` number, required
        - `passing` number, required
        - `total` number, required
      - `recommended` object, required
        - `earned` number, required
        - `available` number, required
        - `passing` number, required
        - `total` number, required
      - `bonus` object, required
        - `points` number, required
        - `positiveSignals` number, required
    - `issues` object[], required
      - `id` string, required
      - `name` string, required
      - `tier` 'essential' | 'recommended' | 'bonus', required
      - `result` 'failed' | 'partial', required
      - `details` string, nullable, required
      - `recommendation` string, nullable, required
    - `eligibleChecks` integer, nullable, required
    - `reportUrl` string, nullable, required
    - `errorMessage` string, nullable, required
    - `scannedAt` string, nullable, required
    - `createdAt` string, required
  - `history` object[], required: Completed scans, oldest first.
    - `id` string, required
    - `score` number, nullable, required
    - `failedCount` integer, required
    - `partialCount` integer, required
    - `scannedAt` string, required
  - `comparison` object, nullable, required: Checks that changed between the latest completed scan and the one before it. Null until there are two completed scans.
    - `previousScore` number, nullable, required
    - `previousScannedAt` string, required
    - `resolved` object[], required
      - `id` string, required
      - `name` string, required
      - `tier` 'essential' | 'recommended' | 'bonus', required
      - `previousResult` 'failed' | 'partial' | 'null', nullable, required: Result on the previous scan; null when the check passed.
      - `result` 'failed' | 'partial' | 'null', nullable, required: Result on the latest scan; null when the check passes now.
    - `added` object[], required
      - `id` string, required
      - `name` string, required
      - `tier` 'essential' | 'recommended' | 'bonus', required
      - `previousResult` 'failed' | 'partial' | 'null', nullable, required: Result on the previous scan; null when the check passed.
      - `result` 'failed' | 'partial' | 'null', nullable, required: Result on the latest scan; null when the check passes now.
    - `improved` object[], required: Checks that went from failed to partial.
      - `id` string, required
      - `name` string, required
      - `tier` 'essential' | 'recommended' | 'bonus', required
      - `previousResult` 'failed' | 'partial' | 'null', nullable, required: Result on the previous scan; null when the check passed.
      - `result` 'failed' | 'partial' | 'null', nullable, required: Result on the latest scan; null when the check passes now.
    - `worsened` object[], required: Checks that went from partial to failed.
      - `id` string, required
      - `name` string, required
      - `tier` 'essential' | 'recommended' | 'bonus', required
      - `previousResult` 'failed' | 'partial' | 'null', nullable, required: Result on the previous scan; null when the check passed.
      - `result` 'failed' | 'partial' | 'null', nullable, required: Result on the latest scan; null when the check passes now.
  - `organization` object, required
    - `id` string, required
    - `slug` string, required
    - `name` string, required
    - `logo` string, nullable, required

## Other responses

- `400`: Invalid request
- `401`: Missing or invalid API key
- `402`: GEO plan or available AI credits required
- `403`: Forbidden
- `404`: Organization, project or resource not found
- `409`: Conflict
- `500`: Internal server error
- `503`: Authentication or billing service unavailable

## Changes

- **2026-10-07** `1dd43f3b63f7`: 1 info
  - added the required property `comparison` to the response with the `200` status
- **2026-09-02** `fd2fc44c9208`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/usenotra/apis/notra-api/changes/v1/projects/:projectId/geo/agent-readiness/get.md)

---

[API](https://skmtc.dev/usenotra/apis/notra-api.md) · [All operations](https://skmtc.dev/usenotra/apis/notra-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usenotra/apis/notra-api/revisions/0332a6e10b77?raw)
