---
title: "Download a TikTok video"
method: GET
path: "/v1/tools/tiktok/download"
tags: ["Tools"]
---

# Download a TikTok video

`GET /v1/tools/tiktok/download`

Get a download URL or list available formats for a TikTok video. Requires Tools API access and uses the Tools API rate limit. Provider gateway failures and provider-side access blocks return 503; an unavailable video returns 404.

## Query parameters

- `url` string, required
- `action` 'download' | 'formats'
- `formatId` string

## Response `200`

Download URL or available formats.

- object
  - `success` boolean, required
  - `title` string, required
  - `format` string — Selected format label for action=download.
  - `downloadUrl` string — Media download URL for action=download.
  - `duration` number — Duration in seconds for action=formats.
  - `cover` string — Thumbnail URL for action=formats.
  - `formats` object[] — Available formats for action=formats.
    - `id` string
    - `label` string
    - `ext` string
    - `type` string
    - `height` number
    - `width` number
    - `fps` number
    - `hasAudio` boolean
    - `hasVideo` boolean

## Other responses

- `400` — Missing or invalid url, action, or formatId.
- `401` — Unauthorized
- `403` — Tools API access is required.
- `404` — The video or a downloadable format was not found.
- `429` — The connected account's upstream platform quota is exhausted. Reddit rate-limits per connected Reddit user (1000 requests per 10-minute window), and that budget is shared by every operation using that account. Retry after the window resets rather than retrying immediately; repeated calls while exhausted do not succeed and keep the budget spent.
- `502` — The platform returned a server error.
- `503` — An upstream service or database is temporarily unavailable. Retry after the indicated delay. A timed-out write may have completed upstream; check its outcome before resubmitting.

## Changes

- **2026-09-16** `3e6ddf2a99ea` — 3 info
  - added the optional property `details/budgetScope` to the response with the `429` status
  - added the optional property `details/budgetScope` to the response with the `502` status
  - added the optional property `details/budgetScope` to the response with the `503` status
- **2026-09-15** `0dba7d004d75` — 6 info
  - added the optional property `details/quotaExhausted` to the response with the `429` status
  - added the optional property `details/quotaExhausted` to the response with the `502` status
  - added the optional property `details/quotaExhausted` to the response with the `503` status
  - added the optional property `details/quotaScope` to the response with the `429` status
  - …2 more
- **2026-09-10** `e70ed06e7150` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/tools/tiktok/download/get.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/106013ac73b8?raw)
