# Get a skill download URL

**GET** `/v1/skills/{skill_id}/download`

Returns a short-lived URL to download the skill bundle as a zip. Without
`revision`, returns the active revision.

Base URL: `https://api.perplexity.ai`

Tags: `Skills`

## Authorization

| Option | Scheme | Type | Sent as | Scopes |
| --- | --- | --- | --- | --- |
| Option 1 | `HTTPBearer` | `http` | `Authorization: Bearer <token>` | — |

## Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `skill_id` | `string` | Yes | Skill identifier returned by create or `GET /v1/skills` |

## Query parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `revision` | `string` | No | Opaque revision token; when omitted, the active revision is used |

## Responses

| Status | Description | Media type |
| --- | --- | --- |
| `200` | The skill bundle download | `application/json` |
| `400` | Invalid request | `application/json` |
| `404` | Skill or revision not found | `application/json` |
| `429` | Rate limit exceeded | `application/json` |
| `502` | Skill service unavailable | `application/json` |

### Example response: 200 — The skill bundle download

```json
{
  "download_url": "string",
  "name": "string",
  "revision": "string"
}
```

### Example response: 400 — Invalid request

```json
{
  "error": {
    "code": 0,
    "message": "string",
    "param": "string",
    "type": "string"
  }
}
```

### Example response: 404 — Skill or revision not found

```json
{
  "error": {
    "code": 0,
    "message": "string",
    "param": "string",
    "type": "string"
  }
}
```

### Example response: 429 — Rate limit exceeded

```json
{
  "error": {
    "code": 0,
    "message": "string",
    "param": "string",
    "type": "string"
  }
}
```

### Example response: 502 — Skill service unavailable

```json
{
  "error": {
    "code": 0,
    "message": "string",
    "param": "string",
    "type": "string"
  }
}
```

## Related pages

- [Add a skill revision](./updateskill.md)
- [Cancel Agent Response](./cancelagentresponse.md)
- [Create a skill](./createskill.md)
- [Create Agent Response](./createagent.md)
- [Create Async Chat Completion](./create_async_chat_completions_async_chat_completions_post.md)
- [Create Chat Completion](./chat_completions_chat_completions_post.md)
- [Create Contextualized Embeddings](./contextualized_embeddings_v1_contextualizedembeddings_post.md)
- [Create Embeddings](./embeddings_v1_embeddings_post.md)
- [Delete a skill](./deleteskill.md)
- [Download Agent Response File](./downloadagentfile.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.
