---
title: "Get Changes Summary"
method: GET
path: "/api/v1/geo/experiments/{experiment_id}/changes-summary"
tags: ["geo-monitoring", "geo-dashboard"]
---

# Get Changes Summary

`GET /api/v1/geo/experiments/{experiment_id}/changes-summary`

## Path parameters

- `experiment_id` string, uuid, required

## Query parameters

- `scan_id` string, uuid, nullable

## Response `200`

Successful Response

- ChangesSummaryResponse
  - `report_available` boolean, required
  - `appearances_current` integer, nullable, required
  - `appearances_previous` integer, nullable, required
  - `total_prompts` integer, required
  - `total_platforms` integer, required
  - `notable_changes` PromptChange[], required
    - `prompt_id` string, uuid, required
    - `prompt_text` string, required
    - `platform_id` string, uuid, required
    - `platform_name` string, required
    - `previous_position` integer, nullable
    - `current_position` integer, nullable
    - `change_type` 'appeared' | 'dropped' | 'moved_up' | 'moved_down', required
  - `scan` DashboardScanMetadata — Distinguishes the latest attempt from the scan supplying dashboard data.
    - `latest_attempt` MonitoringRunCoverage — Lifecycle and provider coverage for one monitoring attempt.
      - `run_id` string, uuid, required
      - `status` string, required
      - `total_tasks` integer, required
      - `completed_tasks` integer, required
      - `successful_tasks` integer, required
      - `failed_tasks` integer, required
      - `started_at` string, date-time, nullable, required
      - `completed_at` string, date-time, nullable, required
      - `created_at` string, date-time, required
      - `providers` MonitoringProviderCoverage[]
        - `platform_id` string, uuid, required
        - `platform_name` string, required
        - `planned_count` integer, required
        - `succeeded_count` integer, required
        - `failed_count` integer, required
        - `pending_count` integer, required
        - `total_attempts` integer, required
        - `failure_codes` MonitoringFailureCode[]
        - `tasks` MonitoringTaskCoverage[]
          - `task_id` string, uuid, required
          - `prompt_id` string, uuid, required
          - `platform_id` string, uuid, required
          - `platform_name` string, required
          - `run_index` integer, required
          - `status` 'queued' | 'running' | 'retry_wait' | 'succeeded' | 'terminal_failed', required
          - `attempt_count` integer, required
          - `failure_code` 'quota_exhausted' | 'auth_failed' | 'rate_limited' | 'timeout' | 'provider_unavailable' | 'invalid_model' | 'malformed_response' | 'retrieval_not_observed' | 'unknown' — Stable provider failure taxonomy persisted on monitoring tasks.
          - `requested_model` string, nullable
          - `resolved_model` string, required
          - `adapter` string, required
          - `retrieval_policy` string, required
          - `started_at` string, date-time, nullable
          - `completed_at` string, date-time, nullable
          - `last_attempt_at` string, date-time, nullable
    - `data_scan` MonitoringRunCoverage — Lifecycle and provider coverage for one monitoring attempt.
      - `run_id` string, uuid, required
      - `status` string, required
      - `total_tasks` integer, required
      - `completed_tasks` integer, required
      - `successful_tasks` integer, required
      - `failed_tasks` integer, required
      - `started_at` string, date-time, nullable, required
      - `completed_at` string, date-time, nullable, required
      - `created_at` string, date-time, required
      - `providers` MonitoringProviderCoverage[]
        - `platform_id` string, uuid, required
        - `platform_name` string, required
        - `planned_count` integer, required
        - `succeeded_count` integer, required
        - `failed_count` integer, required
        - `pending_count` integer, required
        - `total_attempts` integer, required
        - `failure_codes` MonitoringFailureCode[]
        - `tasks` MonitoringTaskCoverage[]
          - `task_id` string, uuid, required
          - `prompt_id` string, uuid, required
          - `platform_id` string, uuid, required
          - `platform_name` string, required
          - `run_index` integer, required
          - `status` 'queued' | 'running' | 'retry_wait' | 'succeeded' | 'terminal_failed', required
          - `attempt_count` integer, required
          - `failure_code` 'quota_exhausted' | 'auth_failed' | 'rate_limited' | 'timeout' | 'provider_unavailable' | 'invalid_model' | 'malformed_response' | 'retrieval_not_observed' | 'unknown' — Stable provider failure taxonomy persisted on monitoring tasks.
          - `requested_model` string, nullable
          - `resolved_model` string, required
          - `adapter` string, required
          - `retrieval_policy` string, required
          - `started_at` string, date-time, nullable
          - `completed_at` string, date-time, nullable
          - `last_attempt_at` string, date-time, nullable
    - `showing_older_data` boolean

## Other responses

- `404` — Scan not found
- `422` — Validation Error

---

[API](https://skmtc.dev/getanana/apis/cleon-api.md) · [All operations](https://skmtc.dev/getanana/apis/cleon-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/getanana/cleon-api/revisions/c0f54348e251/schema)
