APIドキュメント
NodeCoreX をローカルデバイス API(ポート 5200)とリモートサーバー API で統合。リモートリクエストにはアカウント、パスワード、マシンコード、タイムスタンプから構築した SHA-256 署名が必要です。
ローカルデバイス API
ベース URL: http://localhost:5200
GET
http://localhost:5200/nodes/count ノード数の取得
現在のデバイスで実行されている広告ノードの総数を取得します。
成功 (HTTP 200):
{
"success": true,
"count": 4
} エラー (200 以外):
{
"success": false,
"message": "Service unavailable"
} GET
http://localhost:5200/nodes/list ノードインデックスリストの取得
インデックスによる後続の操作のためのすべてのノード インデックスのリストを取得します。
成功 (HTTP 200):
{
"success": true,
"nodeIndexes": [
0,
1,
2,
3
]
} エラー (200 以外):
{
"success": false,
"message": "Failed to list nodes"
} GET
http://localhost:5200/nodes/status ノードのステータスを取得する
各ノードの実行ステータス (実行中、停止中、エラーなど) を取得します。
成功 (HTTP 200):
{
"success": true,
"statuses": [
{
"index": 0,
"status": "running",
"uptime": 3600
},
{
"index": 1,
"status": "stopped",
"uptime": 0
},
{
"index": 2,
"status": "error",
"message": "Proxy timeout"
}
]
} エラー (200 以外):
{
"success": false,
"message": "Unable to read node status"
} POST
http://localhost:5200/nodes/{nodeIndex}/start ノードを開始する
指定されたノード インデックスの広告再生ノードを開始します。
パラメータ:
-
nodeIndex(path) — ノードインデックス (0 ベース)
成功 (HTTP 200):
{
"success": true,
"message": "Node started",
"index": 0
} エラー (200 以外):
{
"success": false,
"message": "Invalid node index or already running"
} POST
http://localhost:5200/nodes/{nodeIndex}/stop ノードを停止する
指定されたノード インデックスの広告再生ノードを停止します。
パラメータ:
-
nodeIndex(path) — ノードインデックス (0 ベース)
成功 (HTTP 200):
{
"success": true,
"message": "Node stopped",
"index": 0
} エラー (200 以外):
{
"success": false,
"message": "Invalid node index or already stopped"
} POST
http://localhost:5200/nodes/{nodeIndex}/proxy ノードのプロキシを設定する
指定されたノード インデックスのプロキシ接続 (ホスト、ポート、認証など) を構成します。
パラメータ:
-
nodeIndex(path) — ノードインデックス -
ip(body) — プロキシエンドポイント -
port(body) — プロキシポート -
username(body) — プロキシ ユーザー名 (オプション) -
password(body) — プロキシパスワード (オプション)
リクエスト本文の例:
{
"ip": "127.0.0.1",
"port": 7890,
"username": null,
"password": null
} 成功 (HTTP 200):
{
"success": true,
"message": "Proxy updated",
"index": 0
} エラー (200 以外):
{
"success": false,
"message": "Invalid proxy or connection failed"
} GET
http://localhost:5200/device/info デバイス情報を取得する
マシンコード、モデル、バージョンなどの基本的なデバイス情報を取得します。
成功 (HTTP 200):
{
"success": true,
"machineCode": "PM-XXXX-YYYY",
"model": "Standard",
"version": "1.0.0",
"firmware": "1.2.3"
} エラー (200 以外):
{
"success": false,
"message": "Node info unavailable"
} GET
http://localhost:5200/device/health デバイスのヘルスチェック
ローカル サービスが実行されているかどうかを確認します。ハートビートレポートに使用できます。
成功 (HTTP 200):
{
"success": true,
"healthy": true,
"uptime": 3600,
"nodesActive": 4
} エラー (200 以外):
{
"success": false,
"healthy": false,
"message": "Service unhealthy"
} リモートサーバー API
ベース URL:プラットフォーム API ホスト(環境別エンドポイントはアプリコンソールを参照)。
GET
/api/device/ads 広告タスクリストの取得
広告ソース サイト、広告タイプ、広告 ID、再生 URL、関連コンテンツを取得します。
パラメータ:
-
sign(query) 必須 — 署名;以下の「署名アルゴリズム」を参照してください。 -
machineCode(query) 必須 — ハードウェアデバイスコード -
timestamp(query) 必須 — リクエストのタイムスタンプ (秒)
成功 (HTTP 200):
{
"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
}
]
}
} エラー (200 以外):
{
"success": false,
"message": "Invalid sign or expired timestamp",
"code": "AUTH_FAILED"
} GET
/api/device/earnings ノードまたはデバイスごとに収益を取得する
デバイス コードとオプションのノード インデックスごとに収益の詳細または概要を取得します。
パラメータ:
-
sign(query) 必須 — 署名 -
machineCode(query) 必須 — デバイスコード -
timestamp(query) 必須 — タイムスタンプ -
nodeIndex(query) — ノードインデックス。デバイス全体の収益の場合は省略 -
startDate(query) — 開始日 YYYY-MM-DD -
endDate(query) — 終了日 YYYY-MM-DD
成功 (HTTP 200):
{
"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
}
]
}
} エラー (200 以外):
{
"success": false,
"message": "Node not found or access denied",
"code": "FORBIDDEN"
} POST
/api/device/heartbeat デバイスのハートビート
デバイスのオンライン ステータスとノードの実行ステータスを定期的に報告します。
パラメータ:
-
sign(query) 必須 — 署名 -
machineCode(query) 必須 — デバイスコード -
timestamp(query) 必須 — タイムスタンプ
リクエスト本文の例:
{
"nodeStatuses": [
{
"index": 0,
"status": "running",
"uptime": 3600
},
{
"index": 1,
"status": "running",
"uptime": 3600
},
{
"index": 2,
"status": "stopped",
"uptime": 0
}
],
"deviceHealthy": true
} 成功 (HTTP 200):
{
"success": true,
"message": "Heartbeat received",
"nextReportIn": 60
} エラー (200 以外):
{
"success": false,
"message": "Invalid sign or machineCode",
"code": "AUTH_FAILED"
} GET
/api/device/config デバイス構成を取得する
デバイスの実行構成を取得します (タスク間隔、領域制限など)。
パラメータ:
-
sign(query) 必須 — 署名 -
machineCode(query) 必須 — デバイスコード -
timestamp(query) 必須 — タイムスタンプ
成功 (HTTP 200):
{
"success": true,
"data": {
"taskInterval": 30,
"allowedRegions": [
"US",
"GB",
"DE"
],
"maxConcurrentAds": 4,
"reportInterval": 60
}
} エラー (200 以外):
{
"success": false,
"message": "Invalid sign or node",
"code": "AUTH_FAILED"
} 符号アルゴリズム
リモート API リクエストにはクエリパラメータが必要です sign, machineCode, および timestamp.
sign = SHA256(account + password + machineCode + timestamp)