BYTETOOLS

OSRS Wiki Prices API

Free Old School RuneScape Grand Exchange price API with no key: real-time high and low prices with trade timestamps for every tradeable item. Tested example included.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the OSRS Wiki Prices API?

The OSRS Wiki Prices API is a free, key-free API returning live Grand Exchange prices for every tradeable Old School RuneScape item. Each entry gives the most recent buy and sell price with the Unix timestamp of that trade, updated continuously from in-game data.

This API is run by the Old School RuneScape Wiki and is the data source most price-tracking sites and flipping tools sit on top of. It reports actual trade prices rather than the Grand Exchange's own guide price, which lags badly on volatile items — that difference is precisely why serious tooling uses it.

The `/latest` response is a map keyed by item id, not an array, so lookups are constant-time once you have the payload. The `high` and `low` pair is the last instant-buy and last instant-sell, and the accompanying `highTime` and `lowTime` timestamps matter — an item that last traded three days ago has a stale price no matter how good the number looks. The Wiki asks that you send a descriptive User-Agent identifying your project.

Quick facts

Base URL
https://prices.runescape.wiki/api/v1/osrs
Authentication
No key. The Wiki does ask for a descriptive User-Agent naming your project and a contact, and reserves the right to block anonymous scrapers.
Rate limit
No hard limit published. Data refreshes roughly every minute, so polling faster than that gains nothing.
Pricing
Free, run by the OSRS Wiki community.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the OSRS Wiki Prices API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Fetch the latest Grand Exchange prices for every item

GET https://prices.runescape.wiki/api/v1/osrs/latest

curl
curl 'https://prices.runescape.wiki/api/v1/osrs/latest'
JavaScript (fetch)
const res = await fetch("https://prices.runescape.wiki/api/v1/osrs/latest");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://prices.runescape.wiki/api/v1/osrs/latest", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "data": {
    "2": {
      "high": 243,
      "highTime": 1787288997,
      "low": 235,
      "lowTime": 1787288997
    },
    "6": {
      "high": 208644,
      "highTime": 1787285710,
      "low": 199654,
      "lowTime": 1787287919
    },
    "8": {
      "high": 187000,
      "highTime": 1787285736,
      "low": 180000,
      "lowTime": 1787287926
    },
    "10": {
      "high": 166630,
      "highTime": 1787287643,
      "low": 166630,
      "lowTime": 1787287935
    },
    "12": {
      "high": 208765,
      "highTime": 1787285757,
      "low": 195000,
      "lowTime": 1787288138
    },
    "28": {
      "high": 327,
      "highTime": 1787284279,
      "low": 325,
      "lowTime": 1787288029
    },
    "30": {
      "high": 384,
      "highTime": 1787288335,
      "low": 413,
      "lowTime": 1787275862
    },
    "36": {
      "high": 649,
      "highTime": 1787289012,
      "low": 401,
      "lowTime": 1787287956
    },
    "39": {
      "high": 7,
      "highTime": 1787287559,
      "low": 5,
      "lowTime": 1787288856
    },
    "40": {
      "high": 10,
      "highTime": 1787288756,
      "low": 7,
      "lowTime": 1787285904
    },
    "41": {
      "high": 35,
      "highTime": 1787289002,
      "low": 35,
      "lowTime": 1787289015
    },
    "42": {
      "high": 77,
      "highTime": 1787288910,
      "low": 65,
      "lowTime": 1787289005
    },
    "43": {
      "high": 102,
      "highTime": 1787288652,
      "low": 96,
      "lowTime": 1787288874
    },
    "44": {
      "high": 252,
      "highTime": 1787288386,
      "low": 250,
      "lowTime":

Parameters

ParameterTypeRequiredDescription
idqueryOptionalRestrict `/latest` to a single item id instead of returning the whole map. 4151
timestepqueryOptionalFor the `/5m`, `/1h`, `/6h` and `/24h` endpoints, the averaging window. 5m
timestampqueryOptionalFetch a historical window rather than the most recent one. Unix seconds, aligned to the timestep. 1787280000

Response fields

dataobject
Map of item id (as a string key) to that item's price record. Not an array — index it directly by id.
data.{id}.highinteger
Price in coins of the most recent instant-buy — what you pay to buy immediately.
data.{id}.highTimeinteger
Unix timestamp in seconds of that buy. Check it: a price from days ago is not a current price.
data.{id}.lowinteger
Price of the most recent instant-sell — what you receive selling immediately.
data.{id}.lowTimeinteger
Unix timestamp of that sell.

What you can build with the OSRS Wiki Prices API

  • Build a Grand Exchange price tracker or flipping-margin calculator
  • Alert a Discord server when an item crosses a price threshold
  • Value a player's bank or inventory from item ids
  • Chart price history for an item using the 5-minute and hourly endpoints

Common errors and how to fix them

400

Malformed `timestamp` or an unsupported timestep.

Fix: Timestamps must be Unix seconds aligned to the timestep boundary — round down to the nearest 5 minutes for `/5m`.

403

Blocked for sending a generic or missing User-Agent.

Fix: Send a header identifying your project and a contact address, as the Wiki requests.

Missing item

Not every item appears in `/latest`.

Fix: Items with no recent trades are simply absent from the map. Treat a missing key as no recent price, not as an error.

OSRS Wiki Prices API — frequently asked questions

Is the OSRS Grand Exchange price API free?

Yes, it is free with no API key. It is operated by the Old School RuneScape Wiki, which asks only that you send a descriptive User-Agent header naming your project so they can contact you if it misbehaves.

What is the difference between high and low prices?

`high` is the most recent instant-buy price — what a player paid to buy immediately — and `low` is the most recent instant-sell. The gap between them is the flipping margin, before the Grand Exchange tax.

How often do OSRS prices update?

Roughly once a minute for the `/latest` endpoint. Averaged endpoints exist at 5-minute, 1-hour, 6-hour and 24-hour resolutions, and those are the ones to use for charts, since single trades can be outliers.

How do I map item ids to names?

The prices API returns ids only. Fetch the companion `/mapping` endpoint once and cache it — it maps every id to its name, examine text, members flag, buy limit and high-alch value.

Tools that pair with this API

OSRS Wiki Prices is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.