API Playground

Explore endpoints, inspect the request schema, see an example response, and copy a startable SDK call.

GET /api/v9/data/status open →

Data source status + freshness

{ "sources": [ { "name": "nvd", "status": "synced" } ], "freshness": 84 }
GET /api/v9/intelligence/live open →

Live intelligence packages + quality score

{ "packages": [ { "name": "Threat Intel", "quality": { "overall": 88, "grade": "A" } } ] }
GET /api/v9/collections open →

Personal intelligence collections

{ "items": [ { "kind": "cve", "itemId": "CVE-2021-44228" } ] }
POST /api/v9/investigations/replay open →

New AI investigation (draft, requires review)

{ "replay": { "timeline": ["user_question",...] }, "requiresReview": true }
GET /api/v9/platform/health open →

Platform health across Data/AI/API/Infra

{ "overall": 88, "data": { "score": 84 } }
GET /api/v9/sdk/status open →

SDK availability (JS + Python)

{ "sdk": [ { "lang": "js" }, { "lang": "python" } ] }

SDK: quick start

JavaScript (SDK foundation) and same in Python.

import { OpenTrojanClient } from '@opentrojan/sdk-js';
const client = new OpenTrojanClient({ apiKey: process.env.OT_KEY() });
const health = await client.get('/api/v9/platform/health'); // platform health
const replay = await client.post('/api/v9/investigations/replay', { question, intent });

MCP: try query_intelligence / get_platform_health / replay_investigation.