Skip to main content
TikTok for Developers

Docs

Download

Use POST request to download the requested data. The response is streamed as an HTTP data zip file.

HTTP URL

https://open.tiktokapis.com/v2/user/data/download/

HTTP Method

POST

Scopes

portability.all.single, portability.all.ongoing,

portability.activity.single, portability.activity.ongoing,

portability.directmessages.single, portability.directmessages.ongoing,

portability.postsandprofile.single, portability.postsandprofile.ongoing,

Request

Headers

Key

Type

Description

Example

Required

Authorization

string

The token that bears the authorization of the TikTok user, which is obtained through /v2/oauth/token/

Bearer clt.example12345Example12345Example


Yes

Content-Type

string

The original media type of the resource

application/json

Yes

Body

Key

Type

Description

Example

Required

request_id

int64

The unique ID generated to track the download data request. This value can be obtained from the Add Data Request API.

123123123123


Yes

Response

The response is streamed as HTTP zip file, and must be converted to a zip file to get the correct data.

This Python script can be used to POST a successful request and get data in a readable format

import requests
import json

url = "https://open.tiktokapis.com/v2/user/data/download/"

# The request_id returned from the `Add Data Request` API
request_id = <REQUEST ID>

# Request JSON structure
payload = json.dumps({
  "request_id": request_id
})

# Necessary headers
# Authorization must have the token obtained from the /v2/oauth/token/ API
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'AUTHORIZATION_TOKEN'
}

response = requests.request("POST", url, headers=headers, data=payload)

zip_file_path = f'./{request_id}.zip'

# Open the zip file in write-binary mode
with open(zip_file_path, 'wb') as zip_file:
    # Write the content of the response to the zip file
    zip_file.write(response.content)

Success Example

.zip must be added to streamed data to make it a zip file. The data itself, viewed as unicode will not be human-readable.

Failure Example

In case a Download Request is unsuccessful, the following response will be returned

{
    "data": {},
    "error": {
        "code": "invalid_params",
        "http_status_code": 400,
        "log_id": "20240125230933D4C4606E87F0A61BE502",
        "message": "Incorrect `request_id`. Please validate the request."
    }
}