---
title: "Attach Skill to PAL"
method: PUT
path: "/v2/pals/{pal_id}/skills/{skill_id}"
tags: ["Skills"]
---

# Attach Skill to PAL

`PUT /v2/pals/{pal_id}/skills/{skill_id}`

## Request

- Base URL: `https://tavusapi.com`
- URL: `https://tavusapi.com/v2/pals/{pal_id}/skills/{skill_id}`
- Auth: API key in header `x-api-key`

Attach a skill to a PAL, or overwrite the configuration of an existing attachment. The skill is active on the PAL's next conversation.

Skills with no configuration (like `internet_search`) take an empty body or `{"config": {}}`. See [Skills](/sections/conversational-video-interface/skills/overview) for each skill's configuration fields. For `magic_canvas`, see [Canvas configuration](/sections/conversational-video-interface/magic-canvas/api/configuration).

## Request body

- object
  - `config` object: The configuration for the skill, validated against the skill's config schema. Defaults to `{}`. - `presentation`: `document_ids` (required array), optional `slides_trigger` (`on_demand` (default) or `walk_the_deck`), optional `prompt`. - `magic_canvas`: optional sparse `components` overlay, plus optional `usage_guidance` (string, max 2048 characters) appended to the Canvas system prompt to steer when the PAL shows cards. Ignored when blank or when no Canvas component is active. See [Canvas configuration](/sections/conversational-video-interface/magic-canvas/api/configuration).

## Response `200`

Successfully attached the skill

- SkillAttachment: A skill attached to a PAL.
  - `skill_id` string: The unique identifier of the attached skill.
  - `config` object: The skill's configuration. Empty object for skills with no configuration. Shape depends on `skill_id` - see [Skills](/sections/conversational-video-interface/skills/overview). For `magic_canvas`, `config.components` is a sparse overlay and `config.usage_guidance` is an optional string (max 2048 characters) that steers when the PAL shows cards; see [Canvas configuration](/sections/conversational-video-interface/magic-canvas/api/configuration).
  - `attached_at` string: ISO 8601 timestamp of when the skill was first attached to the PAL.
  - `updated_at` string: ISO 8601 timestamp of when the attachment was last modified.

## Other responses

- `400`: Bad Request
- `401`: UNAUTHORIZED
- `404`: Not Found

---

[API](https://skmtc.dev/tavus/apis/tavus-developer-api-collection.md) - [All operations](https://skmtc.dev/tavus/apis/tavus-developer-api-collection/llms.txt) - [OpenAPI document](https://skmtc.dev/tavus/apis/tavus-developer-api-collection/revisions/932c24e63be2?raw)
