RS3 · For tool makers

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.

Jagex's documentation is the authorityEverything in the first six sections is from developer.runescape.com, read on 15 November 2026. If it and this page ever disagree, it is right. The Codex is an unofficial fan site.

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, text and details. type is new: Jagex's internal name for the kind of event.
  • date is 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 skills as an object keyed by Jagex's lower-case skill name (attack, defence, ... necromancy), each with level and fine_xp. Jagex defines fine_xp as the XP multiplied by 10, so do not read it as the old xp field.
  • Index Lite returns name, a skills array (id, name, rank, level, xp) and an activities array (id, name, rank, score). Jagex warns that id is not guaranteed to stay the same over time, so match on name.

Quests are keyed by id

  • The quest list is now an object keyed by Jagex's internal numeric quest id, not an array.
  • questPoints is now qp, and userEligible is now eligible.
  • Each quest has title, difficulty, members, qp, eligible and status, which is one of NOT_STARTED, STARTED or COMPLETED.
  • The answer's top level carries qp and qp_max. Jagex notes that adding up qp over 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 text and details, and RuneMetrics' date was the same moment cut to the minute. Converting the new date to 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 qp is read as questPoints and eligible as userEligible. Player Quests and Player Data's quests were 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 includeSkills nor includeQuests got a 400 with an HTML page when we tried it on 12 November 2026, not the JSON error the docs describe.
  • fine_xp and 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

For players rather than tool makers: what still works now RuneMetrics has closed.