Discover/OverTheWire API
live

OverTheWire APIoverthewire.org

Access OverTheWire wargame listings, level goals, SSH connection details, community rules, and suggested progression order via a structured REST API.

Endpoint health
verified 4d ago
get_level_info
get_ssh_connection_info
get_wargame_suggested_order
get_rules
get_wargames_list
9/9 passing latest checkself-healing
Endpoints
9
Updated
26d ago

What is the OverTheWire API?

The OverTheWire API exposes 9 endpoints covering every wargame available on overthewire.org, from the full categorized wargame list to per-level goal text and SSH connection parameters. get_level_info returns the goal description for any specific level by wargame name and level number, while get_ssh_connection_info gives you the hostname, port, and initial username needed to connect without visiting the site manually.

Try it

No input parameters required.

api.parse.bot/scraper/1cdf4da6-8aaf-471c-b2d5-f9fb1d571fe7/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/1cdf4da6-8aaf-471c-b2d5-f9fb1d571fe7/get_wargames_list' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace overthewire-org-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""OverTheWire Wargames SDK — discover games, plan progression, inspect levels."""
from parse_apis.overthewire_wargames_api import OverTheWire, WargameNotFound

client = OverTheWire()

# Browse the full catalog of available wargames
catalog = client.wargames.catalog()
print(f"Online wargames: {len(catalog.online)}")
for game in catalog.online[:3]:
    print(f"  {game.name} ({game.short_name}) — {game.url}")

# Check the recommended learning progression
order = client.wargames.suggested_order()
print(f"\nSuggested order ({len(order.order)} steps): {order.order[0]}")

# Construct a wargame instance and explore its levels
bandit = client.wargame(name="bandit")
for level in bandit.levels.list(limit=3):
    print(f"  Level {level.level}: {level.goal[:80]}...")

# Get SSH connection details for a wargame
ssh = bandit.ssh()
print(f"\nConnect: ssh -p {ssh.port} {ssh.user}@{ssh.hostname}")

# Drill into a specific level by number
level_zero = bandit.levels.get(level_number=0)
print(f"\nBandit level {level_zero.level}: {level_zero.url}")

# Typed error handling — catch not-found on a bad wargame name
try:
    client.wargame(name="nonexistent_game").ssh()
except WargameNotFound as exc:
    print(f"\nWargame not found: {exc.wargame_name}")

# Fetch a Natas web-security level directly
natas = client.wargames.natas_level(level_number=0)
print(f"\nNatas level {natas.level}: {natas.goal}")

print("\nExercised: catalog / suggested_order / levels.list / levels.get / ssh / natas_level")
All endpoints · 9 totalmissing one? ·

Get a categorized list of all available wargames grouped by status (Online, Offline, Released). Each entry includes the wargame display name, short name, and URL. Returns the full catalog in a single response.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "Online": "array of wargame summary objects with name, short_name, and url",
    "Offline": "array of wargame summary objects with name, short_name, and url",
    "Released": "array of wargame summary objects with name, short_name, and url"
  },
  "sample": {
    "data": {
      "Online": [
        {
          "url": "https://overthewire.org/wargames/bandit",
          "name": "Bandit",
          "short_name": "bandit"
        },
        {
          "url": "https://overthewire.org/wargames/natas",
          "name": "Natas",
          "short_name": "natas"
        }
      ],
      "Offline": [
        {
          "url": "https://overthewire.org/wargames/semtex",
          "name": "Semtex",
          "short_name": "semtex"
        }
      ],
      "Released": [
        {
          "url": "https://overthewire.org/wargames/hes2010",
          "name": "HES2010",
          "short_name": "hes2010"
        },
        {
          "url": "https://overthewire.org/wargames/abraxas",
          "name": "Abraxas",
          "short_name": "abraxas"
        }
      ]
    },
    "status": "success"
  }
}

About the OverTheWire API

Wargame Listings and Metadata

get_wargames_list returns all wargames grouped into three arrays — Online, Offline, and Released — each entry containing name, short_name, and url. To go deeper on any single game, get_wargame_info accepts a wargame_name string (e.g. 'bandit' or 'natas') and returns the SSH host, port, display title, and a full levels array with each level's title and URL.

Level Details

get_level_info accepts wargame_name and a zero-indexed level_number and returns the goal text scraped from that level's page along with its url. For Natas specifically — a web-exploitation track — get_natas_level_info is a focused shortcut that returns the same shape but always sets wargame to 'natas', with the goal field including credentials and the in-game URL for that level. To pull every level for a wargame at once, get_all_levels_for_wargame returns a levels array with level, goal, and url for each entry, plus a top-level count. Note that this endpoint fetches each level page individually, so response time scales with the number of levels in the chosen wargame.

