Aperçu de l'API Locale
TikMatrix fournit une API RESTful locale qui vous permet de gérer les tâches par programmation. Cela est particulièrement utile pour intégrer TikMatrix dans vos propres systèmes d'automatisation, créer des flux de travail personnalisés ou effectuer des opérations en masse.
Exigences
L'API locale est disponible uniquement pour les utilisateurs des forfaits Pro, Team et Business. Le forfait Starter ne fournit pas d'accès à l'API.
URL de Base
L'API fonctionne localement à l'adresse :
http://localhost:50809/api/v1/
Le port 50809 est le port par défaut. Veuillez vous assurer que TikMatrix est en cours d'exécution avant d'envoyer des requêtes.
Format de Réponse
Toutes les réponses de l'API suivent le format suivant :
{
"code": 0,
"message": "success",
"data": { ... }
}
Description des Codes de Réponse
| Code | Description |
|---|---|
| 0 | Succès |
| 40001 | Requête incorrecte - Paramètres invalides, y compris une script_config qui échoue à la validation |
| 40002 | Erreur de paramètre - script_name manquant |
| 40003 | Requête incorrecte - Script non pris en charge par cette build ou cette plateforme, sans implémentation, ou état de tâche invalide |
| 40004 | Erreur de paramètre - Seules les tâches en cours d'exécution peuvent être arrêtées |
| 40005 | Erreur de paramètre - task_ids ne peut pas être vide |
| 40301 | Interdit - L'accès à l'API nécessite un forfait Pro+ |
| 40401 | Non trouvé - La ressource n'existe pas |
| 50001 | Erreur interne du serveur |
Démarrage Rapide
1. Vérifier l'Accès à l'API
Tout d'abord, confirmez que votre licence prend en charge l'API :
curl http://localhost:50809/api/v1/license/check
Exemple de réponse :
{
"code": 0,
"message": "success",
"data": {
"plan_name": "Pro",
"api_enabled": true,
"device_limit": 20,
"message": "API access enabled"
}
}
2. Découvrir les scripts et leurs paramètres
GET /api/v1/schema décrit chaque script que cette build peut exécuter ainsi que les champs script_config exacts qu’il accepte : noms, types, valeurs par défaut, valeurs autorisées et champs obligatoires. Il est généré à partir du même catalogue que celui utilisé pour la validation côté serveur, il ne peut donc pas diverger de ce que la création de tâche accepte.
curl http://localhost:50809/api/v1/schema
Deux paramètres de requête facultatifs :
| Paramètre | Effet |
|---|---|
platform | Restreint la liste à tiktok ou instagram. Une plateforme absente de cette build est rejetée avec 40001. Par défaut, toutes celles de la build. |
include_unavailable | À true, liste aussi les noms de script que l’API accepte mais qui n’ont aucune implémentation. Chacun porte un unavailable_reason. |
Réponse (abrégée) :
{
"code": 0,
"message": "success",
"data": {
"build": { "platforms": ["tiktok"] },
"scripts": [
{
"name": "follow",
"internal_name": "follow",
"summary": "Follow the given users. One task per target.",
"platforms": ["tiktok", "instagram"],
"available": true,
"fan_out": { "kind": "per_item", "key": "target_users", "alt_key": "target_user" },
"any_of": [["target_users", "target_user"]],
"fields": [
{
"key": "access_method",
"type": "string",
"required": false,
"default": "direct",
"choices": ["direct", "search"],
"description": "How to reach the profile: direct (via URL) or search."
}
]
}
]
}
}
fan_out indique combien de tâches une requête produira : per_device crée une tâche par appareil (ou par compte en mode multi-compte), per_item en crée une par entrée du champ nommé, par appareil.
3. Créer une Tâche
curl -X POST http://localhost:50809/api/v1/task \
-H "Content-Type: application/json" \
-d '{
"serials": ["device_serial_1", "device_serial_2"],
"script_name": "post",
"script_config": {
"content_type": 1,
"captions": "Regardez ma nouvelle vidéo ! #tendance"
},
"enable_multi_account": false
}'
4. Interroger la Liste des Tâches
curl http://localhost:50809/api/v1/task?status=0&page=1&page_size=20
Scripts Disponibles
Le paramètre script_name accepte les valeurs suivantes :
| Nom du Script | Description | Support API |
|---|---|---|
post | Publier du contenu | ✅ Pris en charge |
follow | Suivre des utilisateurs | ✅ Pris en charge |
unfollow | Se désabonner | ✅ Pris en charge |
account_warmup | Préchauffage de compte | ✅ Pris en charge |
comment | Publier un commentaire sur des posts | ✅ Pris en charge |
boost_comment | Aimer/répondre aux commentaires existants | ✅ Pris en charge |
login | Se connecter au compte | ✅ Pris en charge |
profile | Mettre à jour le profil | ✅ Pris en charge |
match_account | Associer les comptes sur l'appareil | ✅ Pris en charge |
like | Aimer des posts | ✅ Pris en charge |
view | Regarder une publication pendant une durée | ✅ Pris en charge |
favorite | Enregistrer une publication dans les Favoris | ✅ Pris en charge |
repost | Repartager des vidéos TikTok | ✅ Pris en charge — TikTok uniquement |
message | Message privé | ❌ Indisponible § |
follow_suggested | Suivre les comptes suggérés | ✅ Pris en charge — TikTok uniquement |
super_marketing | Campagne de super marketing | ✅ Pris en charge † |
scrape_user | Extraire les données utilisateur | 🔜 Prochainement |
La campagne de super marketing n'est pas créée via POST /api/v1/task. Elle fonctionne sur un dataset réutilisable de cibles et dispose de ses propres endpoints — voir la Configuration du Script Super Marketing.
message n’a pas d’implémentationmessage était accepté par la création de tâche, mais le binaire de scripts n’a de gestionnaire pour lui sur aucune des deux plateformes : chaque tâche de ce type échouait sur l’appareil avec « Unknown script ». Elle est désormais rejetée dès la création, avec ce motif. Pour envoyer des messages privés aujourd’hui, utilisez super_marketing, qui pilote les DM via un jeu de cibles.
repost et follow_suggested ne sont implémentés que pour TikTok. Une création visant Instagram est rejetée au lieu d’être mise en file — auparavant la tâche était créée puis échouait sur l’appareil.
Validation de script_config
La création de tâche valide script_config contre le schéma ci-dessus avant d’écrire quoi que ce soit : un mauvais paramètre revient donc en 400 en nommant le champ, plutôt qu’en tâche qui échoue plus tard sur le téléphone. Trois choses sont rejetées :
- un champ obligatoire manquant ou vide,
- un groupe alternatif dont aucun membre n’est renseigné (par exemple
followexigetarget_usersoutarget_user), - une valeur hors des
choicesdocumentés d’un champ.
Les clés absentes du schéma sont ignorées, pas rejetées : l’application de bureau fait passer ses propres clés par le même objet, et rejeter les clés inconnues casserait les intégrations existantes. Elles sont journalisées côté serveur pour vous permettre de repérer une faute de frappe dans le log.
Les nombres peuvent être envoyés sous forme de chaînes ("20" comme 20), conformément à ce que les scripts acceptent déjà.
États des Tâches
| Code d'État | Texte d'État | Description |
|---|---|---|
| 0 | pending | La tâche est en attente d'exécution |
| 1 | running | La tâche est en cours d'exécution |
| 2 | completed | La tâche a été exécutée avec succès |
| 3 | failed | L'exécution de la tâche a échoué |
Suite
- API de Gestion des Tâches - Créer, interroger et gérer les tâches
- API du Journal d'Activité - Suivre et gérer les journaux d'activité
- Configuration du Script de Publication - Configurer les paramètres du script de publication
- Configuration du Script de Suivi - Configurer les paramètres du script de suivi
- Configuration du Script Suivre les Suggérés - Configurer les paramètres du script de suivi des suggérés
- Configuration du Script de Désabonnement - Configurer les paramètres du script de désabonnement
- Configuration du Script de Préchauffage de Compte - Configurer les paramètres du script de préchauffage de compte
- Configuration du Script de Commentaire - Publier un nouveau commentaire sur des posts
- Configuration du Script Boost Commentaire - Aimer/répondre aux commentaires existants
- Configuration du Script Like - Configurer les paramètres du script de like
- Configuration du Script View - Regarder des posts pendant une durée configurable
- Configuration du Script Favorite - Enregistrer des posts dans les Favoris
- Configuration du Script Message - Configurer les paramètres du script de message
- Configuration du Script de Connexion - Configurer les paramètres du script de connexion
- Configuration du Script de Profil - Configurer les paramètres du script de profil
- Configuration du Script de Correspondance de Compte - Configurer les paramètres du script de correspondance de compte
- Configuration du Script Super Marketing - Importer des datasets et lancer des campagnes de super marketing
- Exemples d'API - Exemples de code dans différents langages
- API de Scan TCP - Scanner et connecter des appareils Android via TCP/IP
- API d'état des comptes - Interroger l'état des comptes, la connectivité des appareils et l'état de connexion