SimpleArmory APIsimplearmory.com ↗
Retrieve World of Warcraft achievement and collectible data for any character via the SimpleArmory API. Covers completion status, categories, mounts, pets, and toys.
What is the SimpleArmory API?
The SimpleArmory API provides 2 endpoints that expose World of Warcraft character progress data sourced from SimpleArmory.com. The get_achievements endpoint returns the full achievement catalog merged with a character's completion state — including category hierarchy, expansion attribution, and counts for completed and incomplete achievements. The get_collectibles endpoint covers mounts, pets, and toys with per-item collected/uncollected flags across 4,000+ catalog entries.
curl -X GET 'https://api.parse.bot/scraper/1a34ed79-1751-4a39-b054-62c21b6ca9fe/get_achievements?realm=detheroc®ion=us&character=tophat' \ -H 'X-API-Key: $PARSE_API_KEY'
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 simplearmory-com-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.
"""Walkthrough: Simple Armory SDK — fetch WoW character achievements and collectibles."""
from parse_apis.simplearmory_com_api import SimpleArmory, BadRequestError
client = SimpleArmory()
# Fetch a character's full achievement profile
try:
char = client.characters.get(realm="detheroc", character="tophat", region="us")
except BadRequestError as e:
# Raised when realm/character/region format is invalid
print(f"Invalid input: {e}")
raise
print(f"{char.character}@{char.realm}: {char.completed_count}/{char.total_achievements} completed")
# Browse completed achievements — show highest-point ones
completed = [a for a in char.achievements if a.completed]
top_five = sorted(completed, key=lambda a: a.points, reverse=True)[:5]
for ach in top_five:
print(f" [{ach.points}pts] {ach.title} ({ach.category} > {ach.subcategory})")
# Fetch collectible categories for the same character (derived from previous call)
for cat in client.collectible_categories.list(realm=char.realm, character=char.character, region=char.region, limit=5):
print(f"{cat.type}: {cat.collected_count}/{cat.total} collected")
# Show first few items in each category
for item in cat.items[:3]:
status = "✓" if item.collected else "✗"
print(f" {status} {item.name} ({item.subcategory})")
print("exercised: characters.get / Achievement fields / collectible_categories.list / Collectible fields")
Returns the full list of achievements for a WoW character, each marked as completed or incomplete. Merges the static achievement catalog with the player's completion data. The response includes category hierarchy (category, subcategory, group), expansion derivation, and summary counts. Large response (~8500 achievements).
| Param | Type | Description |
|---|---|---|
| realmrequired | string | WoW realm/server name in lowercase (e.g. detheroc, area-52). |
| region | string | WoW region code (e.g. us, eu, kr, tw). |
| characterrequired | string | Character name in lowercase (e.g. tophat). |
{
"type": "object",
"fields": {
"realm": "string — realm name",
"region": "string — WoW region",
"character": "string — character name",
"achievements": "array of achievement objects with id, title, points, icon, completed (boolean), category, subcategory, group, and expansion",
"completed_count": "integer — number of completed achievements",
"incomplete_count": "integer — number of incomplete achievements",
"total_achievements": "integer — total number of achievements in catalog"
},
"sample": {
"data": {
"realm": "detheroc",
"region": "us",
"character": "tophat",
"achievements": [
{
"id": 6,
"icon": "Achievement_Level_10",
"group": "Level",
"title": "Level 10",
"points": 10,
"category": "Characters",
"completed": true,
"subcategory": "Characters"
},
{
"id": 62297,
"icon": "inv_knife_1h_ulatekfang_d_01_poison",
"group": "Zones",
"title": "The Curse of Ula'tek",
"points": 10,
"category": "Quests",
"completed": false,
"subcategory": "Midnight"
}
],
"completed_count": 3663,
"incomplete_count": 4862,
"total_achievements": 8525
},
"status": "success"
}
}About the SimpleArmory API
Achievement Data
The get_achievements endpoint accepts three parameters: character (required), realm (required), and region (optional, e.g. us, eu, kr, tw). It returns a flat array of achievement objects, each carrying id, title, points, icon, a completed boolean, and three levels of categorization — category, subcategory, and group. An expansion field identifies which WoW expansion each achievement belongs to. Summary fields at the response root — completed_count, incomplete_count, and total_achievements — give an immediate snapshot of a character's progress without iterating the full array.
Collectibles Data
The get_collectibles endpoint uses the same character, realm, and region inputs. It returns a categories array whose entries each map to a collectible type (mounts, pets, or toys). Each category object includes total, collected_count, uncollected_count, and an items array with per-item collected status. The response is large — 4,000+ items across all categories — so callers should plan for payload size when building client-side rendering or caching layers.
Coverage and Identifiers
Both endpoints normalize character and realm names to lowercase, matching SimpleArmory's URL convention (e.g. tophat on detheroc). The achievement catalog is merged with live completion data, meaning the completed flag reflects the character's actual state rather than a static list. Region support spans the four standard WoW regions: US, EU, KR, and TW.
The SimpleArmory API is a managed, monitored endpoint for simplearmory.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when simplearmory.com 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 simplearmory.com 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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Display a WoW character's achievement progress dashboard, broken down by category and expansion.
- Build a checklist tool that filters incomplete achievements by subcategory or group for targeted farming.
- Track mount, pet, and toy collection percentages for a character profile page.
- Compare collectible completion rates between multiple characters across different realms.
- Generate achievement point totals and completion ratios for a guild roster.
- Surface uncollected mounts or pets filtered by a specific collectible category.
- Power a WoW progress tracker that alerts users when new achievements in a specific group remain incomplete.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does SimpleArmory have an official developer API?+
What does the `completed` field in `get_achievements` actually represent?+
completed boolean that reflects whether the specified character has earned that achievement. The response merges the full static achievement catalog with the character's completion data, so every achievement in the catalog appears in the array regardless of completion state.Does `get_collectibles` return data for all three collectible types in one call?+
get_collectibles returns mounts, pets, and toys together inside the categories array. Each category entry includes its own collected_count, uncollected_count, and full items array. There is no parameter to request a single collectible type in isolation. You can fork this API on Parse and revise it to add a filtered endpoint if you only need one collectible type.Does the API expose achievement criteria, description text, or progress toward partially completed achievements?+
get_achievements endpoint returns id, title, points, icon, completed, category fields, and expansion, but does not include criteria text, step-by-step progress, or partial completion data. You can fork this API on Parse and revise it to add those fields if SimpleArmory exposes them for the character.Are there any characters or realms the API cannot return data for?+
us, eu, kr, and tw — Chinese (CN) region characters are not currently included. You can fork this API on Parse and revise it if CN region support becomes a requirement.