Documentación API
Integra NodeCoreX con APIs locales (puerto 5200) y APIs remotas. Las solicitudes remotas requieren firma SHA-256 de cuenta, contraseña, código de máquina y marca de tiempo.
API local del dispositivo
URL base: http://localhost:5200
http://localhost:5200/nodes/count Obtener el recuento de nodos
Obtenga la cantidad total de nodos publicitarios que se ejecutan en el dispositivo actual.
{
"success": true,
"count": 4
} {
"success": false,
"message": "Service unavailable"
} http://localhost:5200/nodes/list Obtener lista de índice de nodos
Obtenga la lista de todos los índices de nodos para operaciones posteriores por índice.
{
"success": true,
"nodeIndexes": [
0,
1,
2,
3
]
} {
"success": false,
"message": "Failed to list nodes"
} http://localhost:5200/nodes/status Obtener el estado del nodo
Obtenga el estado de ejecución de cada nodo (en ejecución, detenido, error, 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 Iniciar un nodo
Inicie el nodo de reproducción de anuncios para el índice de nodo determinado.
-
nodeIndex(path) — Índice de nodo (basado en 0)
{
"success": true,
"message": "Node started",
"index": 0
} {
"success": false,
"message": "Invalid node index or already running"
} http://localhost:5200/nodes/{nodeIndex}/stop Detener un nodo
Detenga el nodo de reproducción de anuncios para el índice de nodo determinado.
-
nodeIndex(path) — Índice de nodo (basado en 0)
{
"success": true,
"message": "Node stopped",
"index": 0
} {
"success": false,
"message": "Invalid node index or already stopped"
} http://localhost:5200/nodes/{nodeIndex}/proxy Establecer proxy para un nodo
Configure la conexión proxy (host, puerto, autenticación, etc.) para el índice de nodo determinado.
-
nodeIndex(path) — índice de nodo -
ip(body) — Punto final de proxy -
port(body) — Puerto proxy -
username(body) — Nombre de usuario proxy (opcional) -
password(body) — Contraseña de proxy (opcional)
{
"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 Obtener información del dispositivo
Obtenga información básica del dispositivo, como código de máquina, modelo y versión.
{
"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 Comprobación del estado del dispositivo
Compruebe si el servicio local se está ejecutando; se puede utilizar para informes de latidos del corazón.
{
"success": true,
"healthy": true,
"uptime": 3600,
"nodesActive": 4
} {
"success": false,
"healthy": false,
"message": "Service unhealthy"
} API remota del servidor
URL base: el host de la API de tu plataforma (consulta la consola de la app para endpoints específicos del entorno).
/api/device/ads Obtener lista de tareas publicitarias
Obtenga sitios de origen de anuncios, tipos de anuncios, ID de anuncios, URL de reproducción y contenido relacionado.
-
sign(query) requerido — Firma; consulte el algoritmo de signos a continuación -
machineCode(query) requerido — Código de dispositivo de hardware -
timestamp(query) requerido — Solicitar marca de tiempo (segundos)
{
"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 Obtenga ganancias por nodo o dispositivo
Obtenga detalles de ganancias o resumen por código de dispositivo e índice de nodo opcional.
-
sign(query) requerido — Firma -
machineCode(query) requerido — Código del dispositivo -
timestamp(query) requerido — Marca de tiempo -
nodeIndex(query) — Índice de nodo; omitir para obtener ganancias en todo el dispositivo -
startDate(query) — Fecha de inicio AAAA-MM-DD -
endDate(query) — Fecha de finalización AAAA-MM-DD
{
"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 Latido del dispositivo
Informe periódicamente el estado en línea del dispositivo y el estado de ejecución del nodo.
-
sign(query) requerido — Firma -
machineCode(query) requerido — Código del dispositivo -
timestamp(query) requerido — Marca de tiempo
{
"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 Obtener configuración del dispositivo
Obtenga la configuración de ejecución para el dispositivo (por ejemplo, intervalo de tarea, límites de región).
-
sign(query) requerido — Firma -
machineCode(query) requerido — Código del dispositivo -
timestamp(query) requerido — Marca de tiempo
{
"success": true,
"data": {
"taskInterval": 30,
"allowedRegions": [
"US",
"GB",
"DE"
],
"maxConcurrentAds": 4,
"reportInterval": 60
}
} {
"success": false,
"message": "Invalid sign or node",
"code": "AUTH_FAILED"
} Algoritmo de signos
Las solicitudes a la API remota requieren parámetros de consulta sign, machineCode, y timestamp.
sign = SHA256(account + password + machineCode + timestamp)