Ill Studios API Documentation
Public REST API v1 — Manage deployments, scripts, agents, and telemetry programmatically.
Base URL: /api/v1Auth: Bearer Token or x-api-key
Quick Start
- Create an API key — POST to
/api/v1/api-keyswith headersx-user-idandx-user-tier - Save the raw key — It's shown only once. Format:
sh_live_... - Use the key — Pass as
Authorization: Bearer sh_live_...orx-api-key: sh_live_... - Create a deployment — POST to
/api/v1/deployments - Register an agent — POST to
/api/v1/agents/register - Send heartbeats — POST to
/api/v1/agents/heartbeatevery 30s
Example: Create API Key + Deploy
# 1. Create API key
curl -X POST http://localhost:3000/api/v1/api-keys \
-H "Content-Type: application/json" \
-H "x-user-id: user_demo" \
-H "x-user-tier: elite" \
-d '{"name": "My Bot Key"}'
# 2. Deploy bots (replace sh_live_... with your key)
curl -X POST http://localhost:3000/api/v1/deployments \
-H "Authorization: Bearer sh_live_..." \
-H "Content-Type: application/json" \
-d '{"presetId":"roblox-afk-grid","target":"Blox Fruits","botCount":50}'Rate Limits
| Tier | Requests / min | Scopes |
|---|---|---|
| Free | 30 | deployments:read, scripts:read, status:read |
| Pro | 120 | + deployments:write, scripts:write, telemetry:read |
| Elite | 600 | + agents:write (all scopes) |
Rate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset
Endpoints
TypeScript SDK
Use the official Ill Studios SDK for type-safe access to all API endpoints.
import { IllStudiosClient } from "@illstudios/sdk";
const client = new IllStudiosClient({
apiKey: "sh_live_...",
baseUrl: "http://localhost:3000",
});
// List deployments
const { deployments, metrics } = await client.deployments.list();
// Create a deployment
const dep = await client.deployments.create({
presetId: "roblox-afk-grid",
target: "Blox Fruits",
botCount: 50,
});
// Register an agent
const agent = await client.agents.register({
deploymentId: dep.id,
machineId: "my-machine",
hostname: "bot-runner-1",
platform: "roblox",
});
// Send heartbeats
setInterval(() => {
client.agents.heartbeat({
agentId: agent.id,
botsRunning: 12,
cpuPercent: 35,
memoryMb: 512,
});
}, 30000);
// Stream telemetry
client.telemetry.stream((event) => {
console.log(event.type, event.payload);
});Ill Studios API v1 • Rate limited • All endpoints return JSON