---
title: "Fork a preset set into editable org criteria"
method: POST
path: "/readiness/criteria/fork"
tags: ["readiness"]
---

# Fork a preset set into editable org criteria

`POST /readiness/criteria/fork`

## Request

- Base URL: `https://api.onplana.com/api`
- URL: `https://api.onplana.com/api/readiness/criteria/fork`
- Auth: one of:
  - HTTP bearer
  - API key in header `Authorization`

Requires org.compliance.manage. Copies every platform preset in the set into org rows; 409 ALREADY_FORKED when the org already holds rows from that set.

## Headers

- `X-Organization-Id` string, required

## Request body

- object
  - `presetSet` 'software' | 'construction' | 'marketing' | 'consulting' | 'generic_dod' | 'p5_sustainability', required

## Response `201`

Array of the created criteria

## Other responses

- `400`: Validation error
- `401`: Unauthorized - missing or invalid JWT
- `403`: Forbidden - insufficient role
- `409`: Set already forked

---

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