mlbb APImlbb.io ↗
Access Mobile Legends hero tier lists, win/pick/ban rates, item builds, emblem data, and hero overviews via the mlbb.io API. 8 endpoints.
What is the mlbb API?
The mlbb.io API covers 8 endpoints returning Mobile Legends hero statistics, tier rankings, item data, and emblem details sourced from mlbb.io. Use get_hero_tier_list to fetch the full SS-through-D tier ranking with optional role and lane filters, or get_hero_overview to pull per-hero skill descriptions, counter matchups, synergies, and win/pick/ban rates across multiple rank brackets.
curl -X GET 'https://api.parse.bot/scraper/574cbcf8-811b-4ed8-8128-c5e9a39efcc8/get_hero_tier_list?lane=Exp+Lane&role=Tank' \ -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 mlbb-io-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.
"""MLBB.io Hero Stats — discover top heroes, drill into details and builds."""
from parse_apis.mlbb_io_hero_stats_api import MLBB, Role, Lane, Rank, Timeframe, HeroNotFound
client = MLBB()
# List top-tier Tank heroes by role filter
for hero in client.herosummaries.list(role=Role.TANK, limit=3):
print(hero.hero_name, hero.tier, hero.score)
# Get the strongest hero overall and drill into full detail
top = client.herosummaries.top(limit=1).first()
if top:
detail = top.details()
print(detail.hero_name, detail.tier, detail.score)
for stat in detail.statistics[:2]:
print(stat.rank_name, stat.win_rate, stat.pick_rate)
# Browse community builds for that hero
for build in detail.builds.list(limit=2):
print(build.username, build.battle_spell, build.likes_count)
# Search heroes by name keyword
match = client.herosummaries.search(query="Harley", limit=1).first()
if match:
print(match.hero_name, match.tier)
# Fetch hero statistics filtered by rank and timeframe
for stat in client.herostatistics.list(rank_id=Rank.MYTHIC, timeframe_id=Timeframe.PAST_7_DAYS, limit=3):
print(stat.hero_name, stat.win_rate, stat.ban_rate)
# Typed error handling for a missing hero
try:
client.heros.get(hero_name="NonExistentHero999")
except HeroNotFound as exc:
print(f"Hero not found: {exc.hero_name}")
# Browse game items
for item in client.items.list(limit=3):
print(item.name, item.category, item.price_total)
# Fetch emblem catalog
catalog = client.emblemcatalogs.fetch()
print(len(catalog.main_emblems), "main emblems,", len(catalog.ability_emblems), "ability emblems")
print("exercised: herosummaries.list / .top / .search / .details / builds.list / herostatistics.list / heros.get / items.list / emblemcatalogs.fetch")
Retrieve the full hero tier list ranked by tier (SS through D). Supports filtering by role and lane. Returns all heroes with their scores, roles, lanes, and tier rankings. The list is pre-sorted by tier priority then score descending.
| Param | Type | Description |
|---|---|---|
| lane | string | Filter by lane. Accepted values: Exp Lane, Gold Lane, Mid Lane, Roam, Jungle. |
| role | string | Filter by role. Accepted values: Tank, Fighter, Mage, Assassin, Marksman, Support. |
{
"type": "object",
"fields": {
"heroes": "array of hero summary objects with hero_id, hero_name, img_src, role, lane, speciality, tier, and score",
"lastUpdated": "ISO 8601 timestamp of last data update"
},
"sample": {
"data": {
"heroes": [
{
"lane": [
"Roam",
"Exp Lane"
],
"role": [
"Tank"
],
"tier": "SS",
"score": 1183.49,
"hero_id": 104,
"img_src": "https://akmweb.youngjoygame.com/web/svnres/img/mlbb/homepage_1_9_642/100_c472fe0233e5ef84a3ac9ba4a229d09f.png",
"hero_name": "Gloo",
"speciality": [
"Regen",
"Control"
]
}
],
"lastUpdated": "2026-06-10T21:03:55.000Z"
},
"status": "success"
}
}About the mlbb API
Hero Tiers and Statistics
get_hero_tier_list returns every ranked hero with fields including hero_id, hero_name, role, lane, speciality, tier (SS, S, A, B, C, D), and a numeric score, plus a lastUpdated ISO 8601 timestamp. You can filter by lane (Exp Lane, Gold Lane, Mid Lane, Roam, Jungle) or role (Tank, Fighter, Mage, Assassin, Marksman, Support). get_top_heroes accepts a limit integer and returns heroes sorted by score descending — useful for quickly identifying the current top-performing picks. get_hero_statistics exposes aggregate pick_rate, win_rate, and ban_rate for all heroes and accepts a rank_id (1=All, 2=Mythic, 3=Legend, 4=Epic) and timeframe_id (past 1, 3, or 7 days).
Per-Hero Detail
get_hero_overview returns a single hero's complete profile: tier and score, a skills array with name, type, description, and scaling per skill, plus counters, weakAgainst, and synergies arrays listing relevant matchup heroes. A statistics array breaks down pick_rate, win_rate, and ban_rate across rank and timeframe combinations. get_hero_builds returns community builds for a named hero — each build object includes build_id, username, the hero's items (as an array of item IDs), emblems, battle_spell, description, and likes_co.
Items and Emblems
get_item_list returns the full item catalog with fields covering id, name, category, stat attributes (physical_attack, magic_power, hp, and others), passive_name, and passive_des. get_emblem_list splits its response into main_emblems (id, name, img_src, attributes) and ability_emblems (id, name, benefits, description, cooldown, img_src, section). These two endpoints give you enough data to resolve item IDs returned by get_hero_builds into full item details.
Search
search_heroes accepts a query string and returns matching hero objects with id, hero_name, img_src, role, lane, speciality, and tier. Input is case-insensitive in practice but the hero name parameters in other endpoints (like get_hero_overview) are documented as case-sensitive, so use exact casing when fetching detail pages.
The mlbb API is a managed, monitored endpoint for mlbb.io — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when mlbb.io 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 mlbb.io 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?+
- Build a tier list viewer that filters Mobile Legends heroes by role and lane using get_hero_tier_list.
- Track meta shifts by polling get_hero_statistics daily for Mythic-rank win and ban rate changes.
- Display hero counters and synergy recommendations in a draft-assist tool using get_hero_overview.
- Resolve item IDs from get_hero_builds to full item stats by cross-referencing get_item_list.
- Populate an emblem guide by fetching ability emblem cooldowns and benefits from get_emblem_list.
- Surface the top 10 heroes by score in a weekly newsletter using get_top_heroes with limit=10.
- Add hero autocomplete search to a companion app using search_heroes with partial name queries.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 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.