# Download a subtitle artifact — Shorty API

> Returns a short-lived presigned URL for a completed subtitle job’s artifact. Use `?kind=` to pick srt (default), vtt, ass, or the burned-in mp4. A job that is not complete returns 409; a missing or foreign job id returns 404; an artifact kind not generated for the job returns 404.

```http
GET /v1/subtitles/{jobId}/download
```

Returns a short-lived presigned URL for a completed subtitle job’s artifact. Use `?kind=` to pick srt (default), vtt, ass, or the burned-in mp4. A job that is not complete returns 409; a missing or foreign job id returns 404; an artifact kind not generated for the job returns 404.

## Authentication

Requires a Bearer credential — a `shk_live_` API key or an OAuth 2.1 access token with the scope for this resource. See [Authentication](/docs/api).

## Parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `jobId` | path | Yes | — |
| `kind` | query | No | — |

## Example request

curl:

```bash
curl -X GET https://aishorty.com/v1/subtitles/{jobId}/download?kind=srt \
  -H "Authorization: Bearer shk_live_your_key"
```

TypeScript (@aishorty/sdk):

```typescript
import { Shorty } from '@aishorty/sdk'

const shorty = new Shorty({ apiKey: process.env.SHORTY_API_KEY })

const srt = await shorty.subtitles.download(jobId, { kind: 'srt' })
```

## Response · 200

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `url` | `string` | Yes | Short-lived presigned URL to download the subtitle artifact. |
| `expires_at` | `string` | Yes | ISO-8601 UTC timestamp the presigned URL expires. |
| `kind` | `"srt" \| "vtt" \| "ass" \| "burned"` | Yes | Artifact kind: srt/vtt/ass subtitle file, or the burned-in mp4. |
| `filename` | `string` | Yes | Suggested download filename. |

## Errors

On failure this endpoint returns an RFC 9457 problem body. Possible statuses:

- `400`
- `401`
- `403`
- `404`
- `409`
- `429`
- `500`

Switch on the problem `code`, not the status. See the [error reference](/docs/api/errors) for every code and how to fix it.
