Skip to main content
POST
/
api
/
v1
/
skills
/
{id}
/
transfer-ownership
Request skill ownership transfer to another org member
curl --request POST \
  --url https://api.staging.getmodus.com/api/v1/skills/{id}/transfer-ownership \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "newOwnerUserId": "user_2abc123def456"
}
'
{
  "id": 42,
  "slug": "customer-churn-analyzer-a3f",
  "name": "Customer Churn Analyzer",
  "status": "active",
  "orgUuid": "00000000-0000-0000-0000-000000000001",
  "hasUnpublishedChanges": false,
  "accessConfig": {
    "visibility": "shared",
    "groupPermissions": {
      "group_eng_uuid": {
        "use": true,
        "manage": false
      }
    },
    "guardrails": [],
    "sharedWith": [],
    "ownerUserId": "user_2abc",
    "ownerEmail": "alice@example.com"
  },
  "createdAt": "2026-05-01T10:00:00.000Z",
  "updatedAt": "2026-05-11T10:00:00.000Z",
  "description": "Predicts churn risk for a customer given a 90-day usage window.",
  "activeVariationId": "00000000-0000-4000-a000-000000000100",
  "draftVariationId": "00000000-0000-4000-a000-000000000101",
  "pendingOwnershipTransfer": {
    "pendingOwnerUserId": "user_2abc123def456",
    "requestedByUserId": "user_2xyz789ghi012",
    "requestedAt": "2026-06-05T12:00:00.000Z",
    "pendingOwnerEmail": "newowner@example.com"
  },
  "variation": {
    "expectedOutput": "A 3-bullet summary highlighting churn risk drivers.",
    "instructions": [
      "Be concise.",
      "Always justify the score."
    ],
    "model": "anthropic/claude-sonnet-4.6",
    "toolset": {
      "web_search": {
        "enabled": true
      },
      "calculator": {
        "enabled": true
      }
    },
    "connectionSet": [
      {}
    ],
    "contextSelections": [
      {}
    ],
    "evaluations": [
      {}
    ],
    "interfaces": [
      {}
    ],
    "supervisionSubordinateIds": [
      "12",
      "17"
    ],
    "supervisionSubordinateDescriptions": {
      "12": "Reads warehouse facts",
      "17": "Drafts the report"
    }
  },
  "deletedAt": null
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
number
required

Numeric skill id.

Example:

42

Body

application/json
newOwnerUserId
string
required

Clerk user id of the org member who will become the new owner.

Example:

"user_2abc123def456"

Response

id
number
required

Numeric skill id (stable per-org; not reused after delete).

Example:

42

slug
string
required

URL-safe slug used in human-readable links. Unique per org.

Example:

"customer-churn-analyzer-a3f"

name
string
required

Display name of the skill. Shown in the builder and in run logs.

Example:

"Customer Churn Analyzer"

status
enum<string>
required

Lifecycle status. draft = never deployed. active = deployed. deleted = soft-deleted.

Available options:
draft,
active,
deleted
Example:

"active"

orgUuid
string
required

Org UUID this skill belongs to. Matches the caller’s principal.

Example:

"00000000-0000-0000-0000-000000000001"

hasUnpublishedChanges
boolean
required

True when the draft variation differs from the active variation (deploy would publish changes).

Example:

false

accessConfig
object
required

Access configuration — who in the org can use / manage this skill.

createdAt
string
required

Creation timestamp.

Example:

"2026-05-01T10:00:00.000Z"

updatedAt
string
required

Most recent update timestamp.

Example:

"2026-05-11T10:00:00.000Z"

description
string | null

Optional one-paragraph description of what this skill does.

Example:

"Predicts churn risk for a customer given a 90-day usage window."

activeVariationId
string | null

Active (deployed) variation id. Null until the skill is first deployed.

Example:

"00000000-0000-4000-a000-000000000100"

draftVariationId
string | null

Most recent draft variation id. Null when there is no draft pending.

Example:

"00000000-0000-4000-a000-000000000101"

pendingOwnershipTransfer
object

Pending ownership transfer awaiting recipient acceptance. Absent when no request is in flight.

variation
object

Variation-detail payload (toolset, instructions, model, etc.) for the requested view. Populated by GET /api/v1/skills/:id; absent on list rows.

deletedAt
string | null

Soft-delete timestamp. Null for active skills.

Example:

null