API d'upload TikTok Planifiez vidéos et posts photo

Importez et planifiez des vidéos et carrousels photo TikTok depuis votre code ou votre agent IA, avec le niveau de confidentialité et les réglages de commentaires, duet et stitch que TikTok exige pour chaque post.

URL de base https://api.so-me.studio/v1 · Authentification X-API-Key · socialMedia: TIKTOK

Ce que vous pouvez publier sur TikTok

Envoyez l'une de ces valeurs comme postType. Chaque post a besoin de texte, et les photos ou vidéos sont jointes par fileId depuis votre bibliothèque de médias.

VIDEO

Une vidéo.

IMAGE

Une photo, publiée comme post photo TikTok.

MULTIPLE_IMAGES

Un carrousel photo à faire défiler.

Planifier un post TikTok

Importez le média, puis créez le post. Omettez scheduledAt pour publier immédiatement.

  1. Lire les réglages du créateur

    TikTok décide des niveaux de confidentialité que chaque créateur peut utiliser. Lisez-les d'abord, puis laissez l'utilisateur en choisir un.

    Lire les réglages du créateur
    curl https://api.so-me.studio/v1/accounts/<account-uuid>/tiktok/creator-info \
      -H "X-API-Key: $SOME_API_KEY"
    
    # → { "privacyLevelOptions": ["PUBLIC_TO_EVERYONE", "SELF_ONLY", …],
    #     "commentDisabled": false, "duetDisabled": false, … }
  2. Réserver une URL d'envoi

    POST /v1/media/presign-upload ajoute le fichier à votre bibliothèque de médias et renvoie un fileId et un uploadUrl présigné.

    Réserver une URL d'envoi
    curl -X POST https://api.so-me.studio/v1/media/presign-upload \
      -H "X-API-Key: $SOME_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"files":[{"filename":"editing-tips.mp4","mimetype":"video/mp4","size":31457280}]}'
    
    # → [{ "fileId": "…", "uploadUrl": "https://…", "fileSrc": "…", "s3Key": "…" }]
  3. Envoyer le fichier

    Envoyez les octets en PUT vers uploadUrl avec exactement le Content-Type que vous avez déclaré. L'URL est valable une heure.

    Envoyer le fichier
    curl -X PUT "$UPLOAD_URL" \
      -H "Content-Type: video/mp4" \
      --upload-file ./editing-tips.mp4
  4. Créer le post

    POST /v1/posts avec le fileId. La réponse est le post avec le statut SCHEDULED, et il est publié à l'heure scheduledAt via une file d'attente qui relance en cas d'échec.

    Créer le post
    curl -X POST https://api.so-me.studio/v1/posts \
      -H "X-API-Key: $SOME_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "socialMedia": "TIKTOK",
        "postType": "VIDEO",
        "text": "3 astuces de montage en 30 secondes #astucesmontage",
        "fileIds": ["<fileId>"],
        "scheduledAt": "2026-11-05T18:00:00Z",
        "tiktok": {
          "privacyLevel": "PUBLIC_TO_EVERYONE",
          "allowComments": true,
          "allowDuet": false,
          "allowStitch": true
        }
      }'

accountId est facultatif lorsque l'espace de travail a un seul compte TikTok. Sinon, passez un ID obtenu avec GET /v1/accounts.

Les fichiers joints avec fileIds sont vérifiés par rapport aux limites TikTok ci-dessous avant toute mise en file. Un fichier qui enfreint une règle renvoie une erreur 400 avec un rapport par fichier.

Options TikTok

Les champs qui modifient la façon dont un post est publié sur TikTok.

ChampCe qu'il fait
tiktok.privacyLevelObligatoire. PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR ou SELF_ONLY, limité aux niveaux listés par les infos du créateur. Un post sans ce champ renvoie 400 TIKTOK_PRIVACY_LEVEL_REQUIRED.
tiktok.allowCommentsIndique si les spectateurs peuvent commenter, true par défaut. Désactivé, avec un avertissement, lorsque le créateur a désactivé les commentaires.
tiktok.allowDuet · tiktok.allowStitchIndique si les spectateurs peuvent faire un duet ou un stitch de la vidéo, true par défaut. Vidéo uniquement.
tiktok.brandContentToggle · tiktok.brandOrganicToggleIndicateurs de divulgation : brandContentToggle signale un partenariat rémunéré, brandOrganicToggle signale la promotion de votre propre activité. Les deux sont false par défaut.
GET /v1/accounts/:id/tiktok/creator-infoRenvoie les niveaux de confidentialité autorisés, les réglages de commentaires, duet et stitch du créateur et la vidéo la plus longue qu'il peut publier. Mis en cache pendant dix minutes.

Limites médias TikTok

Social media studio vérifie chaque fichier par rapport à ces limites avant de publier. Ce sont nos limites configurées, pas une garantie donnée par TikTok : GET /v1/media/rules renvoie le tableau à jour, et POST /v1/media/validate vérifie un fichier sans le publier.

Type de post VIDEO

