Skip to content

Warmane Armory Match History Scraper

Try for free

Scrape Warmane armory arena match history for 2v2, 3v3, 5v5 and Solo Queue ladder teams, single teams or characters: opponent, outcome, rating change, time, map and every player's damage, healing, KBs, deaths, MMR and personal rating. No login needed.

⚔️ Warmane Armory Match History Scraper

Get the full arena match history of Warmane teams and characters: match ID, opponent, outcome, rating change, start time, duration and map, plus every player's damage, healing, killing blows, deaths, MMR and personal rating from the match Details. Paste a 2v2, 3v3, 5v5 or Solo Queue ladder URL and it reads the history of every team on it. No login needed. $1.50 per 1,000 matches on the Free plan, platform usage included.

✨ Why use Warmane Armory Match History Scraper?

  • 🏆 Whole ladders in one run: paste a ladder URL and get the match history of every listed team, from rank 1 down.
  • 🔍 Every Details row: each match comes with all players and their damage, healing, killing blows, deaths, MMR and personal rating, with the change of the match.
  • ⏱️ Exact times: start times in UTC (ISO 8601) and durations in seconds, next to the text the armory shows.
  • 📈 Rating before and after: the rating shown for each match, its change and the rating after the match.
  • 🧹 Ready for analysis: one row per match with a nested player list, plus a Players view with one row per player per match for spreadsheets.
  • 🔑 No login, no browser: reads the public armory pages directly, so runs are quick.

🎯 Use cases

  • 📊 Arena statistics: win rates per map, per opponent or per composition for the top teams.
  • 🧠 Player research: damage and healing output, MMR and personal rating swings of high-rated players.
  • 🕵️ Opponent scouting: who a team played, how often and with which result before a tournament or a ladder push.
  • 🗂️ Ladder history archive: keep a dated copy of the season's matches, scheduled daily or weekly.
  • 🤖 Bots and dashboards: feed Discord bots, guild sites or rating trackers through the API.

