# TikTok Ads API: Access, Tokens, and Reporting

How to get TikTok Ads API access: developer registration, app review, the auth code to access token flow, advertiser IDs, reporting endpoints, and rate limits.

Canonical page: https://www.tryadeli.com/blog/tiktok-ads-api
Last updated: 2026-10-26

By Mika Reyes, Co-founder, Adeli. Published 2026-10-26.

## The short answer

The TikTok Ads API is the Marketing API inside TikTok API for Business. To use it, register as a developer at business-api.tiktok.com, create a developer app (review takes 2 to 3 business days), send advertisers your authorization URL, and exchange the auth_code for a long-term access token that returns their advertiser IDs. Reporting runs through report/integrated/get, and apps start at 10 queries per second.

The **TikTok Ads API** is the **Marketing API** inside **TikTok API for Business** (business-api.tiktok.com). It lets your software create campaigns, manage ad accounts, and pull reports for advertisers who authorize your app. Getting access takes five steps: a TikTok for Business account, developer registration, a developer app, advertiser authorization, and a token exchange.

This is a reference for developers at marketing platforms and SaaS products adding TikTok ads features for their customers. Every step below comes from TikTok's own [API for Business docs](https://business-api.tiktok.com/portal/docs/about-the-guide/v2.0). If you need the organic side of TikTok (posting and creator analytics), that's a different portal, covered in [TikTok API for Business vs. Developers](https://www.tryadeli.com/blog/tiktok-api-for-business-vs-developers).

## What is the TikTok Ads API?

**The TikTok Ads API is TikTok's Marketing API, one product inside TikTok API for Business.** It covers ad accounts, campaigns, ad groups, ads, creatives, audiences, Business Center, and reporting. Most developers searching "TikTok marketing API" or "TikTok Ads API" mean the same thing.

TikTok API for Business also holds other products that share the portal but authorize differently:

| API in TikTok API for Business | Who authorizes it | auth_code lifetime |
|---|---|---|
| **Marketing API** | A TikTok for Business advertiser | 1 hour, single use |
| **Accounts API / Mentions API** | An organic TikTok account holder | 10 minutes, single use |
| **TTO API (TikTok One Creator Marketplace)** | A TTO Creator Marketplace account | 1 hour, single use |

Source: TikTok's [authorization overview](https://business-api.tiktok.com/portal/docs/generic-authorization/v1.3).

The current Marketing API version for most endpoints is **v1.3**. On **October 23, 2026**, TikTok launched **Reporting API v2.0**, which so far covers reporting endpoints only. More on that below.

## How do I get TikTok Ads API access?

**You get TikTok Ads API access by registering your company as a developer, then creating a developer app that TikTok reviews.** Individuals can't apply. Here's the sequence from TikTok's [register as a developer](https://business-api.tiktok.com/portal/docs/register-as-a-developer/v1.3) and [create a developer app](https://business-api.tiktok.com/portal/docs/create-a-developer-app/v1.3) guides.

1. **Create a TikTok for Business account**, then log in to the developer portal at business-api.tiktok.com and click **Become a Developer**.
2. **Fill in your developer profile.** Use a verified company email domain (TikTok suggests an alias like `developers+tiktok@company.com` that your team shares). Personal and temporary emails are rejected.
3. **Pick your user type**: Technology Company, Direct Advertiser, or Agency. A mismatch between the type and your details is a stated rejection reason.
4. **Give a company website** that is public, fully built, on a domain your company owns, and matches your email domain. Shortened links and social media pages don't count.
5. **Describe how you'll use TikTok data and the API.** TikTok says to be as descriptive as possible. You hear back within **three business days**.
6. **Create a developer app** once the profile is approved. Name it, describe its intended uses and who can access it, add an **advertiser redirect URL** (up to 10, localhost allowed), and select the **scope of permission** for the endpoints you need.
7. **Wait for app review.** TikTok says the review "may take 2 to 3 business days." If it's rejected, edit and resubmit.

Each developer can have **up to five developer apps**. Keep your scope of permission tight and tied to the app description, because TikTok checks that the two match.

## How do I get a TikTok Ads API access token?

**You get a TikTok Ads API access token by sending an advertiser your authorization URL, catching the auth_code on your redirect URL, and POSTing it to the oauth2/access_token endpoint.** The result is a long-term token that does not expire. Steps from TikTok's [Marketing API authorization guide](https://business-api.tiktok.com/portal/docs/marketing-api-authorization/v1.3):

1. **Copy the Advertiser authorization URL** from My Apps, in your app's Basic Information section, and send it to the advertiser.
2. **The advertiser reviews your permissions**, agrees to the Platform Service Agreement, and confirms with a code sent to the email on their ad account.
3. **TikTok redirects to your redirect URL** with `auth_code` (and your `state`) in the query string. Your server reads it.
4. **Exchange the code** within one hour. It works once.

```bash
curl -X POST "https://business-api.tiktok.com/open_api/v1.3/oauth2/access_token/" \
  -H "Content-Type: application/json" \
  -d '{
    "app_id": "<APP_ID>",
    "secret": "<APP_SECRET>",
    "auth_code": "<AUTH_CODE>"
  }'
```

The response holds `access_token`, `scope` (numeric scope IDs), and `advertiser_ids`, the ad accounts the token can reach:

```json
{
  "code": 0,
  "message": "OK",
  "data": {
    "access_token": "xxxxxxxxxxxxx",
    "scope": [4],
    "advertiser_ids": ["123456789", "123456781"]
  },
  "request_id": "2020042715295501023125104093250"
}
```

Source: TikTok's [obtain a long-term access token](https://business-api.tiktok.com/portal/docs/obtain-a-long-term-access-token/v1.3) reference. Details to plan for:

- **The token does not expire.** TikTok's docs say so outright. Revoke it with `/oauth2/revoke_token/` when a customer disconnects.
- **`/oauth/token/` is the alternative.** It's new in v1.3, takes `client_id`, `client_secret`, `code`, and `grant_type=authorization_code`, and accepts form-encoded bodies. `/oauth2/access_token/` only takes JSON.
- **Big agencies time out.** If a token can reach thousands of ad accounts, set `return_advertiser_ids` to `false` and list accounts separately.
- **Send the token in an `Access-Token` header**, not `Authorization: Bearer`, on Marketing API calls.

**Don't confuse this with the Accounts API.** Tokens for organic TikTok accounts are short-term and need renewing. A TikTok integration that does both ads and organic runs two token lifecycles.

## What are TikTok advertiser IDs?

**A TikTok advertiser ID is the ID of one ad account, and almost every Marketing API call takes one.** The token exchange returns the list your token can access. To refresh that list later, call `GET /open_api/v1.3/oauth2/advertiser/get/` with your `app_id`, `secret`, and the access token, per TikTok's official [Business API SDK](https://github.com/tiktok/tiktok-business-api-sdk).

Store the mapping between your customer and their advertiser IDs on your side. One customer often brings several ad accounts, and one Business Center can hold many. In v1.3, `advertiser_ids` come back as strings, so don't parse them as numbers (v1.2 returned numbers).

## How does TikTok Ads API reporting work?

**TikTok Ads API reporting runs through `report/integrated/get` for synchronous reports and `report/task/*` endpoints for asynchronous ones.** You pass advertiser IDs, dimensions such as `campaign_id` or `stat_time_day`, and the metrics you want.

| Endpoint | Use it for |
|---|---|
| `report/integrated/get/` | A synchronous report, returned in the response |
| `report/task/create/` | Start an asynchronous report for large pulls |
| `report/task/check/` | Poll an async task's status |
| `report/task/download/` | Download a finished async report |
| `report/task/cancel/` | Cancel an async task |

**Reporting API v2.0 changes the shape.** TikTok's [changelog](https://business-api.tiktok.com/portal/docs/changelog/v2.0) for October 23, 2026 says Basic, Audience, and DSA reports merge into one Ad Report, and the maximum number of advertisers per request went from **5 to 20**. The [v2.0 synchronous report reference](https://business-api.tiktok.com/portal/docs/run-a-synchronous-report/v2.0) adds:

- **The method is POST** to `https://business-api.tiktok.com/open_api/v2.0/report/integrated/get/`, with a JSON body.
- **`report_type`, `data_level`, `service_type`, and `advertiser_id` are gone** as request parameters. Use `advertiser_ids` or `bc_id`.
- **Filters are singular**: `campaign_ids` becomes `campaign_id`, and `filter_value` (a string) becomes `filter_values` (an array).
- **Delivery metrics can be sorted and filtered**, and `stat_time_week` and `stat_time_month` are new dimensions.
- **A synchronous report returns up to 20,000 ads.** Above that, filter by `campaign_id`, `adgroup_id`, or `ad_id` in batches of up to 100 IDs.

If you're building new reporting today, start on v2.0 so you don't migrate twice. If you compare API numbers with an Ads Manager export, compare against an asynchronous report, since TikTok says synchronous reports are the ones truncated at 20,000 ads.

## What are the TikTok Ads API rate limits?

**Every TikTok developer app starts at the Basic level: 10 queries per second, 600 per minute, and 864,000 per day.** Throttled requests return `"code": 40100`. Levels from TikTok's [rate limits overview](https://business-api.tiktok.com/portal/docs/rate-limits/v1.3):

| Level | QPS | QPM | QPD |
|---|---|---|---|
| **Basic** (default) | 10 | 600 | 864,000 |
| **Advanced** | 20 | 1,200 | 1,728,000 |
| **Premium** | 30 | 1,800 | 2,592,000 |
| **Ultimate** | 50 | 3,000 | 4,320,000 |

- **Limits are per endpoint.** Hitting the cap on `/campaign/get/` doesn't block `/ad/get/`.
- **Some endpoints are tighter.** Async report creation is capped at **2 QPS, 60 QPM, and 4,500 per day** at every level. `/ad/create/` starts at 5 QPS.
- **Backoff is fixed.** After a QPM throttle, wait **5 minutes**. After a QPD throttle, wait until **00:00 UTC**.
- **Upgrades go one level at a time.** Apply in My Apps under your app's Authorization section, with a reason (TikTok's example is reporting errors from the current limit).

