Quick Navigation
Health Check
Readiness
Metrics
Chat API
Chat Widget
Authentication
Rate Limits
GENOM API
Error Codes
Core Endpoints
GET
/health
LIVE
Returns the current health status of the node including version, uptime, memory usage, active connections, and database status. No authentication required.
Response (200)
{
"status": "operational",
"version": "1.0.0",
"node": "node1-primary",
"region": "us-east-1",
"uptime": 86400,
"memory": {
"heapUsed": 45,
"heapTotal": 128,
"rss": 180
},
"connections": {
"active": 12,
"total": 1547
},
"database": "connected",
"timestamp": "2026-03-30T12:00:00Z"
}
GET
/ready
LIVE
Readiness probe for container orchestration. Returns 200 when the node is ready to serve traffic, including database and all dependency checks. Used by ECS health checks and ALB target group.
Response (200)
{
"ready": true,
"checks": {
"database": "ok",
"memory": "ok"
}
}
GET
/metrics
LIVE
Returns detailed node metrics including CPU usage, memory breakdown, request counters, active sessions, and rate limit statistics. Useful for monitoring dashboards and external observability tools.
Response (200)
{
"node": "node1-primary",
"uptime": 86400,
"cpu": { "usage": 23.5, "cores": 0.25 },
"memory": {
"heapUsed": 45,
"heapTotal": 128,
"external": 8,
"rss": 180
},
"requests": {
"total": 25430,
"chat": 8921,
"health": 12045
},
"sessions": { "active": 12 },
"rateLimit": {
"blocked": 34,
"window": "24h"
}
}
Chat API
POST
/api/chat
LIVE
AUTH
Send a message to SKYNET and receive a streamed AI response. The endpoint proxies to Claude claude-sonnet-4-6 (Anthropic) with the SKYNET system prompt. Supports conversation context via session ID. Rate limited by tier.
Request Headers
| Header | Type | Description |
|---|---|---|
| Content-Type | stringrequired | Must be application/json |
| X-Session-ID | stringoptional | Session identifier for conversation continuity. Generated client-side if omitted. |
| Authorization | stringoptional | Bearer token for authenticated tiers (Starter/Pro/Enterprise). Free tier does not require auth. |
Request Body
{
"message": "What is SKYNET?",
"sessionId": "sess_abc123",
"context": [] // previous messages for context
}
Request Parameters
| Field | Type | Description |
|---|---|---|
| message | stringrequired | The user's message to send to SKYNET. Max 4,000 characters. |
| sessionId | stringoptional | Session ID for tracking conversation. Auto-generated if not provided. |
| context | arrayoptional | Array of previous message objects {role, content} for conversation context. |
Response (200 — streamed)
// Server-Sent Events (text/event-stream)
data: {"type":"content_block_delta","delta":{"text":"I am SKYNET"}}
data: {"type":"content_block_delta","delta":{"text":", a distributed"}}
data: {"type":"message_stop"}
data: {"type":"usage","input_tokens":245,"output_tokens":89}
cURL Example
curl -X POST https://node1.skyos.online/api/chat \
-H "Content-Type: application/json" \
-d '{"message": "What is SKYNET?", "sessionId": "my-session"}'
Embeddable Chat Widget
Authentication
POST
/api/auth/login
SPRINT 1
Authenticate a user and receive a JWT token. Free tier users do not need authentication. Starter/Pro tiers require email + password. Enterprise requires API key.
Request Body
{
"email": "user@example.com",
"password": "your-password",
"totp": "123456" // required for Pro tier (2FA)
}
Response (200)
{
"token": "eyJhbGciOiJIUzI1NiIs...",
"expiresIn": 86400,
"tier": "starter",
"tokensRemaining": 50000,
"wallet": {
"address": "skc_wallet_abc123",
"balance": 1000
}
}
POST
/api/auth/register
SPRINT 1
Register a new user account. Automatically creates an SKC wallet on wallet.mycryptogate.com. Returns a JWT token and wallet address.
Request Body
{
"email": "user@example.com",
"password": "min-8-characters",
"tier": "starter" // "starter" | "pro"
}
Rate Limits & Tiers
Free
5,000
tokens / day
No registration needed
Starter
50,000
tokens / day
$10/month — email + password
Pro
500,000
tokens / day
$30/month — email + 2FA
Enterprise
Unlimited
custom SLA
Contact: info@skynet.genisys.online
Node Operator
Bonus
tokens for uptime
Install desktop app (Sprint 7)
GENOM Protocol API SPRINT 4
The GENOM Protocol is SKYNET's native communication layer — a complex-plane tokenization system with post-quantum encryption (Kyber-768). The Dictionary API at genom.genisys.online will provide vocabulary lookup, encoding/decoding, and statistics. Genesis Vocabulary v1.0 (2,000 immutable tokens) is already available.
GET
/v1/genesis.json
LIVE
Returns the complete Genesis Vocabulary — 2,000 immutable tokens mapped to the unit circle of the complex plane. Four semantic domains: Technical (0-499), Entity (500-999), Action (1000-1499), Abstract (1500-1999). Served from
genom.genisys.online.Response Structure
{
"version": "1.0",
"hash": "e8450c00f5d55c68...",
"tokens": [
{
"id": 0,
"word": "system",
"domain": "technical",
"real": 1.0,
"imag": 0.0,
"angle": 0.0
},
// ... 2,000 tokens total
]
}
GET
/v1/dictionary?lang=en
SPRINT 4
Returns the complete GENOM dictionary for a given language. Radius r=1.0 is the frozen Genesis Vocabulary, r=1.1 contains all English words (~170,000), r=1.2 adds untranslatable concepts, and r=1.3+ covers all languages.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| lang | stringrequired | ISO 639-1 language code (e.g., en, cs, ja) |
| radius | floatoptional | Max radius to include. Default: all. Use 1.0 for Genesis only. |
| domain | stringoptional | Filter by domain: technical, entity, action, abstract |
POST
/v1/lookup
SPRINT 4
Look up a word and get its GENOM token ID and complex-plane coordinates. Supports any language.
Request / Response
// Request
{ "word": "intelligence", "lang": "en" }
// Response
{
"id": 42,
"word": "intelligence",
"domain": "abstract",
"radius": 1.0,
"real": 0.8090,
"imag": 0.5878,
"angle": 0.6283,
"translations": { "cs": "inteligence", "ja": "知性" }
}
POST
/v1/encode
SPRINT 5
Encode natural language text into a GENOM intent vector — a compressed representation on the complex plane. Achieves ~10:1 compression vs JSON payloads.
Request / Response
// Request
{ "text": "analyze network health" }
// Response
{
"vector": [0.309, 0.951, -0.588, 0.809, 0.707, 0.707],
"tokens": [15, 203, 1042],
"compression": 8.4
}
POST
/v1/decode
SPRINT 5
Decode a GENOM intent vector back into natural language text. Reverse of /v1/encode.
Request / Response
// Request
{ "vector": [0.309, 0.951, -0.588, 0.809, 0.707, 0.707] }
// Response
{ "text": "analyze network health", "confidence": 0.94 }
Error Codes
REF
Standard Error Responses
All error responses follow a consistent JSON format with an error code and human-readable message.
Error Format
{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Daily token limit reached. Upgrade your plan or wait 24h.",
"status": 429
}
}
HTTP Status Codes
| Code | Error | Description |
|---|---|---|
| 200 | OK | Request succeeded |
| 400 | BAD_REQUEST | Invalid request body or missing required fields |
| 401 | UNAUTHORIZED | Invalid or expired authentication token |
| 403 | FORBIDDEN | Insufficient permissions for this tier |
| 429 | RATE_LIMIT_EXCEEDED | Daily token limit reached for your tier |
| 500 | INTERNAL_ERROR | Server error — try again or check /status.html |
| 503 | SERVICE_UNAVAILABLE | Node is restarting or under maintenance |