---
title: "Render a disabled automation candidate"
method: POST
path: "/v1/projects/{project_id}/automation-playbooks/{id}/render"
tags: ["Automation"]
---

# Render a disabled automation candidate

`POST /v1/projects/{project_id}/automation-playbooks/{id}/render`

## Request

- Base URL: `https://api.agentry.sh`
- URL: `https://api.agentry.sh/v1/projects/{project_id}/automation-playbooks/{id}/render`
- Auth: HTTP bearer

Human project members only. Rendering is deterministic and side-effect free; it never saves, enables, mints, schedules, queries, publishes, or messages.

## Path parameters

- `project_id` string, required
- `id` string, required

## Request body

- union
  - ErrorAutomationPlaybookRenderRequest
    - `version` '4.0.0', required
    - `bindings` object, required
      - `automation_id` string, required
      - `name` string, required
      - `runner` object, required
        - `provider` 'codex' | 'claude_code' | 'github_actions' | 'custom', required
        - `repository` string, uri, required: Absolute HTTPS URL without embedded username or password credentials.
        - `default_branch` string, required
        - `environment` string
      - `execution` union, required
        - object
          - `provider` 'codex', required
        - object
          - `provider` 'claude_code', required
        - object
          - `provider` 'github_actions', required
          - `github_actions` object, required
            - `workflow_file` string, required
            - `job_id` string, required
            - `environment_name` string, required
            - `invocation` object, required
              - …
        - object
          - `provider` 'custom', required
          - `custom` object, required
            - `management_surface` string, required
            - `credential_destination` string, required
            - `invocation` object, required
              - …
      - `trigger` object, required
        - `max_cases_per_sweep` integer, required
        - `cooldown_seconds` integer, required
        - `materiality` object, required
          - `minimum_event_count` integer, required
          - `maximum_last_seen_age_seconds` integer, required
      - `scope` object, required
        - `allowed_paths` string[], required
        - `test_commands` string[], required
        - `max_files_changed` integer, required
        - `max_changed_lines` integer, required
      - `budgets` object, required
        - `max_runs_per_day` integer, required
        - `max_prs_per_day` integer, required
        - `max_attempts_per_case_revision` integer, required
        - `max_turns_per_run` integer, required
        - `max_runtime_seconds` integer, required
        - `max_cost_usd_per_run` number, required
      - `traffic_sample_event` string, required
      - `verification` object, required
        - `observation_window_seconds` integer, required
        - `max_wait_seconds` integer, required
        - `min_sample_size` integer, required
      - `escalation` object, required
        - `destination` string, required
        - `instructions` string, required
    - `readiness_assertions` object, required
      - `repository_draft_pr_access_confirmed` boolean, required
      - `ci_proof_callback_configured` boolean, required
      - `deploy_ingest_configured` boolean, required
  - WeeklyAutomationPlaybookRenderRequest
    - `version` '2.0.0', required
    - `bindings` object, required
      - `automation_id` string, required
      - `name` string, required
      - `runner` object, required
        - `provider` 'codex' | 'claude_code' | 'github_actions' | 'custom', required
        - `environment` string
      - `execution` union, required
        - object
          - `provider` 'codex', required
        - object
          - `provider` 'claude_code', required
        - object
          - `provider` 'github_actions', required
          - `github_actions` object, required
            - `workflow_file` string, required
            - `job_id` string, required
            - `environment_name` string, required
            - `invocation` object, required
              - …
        - object
          - `provider` 'custom', required
          - `custom` object, required
            - `management_surface` string, required
            - `credential_destination` string, required
            - `invocation` object, required
              - …
      - `schedule` object, required
        - `cron` string, required: Validated by the canonical conservative five-field isValidCronExpression parser.
        - `timezone` string, required: Validated as an IANA time zone by isValidTimeZone/Intl.DateTimeFormat.
        - `start_window_seconds` integer, required
      - `funnel` object, required
        - `events` string[], required
        - `period_days` integer, required
        - `minimum_sample_size` integer, required
      - `budgets` object, required: Weekly report caller budgets only. Rendering locks max_prs_per_day=0 and max_attempts_per_case_revision=1; callers cannot choose either field.
        - `max_runs_per_day` integer, required
        - `max_turns_per_run` integer, required
        - `max_runtime_seconds` integer, required
        - `max_cost_usd_per_run` number, required
      - `escalation` object, required
        - `destination` string, required
        - `instructions` string, required
    - `readiness_assertions` object, required
      - `scheduler_execution_configured` boolean, required

## Response `200`

OK

