API REFERENCE

API Documentation

Integrate KyberGate programmatically. Manage policies, ingest logs, control devices, and build custom workflows.

Base URL

https://proxy.kybergate.com

Authentication

Pass your org ID in the request path or body. API key authentication coming soon.

X-KyberGate-Org: your_org_id

Rate Limits

1,000

req/min (logs)

100

req/min (policy)

60

req/min (commands)

Endpoints

GET/health

Service health check

Response

{ "status": "healthy", "version": "0.6", "uptime": "48h32m" }
GET/stats

Proxy server statistics

Response

{ "totalRequests": 142857, "blocked": 12340, "allowed": 130517, "goroutines": 24, "gameDomains": 25213, "autoFlagged": 4 }
GET/api/policy/{orgId}

Get filtering policies for an organization

Parameters

orgId(path)Organization ID
email(query)User email (optional, for user-based policies)
deviceId(query)Device UDID (optional)

Response

{
  "blockedDomains": ["tiktok.com", "instagram.com"],
  "blockedCategories": ["adult", "gaming", "social-media"],
  "bypassDomains": ["apple.com", "google.com"],
  "schoolHours": { "start": "08:00", "end": "15:30" },
  "schoolDays": ["mon", "tue", "wed", "thu", "fri"],
  "filterMode": "both",
  "safeSearch": true
}
POST/api/heartbeat

Device check-in (updates online status, last seen)

Request Body

{
  "orgId": "abc123",
  "deviceId": "UDID-or-serial",
  "userEmail": "student@school.edu",
  "platform": "chromebook",
  "version": "1.0.0",
  "timestamp": "2026-02-21T14:30:00Z"
}

Response

{ "ok": true }
POST/api/logs

Batch submit browsing logs

Request Body

{
  "orgId": "abc123",
  "logs": [
    {
      "url": "https://example.com",
      "domain": "example.com",
      "action": "allowed",
      "category": "education",
      "timestamp": "2026-02-21T14:30:00Z",
      "deviceId": "UDID-123",
      "userEmail": "student@school.edu"
    }
  ]
}

Response

{ "ok": true, "count": 1 }
GET/api/commands/{orgId}/{deviceId}

Poll pending device commands

Parameters

orgId(path)Organization ID
deviceId(path)Device UDID or serial

Response

[
  {
    "id": "cmd_abc123",
    "type": "lock",
    "payload": { "message": "Class is over" },
    "status": "pending",
    "createdAt": "2026-02-21T14:30:00Z"
  }
]
POST/api/commands/{orgId}/{deviceId}/{cmdId}/ack

Acknowledge a command as executed

Response

{ "ok": true }
GET/api/pac/{orgId}

PAC (Proxy Auto-Config) file for MDM

Parameters

orgId(path)Organization ID
email(query)$EMAIL MDM variable
udid(query)$UDID MDM variable

Response

function FindProxyForURL(url, host) { ... }
GET/api/mdm/{orgId}

Download MDM configuration profile (.mobileconfig)

Response

(XML plist — .mobileconfig file)
GET/api/ca.pem

Download CA certificate for SSL inspection

Response

(PEM-encoded X.509 certificate)
POST/api/classify

Classify a URL's content category

Request Body

{ "url": "https://example.com", "orgId": "abc123" }

Response

{ "url": "https://example.com", "category": "education", "confidence": 0.95, "blocked": false }
GET/api/game-domains

List known game domains

Response

{ "domains": ["coolmathgames.com", "poki.com", ...], "count": 68, "autoFlagged": ["newgame.io"], "autoFlaggedCount": 2 }
POST/api/game-report

Report a detected game (client-side fingerprinting)

Request Body

{ "domain": "example.com", "orgId": "abc123", "signals": { "canvas": true, "webgl": true, "gameLoop": true }, "confidence": 0.85 }

Response

{ "ok": true, "action": "flagged" }
POST/api/screenshot

Submit screenshot metadata

Request Body

{ "orgId": "abc123", "deviceId": "UDID-123", "sessionId": "class_456", "userEmail": "student@school.edu" }

Response

{ "ok": true }

Ready to Integrate?

Get your org ID and start building. Need help? Our engineering team is available for integration support.

Chat with KyberGate

We typically respond within a few hours

👋 Hi! Have questions about KyberGate for your school? Drop us a message and we'll get back to you.