ACK Club

API Documentation

Programmatic access to ACK Club's network simulation capabilities through RESTful endpoints and WebSocket interfaces.

RESTful Endpoints

Create, manage, and monitor simulations through standard HTTP methods. Supported operations include topology generation, traffic injection, and performance metrics retrieval.

Base URL: https://api.ackclub.net/sim/v3/

WebSocket Streams

Real-time simulation telemetry and event streaming using secure WebSocket connections. Perfect for dashboarding and operational monitoring.

Streaming URL: wss://api.ackclub.net/metrics/stream

📜 API Reference

POST /simulation

RequestBody
{
  "topology": "mesh",
  "nodes": 5,
  "duration": "600s"
}
              
Parameters
  • topology Topology type (mesh, star, line, custom)
  • nodes Number of simulation nodes
  • duration Simulation runtime (e.g., "5m", "2h")
Example Response
{
  "id": "sim-7c3a9",
  "status": "running",
  "metrics_url": "/metrics/sim-7c3a9"
}
              

GET /simulation/:id/metrics

Path Parameters
  • id Simulation identifier
Returns
{
  "throughput": "5.3 Gbps",
  "latency": "12.4 ms",
  "packet_loss": "0.03%",
  "links_utilization": [58.4, 72.1, 43.8]
}
              

WebSocket /connect

Query Parameters
  • token Authentication token
  • filter Event type filter (all, errors, metrics)
Received Messages
{
  "type": "link_down",
  "node": "n3",
  "time": "02:15.333"
}
              

🔐 Authentication

All API requests require a Bearer token. Generate tokens using your ACK Club account credentials:

curl -X POST https://api.ackclub.net/auth/token \ -u YOUR_EMAIL \ -d "grant_type=password" \ -d "password=YOUR_PASSWORD"

🤖 Example Integrations

Start Simulation with Node.js

const fetch = require('node-fetch');

async function createSimulation() {
  const response = await fetch('https://api.ackclub.net/sim/v3/simulation', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer YOUR_TOKEN',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      topology: 'ring',
      nodes: 7,
      duration: '300s'
    })
  });
  return await response.json();
}
          

WebSocket Client in Python

import websockets

async def connect():
  async with websockets.connect(
    "wss://api.ackclub.net/metrics/stream?token=YOUR_TOKEN&filter=errors"
  ) as ws:
    async for message in ws:
      print("Received:", message)
          

Need Help?

Found an API bug or need additional integration examples? Check our documentation or submit feedback.