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

# GET /v1/projects/{project_id}/actions/{action_id}

`GET /v1/projects/{project_id}/actions/{action_id}`

## Request

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

## Path parameters

- `project_id` string, uuid, required
- `action_id` string, uuid, required

## Response `200`

Successful Response

- ActionDetail
  - `id` string, uuid, required
  - `project_id` string, uuid, required
  - `target_kind` string, required
  - `target_label` string, required
  - `target_url` string, nullable, required
  - `target_prompt_id` string, uuid, nullable, required
  - `origin` 'evidence' | 'agent', required
  - `status` 'open' | 'in_progress' | 'implemented' | 'measuring' | 'done' | 'dismissed', required
  - `priority_score` number, nullable, required
  - `families` string[], required
  - `approach` string, required
  - `skill_id` string, required
  - `member_count` integer, required
  - `evidence_cleared_at` string, nullable, required
  - `created_at` string, required
  - `updated_at` string, required
  - `member_measurement` object, required
  - `declarable_since` string, required
  - `diagnosis` object, required
    - `what_happened` object[]
      - `opportunity_id` string, uuid, required
      - `rule_id` string, required
      - `title` string, required
      - `family` string, required
      - `priority_score` number, required
    - `families` object
    - `approach` string
    - `skill_id` string
    - `donts` string[]
    - `measure_with` string[]
  - `members` object[], required
    - `id` string, uuid, required
    - `project_id` string, uuid, required
    - `rule_id` string, required
    - `opportunity_type` 'visibility' | 'commerce' | 'site' | 'traffic' | 'topic', required
    - `severity` 'critical' | 'high' | 'medium' | 'low' | 'info', required
    - `priority_score` number, required
    - `title` string, required
    - `target_key` string, required
    - `target_prompt_id` string, uuid, nullable, required
    - `target_url` string, nullable, required
    - `target_theme` string, nullable, required
    - `target_label` string, nullable, required
    - `action_id` string, uuid, nullable, required
    - `system_rank` integer, required
    - `display_rank` integer, required
    - `order_source` 'system' | 'manual', required
    - `priority_factors` object, required
    - `evidence_summary` object, required
      - `count` integer, required
      - `kinds` string[], required
    - `created_at` string, required
    - `updated_at` string, required
    - `remediation` string, required
  - `declaration` ActionDeclaration, required
    - `id` string, uuid, required
    - `action_id` string, uuid, required
    - `output_revision_id` string, uuid, nullable, required
    - `member_opportunity_ids` string[], required
    - `opportunity_snapshot_id` string, uuid, required
    - `target_site_url_ids` string[], required
    - `target_external_url` string, nullable, required
    - `declared_implemented_at` string, required
    - `expected_checks` ExpectedCheck[], required
      - union
        - KeywordPresenceExpectedCheck
          - `kind` 'keyword_presence', required
          - `keyword` string, required
          - `query_key` string, required
          - `owned_origin` string, required
          - `location_code` integer, nullable, required
          - `language_code` string, required
        - object
          - `kind` 'contextual_link', required
          - `recommendation_id` string, uuid, required
          - `internal_link_run_id` string, uuid, required
          - `target_site_url_id` string, uuid, required
          - `target_url` string, required
          - `anchor_text` string, required
          - `source_analysis_id` string, uuid, required
          - `source_artifact_id` string, uuid, required
          - `target_analysis_id` string, uuid, required
          - `target_artifact_id` string, uuid, required
          - `extractor_version` string, required
        - object
          - `kind` 'site_rule', required
          - `target_site_url_id` string, uuid
          - `rule_id` string, required
          - `expected_outcome` 'pass' | 'fail' | 'partial', required
        - object
          - `kind` 'traffic_metric', required
          - `metric` string, required
          - `direction` 'increase' | 'decrease' | 'equal', required
          - `scope` 'page' | 'query'
          - `scope_key` string
          - `min_delta` number
          - `baseline_traffic_snapshot_id` string, uuid
          - `baseline_value` number
          - `baseline_window_days` integer
          - `expected_value` number
          - `tolerance` number
        - object
          - `kind` 'visibility_metric', required
          - `metric` string, required
          - `direction` 'increase' | 'decrease' | 'equal', required
          - `min_delta` number, required
          - `tolerance` number, required
          - `target_prompt_id` string, uuid, nullable, required
          - `baseline_metric_snapshot_id` string, uuid
          - `baseline_value` number
    - `state` 'declared' | 'observed' | 'verified' | 'contradicted', required
    - `limitations` string[], required
    - `verification_events` VerificationEvent[], required
      - `id` string, uuid, required
      - `observation_kind` 'observed' | 'verified' | 'contradicted', required
      - `observed_at` string, required
      - `crawl_id` string, uuid, nullable, required
      - `audit_id` string, uuid, nullable, required
      - `source_analysis_ids` string[], required
      - `source_rule_evaluation_ids` string[], required
      - `source_metric_ids` string[], required
      - `result` object, required
      - `verifier_version` string, required
      - `limitations` string[], required
      - `created_at` string, required
    - `legs` MeasurementLeg[], required
      - `leg` 'next_visibility_run' | 'next_search_console_window' | 'next_crawl', required
      - `state` 'waiting' | 'not_scheduled' | 'sync_needed' | 'observed', required
      - `due_at` string, nullable, required
      - `last_evidence_at` string, nullable, required
      - `source_id` string, uuid, nullable, required
    - `checks` DeclarationCheck[], required
      - `index` integer, required
      - `kind` string, required
      - `leg` 'next_visibility_run' | 'next_search_console_window' | 'next_crawl', required
      - `state` 'waiting' | 'met' | 'unmet' | 'unavailable', required
      - `reason` string, nullable, required
      - `observed_at` string, nullable, required
      - `source_kind` string, nullable, required
      - `source_id` string, nullable, required
      - `subject` string, nullable, required
      - `prompt_id` string, uuid, nullable
    - `measured_until` string, required
    - `created_at` string, 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)
