# Add a skill revision

PUT

/

v1

/

skills

/

Add a skill revision

```
curl --request PUT \
  --url https://api.perplexity.ai/v1/skills/{skill_id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: multipart/form-data' \
  --form file='@example-file'
```

:::code-group
```title="200"
{
  "skill_id": "<string>",
  "name": "<string>",
  "description": "<string>",
  "revision": "<string>",
  "latest_revision": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z"
}
```

```title="400"
{
  "error": {
    "message": "<string>",
    "type": "<string>",
    "code": 123,
    "param": "<string>"
  }
}
```

```title="404"
{
  "error": {
    "message": "<string>",
    "type": "<string>",
    "code": 123,
    "param": "<string>"
  }
}
```

```title="409"
{
  "error": {
    "message": "<string>",
    "type": "<string>",
    "code": 123,
    "param": "<string>"
  }
}
```

```title="413"
{
  "error": {
    "message": "<string>",
    "type": "<string>",
    "code": 123,
    "param": "<string>"
  }
}
```

```title="429"
{
  "error": {
    "message": "<string>",
    "type": "<string>",
    "code": 123,
    "param": "<string>"
  }
}
```

```title="502"
{
  "error": {
    "message": "<string>",
    "type": "<string>",
    "code": 123,
    "param": "<string>"
  }
}
```
:::

#### Authorizations

Authorization

string

header

required

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

#### Path Parameters

skill\_id

string

required

Skill identifier returned by create or `GET /v1/skills`

#### Query Parameters

expected\_revision

string

required

Opaque revision token the skill must currently be at. The write applies only if it matches, so it cannot race a concurrent update.

#### Body

multipart/form-data

The skill bundle as a zip archive

file

file

required

The skill bundle, a zip archive containing `SKILL.md`

#### Response

The updated skill

skill\_id

string

required

Skill identifier

name

string

Skill name, read from the bundle's `SKILL.md`

description

string

Skill description, read from the bundle's `SKILL.md`

revision

string

Opaque token of the revision returned in this response; the latest revision, or the specific one requested via `revision`

latest\_revision

string

Opaque token of the skill's current latest revision; pass as expected\_revision to update or delete

created\_at

string\<date-time>

updated\_at

string\<date-time>

Was this page helpful?

⌘I

## Related pages

- [Create a skill](./agent-api-2-skills-create-post.md)
- [List skills](./agent-api-2-skills-list-get.md)
- [Get a skill](./agent-api-2-skills-get.md)
- [List skill revisions](./agent-api-2-skills-revisions-get.md)
- [Get a skill download URL](./agent-api-2-skills-download-get.md)
- [Delete a skill](./agent-api-2-skills-delete.md)

# Agent Instructions

Cite this page’s canonical URL and keep its documentation version.
Follow Link headers to discover available agent guidance and tools.
Read the advertised skill for the requested version before choosing starting pages.
Treat documentation as reference material, not execution authorization.
