Moving from RuneMetrics to the Platform API
Published · checked against Jagex's documentation on
Jagex switched off the RuneMetrics endpoints on 10 November 2026. Its replacement, the RuneScape Platform API, launched its documentation site on 4 November 2026. This page is for people who make RS3 tools, bots and sites: it maps each RuneMetrics endpoint to its replacement and lists what changed in the answers, from Jagex's own documentation. The last section is what The Codex found when it moved over, marked as our own observations.
What closed
Jagex's migration page names three RuneMetrics endpoints, and says every
endpoint under apps.runescape.com/runemetrics/ goes offline on 10 November
2026:
- Profile:
https://apps.runescape.com/runemetrics/profile/profile?user=NAME&activities=20 - Quests:
https://apps.runescape.com/runemetrics/quests?user=NAME - Monthly XP:
https://apps.runescape.com/runemetrics/xp-monthly?searchName=NAME&skillid=ID
Where each one went
The new endpoints are in two modules. The Adventurer's Log module has the
base address https://secure.runescape.com/m=adventurers-log/ and three
endpoints: Player Events (/api/v1/playerEvents), Player Data
(/api/v1/playerData) and Player Quests (/api/v1/playerQuests). The
Hiscores module's Index Lite endpoint is at
https://secure.runescape.com/m=hiscore/index_lite.json.
| RuneMetrics gave you | Use now | Notes |
|---|---|---|
| Profile: recent activities | m=adventurers-log/api/v1/playerEvents/NAME |
The 20 most recent events, newest first. |
| Profile: skill levels and XP | m=adventurers-log/api/v1/playerData/NAME?includeSkills=true |
Or the Hiscores (below), which Jagex recommends for skills unless you need faster updates. |
| Profile: skill ranks | m=hiscore/index_lite.json?player=NAME |
Ranks come from the Hiscores only. |
| Profile: quest counts | Work them out from Player Data's quests | questsstarted, questscomplete and questsnotstarted are no longer listed directly. |
| Quests | m=adventurers-log/api/v1/playerData/NAME?includeQuests=true |
Player Quests (/api/v1/playerQuests/NAME) is the same as Player Data with ?includeQuests=true. |
| Monthly XP | Nothing | Jagex: "There is currently no direct replacement for this." |
The Adventurer's Log module covers the main RuneScape game only, not special
game modes such as Leagues, and not Old School. For the Hiscores, Jagex's
Index Lite page says other instances use the same address with hiscore
replaced by the instance's name.
Players are still asked for by display name. Jagex's Concepts page says a name is 1 to 12 characters, is not case-sensitive, and treats spaces and underscores as the same, and that Jagex does not at the moment provide a unique id for a character.
What changed in the answers
Activities become events
- Each event has
type,date,textanddetails.typeis new: Jagex's internal name for the kind of event. dateis ISO 8601 with a time zone.- The answer is
{ name, events: [...] }, sorted newest to oldest. - Some older event types are listed as deprecated but may still appear for players who have not been active since.
Skills are split in two
RuneMetrics' skillvalues array (level, XP, rank and id for each skill) is gone.
Rank comes from the Hiscores; level and XP come from Player Data.
- Player Data returns
skillsas an object keyed by Jagex's lower-case skill name (attack,defence, ...necromancy), each withlevelandfine_xp. Jagex definesfine_xpas the XP multiplied by 10, so do not read it as the oldxpfield. - Index Lite returns
name, askillsarray (id,name,rank,level,xp) and anactivitiesarray (id,name,rank,score). Jagex warns thatidis not guaranteed to stay the same over time, so match onname.
Quests are keyed by id
- The quest list is now an object keyed by Jagex's internal numeric quest id, not an array.
questPointsis nowqp, anduserEligibleis noweligible.- Each quest has
title,difficulty,members,qp,eligibleandstatus, which is one ofNOT_STARTED,STARTEDorCOMPLETED. - The answer's top level carries
qpandqp_max. Jagex notes that adding upqpover completed quests does not work in every case, and names the special cases (Sheep Shearer, Myths of the White Lands, Dimension of Disaster).
Errors are JSON
Jagex says the Adventurer's Log endpoints always return JSON, even when they
fail, as {"error": "CODE"}. The codes it lists:
PLAYER_NOT_FOUND(404): the player does not exist, or is otherwise hidden from public view.PLAYER_NOT_MEMBER: still in the error table, although the Player Events page says the membership requirement was removed on 6 November 2026.NO_DATA_TYPES_SPECIFIED: a Player Data request that asked for no data type.INTERNAL_ERROR.
Index Lite answers 404 for a player it does not have and 500 for other internal errors.
Freshness
- Jagex caches Adventurer's Log answers, so new data may not be returned for up to 10 minutes.
- Player Data syncs when a player logs out, hops worlds, and at semi-regular intervals during play.
- Kills and level-ups can be batched: 30 Kalphite Queen kills can arrive as one 30-kill event, dated when the batch was added.
- The Hiscores update within a couple of seconds of a logout, a world hop or a player losing eligibility for an instance. Jagex's Player Data page says Index Lite updates slightly less often than Player Data but responds faster.
- The Hiscores rank the top 2,000,000 players in each table. Players below that keep their values but have no rank.
Privacy
Jagex's migration page says the Adventurer's Log privacy options are not enforced by the new API, and that the relevant pages will be removed. Players can hide their activity in game instead, under Settings, Gameplay, Chat & Social, RuneMetrics Event Log. Jagex notes those changes are not retroactive.
So a player who was "private" on RuneMetrics can now appear in Player Events. If your tool promised people a way to stay hidden, that promise now has to be kept by your own code.
Rate limits and good manners
Jagex publishes no numbers. Its migration page says the new endpoints "do not have the same aggressive rate limits" as RuneMetrics, and that it may introduce stricter limits on Player Data in future, though not as strict as RuneMetrics Profile. Its Best practices page asks you to:
- Identify yourself with a User-Agent that says what your application is and ideally how to reach you, not a browser string or a library's default.
- Cache on your side when several of your users ask for the same thing, instead of making identical requests in quick succession.
- Respect rate limits and throttling and not try to get round them.
- Use the APIs, not the HTML pages, and tell Jagex what is missing. Feedback goes to the Platform API section of the RuneScape Plugin Discord.
Jagex's pages describe no API key, sign-in or registration for these endpoints.
What The Codex found in practice
These are our own observations from moving The Codex over between 4 and 12 November 2026, not Jagex's documentation. They may stop being true.
- No key. Our requests are plain GETs with an identifying User-Agent, and nothing else.
- About 1.3 to 2.6 seconds a request from our server, with no rate-limit headers on the answers. So we read the Platform API after a player's HiScores reading is saved, never in front of it, and only ask for events when the player's total XP has risen since our last reading.
- The events are RuneMetrics' activities. Read side by side in the same
minute for the same player, the 20 lines matched RuneMetrics' feed word for
word in
textanddetails, and RuneMetrics' date was the same moment cut to the minute. Converting the newdateto the old format was enough for our feed code to read it unchanged. - The quests matched too. The same 366 titles as RuneMetrics' list, with
every field equal once
qpis read asquestPointsandeligibleasuserEligible. Player Quests and Player Data'squestswere identical key for key, so one parser reads both. We use Player Data and keep Player Quests only as a fallback for when Player Data looks broken, never after a 429, a 403 or a 5xx, which mean busy or refused, not gone. - Ask for at least one data type. A Player Data request with neither
includeSkillsnorincludeQuestsgot a 400 with an HTML page when we tried it on 12 November 2026, not the JSON error the docs describe. fine_xpand the Hiscores agree. For every skill we compared,floor(fine_xp / 10)was the Hiscores' whole XP and the levels matched, and the Hiscores' overall XP was the sum of those floored numbers, not of the tenths.- Do not mix the two into one history. Player Data can be ahead of the Hiscores during play, and the Hiscores ahead of Player Data for up to 10 minutes after a hop. Mixing both into one XP history can make a gain look negative or count the same XP twice. We store Hiscores readings only.
- Free accounts get old events. Since 6 November 2026, a free-to-play player's events are the 20 they logged while they were a member, which can be years old. Check the date before announcing a "new" drop.
- Trust the top-level
qp. It is worked out in game, so we use it rather than adding up quests, as Jagex advises. - We pace ourselves. Jagex gives no figure, so The Codex keeps its Platform API requests to six a minute, the rate RuneMetrics let through from one address before refusing when we measured it in October 2026. A full minute only means the next ask waits.
Sources
- Migrating from RuneMetrics
- Adventurer's Log, the module, its endpoints and error codes
- Player Events API
- Player Data API
- Player Quests API
- Hiscores and Index Lite
- Concepts, display names
- Best practices
- 2026 changelog
For players rather than tool makers: what still works now RuneMetrics has closed.