---
title: "Copy checklists"
method: POST
path: "/api/offices/{sourceOfficeGuid}/checklists/copy"
tags: ["Checklists"]
---

# Copy checklists

`POST /api/offices/{sourceOfficeGuid}/checklists/copy`

Copies selected checklists from a source office to one or more target offices. checklistNames and targetOfficeGuids are required and must be non-empty. transactionType must be Listing or Sale. User must have office access and be Broker/Auditor. Returns 422 if source checklists or target/source offices are invalid/inactive.

### Validation & Requirements
#### Required Parameters
- `sourceOfficeGuid` (path, string, format=guid)
- `form` (body, object)

#### Required JSON Body Fields
- None

#### Validations
- Invalid GUID values in `*Guid`/`*Guids` fields return `422 Unprocessable Entity`.
- Invalid date values in `*date*` fields return `422 Unprocessable Entity`.
- Missing required request body returns `422 Unprocessable Entity` with `Missing request body.`.
- Additional business-rule validation may return `422` with details in the `errors` array.

## Path parameters

- `sourceOfficeGuid` string, guid, required

## Request body

- CopyChecklistsForm
  - `checklistNames` string[], nullable — Array of checklist names to copy from the source office
  - `targetOfficeGuids` string[], nullable — Array of target office GUIDs where checklists will be copied
  - `transactionType` 'Listing' | 'Sale'
  - `override` boolean — When true, deletes existing checklist activities in target offices before copying. Default: false

## Response `200`

- LinkedResponseOfCopyChecklistsResponse
  - `value` CopyChecklistsResponse
    - `totalChecklistsCopied` integer — Total number of checklists successfully copied across all target offices
    - `sourceOfficeGuid` string, guid — GUID of the source office where checklists were copied from
    - `targetOfficeGuids` string[], nullable — Array of target office GUIDs where checklists were copied to
    - `transactionType` 'Listing' | 'Sale'
    - `override` boolean — Whether existing checklist activities were deleted before copying
    - `existingChecklists` string[], nullable — List of checklists that already existed and were not copied. Use Override=true to copy these.
    - `message` string, nullable — Informational message about the copy operation results
  - `warnings` string[], nullable
  - `links` Link[], nullable
    - `href` string, nullable
    - `rel` string, nullable
    - `method` string, nullable

## Other responses

- `404` — Source office, target offices, or checklists not found
- `422` — Validation errors - invalid request data, unauthorized user, or resources not found

---

[API](https://skmtc.net/skyslope/apis/skyslope-api.md) · [All operations](https://skmtc.net/skyslope/apis/skyslope-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/skyslope/skyslope-api/revisions/bad0d2db9b7a/schema)