TikTok recommends two habits: batch reads (pass many `adgroup_ids` in one filter instead of one call per ID) and a client-side token bucket or queue so you never fire more concurrent requests than your QPS allows.

## What changes on January 1, 2027?

**Starting January 1, 2027, TikTok's campaign, ad group, and ad creation endpoints stop supporting non-Search Legacy Manual Flow campaigns for Sales, App Promotion, and Lead Generation objectives.** The notice sits at the top of TikTok's current docs and names `/campaign/create/`, `/campaign/copy/task/create/`, `/adgroup/create/`, `/ad/create/`, and `/ad/aco/create/`.

TikTok's advice is to move affected workflows to the **Upgraded Smart+ APIs**. If your product creates TikTok campaigns for customers on those objectives, plan that migration alongside the Reporting v2.0 move.

## Where does Adeli fit?

**Adeli runs TikTok ads for your customers without a Marketing API app of your own.** Through [Adeli's ads API](https://www.tryadeli.com/docs/api/ads) you manage your customers' TikTok ad accounts and campaigns, track results, and pull leads, alongside Meta and LinkedIn ads. On the organic side, [Adeli](https://www.tryadeli.com/product/tiktok) publishes to TikTok through TikTok API for Business and handles the token refresh cycle for every connected TikTok account, so you publish videos and read TikTok analytics with the same API key you use for Instagram, Facebook, YouTube, X, and Bluesky.

If you're building an [AI marketing platform](https://www.tryadeli.com/use-cases/ai-marketing-platforms) that runs paid and organic side by side, Adeli takes both flows off your plate: the developer registration, app review, auth codes, and token handling above are already done. Adeli is priced per profile (one of your customers), with every platform included, so the bill tracks how you charge. See [pricing](https://www.tryadeli.com/pricing).

## Frequently asked questions

### Does the TikTok Ads API access token expire?

No. TikTok's docs say the long-term access token you get from an advertiser's authorization does not expire. To end access, for example when a customer disconnects, revoke it with the oauth2/revoke_token endpoint.

### How long is a TikTok ad authorization code valid?

A Marketing API auth_code is valid for one hour and can be used once. If it expires before you exchange it, the advertiser has to go through the authorization URL again. Accounts API codes from organic TikTok accounts last only 10 minutes.

### Can individual developers get TikTok Ads API access?

No. TikTok's registration guide says it can't onboard personal accounts or individual developers. You need a verified company email domain and a public company website on a domain your company owns.

### Is the TikTok Marketing API the same as the TikTok Content Posting API?

No. The Marketing API lives on business-api.tiktok.com and manages ads for advertisers. The Content Posting API lives on developers.tiktok.com and publishes organic videos for creators. They have separate apps, separate reviews, and separate tokens.

## Related Adeli pages

- [TikTok API for Developers](https://www.tryadeli.com/product/tiktok.md): Publish, schedule, and read analytics for TikTok through one API. Adeli publishes through TikTok API for Business and handles token refresh. Free to start.
- [Social Media and Ads API for AI Marketing Platforms](https://www.tryadeli.com/use-cases/ai-marketing-platforms.md): Run posting, analytics, inbox, and Meta ads for your customers' accounts through one API, without months of platform reviews.
- [All posts on the Adeli blog](https://www.tryadeli.com/blog.md)

## About the author

Mika Reyes is the CEO behind Adeli and a tech and AI content creator. She was previously co-founder and CEO of Parallax, which was acquired by Phantom, and a product lead at LinkedIn. She is a Forbes 30 Under 30 honoree.
