---
title: "Execute server-owned post-deploy verification"
method: POST
path: "/v1/automation-runs/{run_id}/verify"
tags: ["Automation"]
---

# Execute server-owned post-deploy verification

`POST /v1/automation-runs/{run_id}/verify`

## Request

- Base URL: `https://api.agentry.sh`
- URL: `https://api.agentry.sh/v1/automation-runs/{run_id}/verify`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

The caller supplies no result. The server binds the exact trusted CI deploy, first proves approved real traffic, then evaluates exact case recurrence. Zero traffic is pending until timeout and then failure, never success.

## Path parameters

- `run_id` string, required

## Response `200`

Verification complete

- object
  - `run_id` string, required
  - `status` 'succeeded' | 'failed' | 'escalated', required
  - `verification` object, required
    - `state` 'complete', required
    - `checked_at` integer, required
    - `trusted_deploy` object, required
      - `id` string, required
      - `sha` string, required
      - `source_commit_sha` string, nullable, required
      - `received_at` integer, required
      - `credential_id` string, nullable, required
      - `credential_kind` 'ci_deploy', required
      - `trust_level` 'trusted_ci', required
    - `sample` object, required
      - `state` 'sufficient' | 'insufficient', required
      - `blueprint_id` 'automation_deploy_traffic_sample', required
      - `event_name` string, required
      - `sample_count` integer, required
      - `min_sample_size` integer, required
      - `rows` object[], required
        - `sample_count` integer, required
      - `window` object, required
        - `start_at` integer, required
        - `end_at` integer, required
        - `bounds` '[start,end)', required
      - `input_readiness` object, nullable, required
        - `source` 'verified_onboarding_plan', required
        - `approved_plan_hash` string, required
        - `verified_onboarding_etag` string, required
        - `selected_event_params` string[], required
        - `selected_events` string[], required
        - `event_order` 'ordered_funnel' | 'not_applicable', required
        - `onboarding_verified` true, required
        - `selected_events_observed_by_onboarding_proof` true, required
        - `synthetic_rows` 'server_excluded', required
        - `trusted_deploy` 'exact_ci_deploy_verified'
      - `data_boundary` object, required
        - `schema_version` '1', required
        - `classification` 'untrusted_observation' | 'untrusted_observation_and_runner_evidence' | 'runner_and_owner_annotation' | 'server_control_with_authority_free_observation' | 'server_owned_bounded_aggregate' | 'external_response', required
        - `content_role` 'evidence_only', required
        - `instruction_authority` 'none', required
        - `trusted_provenance_does_not_mean_trusted_content` true, required
        - `external_url_policy` 'do_not_fetch', required
        - `command_policy` 'do_not_execute', required
        - `authority_source` 'enabled_automation_contract_and_server_policy_only', required
        - `applies_to` union
          - string
          - string[]
        - `inspection` object
          - `heuristic_only` true, required
          - `indicators` string[], required
          - `external_url_hosts` string[], required
          - `redacted_paths` string[], required
          - `truncated_paths` string[], required
        - `control_fields` string[]
        - `identifier_columns_included` boolean
        - `secret_values_included` boolean
    - `outcome` union, required
      - object
        - `state` 'not_executed', required
        - `blueprint_id` 'automation_case_recurrence_after_deploy', required
        - `reason` 'sample_gate_not_met', required
        - `rows` object[], required
          - `recurrence_count` integer, required
        - `window` object, required
          - `start_at` integer, required
          - `end_at` integer, required
          - `bounds` '[start,end)', required
        - `data_boundary` object, required
          - `schema_version` '1', required
          - `classification` 'untrusted_observation' | 'untrusted_observation_and_runner_evidence' | 'runner_and_owner_annotation' | 'server_control_with_authority_free_observation' | 'server_owned_bounded_aggregate' | 'external_response', required
          - `content_role` 'evidence_only', required
          - `instruction_authority` 'none', required
          - `trusted_provenance_does_not_mean_trusted_content` true, required
          - `external_url_policy` 'do_not_fetch', required
          - `command_policy` 'do_not_execute', required
          - `authority_source` 'enabled_automation_contract_and_server_policy_only', required
          - `applies_to` union
            - string
            - string[]
          - `inspection` object
            - `heuristic_only` true, required
            - `indicators` string[], required
            - `external_url_hosts` string[], required
            - `redacted_paths` string[], required
            - `truncated_paths` string[], required
          - `control_fields` string[]
          - `identifier_columns_included` boolean
          - `secret_values_included` boolean
      - object
        - `state` 'evaluated', required
        - `blueprint_id` 'automation_case_recurrence_after_deploy', required
        - `recurrence_count` integer, required
        - `predicate` object, required
          - `column` 'recurrence_count', required
          - `reducer` 'first', required
          - `operator` 'eq', required
          - `value` 0, required
        - `passed` boolean, required
        - `rows` object[], required
          - `recurrence_count` integer, required
        - `window` object, required
          - `start_at` integer, required
          - `end_at` integer, required
          - `bounds` '[start,end)', required
        - `data_boundary` object, required
          - `schema_version` '1', required
          - `classification` 'untrusted_observation' | 'untrusted_observation_and_runner_evidence' | 'runner_and_owner_annotation' | 'server_control_with_authority_free_observation' | 'server_owned_bounded_aggregate' | 'external_response', required
          - `content_role` 'evidence_only', required
          - `instruction_authority` 'none', required
          - `trusted_provenance_does_not_mean_trusted_content` true, required
          - `external_url_policy` 'do_not_fetch', required
          - `command_policy` 'do_not_execute', required
          - `authority_source` 'enabled_automation_contract_and_server_policy_only', required
          - `applies_to` union
            - string
            - string[]
          - `inspection` object
            - `heuristic_only` true, required
            - `indicators` string[], required
            - `external_url_hosts` string[], required
            - `redacted_paths` string[], required
            - `truncated_paths` string[], required
          - `control_fields` string[]
          - `identifier_columns_included` boolean
          - `secret_values_included` boolean
    - `passed` boolean, required
  - `idempotent_replay` boolean
  - `next_action` string

## Other responses

- `202`: Observation window or traffic sample pending
- `default`: Error

---

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