RESOURCES
Developer documentation
Practical reference for authorized Layer 4 / Layer 7 capacity tests: Hub workflow first, then REST API v1 and scheduled automations on paid plans. Same engine as Dashboard → API.
Table of contents
In-app copy-paste with your live origin: Dashboard → API (login required). This page is the public mirror for SEO and pre-signup reading.
Quick start
- Create an account — Free Trial needs no card.
- Open the Hub and complete target verification for a host or IP you own.
- Run a short smoke test (30–60s). Stop immediately if error rate or latency looks wrong.
- Upgrade on pricing when you need longer windows, more concurrents, or Developer API.
- Create a token under Dashboard → API, store it server-side, then call
https://slammed.st/api/v1. - Always
GET /accountbefore starting tasks so you know free concurrent slots andmaxTime.
Trial is capped (shared free pool, free methods only). Use it to learn the workflow — not to size production peaks. Rule of thumb from plans: ~1 concurrent ≈ 60k RPS ≈ 30 Gbps class load; confirm with your plan and the RPS calculator.
Hub workflow
The Hub is the primary UI for one-off authorized tests. Same fields apply when you call the API later.
| Control | What it does |
|---|---|
| Layer 4 | IPv4 / CIDR targets, destination port(s), network method profiles (UDP/TCP). |
| Layer 7 | Full http:// or https:// URL, rateLimit, HTTP version, browser-like profiles. |
| Concurrents | Workers for this run; cannot exceed free slots on your plan. |
| Time | Duration in seconds, capped by plan maxTime (API minimum is 10s). |
| Stop | Always available in Hub and via /tasks/{id}/stop. Build abort thresholds into the change window. |
Recommended run order
- Staging or lab IP with low concurrents and short time.
- Canary / single edge with production-like method.
- Production window only with written authorization and on-call ready.
Target verification
Substantive traffic only runs against verified targets. You must own the host/IP or hold written permission covering the window, intensity, and method class.
- Complete the in-product ownership / authorization check before production-like load.
- Keep proof (ticket, email, change record) with the run notes and task IDs.
- Re-verify after DNS / IP changes — stale verification can block or mis-route intent.
- Unauthorized testing is prohibited — see Acceptable Use and Terms.
Background: authorized load testing · Is using an IP stresser legal?
Useful network tools
Developer-recommended external tools for pre-flight checks on systems you own — full write-up with screenshots: Useful tools suggested by developers of Slammed.st.
- Check-Host.net / check-host.cc — multi-node ping, HTTP, DNS, TCP/UDP, IP info.
- Censys — inventory hosts/services; find possible backend / origin behind CDN for assets you own.
- FOFA — Censys-style asset search alternative.
- Shodan — exposed services and internet-connected devices on your estate.
Authorized targets only. Same list lives in-app under Dashboard → Learn.
API access
Developer API is available on paid plans (or via the Developer API add-on where offered). Manage tokens in Dashboard → API after signup.
- Base URL:
https://slammed.st/api/v1 - Token format:
slm_…(shown once at creation — store it securely). - IP allowlist (optional) per token for CI runners and jump hosts.
- Rotate / revoke from the same screen; never commit tokens to git or front-end bundles.
Account flag to look for on GET /account: developerApiAccess: true. Automations need automationAccess: true (active paid subscription; up to 15 saved jobs).
Authentication
Pass the token as a query parameter on every request:
GET https://slammed.st/api/v1/account?key=slm_YOUR_TOKEN
- Aliases:
?key=or?token=. - Missing / revoked / non-
slm_tokens →401. - No Developer API entitlement →
403. - Allowlisted token + wrong client IP →
403.
Prefer HTTPS in production. Store tokens only on servers / CI secrets managers — never in browser JavaScript.
Endpoints
All paths are under /api/v1 and require ?key=slm_….
Account & tasks
| Method | Path | Purpose |
|---|---|---|
GET | /account | Plan, balance, concurrents, max time, API / automation flags |
GET | /tasks?status=running | List tasks (running, completed, stopped, failed, all) |
GET | /tasks/{id} | Single task by ID (e.g. SLM-87433E) |
GET | /tasks/start?… | Start via query params (fast terminal trials) |
POST | /tasks | Start with JSON body (preferred for L7 / CI) |
GET / POST | /tasks/{id}/stop | Stop a running task |
Automations
Requires paid plan (automationAccess). Max 15 jobs per account.
| Method | Path | Purpose |
|---|---|---|
GET | /automations | List scheduled jobs |
GET | /automations/{id} | Single job by numeric ID |
POST | /automations | Create once / interval / daily job |
GET / POST | /automations/{id}/toggle | Pause / resume (enabled=0|1 or JSON) |
GET / POST | /automations/{id}/delete | Delete a job |
Successful creates return HTTP 201 with "ok": true. Reads return 200.
Task parameters
For GET /tasks/start use query params. For POST /tasks send JSON (query params still accepted as overrides).
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
layer | string | Yes | l4 (network) or l7 (HTTP) | l4 |
target | string | Yes | L4: IPv4 / CIDR. L7: full URL with scheme | 203.0.113.10 |
time / duration | integer | Yes | Seconds (min 10, max = plan). Either name works | 60 |
method | string | Yes | Hub method label (see Methods) | UDP-AMP |
concurrents | integer | Yes | Workers ≤ free slots | 1 |
port | int / CSV / range | L4 | Port 1–65535, list 53,80,443, or range 1000-3000 | 443 |
option / customOption | string | Custom L4 | Required for UDP-CUSTOM | fivem |
rateLimit | integer | L7 | Requests/sec, 1–512 | 64 |
httpVersion | string | No | 1.1 or 2 (default 2) | 2 |
List filter: status = running (default), completed, stopped, failed, or all.
Methods
Send Hub method names (not internal upstream slugs).
| Layer | Method | Notes |
|---|---|---|
l4 | UDP-AMP / TCP-TRIAL | Trial-only free methods |
l4 | TCP-AMP / HANDSHAKE / TCP-OVH / WRA / SOCKET / TCPBYPASS | TCP-family profiles |
l4 | UDP-GAME / UDP-RAW / UDP-PPS / FIVEM / RAKNET / DISCORD / UDP-GMOD | UDP / game profiles |
l4 | TCP-MINECRAFT / TCP-WOK | Minecraft Java / SSH profiles |
l4 | UDP-CUSTOM | Requires option payload slug |
l4 | UDP-BOT / ACK-BOT / SYN-BOT / STOMP-BOT / SOCKET-BOT / UDPV2-BOT | IoT Powered Network add-on |
l7 | MEDIAN-TRIAL | Trial-only L7; limited power |
l7 | HTTP | Baseline HTTP load |
l7 | HTTP-AI | AI-driven HTTP (paid) |
l7 | MEDIAN / MEDIAN-TRIAL | Steady HTTPS; trial = limited power |
l7 | BROWSER | Browser-like client profile |
l7 | HTTPS-WAVE / SOLVER | Advanced Layer 7 add-on |
Trial can only start free methods: l4+UDP-AMP or l7+MEDIAN-TRIAL.
Examples
Account
curl "https://slammed.st/api/v1/account?key=slm_YOUR_TOKEN"
Start Layer 4 (GET)
curl "https://slammed.st/api/v1/tasks/start?key=slm_YOUR_TOKEN&layer=l4&target=203.0.113.10&port=443&time=60&method=UDP-AMP&concurrents=1"
Start Layer 4 (POST JSON)
curl -X POST "https://slammed.st/api/v1/tasks?key=slm_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"layer":"l4","target":"203.0.113.10","port":443,"duration":60,"method":"TCP-AMP","concurrents":1}'
Start Layer 7 (POST JSON)
curl -X POST "https://slammed.st/api/v1/tasks?key=slm_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"layer":"l7","target":"https://staging.example.com","time":90,"method":"HTTP","concurrents":1,"rateLimit":64,"httpVersion":"2"}'
List & stop
curl "https://slammed.st/api/v1/tasks?key=slm_YOUR_TOKEN&status=running"
curl "https://slammed.st/api/v1/tasks/SLM-87433E/stop?key=slm_YOUR_TOKEN"
Python
import requests
BASE = "https://slammed.st/api/v1"
KEY = "slm_YOUR_TOKEN"
account = requests.get(f"{BASE}/account", params={"key": KEY}).json()
print(account["account"]["concurrents"], "slots · max", account["account"]["maxTime"], "s")
r = requests.post(f"{BASE}/tasks", params={"key": KEY}, json={
"layer": "l7",
"target": "https://staging.example.com",
"time": 60,
"method": "HTTP",
"concurrents": 1,
"rateLimit": 48
})
print(r.status_code, r.json())
Node.js
const key = 'slm_YOUR_TOKEN';
const url = new URL('https://slammed.st/api/v1/tasks/start');
url.searchParams.set('key', key);
url.searchParams.set('layer', 'l4');
url.searchParams.set('target', '203.0.113.10');
url.searchParams.set('port', '80');
url.searchParams.set('time', '30');
url.searchParams.set('method', 'UDP-AMP');
url.searchParams.set('concurrents', '1');
const { task } = await fetch(url).then((r) => r.json());
console.log('Started:', task.id);
JSON responses
Success payloads include "ok": true. Task / automation creates return HTTP 201.
Task started (201)
{
"ok": true,
"message": "Test started.",
"task": {
"id": "SLM-87433E",
"layer": "l4",
"target": "203.0.113.10",
"port": 80,
"duration": 30,
"method": "UDP-AMP",
"concurrents": 1,
"rateLimit": null,
"status": "running",
"startedAt": "2026-07-21 00:00:00",
"endsAt": "2026-07-21 00:00:30"
}
}
Account (200)
{
"ok": true,
"account": {
"id": 42,
"username": "yourname",
"plan": "Basic",
"planSlug": "basic",
"balanceCents": 2500,
"concurrents": 3,
"maxTime": 300,
"developerApiAccess": true,
"automationAccess": true,
"automationMaxJobs": 3
}
}
List tasks (200)
{
"ok": true,
"count": 1,
"tasks": [{ "id": "SLM-87433E", "status": "running", "method": "HTTP-AI", "concurrents": 1 }]
}
Stop (200)
{ "ok": true, "message": "Test stopped.", "id": "SLM-87433E" }
Automations
Saved jobs that launch tests on a schedule — same engine as Dashboard → Automations. Requires automationAccess: true. Trial cannot create automations.
| Field | Required | Description |
|---|---|---|
All task fields — layer, target, method, duration, concurrents, etc. | ||
name | No | Display name (max 64). Auto-generated if omitted |
scheduleType | Yes | once, interval, or daily |
runAt | once / daily | once: YYYY-MM-DD HH:MM:SS UTC. daily: HH:MM UTC |
intervalMinutes | interval | Every N minutes (or intervalSeconds). Min 5s, max 24h |
instructions | No | Team notes (max 2000) |
speedMode | No | fast, balanced, or powerful |
Daily L4 at 02:00 UTC
curl -X POST "https://slammed.st/api/v1/automations?key=slm_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Nightly L4","layer":"l4","target":"203.0.113.10","port":443,"duration":60,"method":"UDP-AMP","concurrents":1,"scheduleType":"daily","runAt":"02:00"}'
Every 30 minutes (L7)
curl -X POST "https://slammed.st/api/v1/automations?key=slm_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"HTTP pulse","layer":"l7","target":"https://staging.example.com/","duration":45,"method":"HTTP","concurrents":1,"rateLimit":64,"scheduleType":"interval","intervalMinutes":30}'
Pause / resume / delete
curl "https://slammed.st/api/v1/automations/12/toggle?key=slm_YOUR_TOKEN&enabled=0"
curl "https://slammed.st/api/v1/automations/12/toggle?key=slm_YOUR_TOKEN&enabled=1"
curl "https://slammed.st/api/v1/automations/12/delete?key=slm_YOUR_TOKEN"
More CI patterns: IP stresser for developers (2026).
Integration workflows
- Slot guard —
GET /account+GET /tasks?status=runningbefore every start. Avoids 400 when slots are full. - CI gate — start short L7 against staging, poll
/tasks/{id}, stop early on failure threshold, fail the pipeline if the API returns non-ok. - Nightly automation —
POST /automationswithscheduleType: daily; pause around freezes with/toggle. - Health pulse — interval job (e.g. 30–60 min) with low
rateLimitand shortdurationon a verified staging URL. - Manual Hub + API stop — operators start in Hub; scripts can still stop by task ID if abort criteria trip.
Errors & limits
| Code | Meaning | What to do |
|---|---|---|
400 | Validation / plan limit / bad target | Read message and optional field |
401 | Missing / invalid / revoked token | Regenerate token; check ?key= |
403 | No API access, allowlist miss, automations locked | Upgrade plan or fix allowlist IP |
404 | Unknown task / job id | Confirm ID belongs to this account |
429 | Rate limited | Backoff and retry |
{
"ok": false,
"message": "Time must be between 10 and 300 seconds.",
"field": "time"
}
Capacity helper: Concurrent vs RPS / Gbps calculator.
Safety rules
- Only test systems you own or are explicitly authorized to assess.
- Define abort criteria (error %, latency, saturation) before the window.
- Prefer staging → canary → production; keep blast radius small.
- Never share API tokens; revoke on leak; use IP allowlists for CI.
- Unauthorized disruption is forbidden — AUP · AML Policy · Privacy.
Ready to run: Start free · Compare plans · Live status · Open API panel (after login).
Related
Resources hub · Glossary · Tools matrix · RPS calculator · Useful network tools · Blog · Pricing · Start free