Skip to main content
TikTok for Developers

Docs

Getting Started

This guide will show you how to use the Commercial Content API. Learn how to use the Commercial Content API to query ad data and fetch public advertiser data in the following use case example.

View your client registration

Once your application is approved, a research client will be generated for your project. You can view your approved research projects here. Select a project from the list to see the research client details.

The provided Client key and Client secret are required to connect to the Commercial Content API endpoints. The client key and secret are hidden by default but can be displayed by clicking the Display button (eye icon).

Note: The client secret is a credential used to authenticate your connection to TikTok's APIs. Do not share this with anyone!

Obtain a client access token

Once you have obtained the client key and secret for your project, generate a client access token. Add this access token in the authorization header of the http requests to connect to the Commercial Content API endpoints.

Query TikTok public content data

The cURL command below shows an example of how you can query the TikTok ads created in Italy between January 2, 2021 to January 9, 2021 with the keyword "coffee".

curl -X POST 'https://open.tiktokapis.com/v2/research/adlib/ad/query/?fields=ad,ad_group' \
 -H 'authorization: bearer clt.example12345Example12345Example' \
 -d '{ 
         "filters": {
            "ad_published_date_range": {
                 "min": "20221001",
                 "max": "20230510"
             },
            "country": "IT"
         }, 
        "search_term": "coffee",
        "max_count": 20
    }'

Pagination

If the total number of ads that match the search criteria is larger than the maximum number of ads that can be returned in a single request, the response data will be returned with different requests.

Field

Type

Description

Example

Required?

max_count

number

The maximum count of TikTok videos in the response. The default value is 10 and the maximum value is 50.

12

FALSE


search_id

string

The ID of a previous search to provide sequential calls for paging.

"eyJsYXN0X3NvcnQiOls3NDA3OCwiMzUwNDIwOTgzOD"

FALSE

First page

When you send the first request, you do not need to set the search_id in the request body. In the http response, has_more and search_id are returned, which are used in the subsequent requests.

Try out this request:

curl -X POST 'https://open.tiktokapis.com/v2/research/adlib/ad/query/?fields=ad,ad_group' \
  -H 'authorization: bearer clt.example12345Example12345Example' \
  -d '{ 
          "filters": {
              "ad_published_date_range": {
                 "min": "20221001",
                 "max": "20230510"
              },
              "country": "IT"
           }, 
          "search_term": "coffee",
          "max_count": 20
       }'

The following example data is returned from the response.

{
    "data": {
        "has_more": true,
        "search_id": "eyJsYXN0X3NvcnQiOls3NDA3OCwiMzUwNDIwOTgzOD",
        "ads": [
            ...
        ]
    },
    "error": {
        ...
    }
 }

Next page

With the cURL command below, you can get the next page of query results.

curl -X POST 'https://open.tiktokapis.com/v2/research/adlib/ad/query/?fields=ad,ad_group' \
  -H 'authorization: bearer clt.example12345Example12345Example' \
  -d '{ 
          "filters": {
              "ad_published_date_range": {
                 "min": "20221001",
                 "max": "20230510"
              },
              "country": "IT"
           }, 
          "search_term": "coffee",
          "max_count": 20,
          "search_id": "eyJsYXN0X3NvcnQiOls3NDA3OCwiMzUwNDIwOTgzOD"
       }'

The following example data is returned from the response.

{
    "data": {
        "has_more": true,
        "search_id": "eyJsYXN0X3NvcnQiOlsyNTQxMTkwLCIzNDk1NzA4NjI",
        "ads": [
            ...
        ]
    },
    "error": {
        ...
    } 
}