Formats
MP4, MOV, WebM
Taille max. du fichier
350 MB
Fichiers par post
1
Durée max.
10 min
Dimensions
360–4096 px
Codecs vidéo
H.264, H.265, VP8, VP9
Fréquence d'images
≤ 60 fps

Type de post IMAGE

Formats
JPEG, PNG, WebP
Taille max. du fichier
20 MB
Fichiers par post
1
Dimensions
≥ 360 px

Type de post MULTIPLE_IMAGES

Formats
JPEG, PNG, WebP
Taille max. du fichier
20 MB chacun
Fichiers par post
2–20 par requête
Dimensions
≥ 360 px

Sachez quand c'est en ligne

La publication est asynchrone. Abonnez-vous à post.published et post.failed, ou interrogez GET /v1/posts/:id jusqu'à ce que postStatus soit POSTED ou FAILED.

S'abonner une seule fois
curl -X POST https://api.so-me.studio/v1/webhooks/subscriptions \
  -H "X-API-Key: $SOME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/hooks/social",
    "categories": ["post"],
    "events": ["post.published", "post.failed"]
  }'

# The response includes the secret that signs every delivery.
À quoi ressemble chaque envoi
POST /hooks/social
X-Webhook-Event: post.published
X-Webhook-Signature: <hex HMAC-SHA256 of the raw body>

{
  "event": "post.published",
  "category": "post",
  "timestamp": "2026-11-03T15:00:07.412Z",
  "data": { "postId": "…", "platform": "TIKTOK" }
}

Chaque envoi est signé en HMAC-SHA256 dans X-Webhook-Signature. post.failed est émis après la dernière relance ; corrigez la cause et appelez POST /v1/posts/:id/retry. Un premier commentaire est signalé séparément avec post.first_comment_posted ou post.first_comment_failed.

Vous créez un agent IA ?

La même clé d'API pilote un serveur MCP de plus de 200 outils et une CLI : un agent peut ainsi publier sur TikTok sans appels HTTP écrits à la main.

Serveur MCP

Ajoutez le serveur à Claude, Cursor ou à n'importe quel client MCP avec votre clé d'API. OAuth fonctionne aussi. Pour TikTok, l'agent appelle ces outils avec les mêmes champs que la requête REST :

  • get_tiktok_creator_info
  • presign_media_upload
  • create_post
mcp.json
{
  "mcpServers": {
    "so-me-studio": {
      "url": "https://api.so-me.studio/mcp",
      "headers": { "X-API-Key": "sk_live_…" }
    }
  }
}

CLI

Installez-la avec npm i -g @social-media-scheduler/cli. Elle importe vos fichiers locaux à votre place et affiche du JSON : un script ou un job CI peut ainsi planifier un post TikTok en une seule commande.

so-me
so-me posts:create --platform TIKTOK --post-type VIDEO \
  -m ./editing-tips.mp4 \
  -c "3 astuces de montage en 30 secondes #astucesmontage" \
  -s 2026-11-05T18:00:00Z \
  --tiktok-privacy PUBLIC_TO_EVERYONE --no-tiktok-allow-duet

L'accès à l'API, à la CLI et au MCP est inclus dans tous les forfaits payants : Lite, Creator, Standard, Advanced et Lifetime. Voir les forfaits et les limites

Pour aller plus loin

Guides des autres plateformes

L'API Content Posting de TikTok refuse un post sans niveau de confidentialité, et seuls les niveaux autorisés pour ce créateur sont valides. Lisez-les depuis la route creator-info, laissez l'utilisateur choisir, puis envoyez tiktok.privacyLevel.

Oui. Envoyez postType MULTIPLE_IMAGES avec deux photos ou plus, ou IMAGE pour une seule. Les photos de plus de 1080p sont redimensionnées et enregistrées en JPEG au moment de la publication : les originaux volumineux ne posent donc aucun problème.

Une fois que TikTok a traité le post et l'a rendu public. TikTok publie de manière asynchrone : le post porte d'abord l'ID de publication TikTok, et le lien final est renseigné ensuite.

Non. Vous connectez le compte TikTok une seule fois dans le tableau de bord Social media studio via la connexion TikTok. Ses jetons sont stockés chiffrés et actualisés de notre côté, et votre code envoie uniquement votre clé d'API Social media studio dans l'en-tête X-API-Key.

Non. Il répond dès que le post est mis en file. La publication s'exécute dans un worker qui relance en cas d'échec : écoutez donc post.published et post.failed, ou interrogez GET /v1/posts/:id.

L'API REST, la CLI et le serveur MCP sont inclus dans tous les forfaits payants : Lite, Creator, Standard, Advanced et Lifetime. Lite, Creator, Standard et Advanced commencent par un essai de 7 jours (carte bancaire requise), et Lifetime est un paiement unique.

Planifiez une fois.
Publiez partout.

Fini la valse des onglets, rédigez, adaptez et publiez sur 20 plateformes depuis un seul calendrier.

API d'upload TikTok : planifiez vidéos et posts photo