# Update a style profile

Patch a custom profile. Platform rows are read-only (422). Requires `create_assistants`. Changing a personality body invalidates cached instructions for assistants that use it. A `kind=note` row returns 404 `FEATURE_NOT_ENABLED` when the `style_notes` beta feature switch is off. When the switch cannot be read right now, a note request returns 503 `STYLE_NOTES_SWITCH_UNRESOLVED` with a `Retry-After` header: retry, do not treat it as off.

## Path parameters

**`profile_id`** string required

Style profile id (`sty_` + 32 hex characters).

## Query parameters

**`organization_id`** string optional

Organization used for visibility. Resolved from the caller when omitted.

## Body parameters

**`name`** string optional

Display name, 1–100 characters.

**`description`** string optional

Picker hint, max 500 characters.

**`body`** string optional

Instruction fragment, 1–8000 characters.

**`settings`** object optional

Partial register patch on personality rows. Null clears to defaults. Illegal on notes. Unknown keys and illegal enum values return 422.

**`is_active`** boolean optional

Inactive rows are hidden from pickers and cannot be newly attached.

## Returns

The updated [Style Profile object](/docs/api-reference/objects/style-profile-object).

Request

```bash cURL
curl -X PATCH "https://api.aitronos.com/v1/style-profiles/sty_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" \
  -H "X-API-Key: $FREDDY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Sales voice (v2)"}'
```


```python Python SDK
from aitronos import Aitronos

client = Aitronos(api_key="your-api-key")
row = client.style_profiles.update(
    "sty_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
    name="Sales voice (v2)",
)
print(row.name)
```


```python Python
import os
import requests

response = requests.patch(
    "https://api.aitronos.com/v1/style-profiles/sty_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
    headers={
        "X-API-Key": os.environ["FREDDY_API_KEY"],
        "Content-Type": "application/json",
    },
    json={"is_active": False},
)
print(response.json())
```


```javascript JavaScript
const response = await fetch(
  "https://api.aitronos.com/v1/style-profiles/sty_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
  {
    method: "PATCH",
    headers: {
      "X-API-Key": process.env.FREDDY_API_KEY,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ name: "Sales voice (v2)" }),
  },
);
console.log(await response.json());
```

Response

```json 200 OK
{
  "id": "sty_bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
  "kind": "personality",
  "scope": "organization",
  "organization_id": "org_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "slug": "sales_voice",
  "name": "Sales voice (v2)",
  "description": null,
  "body": "# PERSONALITY\nYou sell without lying.",
  "settings": null,
  "is_active": true,
  "created_by": "usr_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "created_at": "2026-09-14T12:00:00Z",
  "updated_at": "2026-09-14T12:05:00Z"
}
```

Error

```json 422 Unprocessable Entity
{
  "success": false,
  "error": {
    "code": "PLATFORM_SCOPE_RESTRICTED",
    "message": "Shipped personalities cannot be edited. Create a custom one.",
    "system_message": "Platform style profiles are read-only",
    "type": "validation_error",
    "status": 422,
    "details": {"id": "sty_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
    "trace_id": "req_abc123xyz",
    "timestamp": "2026-09-14T12:00:00Z"
  }
}
```

## Related Resources

- [Get a style profile](/docs/api-reference/style-profiles/get)
- [Delete a style profile](/docs/api-reference/style-profiles/delete)
- [Style Profile object](/docs/api-reference/objects/style-profile-object)