# Documentation de l'API Taisly - **OpenAPI Version:** `3.1.0` - **API Version:** `1.0.0` # Documentation de l'API Taisly L'API Taisly vous permet d'automatiser la publication et la republication de vidéos sur plusieurs plateformes de médias sociaux en utilisant une authentification par clé API simple. ## Fonctionnalités - Télécharger et publier des vidéos sur plusieurs plateformes simultanément - Configurer la republication automatique d'une plateforme vers d'autres - Planifier des publications pour plus tard - Gérer les comptes de médias sociaux connectés - Suivre l'historique et le statut des publications ## Exigences - **Plan**: STARTER, INFLUENCER ou PRO (clés API non disponibles sur le plan FREE) - **Clé API**: Générez-la depuis votre tableau de bord sur - **HTTPS**: Toutes les requêtes API doivent utiliser HTTPS ## Limites de requêtes | Plan | Requêtes par heure | | ---------- | ------------------ | | STARTER | 50 | | INFLUENCER | 200 | | PRO | 1000 | Lorsque vous dépassez la limite, vous recevrez une erreur 429 avec un champ `retryAfter` indiquant le nombre de secondes à attendre. ## Bonnes pratiques de sécurité 1. Ne commitez jamais les clés API dans le contrôle de version 2. Stockez les clés dans des variables d'environnement 3. Régénérez immédiatement si elles sont compromises 4. Utilisez uniquement HTTPS ## Exigences vidéo - **Format**: MP4, MOV ou autres formats vidéo courants - **Taille**: Maximum 500 Mo - **Durée**: 3-90 secondes - **Orientation**: Verticale (9:16) ## Exemple de démarrage rapide ```bash # 1. Obtenez vos plateformes connectées curl -X GET https://app.taisly.com/api/private/platform/platforms \ -H "Authorization: Bearer taisly_your_api_key_here" # 2. Téléchargez une vidéo curl -X POST https://app.taisly.com/api/private/post \ -H "Authorization: Bearer taisly_your_api_key_here" \ -F "video=@/path/to/video.mp4" \ -F "platforms=[\"platform_id_1\"]" \ -F "description=Découvrez ma nouvelle vidéo!" # 3. Vérifiez l'historique des publications curl -X GET https://app.taisly.com/api/private/post/history \ -H "Authorization: Bearer taisly_your_api_key_here" ``` ## Exemple Python ```python import requests API_KEY = 'taisly_your_api_key_here' BASE_URL = 'https://app.taisly.com/api/private' headers = { 'Authorization': f'Bearer {API_KEY}' } # Obtenir les plateformes response = requests.get(f'{BASE_URL}/platform/platforms', headers=headers) platforms = response.json()['data'] print(f"Plateformes connectées: {len(platforms)}") # Télécharger une vidéo files = {'video': open('video.mp4', 'rb')} data = { 'platforms': str([platforms[0]['_id']]), 'description': 'Description de ma vidéo' } response = requests.post(f'{BASE_URL}/post', headers=headers, files=files, data=data) print(response.json()) ``` ## Servers - **URL:** `https://app.taisly.com/api/private` - **Description:** Serveur de production ## Operations ### Obtenir les informations de la clé API - **Method:** `GET` - **Path:** `/user/api-key` - **Tags:** API Key Management Récupérer les informations concernant votre clé API actuelle. #### Responses ##### Status: 200 ###### Content-Type: application/json ##### Status: 403 ###### Content-Type: application/json ##### Status: 500 ###### Content-Type: application/json ### Générer une clé API - **Method:** `POST` - **Path:** `/user/api-key/generate` - **Tags:** API Key Management Générer une nouvelle clé API ou la régénérer si une existe déjà. **IMPORTANT**: - La clé API complète n'est affichée qu'une seule fois. Conservez-la en lieu sûr. - Si vous la régénérez, l'ancienne clé sera immédiatement invalidée. #### Responses ##### Status: 200 ###### Content-Type: application/json ##### Status: 500 ###### Content-Type: application/json ### Révoquer la clé API - **Method:** `POST` - **Path:** `/user/api-key/revoke` - **Tags:** API Key Management Révoquer immédiatement votre clé API actuelle. Toutes les requêtes utilisant cette clé échoueront. #### Responses ##### Status: 200 ###### Content-Type: application/json ##### Status: 403 ###### Content-Type: application/json ##### Status: 500 ###### Content-Type: application/json ### Obtenir les plateformes connectées - **Method:** `GET` - **Path:** `/platform/platforms` - **Tags:** Platforms Récupérer tous les comptes de médias sociaux connectés à votre compte. #### Responses ##### Status: 200 ###### Content-Type: application/json ##### Status: 401 ###### Content-Type: application/json ##### Status: 403 ###### Content-Type: application/json ##### Status: 500 ###### Content-Type: application/json ### Créer une publication - **Method:** `POST` - **Path:** `/post` - **Tags:** Posts Télécharger une vidéo sur une ou plusieurs plateformes connectées. **Exigences vidéo:** - Format: MP4, MOV ou autres formats vidéo courants - Taille: Maximum 500 Mo - Durée: 3-90 secondes - Orientation: Verticale (9:16) **Planification:** - Passez `scheduled` comme horodatage Unix en millisecondes pour une publication planifiée (omittez ce paramètre si vous ne souhaitez pas planifier) #### Request Body ##### Content-Type: multipart/form-data - **`platforms` (required)** `array` — Liste des IDs **Items:** `string` - **`video` (required)** `string`, format: `binary` — - **`description`** `string` - **`previewTime`** `number` — Horodatage en secondes pour l'aperçu vidéo (par défaut: 0) - **`scheduled`** `string` **Example:** ```json { "video": {}, "platforms": [ "" ], "description": "", "previewTime": 1, "scheduled": "" } ``` #### Responses ##### Status: 200 ###### Content-Type: application/json ##### Status: 401 ###### Content-Type: application/json ##### Status: 403 ###### Content-Type: application/json ##### Status: 500 ###### Content-Type: application/json ### Obtenir l'historique des publications - **Method:** `GET` - **Path:** `/post/history` - **Tags:** Posts Récupérer votre historique de publications avec les informations de statut pour chaque plateforme. **Pagination:** - Utilisez le paramètre `page` pour la pagination (10 éléments par page) - Ou utilisez `startTime` et `endTime` pour le filtrage par plage de dates (renvoie toutes les publications correspondantes) **Valeurs de statut:** - PENDING: Publication en attente - SUCCESS: Publiée avec succès - FAILED: Publication échouée (consultez le champ message pour le code d'erreur) #### Responses ##### Status: 200 ###### Content-Type: application/json ##### Status: 401 ###### Content-Type: application/json ##### Status: 500 ###### Content-Type: application/json ### Annuler une publication planifiée - **Method:** `GET` - **Path:** `/post/cancelSchedule` - **Tags:** Posts Annuler une publication planifiée pour plus tard. La publication sera définitivement supprimée. #### Responses ##### Status: 200 ###### Content-Type: application/json ##### Status: 401 ###### Content-Type: application/json ##### Status: 500 ###### Content-Type: application/json ### Obtenir les configurations de republication - **Method:** `GET` - **Path:** `/reposts` - **Tags:** Reposts Récupérer toutes les règles de republication automatique configurées. Lorsque vous publiez sur une plateforme 'from', le contenu sera automatiquement republicé vers toutes les plateformes 'to'. #### Responses ##### Status: 200 ###### Content-Type: application/json ##### Status: 401 ###### Content-Type: application/json ##### Status: 500 ###### Content-Type: application/json ### Ajouter une configuration de republication - **Method:** `POST` - **Path:** `/repost/add` - **Tags:** Reposts Configurer la republication automatique d'une plateforme vers d'autres. **Comment ça fonctionne:** - Lorsque vous publiez du contenu sur la plateforme 'from', il sera automatiquement republicé vers toutes les plateformes 'to' **Note**: Les dépendances circulaires sont empêchées. Vous ne pouvez pas créer A→B si B→A existe déjà. #### Request Body ##### Content-Type: application/json - **`from` (required)** `string` — ID de plateforme - **`to` (required)** `array` — Liste des IDs de plateformes **Items:** `string` **Example:** ```json { "from": "", "to": [ "" ] } ``` #### Responses ##### Status: 200 ###### Content-Type: application/json ##### Status: 400 ###### Content-Type: application/json ##### Status: 401 ###### Content-Type: application/json ##### Status: 500 ###### Content-Type: application/json ### Supprimer la configuration de republication - **Method:** `POST` - **Path:** `/repost/delete` - **Tags:** Reposts Supprimer une règle de republication automatique. Les futures publications vers la plateforme source ne seront plus automatiquement republicées. #### Request Body ##### Content-Type: application/json - **`id` (required)** `string` **Example:** ```json { "id": "" } ``` #### Responses ##### Status: 200 ###### Content-Type: application/json ##### Status: 401 ###### Content-Type: application/json ##### Status: 500 ###### Content-Type: application/json ### Pause/Reprendre la configuration de republication - **Method:** `POST` - **Path:** `/repost/pause` - **Tags:** Reposts Mettre en pause ou reprendre temporairement la republication automatique. Utile lorsque vous souhaitez arrêter temporairement la republication sans supprimer la configuration. #### Request Body ##### Content-Type: application/json - **`id` (required)** `string` - **`isPaused` (required)** `boolean` **Example:** ```json { "id": "", "isPaused": true } ``` #### Responses ##### Status: 200 ###### Content-Type: application/json ##### Status: 401 ###### Content-Type: application/json ##### Status: 500 ###### Content-Type: application/json