🚀 How to use

  1. Paste one or more armory URLs: a ladder (https://armory.warmane.com/ladder/2v2/1/80, .../ladder/3v3/1/80), a team (https://armory.warmane.com/team/<team>/<realm>/summary) or a character (https://armory.warmane.com/character/<name>/<realm>/summary).
  2. Set Matches per team or character (newest first; 0 = the whole history) and, for ladders, Teams per ladder (0 = all listed).
  3. Optionally limit the dates with Matches since / Matches until.
  4. Run it and export the results as JSON, CSV, Excel or HTML, or read them through the API.

📥 Input

FieldWhat it does
startUrlsArmory ladder, team or character URLs. Ladders read the teams (or, for Solo Queue, the characters) they list.
maxMatchesPerTeamNewest matches per team or character. 0 = all. Default 20.
maxTeamsPerLadderTeams per ladder URL, from rank 1. 0 = all listed (the armory lists the top 50). Default 5.
matchesSince / matchesUntilOnly matches started in this UTC date range (YYYY-MM-DD).
includeDetailsPlayer details per match. On by default; off gives match rows only.
proxyConfigurationProxy. Datacenter is the default and works for the armory.
{
  "startUrls": [
    "https://armory.warmane.com/ladder/2v2/1/80",
    "https://armory.warmane.com/ladder/3v3/1/80"
  ],
  "maxTeamsPerLadder": 0,
  "maxMatchesPerTeam": 0,
  "matchesSince": "2026-11-01"
}

📤 Output

One row per match of a team (or character):

FieldMeaning
matchIdArmory match ID
team, teamRealm, bracket, factionThe team whose history the row comes from (for a character: the team they played in)
characterThe character, for character histories
opponent, opponentRealm, opponentUrl, opponentDeletedThe opposing team (disbanded teams keep their name, without a link)
outcome, wonVictory or Loss
rating, ratingChange, ratingAfter, ratingTypeRating before the match as the armory shows it, its change and the rating after; team rating for teams, personal rating for characters
startTime, startTimeTextStart time in UTC, and as the armory shows it
duration, durationSecondsDuration as shown, and in seconds
mapArena map
players[]Every player: name, team, side (own / opponent), won, realm, class, race, gender, damage, healing, killingBlows, deaths, mmr, mmrChange, personalRating, personalRatingChange, characterUrl, characterDeleted, teamUrl
ladderFor teams read from a ladder: ladder URL, bracket, battlegroup, level, rank, rating, wins, losses
historyUrl, scrapedAtSource page and read time

Example (from a test run, players trimmed to two):

{
  "matchId": 48145734,
  "sourceType": "team",
  "team": "itswayne",
  "teamRealm": "Blackrock",
  "bracket": "2v2",
  "faction": "Alliance",
  "opponent": "polnoe govno",
  "opponentRealm": "Blackrock",
  "outcome": "Victory",
  "won": true,
  "rating": 2755,
  "ratingChange": 7,
  "ratingAfter": 2762,
  "ratingType": "team",
  "startTime": "2026-11-06T16:12:22Z",
  "duration": "9 minutes",
  "durationSeconds": 540,
  "map": "Dalaran Sewers",
  "playerCount": 4,
  "players": [
    {"name": "Silver", "team": "itswayne", "side": "own", "realm": "Blackrock", "class": "Warrior", "race": "Human", "damage": 402477, "healing": 71201, "killingBlows": 1, "deaths": 0, "mmr": 2602, "mmrChange": 12, "personalRating": 2269, "personalRatingChange": 34},
    {"name": "Justbest", "team": "polnoe govno", "side": "opponent", "realm": "Blackrock", "class": "Rogue", "race": "Human", "damage": 155859, "healing": 0, "killingBlows": 0, "deaths": 1, "mmr": 2580, "mmrChange": -9, "personalRating": 2580, "personalRatingChange": -7}
  ],
  "ladder": {"bracket": "2v2", "battlegroup": "WotLK", "level": 80, "rank": 1, "rating": 2762, "wins": 129, "losses": 10}
}

💰 Pricing

You pay per match saved, with platform usage (compute and proxy) included:

PlanPer match1,000 matches
Free$0.0015$1.50
Starter$0.001275$1.28
Scale$0.0011$1.10
Business$0.0009$0.90

Worked examples:

  • The default input (two ladders, 5 teams each, 20 newest matches per team = 200 matches) costs $0.30 on Free and $0.18 on Business.
  • In a test run, the whole 3v3 ladder (50 teams, every match they played: 8,934 matches with player details) took 12 minutes: $13.40 on Free, $8.04 on Business.

❓ FAQ

Is it legal to scrape the Warmane armory? The actor reads only public armory pages that anyone can open without an account. Make sure your use of the data fits the laws that apply to you.

Do I need a Warmane account or a proxy? No account. The default datacenter proxy works for the armory.

How many matches can I get? Everything the armory lists: a team's whole match history and, per ladder, every listed team. Set both limits to 0 for all of it.

Why do two rows have the same match ID? When both teams of a match are in your input (for example two ladder teams that played each other), each team's history has its own row for that match, from its own side.

What if a field is empty? Disbanded teams keep their name but have no team page, so opponentUrl is empty. Players who left their team show no team in the details, and deleted characters appear as "Deleted" with characterDeleted true and no link, class or race. A match whose details the armory does not return is saved without players and counted in the run's final status.

Can I schedule it or use the API? Yes. Schedule it daily with Matches since set, or call it from the API, the CLI or MCP clients.

⚠️ Limits

  • A team or character URL must name its realm; a name on another realm than the one in the URL is reported as not found and not charged.
  • Ladder pages list the top 50 teams (or characters) per bracket; teams below that need their own team URL.
  • Character histories cover every bracket the character played, often thousands of matches; use the match limit or the date filters.
  • Solo Queue matches show the team "Solo Queue" (or "Duo Queue") on both sides and the bracket the armory lists for them; side then follows who won.
  • durationSeconds follows the armory's text, which rounds to whole minutes above one minute.
  • Rating, MMR and personal rating are the values the armory shows next to each match, with the change of that match.
//From the blog\\

Latest articles

All articles

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes.

No credit card. No setup calls.