Перейти к содержимому
Socialift
Большой гайд

TikTok API для разработчиков: продукты, доступ и ограничения

TikTok API — это не один endpoint, а набор продуктов TikTok for Developers. Login Kit отвечает за OAuth-авторизацию, Display API — за профиль и публичные видео, Content Posting API — за публикацию видео и фото. Чтобы получить доступ, вы создаёте приложение, подключаете продукты и scopes, тестируете в sandbox и проходите проверку; для публичных постов нужен ещё аудит.

Обновлено:

Что такое TikTok API?

TikTok for Developers — официальная платформа TikTok для разработчиков. В одном приложении подключается несколько продуктов: Login Kit (OAuth 2.0), Display API (профиль и публичные видео), Content Posting API (прямая публикация и черновики), Share Kit для мобильных приложений, Webhooks и API только для исследователей. Любой запрос от имени пользователя требует user access token с нужными scopes.

Open API v2 работает на open.tiktokapis.com/v2/. В ответе рядом с data приходит объект error: при успехе error.code равен ok, а log_id — идентификатор, который запрашивает поддержка TikTok. Пишите его в лог вместе с каждой ошибкой.

Функции для брендов и рекламы — отдельная платформа TikTok API for Business со своим порталом и endpoint'ами. Research API и Commercial Content API предназначены для одобренных исследователей, а не для продуктовых интеграций.

Продукты TikTok for Developers: обзор

Выбирайте продукты по задаче интеграции. Последняя колонка — что есть в Socialift Python SDK.

Продукты TikTok for Developers: обзор — Таблица возможностей по платформам
ПродуктЧто делаетКому нуженSocialift SDK
Login KitOAuth 2.0-авторизация; выдаёт access и refresh tokenЛюбому приложению, работающему от имени пользователя TikToklogin_url, exchange_code, refresh_token, revoke
Display API/v2/user/info/, /v2/video/list/, /v2/video/query/ — профиль и публичные видеоДашборды, портфолио авторовme, videos, iter_videos, video
Content Posting APIПрямая публикация в профиль (Direct Post) или отправка во «Входящие» автора (Upload); видео и фотоСервисы публикации и планированияcreator_info, publish_video, upload_video, publish_photos, publish_status
WebhooksУведомления о событиях, например authorization.removedСинхронизация статуса подключенияverify_tiktok_request, parse_tiktok_event
Share KitМобильный SDK для iOS и Android: передаёт медиа из приложения в TikTokНативные мобильные приложенияНет — Python SDK работает на сервере
TikTok API for BusinessОтдельный портал для бизнес-аккаунтов и рекламы, там же endpoint'ы комментариевБренды и агентстваМетрики бизнес-аккаунта и комментарии (business_videos, comments, …)
Research API, Commercial Content APIПубличные данные и данные о рекламе для исследованийНекоммерческие исследователиНет

Socialift — независимый интеграционный слой, а не партнёр TikTok. Доступ к каждому продукту выдаёт сам TikTok.

Как получить доступ к TikTok API: пошагово

