---
title: "GET /v1/projects/{project_id}/site-health"
method: GET
path: "/v1/projects/{project_id}/site-health"
tags: ["site-health"]
---

# GET /v1/projects/{project_id}/site-health

`GET /v1/projects/{project_id}/site-health`

## Request

- Base URL: `https://api.citeladder.com`
- URL: `https://api.citeladder.com/v1/projects/{project_id}/site-health`
- Auth: HTTP bearer

## Path parameters

- `project_id` string, uuid, required

## Query parameters

- `crawl_id` string, uuid, nullable

## Response `200`

Successful Response

- SiteHealthDashboard
  - `project_id` string, uuid, required
  - `crawl` SiteCrawl, required
    - `id` string, uuid, required
    - `workspace_id` string, uuid, required
    - `project_id` string, uuid, required
    - `profile_id` string, uuid, required
    - `status` 'draft' | 'validating' | 'queued' | 'running' | 'paused' | 'completed' | 'partially_completed' | 'failed' | 'cancelled', required
    - `discovery_status` 'pending' | 'running' | 'stopped' | 'completed' | 'sample_completed' | 'failed' | 'cancelled', required
    - `analysis_status` 'pending' | 'running' | 'stopped' | 'completed' | 'partially_completed' | 'failed' | 'cancelled', required
    - `root_url` string, required
    - `sample_mode` boolean, required
    - `seed` string, required
    - `inventory_complete` boolean, required
    - `partial_reason` '' | 'discovery_incomplete' | 'analysis_incomplete' | 'discovery_and_analysis_incomplete', required
    - `visible_url_count` integer, required
    - `analyzed_count` integer, required
    - `failed_count` integer, required
    - `discovery_requested_count` integer, required
    - `analysis_requested_count` integer, required
    - `counters` CrawlCounters, required
      - `discovered` integer, nullable, required
      - `selected` integer, required
      - `queued` integer, required
      - `running` integer, required
      - `analyzed` integer, required
      - `errors` integer, required
      - `blocked` integer, required
      - `failure_breakdown` object, required
        - `robots_denied` integer, required
        - `http_4xx` integer, required
        - `http_5xx` integer, required
        - `timeout` integer, required
      - `activity` object, required
        - `state` 'working' | 'waiting' | 'stalled' | 'terminal', required
        - `reason` 'active_work' | 'host_gate' | 'retry_backoff' | 'expired_lease' | 'terminal', required
        - `queue_depth` integer, required
        - `next_available_at` string, nullable, required
      - `by_page_kind` object, required
    - `discovered_count` integer, nullable
    - `total_url_count` integer, nullable, required
    - `has_more_site_urls` boolean, nullable
    - `score_summary` SiteScoreSummary, required
      - `web_fundamentals_score` number, nullable, required
      - `web_fundamentals_coverage` number, nullable, required
      - `web_fundamentals_state` 'measured' | 'limited_evidence' | 'not_measured' | 'excluded', required
      - `aeo_readiness_score` number, nullable, required
      - `aeo_measurement_coverage` number, nullable, required
      - `aeo_measurement_state` 'measured' | 'limited_evidence' | 'not_measured' | 'excluded', required
      - `search_eligibility` 'eligible' | 'blocked' | 'unknown' | 'excluded', required
      - `classified_page_count` integer, required
      - `other_page_count` integer, required
      - `classification_error_page_count` integer, required
      - `classification_expected_page_count` integer, required
      - `classification_coverage` number, nullable, required
      - `classification_state` 'complete' | 'partial' | 'not_measured', required
      - `classification_reason_groups` object, required
      - `classification_formula_version` string, required
      - `classification_source_analysis_ids` string[], required
      - `classification_source_artifact_ids` string[], required
      - `classification_source_task_ids` string[], required
      - `scored_page_kind_set` PageKind[], required
      - `scored_page_count_by_kind` object, required
      - `selected_count` integer, required
      - `analyzed_count` integer, required
      - `issue_count` integer, required
      - `scoring_version` string, required
      - `by_page_kind` object, required
    - `failure_summary` object, nullable, required
      - `code` string, required
      - `message` string, required
      - `attempts` integer, nullable, required
      - `status_code` integer, nullable, required
      - `target_url` string, required
    - `site_facts` object, nullable, required
    - `extractor_version` string, required
    - `analyzer_version` string, required
    - `rule_version` string, required
    - `scoring_version` string, required
    - `error_message` string, required
    - `created_at` string, required
    - `updated_at` string, required
    - `started_at` string, nullable, required
    - `completed_at` string, nullable, required
  - `score_summary` SiteScoreSummary, required
    - `web_fundamentals_score` number, nullable, required
    - `web_fundamentals_coverage` number, nullable, required
    - `web_fundamentals_state` 'measured' | 'limited_evidence' | 'not_measured' | 'excluded', required
    - `aeo_readiness_score` number, nullable, required
    - `aeo_measurement_coverage` number, nullable, required
    - `aeo_measurement_state` 'measured' | 'limited_evidence' | 'not_measured' | 'excluded', required
    - `search_eligibility` 'eligible' | 'blocked' | 'unknown' | 'excluded', required
    - `classified_page_count` integer, required
    - `other_page_count` integer, required
    - `classification_error_page_count` integer, required
    - `classification_expected_page_count` integer, required
    - `classification_coverage` number, nullable, required
    - `classification_state` 'complete' | 'partial' | 'not_measured', required
    - `classification_reason_groups` object, required
    - `classification_formula_version` string, required
    - `classification_source_analysis_ids` string[], required
    - `classification_source_artifact_ids` string[], required
    - `classification_source_task_ids` string[], required
    - `scored_page_kind_set` PageKind[], required
    - `scored_page_count_by_kind` object, required
    - `selected_count` integer, required
    - `analyzed_count` integer, required
    - `issue_count` integer, required
    - `scoring_version` string, required
    - `by_page_kind` object, required
  - `phase` 'empty' | 'discovering' | 'analyzing' | 'dashboard' | 'terminal', required
  - `snapshot_id` string, uuid, nullable, required
  - `quota` MonitoredQuota, required
    - `used` integer, required
    - `limit` integer, required
  - `root_errors` RootError[], required
    - `method` string, required
    - `target` string, required
    - `outcome` string, required
    - `error_code` string, required
    - `status_code` integer, nullable, required
    - `latency_ms` integer, nullable, required

---

[API](https://skmtc.dev/citeladder/apis/citeladder-api.md) · [All operations](https://skmtc.dev/citeladder/apis/citeladder-api/llms.txt) · [OpenAPI document](https://skmtc.dev/citeladder/apis/citeladder-api/revisions/8c9f6aea40c2?raw)
