spirkzIntégrations
Publie sur spirkz depuis n'importe quel planificateur
L'API d'intégrations permet aux planificateurs tiers — Zapier, Metricool, Buffer et consorts — de soumettre des vidéos à spirkz au nom d'un créateur. Une vidéo envoyée ici suit les mêmes règles et la même file de revue qu'une vidéo importée dans l'appli.
- URL de base
- https://server.spirkz.com/api/v1/integrations
Comment ça marche
- 1
Le créateur crée une clé API dans l'appli spirkz et la colle dans le planificateur.
- 2
Le planificateur appelle
POST /videosavec unvideoUrlpublic et les détails. spirkz répond 202 immédiatement. - 3
spirkz télécharge le fichier en arrière-plan, le stocke et crée une soumission en attente pour le créateur.
- 4
L'équipe spirkz l'examine. Si elle est approuvée et que
scheduledAtest encore à venir, elle est mise en ligne à cette heure ; sinon, elle est mise en ligne immédiatement. - 5
Le planificateur interroge
GET /videos/:idpour suivre l'avancement.
Authentification
Envoie la clé du créateur à chaque requête. Une clé manquante, inconnue ou révoquée renvoie 401. Les clés agissent au nom du créateur qui les a émises.
Authorization: Bearer spk_...Limites de débit, par clé
600
requêtes par heure, au total
30
appels POST /videos par heure
Endpoints
Test de connexion. Appelle-le juste après que le créateur a collé sa clé.
{ "user": { "id", "name", "username" }, "keyName" }Données pour tes sélecteurs : categoryIds valides (catégories actives ; ?locale= pour les noms) et valeurs de languageSlug.
Soumettre une vidéo. Le corps est du JSON :
| Champ | Règles | |
|---|---|---|
| videoUrl | Obligatoire | https, accessible publiquement, ≤ 2000 car. mp4 / mov / webm / avi, ≤ 500 Mo. Les adresses privées ou internes sont refusées. |
| source | Obligatoire | Qui envoie, p. ex. "zapier", "metricool". ≤ 50 car., stocké en minuscules. |
| name | Obligatoire | ≤ 150 car. |
| categoryIds | Obligatoire | 1 à 5 ids issus de GET /categories. |
| description | Facultatif | ≤ 500 car. |
| languageSlug | Facultatif | Issu de GET /languages. Par défaut en. |
| tag | Facultatif | Tableau de chaînes, jusqu'à 10 tags, chacun ≤ 40 car. |
| duration | Facultatif | Secondes, entier non négatif. |
| scheduledAt | Facultatif | ISO 8601. Au moins 10 minutes et au plus 60 jours à l'avance. Omis ou null = en ligne dès l'approbation. |
- 202 —
data.videoavecstatus: "received". - 400 / 404 — un champ est invalide. Rien n'est stocké.
- 409 — le créateur a déjà 10 vidéos en attente de soumission ou de revue (y compris celles en cours de téléchargement).
Les vidéos d'intégration du créateur, de la plus récente à la plus ancienne (?limit, ?offset), ou une seule par id.
{
"id": "...",
"source": "zapier",
"video_url": "https://...",
"status": "submitted",
"error": null,
"created_at": "...",
"updated_at": "...",
"userVideo": {
"id": "...",
"name": "...",
"status": "pending",
"scheduled_at": "2026-10-10T09:00:00.000Z",
"decline_reason": null,
"publishedVideoId": null
}
}Suivre une vidéo
Téléchargement — status
En cas de failed, la raison se trouve dans error.
Revue — userVideo.status
publishedVideoId est renseigné une fois la vidéo en ligne. Une vidéo refusée porte un decline_reason.
Exemple
curl -X POST https://server.spirkz.com/api/v1/integrations/videos \
-H "Authorization: Bearer spk_..." \
-H "Content-Type: application/json" \
-d '{
"videoUrl": "https://example.com/clip.mp4",
"source": "zapier",
"name": "Morning routine",
"categoryIds": ["<category id>"],
"description": "Day 1",
"scheduledAt": "2026-10-10T09:00:00Z"
}'Prise en charge native
N'importe quel planificateur peut s'intégrer aux endpoints ci-dessus. Ces outils prennent déjà spirkz en charge d'office :
Tu construis une intégration ?
Dis-nous ce que tu fabriques et on t'aidera à la livrer.
Écris-nous