Documentation API

Version 1.0
REST API
Authentification requise

Authentification

L'API DeepVidFlow utilise des clés API pour sécuriser l'accès aux endpoints. Chaque requête doit inclure votre clé API personnelle dans l'en-tête HTTP. Cette clé permet d'identifier votre compte, de suivre votre utilisation et de gérer vos crédits.

Obtention de votre clé API

Pour obtenir votre clé API, vous devez avoir un compte DeepVidFlow. Le processus est simple et rapide :

  1. Depuis votre espace personnel, vous pourrez gérer toutes vos clés API

  2. Connectez-vous ou créez un compte

    Un compte gratuit vous permet de tester l'API avec des crédits de bienvenue

  3. Dans la section "API Keys", cliquez sur "Générer une nouvelle clé"

    Vous pouvez générer plusieurs clés pour différents projets ou environnements (développement, production)

  4. Copiez et sécurisez votre clé API

    La clé ne sera affichée qu'une seule fois. Conservez-la dans un endroit sûr

Utilisation de la clé API

Pour authentifier vos requêtes, incluez votre clé API dans l'en-tête HTTP "X-API-Key". Exemple d'en-tête :

X-API-Key: votre_clé_api_ici
  • Ne partagez jamais votre clé API publiquement
  • Chaque clé est liée à votre compte et à vos crédits
  • Vous pouvez révoquer une clé à tout moment depuis votre tableau de bord
  • Les requêtes sans clé API valide seront rejetées avec une erreur 401

Bonnes pratiques de sécurité

  • Utilisez des variables d'environnement pour stocker vos clés API
  • Créez des clés différentes pour le développement et la production
  • Surveillez régulièrement l'utilisation de vos clés dans le tableau de bord
  • Renouvelez vos clés périodiquement pour plus de sécurité
  • Limitez les permissions de chaque clé selon vos besoins

Codes d'erreur

401Clé API invalide ou manquante
402Crédits insuffisants pour cette opération
403Accès non autorisé pour cette ressource
429Trop de requêtes - Limite de taux atteinte

Exemples de Code

Traitement Vidéo (URL)

Exemple

# Create a task
curl -X POST "https://api.deepvidflow.xyz/v1/tasks" \
  -H "X-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "video_url": "https://www.tiktok.com/@username/video/1234567890",
    "mode": "splitflow",
    "voice_id": "fr_fr_remymultilingualneural"
  }'

Traitement Vidéo

Endpoints pour le traitement et la manipulation de vidéos

Créer une tâche vidéo

POST
/v1/tasks

Crée une nouvelle tâche de traitement vidéo

Paramètres de requête

{
  "video_url": "URL de la vidéo à traiter",
  "mode": "Mode de traitement (splitflow, smartflow, cropflow, glitchflow)",
  "voice_id": "ID de la voix à utiliser"
}

Réponse

{
  "task_id": "ID unique de la tâche",
  "status": "État de la tâche",
  "worker_id": "ID du worker assigné"
}

Traitement Texte

Endpoints pour le traitement de texte et la génération de contenu

Upload de texte

POST
/v1/tasks/upload-text

Crée une tâche à partir d'un fichier texte

Paramètres de requête

{
  "file": "Fichier texte (multipart/form-data)",
  "mode": "Mode de traitement",
  "voice_id": "ID de la voix"
}

Gestion des Tâches

Endpoints pour gérer et suivre les tâches

Statut de la tâche

GET
/v1/tasks/{task_id}

Obtient le statut d'une tâche

Annuler une tâche

POST
/v1/tasks/{task_id}/cancel

Annule une tâche en cours

Relancer une tâche

POST
/v1/tasks/{task_id}/retry

Relance une tâche échouée

Génération de Voix

Endpoints pour la génération et la manipulation de voix

Générer une voix

POST
/v1/tasks/{task_id}/generate_voice

Génère la voix pour une tâche

Gestion des Workers

Endpoints pour gérer les workers de traitement

Supprimer un worker

DELETE
/v1/workers/{worker_id}

Supprime un worker et ses fichiers associés

Gestion des Crédits

Endpoints pour gérer les crédits utilisateur

Vérifier les crédits

GET
/v1/credits

Obtient le solde de crédits actuel

Upload de Vidéo

Endpoints pour l'upload direct de fichiers vidéo

Upload de vidéo

POST
/v1/tasks/upload-video

Upload direct d'un fichier vidéo

Paramètres de requête

{
  "file": "Fichier vidéo (multipart/form-data)",
  "mode": "Mode de traitement (splitflow, smartflow, cropflow, glitchflow)",
  "voice_id": "ID de la voix à utiliser (optionnel)"
}

Réponse

{
  "task_id": "ID unique de la tâche",
  "status": "État initial de la tâche",
  "upload_url": "URL pour l'upload du fichier"
}

Webhooks

Endpoints pour la gestion des notifications webhook

Configurer un webhook

POST
/v1/webhooks

Configure une URL de callback pour les notifications

Paramètres de requête

{
  "url": "URL de callback",
  "events": "Liste des événements à notifier (task.completed, task.failed, etc.)",
  "secret": "Clé secrète pour la signature des webhooks"
}

Lister les webhooks

GET
/v1/webhooks

Récupère la liste des webhooks configurés

Supprimer un webhook

DELETE
/v1/webhooks/{webhook_id}

Supprime un webhook existant

Modèles

Endpoints pour la gestion des modèles d'IA

Lister les modèles

GET
/v1/models

Récupère la liste des modèles disponibles

Réponse

{
  "models": "Liste des modèles avec leurs caractéristiques",
  "total": "Nombre total de modèles"
}

Détails d'un modèle

GET
/v1/models/{model_id}

Récupère les détails d'un modèle spécifique

Réponse

{
  "id": "Identifiant du modèle",
  "name": "Nom du modèle",
  "description": "Description détaillée",
  "capabilities": "Liste des capacités",
  "parameters": "Paramètres acceptés"
}