KKreatoAI/Documentation API

Médias

Ingérez vos images et vidéos avant publication. Le type est détecté automatiquement, le fichier est servi depuis media.kreatoai.com — un domaine vérifié, accepté par TikTok pour le téléchargement (PULL_FROM_URL).

Endpoint

POST
/v1/media

Scope requis : media:write

Corps de requête

Exactement un des deux champs — le type (image ou vidéo) est détecté par les premiers octets du fichier, pas par l'extension :

// Par URL publique (http/https, sans redirection) — recommandé pour les vidéos
{ "url": "https://exemple.com/clip.mp4" }

// Ou en base64 (corps de requête ≤ 30 Mo, soit ~22 Mo de fichier utile)
{ "base64": "<données base64>" }

Exemple de requête complète (ingestion d'une image par URL) :

curl https://api.kreatoai.com/v1/media \
  -H "x-api-key: sk-kre-v1-votre_cle" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://exemple.com/image.png"}'

Images — normalisation automatique

Tout format d'image accepté en entrée (PNG, WebP, HEIC…) : conversion en JPEG qualité 90, redimensionnement si le grand côté dépasse 1080 px (ratio conservé, jamais agrandi), orientation EXIF appliquée. C'est exactement le format exigé par TikTok — vous évitez le rejet asynchrone file_format_check_failed. Taille max : 20 Mo.

Vidéos

PropriétéValeur
FormatsMP4, MOV (QuickTime), WebM — détectés par magic bytes
Taille max128 Mo par URL (téléchargement en streaming) · ~22 Mo en base64
TraitementAucun transcodage : le fichier est hébergé tel quel

Le codec n'est pas vérifié : utilisez du H.264/AAC dans un conteneur MP4 pour une compatibilité TikTok garantie. Un codec exotique passera l'ingestion mais peut être rejeté par TikTok au téléchargement (video_pull_failed ou file_format_check_failed dans le statut).

Réponse

// 201 Created — image
{
  "type": "image",
  "url": "https://media.kreatoai.com/media-1784372380523-2a0lw1nv.jpg",
  "key": "media-1784372380523-2a0lw1nv.jpg",
  "width": 1080,
  "height": 1080,
  "bytes": 245812
}

// 201 Created — vidéo
{
  "type": "video",
  "url": "https://media.kreatoai.com/media-1784372381977-x81ka2mp.mp4",
  "key": "media-1784372381977-x81ka2mp.mp4",
  "bytes": 2299653,
  "mimeType": "video/mp4"
}

Utilisez url tel quel dans imageUrls (carrousel) ou videoUrl (vidéo) de la publication. Les URLs restent accessibles largement au-delà de l'heure exigée par TikTok.

Erreurs

StatutCodeCause
400validation zodNi url ni base64, ou les deux à la fois — réponse détaillée du validateur
400fetch_failedURL inaccessible, redirection, schéma non http(s), timeout
400not_an_imageSignature d'image reconnue mais contenu indécodable
400unsupported_media_typeNi image ni vidéo MP4/MOV/WebM reconnue
400media_too_largeImage > 20 Mo, ou vidéo > 128 Mo
413payload_too_largeCorps de requête > 30 Mo
502storage_errorÉchec du stockage — réessayez