- RS:PRICES
- RS:REALTIME
We've partnered with RuneLite to bring real-time Grand Exchange prices to the wiki. You can check an item's current prices by clicking the View Real-time Prices on any item article.
We're also sharing the real-time pricing APIs with the community, in the hope that people will use the data for interesting projects and community-facing tools.
Discord channel
If you're planning to use this for some sort of real-time pipeline, please come talk to us in the #api-discussion channel on our Discord so we can keep you informed about future changes and maintenance.
If you react to the message in the #welcome, you'll be able to see the #api-discussion channel.
Acceptable use policy
Within reason, we want people to use these APIs as much as they need to build cool projects and tools. We do not explicitly ratelimit any of the endpoints, and we do our best to cache the responses at multiple levels.
However, we reserve the right to limit access to anyone, if their usage is so frequent that it threatens the stability of the entire API. We don't know where that line is right now, but for Grand Exchange prices, it would probably have to be multiple large queries per second for a sustained period. If we end up blocking your tool, feel free to reach out on Discord and we'll see if there's a better solution for what you're doing.
Please set a descriptive User-Agent!
This is the only thing we ask! If you're using automated tooling to scrape the wiki's APIs, please set a User-Agent that describes what you're using it for, and if you're willing, some sort of contact info (like an email or Discord).
This helps us understand what people are using the APIs for, and helps us reach out in advance if there are any breaking changes coming, or your usage is problematic (or can be improved using bulk modules).
We currently pre-emptively block the following user-agents, and may add more:
- python-requests
- Python-urllib
- Apache-HttpClient
- RestSharp
- Java/{version}
- curl/{version}
See here for how to change the User-Agent in python-requests, which seems to be the dominant tool people are using
An awesome example of a User-Agent would be something like "volume_tracker - @ThisIsMyUsername on Discord".
Note this does not at all mean you can't use the python-requests library or similar, but we just ask that you set a user-agent in your code.
Routes
All prices returned by the API may exceed what can be supported by 32 bit integers. Average prices may include decimal points.
- API endpoint:
prices.runescape.wiki/api/v2/osrs
Latest price (all items)
/latest
Get the latest high and low prices for the items that we have data for, and the Unix timestamp when that transaction took place.
Map from itemId (see here for a reference) to an object of {high, highTime, low, lowTime}. If we've never seen an item traded, it won't be in the response. If we've never seen an instant-buy price, then high and highTime will be null (and similarly for low and lowTime if we've never seen an instant-sell).
Query parameters
id- (optional) Item ID. If provided, will only display the latest price for this item. Example: Abyssal whip
There's almost no scenario where you should be using the id parameter to loop over every item. If you need to get all 3700 item prices, don't hit us with 3700 API requests – just don't use the id parameter. It will result in about 100 times less resources used on both your side and ours.
Mapping
/mapping
Gives a list of objects containing the name, id, examine text, members status, lowalch, highalch, GE buy limit, value, icon file name (on the wiki).
[
{"examine":"Fabulously ancient mage protection enchanted in the 3rd Age.","id":10344,"members":true,"lowalch":20200,"limit":8,"value":50500,"highalch":30300,"icon":"3rd Age amulet.png","name":"3rd Age amulet"},
...,
{"examine":"A powerful staff.","id":22647,"members":true,"lowalch":120000,"limit":10,"value":300000,"highalch":180000,"icon":"Zuriel's staff.png","name":"Zuriel's staff"}
]
5-minute prices
/5m
Gives 5-minute average of item high and low prices as well as the number traded for the items that we have data on. Comes with a Unix timestamp indicating the 5 minute block the data is from.
Query parameters
timestamp- (optional) Timestep to return prices for. If provided, will display 5-minute averages for all items we have data on for this time. Thetimestampfield represents the beginning of the 5-minute period being averaged. Example: [1]
1-hour prices
/1h
Gives hourly average of item high and low prices, and the number traded.
Query parameters
timestamp- (optional) Timestep to return prices for. If provided, will display 1-hour averages for all items we have data on for this time. Thetimestampfield represents the beginning of the 1-hour period being averaged. Example: [2]
Time-series
/timeseries
Gives a list of the high and low prices of item with the given id for the given lookback period. The timestep returned is NOT guaranteed by this API and may change with no prior warning. This endpoint will give you the start and end time of the lookback, as well as the timestep in seconds, in its response.
Query parameters
id- (required) Item id to return a time-series for.lookback- (required) Lookback for the time-series. Valid options are'6h', '24h', '7d', '30d', '6m', '1y'.
Example: [3]