Connection Info, Rules, and Progression

get_ssh_connection_info returns hostname, port, and user (typically the wargame name followed by 0) for any shell-based wargame. get_rules returns the full community rules text as a single rules string. get_wargame_suggested_order returns an order array of strings describing the recommended sequence for working through the wargames — useful for building onboarding flows or curricula. get_released_wargame_info covers wargames listed under the Released category, returning a description field with the full text from that wargame's page.

Reliability & maintenanceVerified

The OverTheWire API is a managed, monitored endpoint for overthewire.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when overthewire.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official overthewire.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
4d ago
Latest check
9/9 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a CLI tool that pulls SSH connection info from get_ssh_connection_info and opens a session automatically.
  • Generate a study guide by fetching all level goals for a wargame using get_all_levels_for_wargame.
  • Display the suggested wargame progression from get_wargame_suggested_order in a learning-path dashboard.
  • Sync the current wargame catalog with get_wargames_list to detect when new challenges go online or offline.
  • Populate a CTF reference app with Natas credentials and URLs using get_natas_level_info for each level.
  • Embed community rules from get_rules into onboarding flows for security training platforms.
  • Compare level counts across wargames by aggregating the count field from get_all_levels_for_wargame calls.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does OverTheWire have an official developer API?+
No. OverTheWire does not publish an official developer API or data feed. This Parse API provides structured access to wargame and level data from overthewire.org.
What does `get_wargame_info` return compared to `get_ssh_connection_info`?+
get_wargame_info returns the full wargame metadata including title, SSH host, port, and the complete levels array with each level's title and URL. get_ssh_connection_info is a narrower endpoint that returns only hostname, port, and the initial user string — the three values needed to form an SSH command. Both accept wargame_name as input.
Are player solutions, forum threads, or spoilers available through this API?+
Not currently. The API covers wargame listings, level goal text, SSH connection parameters, community rules, and the suggested progression order. You can fork it on Parse and revise to add an endpoint targeting any community or forum content that OverTheWire exposes publicly.
Is level goal text always plain text, or can it contain code or commands?+
The goal field is returned as a string extracted from the level page. Some levels include shell commands, file paths, or credential strings inline with the instructional text. The field is not further structured, so any parsing of commands or credentials is left to the caller.
Does the API cover offline or released wargames the same way as online ones?+
get_wargames_list returns all three categories — Online, Offline, and Released — with name and URL for each. However, get_released_wargame_info only returns a description field for released wargames; it does not return a levels array or SSH connection details the way get_wargame_info does for online wargames. You can fork the API on Parse and revise to extend level parsing to released wargame pages if that structure exists.
Page content last updated . Spec covers 9 endpoints from overthewire.org.
Related APIs in Developer ToolsSee all →
roadmap.sh API
Discover and access structured learning roadmaps, detailed guides, interview questions, and community projects to build your development skills across different technologies and career paths. Search through curated learning content, explore topic breakdowns, and find project ideas tailored to your learning goals.
poki.com API
Discover and browse thousands of free online games with detailed information about genres, popularity, and platform compatibility. Find new games by exploring categories or searching through Poki's complete game catalog to access metadata and recommendations.
wikia.com API
Extract structured data from Fandom (formerly Wikia) gaming wikis. Search pages, retrieve full page content, list category members, and convert wiki pages into organized guides with infoboxes, section breakdowns, and clean text.
theodinproject.com API
Access The Odin Project's complete curriculum structure including paths, courses, lessons, resources, and projects, plus search lessons and view detailed changelogs. Browse course outlines, find specific lessons and their learning materials all in one place.
eldenring.wiki.fextralife.com API
Search and retrieve structured Elden Ring game information from the Fextralife Wiki, including weapons, enemies, locations, and lore. Access full article content with hierarchical sections, tables, and images, or search the complete article catalog by keyword.
hackerrank.com API
Retrieve challenge scores, difficulty ratings, success ratios, and track-level ranking data from HackerRank's public practice platform. Browse challenges by track, view submission statistics, and access ranking metrics across all available tracks.
dumpspace.spuckwaffel.com API
Access detailed technical data for Unreal Engine and Unity games, including class structures, functions, enums, memory offsets, and inheritance hierarchies to support reverse engineering and modding projects. Search across thousands of game dumps to find specific classes, structs, and functions along with their documentation and offset information.
aviatorai.shop API
Retrieve historical round data and game information from crash-style multiplier games like Aviator and Chicken Road to analyze prediction patterns and platform updates. Monitor game performance metrics and stay informed about the latest platform changes across supported titles.