Последовательность одинакова и для чистого HTTP, и для SDK.

  1. Создайте аккаунт разработчика и приложение

    Зарегистрируйтесь на developers.tiktok.com и подключите приложение в разделе Manage apps. TikTok попросит иконку (1024×1024 px), название, категорию, описание, ссылки на Terms of Service и Privacy Policy и целевые платформы (Web, Desktop, Android, iOS).

  2. Добавьте продукты и scopes

    Через Add products включите Login Kit и при необходимости Content Posting API. Для Login Kit укажите redirect URI, затем добавьте только те scopes, которые реально использует функциональность: проверяющие сверяют их с демо-видео.

  3. Сохраните client key и client secret

    Оба значения — в разделе Credentials. Client key виден в ссылке авторизации; client secret хранится только на сервере и отправляется только на token endpoint.

  4. Подтвердите URL, если публикуете по ссылке

    В режиме PULL_FROM_URL Content Posting API принимает медиа только с подтверждённого домена или URL-префикса. Для подтверждения загрузите файл с подписью, который выдаёт TikTok.

  5. Проверьте интеграцию в sandbox

    Sandbox позволяет тестировать без проверки: до 5 sandbox на приложение и до 10 тестовых пользователей — это должны быть ваши аккаунты. Публикация публичных видео через Content Posting API в sandbox недоступна.

  6. Отправьте приложение на проверку

    Опишите, как используется каждый продукт и scope, и приложите минимум одно демо-видео (до 5 видео, до 50 МБ каждое). По FAQ TikTok проверка может занять от нескольких дней до двух недель.

  7. Пройдите аудит для публичных постов

    Пока API-клиент не прошёл аудит, весь опубликованный им контент виден только в приватном режиме. Аудит проверяет соответствие условиям TikTok и правилам публикации.

Какие scopes TikTok API нужны?

Scopes сначала назначаются приложению на сайте разработчика, затем каждый пользователь даёт на них согласие. user.info.basic автоматически добавляется приложениям с Login Kit.

Какие scopes TikTok API нужны? — Таблица возможностей по платформам
ScopeЧто даётМетоды SDK
user.info.basicopen_id, union_id, аватар, отображаемое имяme
user.info.profilebio_description, profile_deep_link, is_verified, usernameme
user.info.statsfollower_count, following_count, likes_count, video_countme
video.listПубличные видео пользователяvideos, iter_videos, video
video.publishПрямая публикация в профиль пользователяcreator_info, publish_video, publish_photos
video.uploadОтправка контента в аккаунт автора как черновикаupload_video, publish_photos(draft=True)

Запрашивайте минимум. По умолчанию me() запрашивает поля всех трёх scopes user.info.* — если у приложения только user.info.basic, ограничьте поля через fields=.

Первые запросы к TikTok API на Python

Ссылка авторизации, обмен кода, профиль и первая страница видео. Ключи берутся из TIKTOK_CLIENT_KEY и TIKTOK_CLIENT_SECRET.

tiktok_first_calls.py
from socialift import TikTok

REDIRECT_URI = "https://app.example.com/oauth/tiktok/callback"

async def authorize_url(state: str) -> str:
    async with TikTok.from_env() as tt:
        return tt.login_url(
            redirect_uri=REDIRECT_URI,
            state=state,
            scopes=["user.info.basic", "video.list"],
        )

async def on_callback(code: str) -> None:
    async with TikTok.from_env() as tt:
        bundle = await tt.exchange_code(code, redirect_uri=REDIRECT_URI)
        me = await tt.me(bundle.access_token, fields="open_id,display_name,avatar_url")
        page = await tt.videos(bundle.access_token, limit=20)
        print(me.id, me.full_name, len(page["data"]), page["has_more"])

videos() возвращает не больше 20 видео за вызов — это максимум Display API. Для следующей страницы передайте полученный cursor или используйте iter_videos(token, max_items=100).

Полный OAuth-поток с проверкой state и обновлением токена разобран в статье про Login Kit.

Лимиты TikTok API, с которыми вы столкнётесь первыми

Значения из документации TikTok на сентябрь 2026 года. При превышении rate limit возвращается HTTP 429 с кодом rate_limit_exceeded.

Лимиты TikTok API, с которыми вы столкнётесь первыми — Таблица возможностей по платформам
ОграничениеЗначение
Срок жизни access token24 часа
Срок жизни refresh token365 дней с первой выдачи
/v2/user/info/, /v2/video/list/, /v2/video/query/По 600 запросов в минуту, скользящее окно в одну минуту
Видео на странице /v2/video/list/До 20
Запрос creator info20 запросов в минуту на user access token
Endpoint'ы инициализации публикации (видео, inbox, фото)6 запросов в минуту на user access token
Запрос статуса публикации30 запросов в минуту на user access token
Объём Direct PostОграничен на автора за 24 часа; обычно около 15 постов, зависит от автора
Клиент Content Posting без аудитаДо 5 пользователей за 24 часа, только приватная видимость