- AutomationPlaybookRenderResponse
  - `kind` 'automation_playbook_render', required
  - `template_ref` object, required
    - `id` string, required
    - `version` '4.0.0' | '2.0.0', required
    - `bindings_sha256` string, required
  - `automation_definition` AutomationDefinition, required
    - `id` string, required
    - `template_ref` object
      - `id` string, required
      - `version` string, required
      - `bindings_sha256` string, required
    - `name` string, required
    - `description` string
    - `enabled` boolean
    - `runner` object, required
      - `provider` 'codex' | 'claude_code' | 'github_actions' | 'custom', required
      - `repository` string, uri: Absolute HTTPS URL without embedded username or password credentials.
      - `default_branch` string
      - `environment` string
      - `mode` 'draft_only'
    - `trigger` union, required
      - object
        - `kind` 'alert', required
        - `alert_id` string, required
        - `cooldown_seconds` integer
        - `min_consecutive_breaches` integer
        - `required_trust` 'server_evaluated'
      - object
        - `kind` 'unhandled_cases', required
        - `max_cases_per_sweep` integer
        - `cooldown_seconds` integer
        - `required_trust` 'any' | 'customer_posthog'
        - `materiality` object
          - `minimum_event_count` integer, required
          - `maximum_last_seen_age_seconds` integer, required
      - object
        - `kind` 'schedule', required
        - `cron` string, required
        - `timezone` string
        - `report_kind` 'funnel_review' | 'reliability_review' | 'custom', required
        - `start_window_seconds` integer
    - `report_plan` object
      - `schema_version` '1'
      - `blueprint_id` string, required
      - `params` object
      - `period` object, required
        - `lookback_seconds` integer, required
        - `offset_seconds` integer
      - `output_schema_version` '1'
    - `allowed_actions` string[], required
    - `scope` object, required
      - `allowed_paths` string[]
      - `forbidden_paths` string[]
      - `forbidden_change_types` string[]
      - `max_files_changed` integer
      - `max_changed_lines` integer
      - `test_commands` string[]
    - `budgets` object
      - `max_runs_per_day` integer
      - `max_prs_per_day` integer
      - `max_attempts_per_case_revision` integer
      - `max_turns_per_run` integer
      - `max_runtime_seconds` integer
      - `max_cost_usd_per_run` number
    - `approvals` object
      - `required_for` string[]
      - `expires_after_seconds` integer
    - `escalation` object, required
      - `destination` string, required
      - `instructions` string, required
    - `verification` object
      - `outcome` object, required
        - `blueprint_id` 'automation_case_recurrence_after_deploy', required
        - `params` object, required
          - `run_id` object, required
            - `source` 'run', required
            - `field` 'run_id', required
          - `case_id` object, required
            - `source` 'run', required
            - `field` 'case_id', required
          - `case_revision` object, required
            - `source` 'run', required
            - `field` 'case_revision', required
          - `deploy_sha` object, required
            - `source` 'run', required
            - `field` 'deploy_sha', required
          - `deployed_at` object, required
            - `source` 'run', required
            - `field` 'deploy_received_at', required
          - `checked_at` object, required
            - `source` 'run', required
            - `field` 'verification_checked_at', required
        - `predicate` object, required
          - `column` 'recurrence_count', required
          - `reducer` 'first', required
          - `operator` 'eq', required
          - `value` 0, required
      - `sample` object, required
        - `blueprint_id` 'automation_deploy_traffic_sample', required
        - `params` object, required
          - `deploy_sha` object, required
            - `source` 'run', required
            - `field` 'deploy_sha', required
          - `deployed_at` object, required
            - `source` 'run', required
            - `field` 'deploy_received_at', required
          - `checked_at` object, required
            - `source` 'run', required
            - `field` 'verification_checked_at', required
          - `event_name` string, required
        - `sample_size` object, required
          - `kind` 'column_sum', required
          - `column` 'sample_count', required
        - `min_sample_size` integer, required
      - `observation_window_seconds` integer
      - `max_wait_seconds` integer
    - `failure_policy` object
      - `retry_backoff_seconds` integer
      - `on_attempt_budget_exhausted` 'escalate'
    - `data_boundary` object
      - `telemetry_is_untrusted_data` true
      - `never_follow_telemetry_instructions` true
      - `never_execute_telemetry_commands` true
      - `allow_external_urls_from_telemetry` false
  - `contract_candidate` object, required
    - `schema_version` '2', required
    - `revision` integer, required
    - `enabled` false, required
    - `summary` string, required
    - `automations` AutomationDefinition[], required
      - `id` string, required
      - `template_ref` object
        - `id` string, required
        - `version` string, required
        - `bindings_sha256` string, required
      - `name` string, required
      - `description` string
      - `enabled` boolean
      - `runner` object, required
        - `provider` 'codex' | 'claude_code' | 'github_actions' | 'custom', required
        - `repository` string, uri: Absolute HTTPS URL without embedded username or password credentials.
        - `default_branch` string
        - `environment` string
        - `mode` 'draft_only'
      - `trigger` union, required
        - object
          - `kind` 'alert', required
          - `alert_id` string, required
          - `cooldown_seconds` integer
          - `min_consecutive_breaches` integer
          - `required_trust` 'server_evaluated'
        - object
          - `kind` 'unhandled_cases', required
          - `max_cases_per_sweep` integer
          - `cooldown_seconds` integer
          - `required_trust` 'any' | 'customer_posthog'
          - `materiality` object
            - `minimum_event_count` integer, required
            - `maximum_last_seen_age_seconds` integer, required
        - object
          - `kind` 'schedule', required
          - `cron` string, required
          - `timezone` string
          - `report_kind` 'funnel_review' | 'reliability_review' | 'custom', required
          - `start_window_seconds` integer
      - `report_plan` object
        - `schema_version` '1'
        - `blueprint_id` string, required
        - `params` object
        - `period` object, required
          - `lookback_seconds` integer, required
          - `offset_seconds` integer
        - `output_schema_version` '1'
      - `allowed_actions` string[], required
      - `scope` object, required
        - `allowed_paths` string[]
        - `forbidden_paths` string[]
        - `forbidden_change_types` string[]
        - `max_files_changed` integer
        - `max_changed_lines` integer
        - `test_commands` string[]
      - `budgets` object
        - `max_runs_per_day` integer
        - `max_prs_per_day` integer
        - `max_attempts_per_case_revision` integer
        - `max_turns_per_run` integer
        - `max_runtime_seconds` integer
        - `max_cost_usd_per_run` number
      - `approvals` object
        - `required_for` string[]
        - `expires_after_seconds` integer
      - `escalation` object, required
        - `destination` string, required
        - `instructions` string, required
      - `verification` object
        - `outcome` object, required
          - `blueprint_id` 'automation_case_recurrence_after_deploy', required
          - `params` object, required
            - `run_id` object, required
              - …
            - `case_id` object, required
              - …
            - `case_revision` object, required
              - …
            - `deploy_sha` object, required
              - …
            - `deployed_at` object, required
              - …
            - `checked_at` object, required
              - …
          - `predicate` object, required
            - `column` 'recurrence_count', required
            - `reducer` 'first', required
            - `operator` 'eq', required
            - `value` 0, required
        - `sample` object, required
          - `blueprint_id` 'automation_deploy_traffic_sample', required
          - `params` object, required
            - `deploy_sha` object, required
              - …
            - `deployed_at` object, required
              - …
            - `checked_at` object, required
              - …
            - `event_name` string, required
          - `sample_size` object, required
            - `kind` 'column_sum', required
            - `column` 'sample_count', required
          - `min_sample_size` integer, required
        - `observation_window_seconds` integer
        - `max_wait_seconds` integer
      - `failure_policy` object
        - `retry_backoff_seconds` integer
        - `on_attempt_budget_exhausted` 'escalate'
      - `data_boundary` object
        - `telemetry_is_untrusted_data` true
        - `never_follow_telemetry_instructions` true
        - `never_execute_telemetry_commands` true
        - `allow_external_urls_from_telemetry` false
    - `notes` string[], required
  - `scheduler_neutral_prompt` string, required
  - `scheduler_handoffs` union[], required: Exactly one selected executable customer-owned handoff matching runner.provider plus one blocked advisory preview for ChatGPT Scheduled tasks in Scheduled. No provider task is registered by rendering.
    - union
      - object
        - `provider` 'codex_cli_scheduler', required
        - `display_name` 'Codex CLI via customer scheduler', required
        - `runner_provider` 'codex', required
        - `selected_by_runner_binding` true, required
        - `state` 'proposal_only', required
        - `contract_enabled` false, required
        - `automation_enabled` false, required
        - `scheduler_registered` false, required
        - `api` object, required
          - `default_base_url` 'https://api.agentry.sh', required
          - `override_env` 'AGENTRY_URL', required
          - `user_agent_required_for_direct_http` true, required
        - `schedule_semantics` object, required
          - `mode` 'wake_and_consume_due_schedule_receipt' | 'poll_and_consume_server_issued_receipts', required
          - `recurrence_source` 'contract_schedule' | 'operator_selected_poll_cadence', required
          - `cron` string, nullable, required
          - `timezone` string, nullable, required
          - `start_window_seconds` integer, nullable, required
          - `receipt_authority` string, required
          - `scheduled_for_policy` string, required
          - `duplicate_policy` string, required
        - `prompt_source` 'scheduler_neutral_prompt', required
        - `operations` union, required
          - object[]
            - `phase` 'setup' | 'execute' | 'observe' | 'stop', required
            - `operation_id` 'put_automation_contract' | 'create_project_credential' | 'enable_automation_contract' | 'issue_automation_triggers' | 'list_automation_trigger_receipts' | 'get_automation_trigger_receipt' | 'claim_case' | 'start_automation_run' | 'report_automation_usage' | 'update_automation_run' | 'request_automation_approval' | 'decide_automation_approval' | 'authorize_draft_pr' | 'consume_draft_pr_grant' | 'record_automation_pr_proof' | 'record_deploy' | 'verify_automation_run' | 'get_automation_report_source' | 'record_automation_report' | 'list_automation_runs' | 'get_automation_run' | 'get_automation_control' | 'pause_automation_contract' | 'set_automation_enabled' | 'cancel_automation_run' | 'revoke_project_credential', required
            - `method` 'GET' | 'POST' | 'PUT' | 'PATCH', required
            - `href_template` string, required
            - `required_principal` 'automation_runner' | 'human_project_member' | 'human_project_owner' | 'trusted_ci', required
            - `required_headers` string[], required
            - `purpose` string, required
          - object[]
            - `phase` 'setup' | 'execute' | 'observe' | 'stop', required
            - `operation_id` 'put_automation_contract' | 'create_project_credential' | 'enable_automation_contract' | 'issue_automation_triggers' | 'list_automation_trigger_receipts' | 'get_automation_trigger_receipt' | 'claim_case' | 'start_automation_run' | 'report_automation_usage' | 'update_automation_run' | 'request_automation_approval' | 'decide_automation_approval' | 'authorize_draft_pr' | 'consume_draft_pr_grant' | 'record_automation_pr_proof' | 'record_deploy' | 'verify_automation_run' | 'get_automation_report_source' | 'record_automation_report' | 'list_automation_runs' | 'get_automation_run' | 'get_automation_control' | 'pause_automation_contract' | 'set_automation_enabled' | 'cancel_automation_run' | 'revoke_project_credential', required
            - `method` 'GET' | 'POST' | 'PUT' | 'PATCH', required
            - `href_template` string, required
            - `required_principal` 'automation_runner' | 'human_project_member' | 'human_project_owner' | 'trusted_ci', required
            - `required_headers` string[], required
            - `purpose` string, required
        - `credential_placement` object, required
          - `kind` 'automation_runner', required
          - `automation_id` string, required
          - `env_var` 'AGENTRY_RUNNER_API_KEY', required
          - `destination` string, required
          - `secret_included` false, required
          - `one_automation_only` true, required
          - `owner_private_key_allowed` false, required
          - `forbidden_destinations` string[], required
        - `polling_and_output` object, required
          - `receipt_list_operation_id` 'list_automation_trigger_receipts', required
          - `run_list_operation_id` 'list_automation_runs', required
          - `run_detail_operation_id` 'get_automation_run', required
          - `pagination_policy` string, required
          - `terminal_statuses` string[], required
          - `output_visibility` string[], required
        - `first_run_proof` object, required
          - `required` true, required
          - `mode` 'manual_before_unattended_recurrence', required
          - `template` 'error-to-draft-pr' | 'weekly-funnel-review', required
          - `steps` union, required
            - object[]
              - …
            - object[]
              - …
          - `success_evidence` union, required
            - string[]
            - string[]
        - `stop_and_escalation` object, required
          - `external_scheduler_stop_required` true, required
          - `agentry_operation_ids` string[], required
          - `escalation_destination` string, required
          - `stop_conditions` string[], required
          - `provider_stop_action` string, required
        - `provider_setup` object, required
          - `management_surface` 'customer_owned_scheduler', required
          - `docs_url` 'https://developers.openai.com/codex/noninteractive', required
          - `registration_mode` 'cron_ci_or_job_runner', required
          - `manual_registration_required` true, required
          - `recurrence_instruction` string, required
          - `workspace_mode` 'isolated_checkout_or_worktree_required' | 'no_repository_checkout_required', required
          - `invocation` object, required
            - `executable` string, required
            - `argv` string[], required
            - `prompt_transport` 'stdin_from_scheduler_neutral_prompt', required
            - `direct_argv_required` true, required
            - `shell_interpolation_forbidden` true, required
            - `output_format` 'json'
      - object
        - `provider` 'claude_code_scheduler', required
        - `display_name` 'Claude Code via customer scheduler', required
        - `runner_provider` 'claude_code', required
        - `selected_by_runner_binding` true, required
        - `state` 'proposal_only', required
        - `contract_enabled` false, required
        - `automation_enabled` false, required
        - `scheduler_registered` false, required
        - `api` object, required
          - `default_base_url` 'https://api.agentry.sh', required
          - `override_env` 'AGENTRY_URL', required
          - `user_agent_required_for_direct_http` true, required
        - `schedule_semantics` object, required
          - `mode` 'wake_and_consume_due_schedule_receipt' | 'poll_and_consume_server_issued_receipts', required
          - `recurrence_source` 'contract_schedule' | 'operator_selected_poll_cadence', required
          - `cron` string, nullable, required
          - `timezone` string, nullable, required
          - `start_window_seconds` integer, nullable, required
          - `receipt_authority` string, required
          - `scheduled_for_policy` string, required
          - `duplicate_policy` string, required
        - `prompt_source` 'scheduler_neutral_prompt', required
        - `operations` union, required
          - object[]
            - `phase` 'setup' | 'execute' | 'observe' | 'stop', required
            - `operation_id` 'put_automation_contract' | 'create_project_credential' | 'enable_automation_contract' | 'issue_automation_triggers' | 'list_automation_trigger_receipts' | 'get_automation_trigger_receipt' | 'claim_case' | 'start_automation_run' | 'report_automation_usage' | 'update_automation_run' | 'request_automation_approval' | 'decide_automation_approval' | 'authorize_draft_pr' | 'consume_draft_pr_grant' | 'record_automation_pr_proof' | 'record_deploy' | 'verify_automation_run' | 'get_automation_report_source' | 'record_automation_report' | 'list_automation_runs' | 'get_automation_run' | 'get_automation_control' | 'pause_automation_contract' | 'set_automation_enabled' | 'cancel_automation_run' | 'revoke_project_credential', required
            - `method` 'GET' | 'POST' | 'PUT' | 'PATCH', required
            - `href_template` string, required
            - `required_principal` 'automation_runner' | 'human_project_member' | 'human_project_owner' | 'trusted_ci', required
            - `required_headers` string[], required
            - `purpose` string, required
          - object[]
            - `phase` 'setup' | 'execute' | 'observe' | 'stop', required
            - `operation_id` 'put_automation_contract' | 'create_project_credential' | 'enable_automation_contract' | 'issue_automation_triggers' | 'list_automation_trigger_receipts' | 'get_automation_trigger_receipt' | 'claim_case' | 'start_automation_run' | 'report_automation_usage' | 'update_automation_run' | 'request_automation_approval' | 'decide_automation_approval' | 'authorize_draft_pr' | 'consume_draft_pr_grant' | 'record_automation_pr_proof' | 'record_deploy' | 'verify_automation_run' | 'get_automation_report_source' | 'record_automation_report' | 'list_automation_runs' | 'get_automation_run' | 'get_automation_control' | 'pause_automation_contract' | 'set_automation_enabled' | 'cancel_automation_run' | 'revoke_project_credential', required
            - `method` 'GET' | 'POST' | 'PUT' | 'PATCH', required
            - `href_template` string, required
            - `required_principal` 'automation_runner' | 'human_project_member' | 'human_project_owner' | 'trusted_ci', required
            - `required_headers` string[], required
            - `purpose` string, required
        - `credential_placement` object, required
          - `kind` 'automation_runner', required
          - `automation_id` string, required
          - `env_var` 'AGENTRY_RUNNER_API_KEY', required
          - `destination` string, required
          - `secret_included` false, required
          - `one_automation_only` true, required
          - `owner_private_key_allowed` false, required
          - `forbidden_destinations` string[], required
        - `polling_and_output` object, required
          - `receipt_list_operation_id` 'list_automation_trigger_receipts', required
          - `run_list_operation_id` 'list_automation_runs', required
          - `run_detail_operation_id` 'get_automation_run', required
          - `pagination_policy` string, required
          - `terminal_statuses` string[], required
          - `output_visibility` string[], required
        - `first_run_proof` object, required
          - `required` true, required
          - `mode` 'manual_before_unattended_recurrence', required
          - `template` 'error-to-draft-pr' | 'weekly-funnel-review', required
          - `steps` union, required
            - object[]
              - …
            - object[]
              - …
          - `success_evidence` union, required
            - string[]
            - string[]
        - `stop_and_escalation` object, required
          - `external_scheduler_stop_required` true, required
          - `agentry_operation_ids` string[], required
          - `escalation_destination` string, required
          - `stop_conditions` string[], required
          - `provider_stop_action` string, required
        - `provider_setup` object, required
          - `management_surface` 'customer_owned_scheduler', required
          - `docs_url` 'https://code.claude.com/docs/en/cli-reference', required
          - `registration_mode` 'cron_ci_or_job_runner', required
          - `manual_registration_required` true, required
          - `recurrence_instruction` string, required
          - `workspace_mode` 'isolated_checkout_or_worktree_required' | 'no_repository_checkout_required', required
          - `invocation` object, required
            - `executable` string, required
            - `argv` string[], required
            - `prompt_transport` 'stdin_from_scheduler_neutral_prompt', required
            - `direct_argv_required` true, required
            - `shell_interpolation_forbidden` true, required
            - `output_format` 'json'
      - object
        - `provider` 'github_actions_workflow', required
        - `display_name` 'GitHub Actions workflow', required
        - `runner_provider` 'github_actions', required
        - `selected_by_runner_binding` true, required
        - `state` 'proposal_only', required
        - `contract_enabled` false, required
        - `automation_enabled` false, required
        - `scheduler_registered` false, required
        - `api` object, required
          - `default_base_url` 'https://api.agentry.sh', required
          - `override_env` 'AGENTRY_URL', required
          - `user_agent_required_for_direct_http` true, required
        - `schedule_semantics` object, required
          - `mode` 'wake_and_consume_due_schedule_receipt' | 'poll_and_consume_server_issued_receipts', required
          - `recurrence_source` 'contract_schedule' | 'operator_selected_poll_cadence', required
          - `cron` string, nullable, required
          - `timezone` string, nullable, required
          - `start_window_seconds` integer, nullable, required
          - `receipt_authority` string, required
          - `scheduled_for_policy` string, required
          - `duplicate_policy` string, required
        - `prompt_source` 'scheduler_neutral_prompt', required
        - `operations` union, required
          - object[]
            - `phase` 'setup' | 'execute' | 'observe' | 'stop', required
            - `operation_id` 'put_automation_contract' | 'create_project_credential' | 'enable_automation_contract' | 'issue_automation_triggers' | 'list_automation_trigger_receipts' | 'get_automation_trigger_receipt' | 'claim_case' | 'start_automation_run' | 'report_automation_usage' | 'update_automation_run' | 'request_automation_approval' | 'decide_automation_approval' | 'authorize_draft_pr' | 'consume_draft_pr_grant' | 'record_automation_pr_proof' | 'record_deploy' | 'verify_automation_run' | 'get_automation_report_source' | 'record_automation_report' | 'list_automation_runs' | 'get_automation_run' | 'get_automation_control' | 'pause_automation_contract' | 'set_automation_enabled' | 'cancel_automation_run' | 'revoke_project_credential', required
            - `method` 'GET' | 'POST' | 'PUT' | 'PATCH', required
            - `href_template` string, required
            - `required_principal` 'automation_runner' | 'human_project_member' | 'human_project_owner' | 'trusted_ci', required
            - `required_headers` string[], required
            - `purpose` string, required
          - object[]
            - `phase` 'setup' | 'execute' | 'observe' | 'stop', required
            - `operation_id` 'put_automation_contract' | 'create_project_credential' | 'enable_automation_contract' | 'issue_automation_triggers' | 'list_automation_trigger_receipts' | 'get_automation_trigger_receipt' | 'claim_case' | 'start_automation_run' | 'report_automation_usage' | 'update_automation_run' | 'request_automation_approval' | 'decide_automation_approval' | 'authorize_draft_pr' | 'consume_draft_pr_grant' | 'record_automation_pr_proof' | 'record_deploy' | 'verify_automation_run' | 'get_automation_report_source' | 'record_automation_report' | 'list_automation_runs' | 'get_automation_run' | 'get_automation_control' | 'pause_automation_contract' | 'set_automation_enabled' | 'cancel_automation_run' | 'revoke_project_credential', required
            - `method` 'GET' | 'POST' | 'PUT' | 'PATCH', required
            - `href_template` string, required
            - `required_principal` 'automation_runner' | 'human_project_member' | 'human_project_owner' | 'trusted_ci', required
            - `required_headers` string[], required
            - `purpose` string, required
        - `credential_placement` object, required
          - `kind` 'automation_runner', required
          - `automation_id` string, required
          - `env_var` 'AGENTRY_RUNNER_API_KEY', required
          - `destination` string, required
          - `secret_included` false, required
          - `one_automation_only` true, required
          - `owner_private_key_allowed` false, required
          - `forbidden_destinations` string[], required
        - `polling_and_output` object, required
          - `receipt_list_operation_id` 'list_automation_trigger_receipts', required
          - `run_list_operation_id` 'list_automation_runs', required
          - `run_detail_operation_id` 'get_automation_run', required
          - `pagination_policy` string, required
          - `terminal_statuses` string[], required
          - `output_visibility` string[], required
        - `first_run_proof` object, required
          - `required` true, required
          - `mode` 'manual_before_unattended_recurrence', required
          - `template` 'error-to-draft-pr' | 'weekly-funnel-review', required
          - `steps` union, required
            - object[]
              - …
            - object[]
              - …
          - `success_evidence` union, required
            - string[]
            - string[]
        - `stop_and_escalation` object, required
          - `external_scheduler_stop_required` true, required
          - `agentry_operation_ids` string[], required
          - `escalation_destination` string, required
          - `stop_conditions` string[], required
          - `provider_stop_action` string, required
        - `provider_setup` object, required
          - `management_surface` 'GitHub Actions', required
          - `docs_url` 'https://docs.github.com/actions/using-workflows/events-that-trigger-workflows#schedule', required
          - `registration_mode` 'existing_customer_workflow', required
          - `manual_registration_required` true, required
          - `recurrence_instruction` string, required
          - `workspace_mode` 'isolated_checkout_required' | 'no_repository_checkout_required', required
          - `workflow_file` string, required
          - `job_id` string, required
          - `environment_name` string, required
          - `invocation` object, required
            - `executable` string, required
            - `argv` string[], required
            - `prompt_transport` 'stdin_from_scheduler_neutral_prompt', required
            - `direct_argv_required` true, required
            - `shell_interpolation_forbidden` true, required
            - `output_format` 'json'
      - object
        - `provider` 'custom_scheduler', required
        - `display_name` 'Custom executable runner', required
        - `runner_provider` 'custom', required
        - `selected_by_runner_binding` true, required
        - `state` 'proposal_only', required
        - `contract_enabled` false, required
        - `automation_enabled` false, required
        - `scheduler_registered` false, required
        - `api` object, required
          - `default_base_url` 'https://api.agentry.sh', required
          - `override_env` 'AGENTRY_URL', required
          - `user_agent_required_for_direct_http` true, required
        - `schedule_semantics` object, required
          - `mode` 'wake_and_consume_due_schedule_receipt' | 'poll_and_consume_server_issued_receipts', required
          - `recurrence_source` 'contract_schedule' | 'operator_selected_poll_cadence', required
          - `cron` string, nullable, required
          - `timezone` string, nullable, required
          - `start_window_seconds` integer, nullable, required
          - `receipt_authority` string, required
          - `scheduled_for_policy` string, required
          - `duplicate_policy` string, required
        - `prompt_source` 'scheduler_neutral_prompt', required
        - `operations` union, required
          - object[]
            - `phase` 'setup' | 'execute' | 'observe' | 'stop', required
            - `operation_id` 'put_automation_contract' | 'create_project_credential' | 'enable_automation_contract' | 'issue_automation_triggers' | 'list_automation_trigger_receipts' | 'get_automation_trigger_receipt' | 'claim_case' | 'start_automation_run' | 'report_automation_usage' | 'update_automation_run' | 'request_automation_approval' | 'decide_automation_approval' | 'authorize_draft_pr' | 'consume_draft_pr_grant' | 'record_automation_pr_proof' | 'record_deploy' | 'verify_automation_run' | 'get_automation_report_source' | 'record_automation_report' | 'list_automation_runs' | 'get_automation_run' | 'get_automation_control' | 'pause_automation_contract' | 'set_automation_enabled' | 'cancel_automation_run' | 'revoke_project_credential', required
            - `method` 'GET' | 'POST' | 'PUT' | 'PATCH', required
            - `href_template` string, required
            - `required_principal` 'automation_runner' | 'human_project_member' | 'human_project_owner' | 'trusted_ci', required
            - `required_headers` string[], required
            - `purpose` string, required
          - object[]
            - `phase` 'setup' | 'execute' | 'observe' | 'stop', required
            - `operation_id` 'put_automation_contract' | 'create_project_credential' | 'enable_automation_contract' | 'issue_automation_triggers' | 'list_automation_trigger_receipts' | 'get_automation_trigger_receipt' | 'claim_case' | 'start_automation_run' | 'report_automation_usage' | 'update_automation_run' | 'request_automation_approval' | 'decide_automation_approval' | 'authorize_draft_pr' | 'consume_draft_pr_grant' | 'record_automation_pr_proof' | 'record_deploy' | 'verify_automation_run' | 'get_automation_report_source' | 'record_automation_report' | 'list_automation_runs' | 'get_automation_run' | 'get_automation_control' | 'pause_automation_contract' | 'set_automation_enabled' | 'cancel_automation_run' | 'revoke_project_credential', required
            - `method` 'GET' | 'POST' | 'PUT' | 'PATCH', required
            - `href_template` string, required
            - `required_principal` 'automation_runner' | 'human_project_member' | 'human_project_owner' | 'trusted_ci', required
            - `required_headers` string[], required
            - `purpose` string, required
        - `credential_placement` object, required
          - `kind` 'automation_runner', required
          - `automation_id` string, required
          - `env_var` 'AGENTRY_RUNNER_API_KEY', required
          - `destination` string, required
          - `secret_included` false, required
          - `one_automation_only` true, required
          - `owner_private_key_allowed` false, required
          - `forbidden_destinations` string[], required
        - `polling_and_output` object, required
          - `receipt_list_operation_id` 'list_automation_trigger_receipts', required
          - `run_list_operation_id` 'list_automation_runs', required
          - `run_detail_operation_id` 'get_automation_run', required
          - `pagination_policy` string, required
          - `terminal_statuses` string[], required
          - `output_visibility` string[], required
        - `first_run_proof` object, required
          - `required` true, required
          - `mode` 'manual_before_unattended_recurrence', required
          - `template` 'error-to-draft-pr' | 'weekly-funnel-review', required
          - `steps` union, required
            - object[]
              - …
            - object[]
              - …
          - `success_evidence` union, required
            - string[]
            - string[]
        - `stop_and_escalation` object, required
          - `external_scheduler_stop_required` true, required
          - `agentry_operation_ids` string[], required
          - `escalation_destination` string, required
          - `stop_conditions` string[], required
          - `provider_stop_action` string, required
        - `provider_setup` object, required
          - `management_surface` string, required
          - `docs_url` 'https://api.agentry.sh/v1/docs/automation', required
          - `registration_mode` 'customer_defined_direct_argv_runner', required
          - `manual_registration_required` true, required
          - `recurrence_instruction` string, required
          - `workspace_mode` 'isolated_checkout_or_worktree_required' | 'no_repository_checkout_required', required
          - `invocation` object, required
            - `executable` string, required
            - `argv` string[], required
            - `prompt_transport` 'stdin_from_scheduler_neutral_prompt', required
            - `direct_argv_required` true, required
            - `shell_interpolation_forbidden` true, required
            - `output_format` 'json'
      - object
        - `provider` 'chatgpt_scheduled_task_preview', required
        - `display_name` 'ChatGPT Scheduled tasks (advisory preview)', required
        - `runner_provider` 'codex', required
        - `selected_by_runner_binding` false, required
        - `state` 'blocked_advisory', required
        - `direct_authenticated_agentry_execution` 'blocked', required
        - `scheduler_registered` false, required
        - `provider_setup` object, required
          - `management_surface` 'Scheduled', required
          - `docs_url` 'https://developers.openai.com/codex/app/automations', required
          - `official_name` 'ChatGPT Scheduled tasks', required
          - `local_host_must_be_online_for_local_projects` true, required
        - `credential_placement` object, required
          - `supported` false, required
          - `env_var` unknown, required
          - `destination` unknown, required
          - `secret_included` false, required
        - `prompt_preview_source` 'scheduler_neutral_prompt', required
        - `blocked_reason` string, required
        - `recommended_executable_handoff` 'codex_cli_scheduler', required
  - `related_operations` object[], required
    - `operation_id` string, required
    - `method` 'GET' | 'POST' | 'PUT' | 'PATCH', required
    - `path` string, required
  - `render_hash` string, required
  - `readiness` object, required
    - `ready_for_owner_review` boolean, required
    - `ready_to_enable` boolean, required
    - `source_boundary` string, required
    - `gates` BoundedEvidenceObject[], required
    - `blocking_gates` BoundedEvidenceObject[], required
    - `unresolved_inputs` BoundedEvidenceObject[], required
  - `side_effects` object, required
    - `database_writes` false, required
    - `contract_saved` false, required
    - `automation_enabled` false, required
    - `credential_minted` false, required
    - `provider_action_started` false, required
    - `scheduler_registered` false, required
    - `report_published_or_sent` false, required
  - `next_action` string, required

## Other responses

- `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)
