Documentation API
Intégrez NodeCoreX avec les API locales (port 5200) et distantes. Les requêtes distantes exigent une signature SHA-256 construite à partir du compte, mot de passe, code machine et horodatage.
API locale de l’appareil
URL de base : http://localhost:5200
http://localhost:5200/nodes/count Obtenir le nombre de nœuds
Obtenez le nombre total de nœuds publicitaires exécutés sur l'appareil actuel.
{
"success": true,
"count": 4
} {
"success": false,
"message": "Service unavailable"
} http://localhost:5200/nodes/list Obtenir la liste d'index des nœuds
Obtenez la liste de tous les index de nœuds pour les opérations ultérieures par index.
{
"success": true,
"nodeIndexes": [
0,
1,
2,
3
]
} {
"success": false,
"message": "Failed to list nodes"
} http://localhost:5200/nodes/status Obtenir l'état du nœud
Obtenez l'état d'exécution de chaque nœud (en cours d'exécution, arrêté, erreur, etc.).
{
"success": true,
"statuses": [
{
"index": 0,
"status": "running",
"uptime": 3600
},
{
"index": 1,
"status": "stopped",
"uptime": 0
},
{
"index": 2,
"status": "error",
"message": "Proxy timeout"
}
]
} {
"success": false,
"message": "Unable to read node status"
} http://localhost:5200/nodes/{nodeIndex}/start Démarrer un nœud
Démarrez le nœud de lecture de l'annonce pour l'index de nœud donné.
-
nodeIndex(path) — Index de nœud (basé sur 0)
{
"success": true,
"message": "Node started",
"index": 0
} {
"success": false,
"message": "Invalid node index or already running"
} http://localhost:5200/nodes/{nodeIndex}/stop Arrêter un nœud
Arrêtez le nœud de lecture de l'annonce pour l'index de nœud donné.
-
nodeIndex(path) — Index de nœud (basé sur 0)
{
"success": true,
"message": "Node stopped",
"index": 0
} {
"success": false,
"message": "Invalid node index or already stopped"
} http://localhost:5200/nodes/{nodeIndex}/proxy Définir un proxy pour un nœud
Configurez la connexion proxy (hôte, port, authentification, etc.) pour l'index de nœud donné.
-
nodeIndex(path) — Indice de nœud -
ip(body) — Point de terminaison du proxy -
port(body) — Port proxy -
username(body) — Nom d'utilisateur proxy (facultatif) -
password(body) — Mot de passe proxy (facultatif)
{
"ip": "127.0.0.1",
"port": 7890,
"username": null,
"password": null
} {
"success": true,
"message": "Proxy updated",
"index": 0
} {
"success": false,
"message": "Invalid proxy or connection failed"
} http://localhost:5200/device/info Obtenir des informations sur l'appareil
Obtenez des informations de base sur l'appareil telles que le code machine, le modèle et la version.
{
"success": true,
"machineCode": "PM-XXXX-YYYY",
"model": "Standard",
"version": "1.0.0",
"firmware": "1.2.3"
} {
"success": false,
"message": "Node info unavailable"
} http://localhost:5200/device/health Bilan de santé de l'appareil
Vérifiez si le service local est en cours d'exécution ; peut être utilisé pour le rapport sur les battements de cœur.
{
"success": true,
"healthy": true,
"uptime": 3600,
"nodesActive": 4
} {
"success": false,
"healthy": false,
"message": "Service unhealthy"
} API serveur distante
URL de base : l'hôte API de votre plateforme (voir la console de l'app pour les points de terminaison par environnement).
/api/device/ads Obtenir la liste des tâches publicitaires
Obtenez des sites sources d'annonces, des types d'annonces, des identifiants d'annonces, des URL de lecture et du contenu associé.
-
sign(query) requis — Signature ; voir l'algorithme de signe ci-dessous -
machineCode(query) requis — Code du périphérique matériel -
timestamp(query) requis — Horodatage de la demande (secondes)
{
"success": true,
"data": {
"ads": [
{
"id": "ad-001",
"adType": "Video",
"source": "example.com",
"sourceUrl": "https://example.com/campaign/1",
"playUrl": "https://cdn.example.com/ad-001",
"duration": 30,
"rewardPerView": 0.001
}
]
}
} {
"success": false,
"message": "Invalid sign or expired timestamp",
"code": "AUTH_FAILED"
} /api/device/earnings Obtenez des revenus par nœud ou par appareil
Obtenez des détails sur les revenus ou un résumé par code d'appareil et index de nœud facultatif.
-
sign(query) requis — Signature de requête -
machineCode(query) requis — Code de l'appareil -
timestamp(query) requis — Horodatage -
nodeIndex(query) — Indice de nœud ; omettre pour les revenus à l'échelle de l'appareil -
startDate(query) — Date de début AAAA-MM-JJ -
endDate(query) — Date de fin AAAA-MM-JJ
{
"success": true,
"data": {
"totalPoints": 1200,
"currency": "points",
"details": [
{
"date": "2025-03-01",
"nodeIndex": 0,
"points": 300,
"adCount": 120
},
{
"date": "2025-03-01",
"nodeIndex": 1,
"points": 280,
"adCount": 115
}
]
}
} {
"success": false,
"message": "Node not found or access denied",
"code": "FORBIDDEN"
} /api/device/heartbeat Battement de coeur de l'appareil
Signalez périodiquement l’état en ligne de l’appareil et l’état d’exécution du nœud.
-
sign(query) requis — Signature de requête -
machineCode(query) requis — Code de l'appareil -
timestamp(query) requis — Horodatage
{
"nodeStatuses": [
{
"index": 0,
"status": "running",
"uptime": 3600
},
{
"index": 1,
"status": "running",
"uptime": 3600
},
{
"index": 2,
"status": "stopped",
"uptime": 0
}
],
"deviceHealthy": true
} {
"success": true,
"message": "Heartbeat received",
"nextReportIn": 60
} {
"success": false,
"message": "Invalid sign or machineCode",
"code": "AUTH_FAILED"
} /api/device/config Obtenir la configuration de l'appareil
Obtenez la configuration d'exécution pour l'appareil (par exemple, intervalle de tâche, limites de région).
-
sign(query) requis — Signature de requête -
machineCode(query) requis — Code de l'appareil -
timestamp(query) requis — Horodatage
{
"success": true,
"data": {
"taskInterval": 30,
"allowedRegions": [
"US",
"GB",
"DE"
],
"maxConcurrentAds": 4,
"reportInterval": 60
}
} {
"success": false,
"message": "Invalid sign or node",
"code": "AUTH_FAILED"
} Algorithme de signe
Les requêtes API distantes nécessitent des paramètres de requête sign, machineCode, et timestamp.
sign = SHA256(account + password + machineCode + timestamp)