Skip to main content
POST
/
postures
/
{posture_id}
/
clone
Clone a posture into an org
curl --request POST \
  --url https://api.mnemom.ai/v1/postures/{posture_id}/clone \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: <idempotency-key>' \
  --data '
{
  "target_org_id": "<string>",
  "name": "<string>"
}
'
{
  "posture_id": "<string>",
  "slug": "<string>",
  "name": "<string>",
  "is_default": true,
  "current_revision_id": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "description": "<string>",
  "org_id": "<string>",
  "owner_user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "deleted_at": "2023-11-07T05:31:56Z"
}

Authorizations

Authorization
string
header
required

Supabase JWT token in Authorization: Bearer header

Headers

Idempotency-Key
string
required

Client-supplied idempotency token (required). Replays within 24 hours return the stored result; reusing a key with a different body returns 409. See ADR-023.

Path Parameters

posture_id
string
required

Posture ID (tp-{8-hex}).

Pattern: ^tp-[a-z0-9-]{1,64}$

Body

application/json
target_org_id
string
required
name
string

Optional override for the cloned posture's name.

Response

Posture.

Trust posture row (mig 173). Library row; revisions are versioned bodies stored separately.

posture_id
string
required
Pattern: ^tp-[a-z0-9-]{1,64}$
slug
string
required

URL-safe identifier (e.g., 'standard', 'banking-core').

name
string
required
scope
enum<string>
required
Available options:
platform,
org
is_default
boolean
required

True for Mnemom-shipped platform defaults.

current_revision_id
string | null
required

FK to trust_posture_revisions; NULL only mid-create.

created_at
string<date-time>
required
updated_at
string<date-time>
required
description
string | null
org_id
string | null

NULL for platform-scope postures.

owner_user_id
string<uuid> | null
deleted_at
string<date-time> | null

Soft-delete timestamp; NULL = live.