---
title: "Prepare a sandbox Renovation project action for review"
method: POST
path: "/renovations/current/projects/{projectId}/actions"
tags: ["Renovations"]
---

# Prepare a sandbox Renovation project action for review

`POST /renovations/current/projects/{projectId}/actions`

## Request

- Base URL: `https://platform-api.homejourney.sg/v1`
- URL: `https://platform-api.homejourney.sg/v1/renovations/current/projects/{projectId}/actions`
- Auth: HTTP bearer

Prepares either a variation-order draft or warranty-request checklist when the authenticated automation client has `renovations.projects.write`, the Renovation project route gate is enabled, `confirm_prepare` is true, and an `Idempotency-Key` is provided. External URL: `/v1/renovations/current/projects/{projectId}/actions`. Current Next.js implementation path: `/api/platform/v1/renovations/current/projects/[projectId]/actions`. The response requires project-manager review and cannot confirm or execute the action. It does not mutate projects or milestones, create variation orders, submit warranty requests, notify clients, change payment state, make external calls, or expose cost amounts, supplier pricing, client references, or site references. Live preparation remains unavailable.

## Path parameters

- `projectId` string, required

## Headers

- `X-Correlation-Id` string
- `Idempotency-Key` string, required

## Request body

- PreparePlatformRenovationProjectActionRequest
  - `action` 'prepare_variation_order_draft' | 'prepare_warranty_request_checklist', required
  - `confirm_prepare` true, required: Explicitly acknowledges preparation of review material only. This does not confirm or execute any Renovation action.

## Response `200`

Sandbox Renovation project response.

- PlatformRenovationProjectActionResponse
  - `action` 'prepare_variation_order_draft' | 'prepare_warranty_request_checklist', required
  - `action_id` string, required
  - `status` 'prepared_for_review', required
  - `required_scope` 'renovations.projects.write', required
  - `project` PlatformRenovationProjectSummary, required
    - `id` string, uuid, required
    - `project_slug` string, required
    - `project_name` string, required
    - `project_status` 'draft' | 'readiness_review' | 'active' | 'paused' | 'completed' | 'cancelled' | 'archived', required
    - `readiness_status` string, required
    - `budget_band` string, nullable, required
    - `target_start_date` string, date, nullable, required
    - `target_completion_date` string, date, nullable, required
    - `first_workflow_completed` boolean, required
    - `redaction` object, required
      - `margin_redacted` true, required
      - `supplier_pricing_redacted` true, required
      - `payment_state_redacted` true, required
      - `client_reference_returned` false, required
      - `site_reference_returned` false, required
    - `live_gates` object, required
      - `live_actions_enabled` false, required
      - `live_request_ready` boolean, required
      - `live_approved` boolean, required
    - `version` integer, required
    - `updated_at` string, date-time, required
  - `prepared_output` object, required
    - `kind` 'variation_order_draft' | 'warranty_request_checklist', required
    - `headline` string, required
    - `checklist` string[], required
    - `exclusions` object, required
      - `cost_amounts_included` false, required
      - `supplier_pricing_included` false, required
      - `client_approval_recorded` false, required
  - `professional_review` object, required
    - `required` true, required
    - `reviewer_role` 'project_manager', required
    - `confirmation_available` false, required
    - `execution_available` false, required
  - `side_effects` object, required
    - `project_mutated` false, required
    - `milestone_mutated` false, required
    - `variation_order_created` false, required
    - `warranty_request_submitted` false, required
    - `client_updated` false, required
    - `payment_state_changed` false, required
    - `external_calls_made` false, required
    - `sensitive_fields_exposed` false, required
  - `livemode` false, required
  - `request_id` string, required
  - `idempotency_key_hash` string, required

## Other responses

- `400`: Request validation failed.
- `401`: Missing or invalid platform API key.
- `403`: Credential, environment, or scope is not allowed.
- `404`: Platform API feature or resource is not available.
- `409`: Idempotency key is in progress or conflicts with an earlier request body.
- `429`: Rate limit exceeded.
- `500`: Unexpected platform API failure.

---

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