Повышенные лимиты Display API можно запросить через страницу поддержки TikTok.

Почему интеграции с TikTok ломаются после запуска

Токены быстро истекают. Access token на 24 часа означает ежедневное обновление, а не ежегодное. При обновлении TikTok может вернуть другой refresh token — сохраняйте новое значение, иначе следующее обновление не пройдёт.

Пользователи отзывают доступ. Когда человек отключает ваше приложение в TikTok, подписанный webhook получает authorization.removed, а access token к этому моменту уже недействителен. Помечайте аккаунт как отключённый вместо повторных запросов.

Scopes меняются. Если позже вы добавили scope, существующие пользователи его не подтверждали. Проведите их через авторизацию снова: disable_auto_auth=1 показывает страницу согласия даже при активной сессии.

Правила публикации — это правила продукта, а не ошибки API. Приватные посты до аудита, обязательный запрос creator info перед каждой публикацией и дневные лимиты задокументированы — проектируйте интерфейс с учётом этого.

Что покрывает Socialift, а что нет

Клиент TikTok в Socialift Python SDK оборачивает Login Kit, Display API, Content Posting API и endpoint'ы бизнес-аккаунта TikTok (метрики и комментарии). Для endpoint'ов без отдельного метода есть call() для Open API и business() для Business API. Подпись вебхуков проверяется функцией verify_tiktok_request из socialift.webhooks.

Research API, Commercial Content API, Data Portability API и мобильный Share Kit не покрываются. SDK ничего не хранит: токены и состояние остаются в вашем приложении.

В кабинете Socialift на странице «Kalitlar» (ключи) хранятся ваши client key и secret TikTok в зашифрованном виде и показаны точные redirect- и webhook-URL для консоли TikTok; «Ulanishlar» (подключения) проводит OAuth TikTok; в Playground можно вызвать методы от имени подключённого аккаунта ещё до написания кода.

← Назад в блог

Частые вопросы

Сколько длится проверка приложения TikTok?

Согласно FAQ TikTok, проверка может занять от нескольких дней до двух недель. При отказе причина указана в разделе Review comments в истории приложения; исправляете и отправляете повторно.

Можно ли публиковать публичные видео в TikTok без аудита?

Нет. Контент от клиента без аудита доступен только в режиме SELF_ONLY, аккаунт автора в момент публикации должен быть приватным, а публиковать могут до 5 пользователей за 24 часа. Ограничения снимаются после успешного аудита.

Можно ли читать комментарии через TikTok API?

Display API отдаёт только профиль и видео. Работа с комментариями — в отдельной платформе TikTok API for Business. В Research API комментарии есть, но он доступен только для одобренных некоммерческих исследований.

Чем client key отличается от client secret?

Client key — открытый идентификатор приложения, он виден в ссылке авторизации. Client secret — секретный ключ, хранится только на сервере и отправляется при получении или обновлении токена. Не размещайте его в коде браузера или мобильного приложения.

Какой scope нужен для числа подписчиков?

user.info.stats. Он открывает поля follower_count, following_count, likes_count и video_count. user.info.basic даёт только open_id, аватар и отображаемое имя.

Можно ли использовать Research API в своём продукте?

Нет. TikTok выдаёт Research API академическим и независимым исследователям, работающим на некоммерческой основе, после одобрения заявки. Для продуктовых интеграций используются Login Kit, Display API и Content Posting API.

Источники

  1. TikTok for Developers — Register your app
  2. TikTok for Developers — Scopes reference
  3. TikTok for Developers — Add a sandbox
  4. TikTok for Developers — Rate limits
  5. TikTok for Developers — Content sharing guidelines
  6. TikTok for Developers — User access token management

Связанные страницы