Kallfi

Update a Soul

PATCH
/v1/souls/{soul_id}

Proposed operation. Applies allowed configuration changes only when expected_revision matches the current company-scoped revision. The description is mutable here; kind, external identity, and the accepted source manifest are not silently replaced. A successful mutation is accepted asynchronously.

Authorization

bearerAuth
AuthorizationBearer <token>

Organization-scoped bearer credential. Credentials are scoped, revocable, and never represented by a Soul or operation ID.

In: header

Path Parameters

soul_id*string

Company-scoped Kallfi Soul identifier.

Match^soul_[A-Za-z0-9][A-Za-z0-9._:-]{0,126}$
Length1 <= length <= 128

Header Parameters

Idempotency-Key*string

Opaque replay key for this mutation. Repeating the same key with the same request returns the original result; reusing it with different input returns a conflict.

Length1 <= length <= 128

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

At least one allowed mutable field should accompany expected_revision. Kind, external_soul_id, and the accepted source-asset manifest are immutable in v1.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/v1/souls/string" \  -H "Idempotency-Key: string" \  -H "Content-Type: application/json" \  -d '{    "expected_revision": 1  }'
{  "soul": {    "soul_id": "string",    "external_soul_id": "string",    "kind": "human",    "description": "string",    "lifecycle": "draft",    "revision": 1,    "source_asset_ids": [      "string"    ],    "capabilities": {      "responses": true,      "image_generation": true,      "video_generation": true    },    "created_at": "2019-08-24T14:15:22Z",    "updated_at": "2019-08-24T14:15:22Z"  },  "operation": {    "operation_id": "string",    "status": "accepted",    "resource": {      "type": "source_asset",      "id": "string"    },    "progress_percent": 0,    "quote": {      "quote_id": "string"    },    "usage": {      "reserved_gems": 0,      "consumed_gems": 0,      "released_gems": 0    },    "failure": {      "code": "string",      "message": "string",      "retryable": true    },    "output": {      "kind": "text",      "text": "string",      "media": [        {          "kind": "image",          "url": "http://example.com"        }      ]    },    "created_at": "2019-08-24T14:15:22Z",    "updated_at": "2019-08-24T14:15:22Z",    "links": {      "self": "http://example.com"    },    "kind": "source_asset_validation"  }}