OSRS Grand Exchange Prices Scraper
parseforge/osrs-grand-exchange-prices-scraper
Developer toolsE-commerceOther
Scrapes OSRS Grand Exchange item prices and metadata. Returns insta-buy, insta-sell, high alch value, margin, and members status for single items or bulk lists.
- Total users
- 2
- Monthly active
- 1
- Total runs
- 86
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 12 days ago
Overview
OSRS Grand Exchange Prices Scraper
Scrape OSRS Grand Exchange prices for any item, or list thousands of items in one run. Each row includes the latest insta-buy and insta-sell price, high alch value, margin, and members status. No login or API key. Export to CSV, JSON, Excel, or XML.
The OSRS Grand Exchange is the central marketplace for Old School RuneScape, but its official website offers no bulk export and no API for price history. This Actor reads the public Grand Exchange item database directly, so you can pull live prices for a single item by name or ID, or list up to a million items filtered by name, members status, and liquidity. Every result comes back in one flat schema, ready for spreadsheets, dashboards, or your own trading tools.
| Who uses it | What they scrape OSRS Grand Exchange for |
|---|---|
| RuneScape merchants | Find items with the highest flip margins right now |
| Price tracking websites | Keep their OSRS price tables fresh without manual entry |
| Data analysts | Build historical price datasets for market research |
| Discord bot developers | Power price lookup commands for their communities |
| Ironman players | Check high alch values to plan their money-making |
What it does
This Actor collects OSRS Grand Exchange item prices and metadata, returning each item as a flat row with insta-buy, insta-sell, high alch value, margin, and members status.
- ๐ Single item lookup: fetch one item by exact or partial name, or by its numeric Grand Exchange ID.
- ๐ Bulk listing: pull up to 1,000,000 items in one run, sorted by value, margin, insta-buy price, or name.
- ๐งน Name filter: keep only items whose name contains a keyword like "rune" or "dragon".
- ๐ฅ Members filter: restrict results to members-only, free-to-play, or all items.
- ๐ง Liquidity filter: skip items with no recent insta-buy and insta-sell price to avoid illiquid junk.
- ๐ Sort options: order by high alch value, margin, insta-buy price, or name before the item limit is applied.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with OSRS Grand Exchange data
๐ฐ Find profitable flips.
A merchant lists all items sorted by margin, filters to only priced items, and gets a shortlist of the best flips to buy and resell today.
๐ Track price trends.
A price tracking site runs the Actor daily for a set of item IDs and stores the insta-buy and insta-sell prices to build historical charts.
๐ค Power a Discord bot.
A developer uses the single item lookup by name to let users type !price abyssal whip and get the current Grand Exchange price in chat.
๐งฎ Plan high alch profits.
An Ironman lists all free-to-play items, filters by name, and sorts by high alch value to find the best items to alch for gold.
๐ Build a market dataset.
A data analyst pulls the full item list with members and liquidity filters, then joins it with trade volume data to model the OSRS economy.
Why choose this scraper
| What you get | |
|---|---|
| Live insta-buy and insta-sell prices | The exact prices you would pay or receive right now, not a guide price |
| High alch value included | Know the alchemy profit for every item without a second lookup |
| Margin and sort options | Sort by margin to spot the best flips instantly |
| Members and liquidity filters | Clean datasets with only the items that matter to you |
| Up to 1,000,000 items per run | Pull the entire Grand Exchange catalog in one go |
How it compares
No other Store actor targets OSRS Grand Exchange the same way, so the honest comparison is with the alternatives teams actually weigh.
| OSRS Grand Exchange Prices Scraper | Build it in-house | By hand | |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When OSRS Grand Exchange changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |
Configure the run
Drive the Actor with a single item name or ID, or leave both empty to list items. Filters apply only when listing, and they run before the item limit so your dataset contains only what you asked for. The Input tab lists every parameter.
A first run with the defaults:
{
"maxItems": 10
}
A larger pull:
{
"maxItems": 200
}
Pricing
Pay-per-result: $0.003 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $0.30 |
| 1,000 results | $3.00 |
| 10,000 results | $30.00 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the OSRS Grand Exchange Prices Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to OSRS Grand Exchange through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/osrs-grand-exchange-prices-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check your filters. If Only Items With Live Prices is enabled, many illiquid items are skipped. Also make sure your Name Filter is not too restrictive and that Item Name or Item ID is not set when you want to list items.
Why does my single item lookup return the wrong item?
If you set both Item Name and Item ID, the ID wins. Use the exact numeric ID to be sure, or use a more specific name.
Why are some items missing prices?
Some items have no recent trades and therefore no insta-buy or insta-sell price. Disable Only Items With Live Prices to include them, but expect empty price fields.
How do I get more than 10 items?
Increase the Maximum items field. The default is 10, but you can set it up to 1,000,000.
Can I run this on a schedule?
Yes, use Apify's scheduler to run the Actor daily or hourly. Combine it with a webhook or integration to push data to your own system.
FAQ
| Question | Answer |
|---|---|
| Do I need an API key or login? | No. The Actor reads the public Grand Exchange item database directly, so you only need an Apify account to run it. |
| How do I get prices for a single item? | Set the Item Name field to a partial or exact name like "Abyssal whip", or set the Item ID to its numeric ID like 4151. If both are set, Item ID wins. |
| Can I list all items on the Grand Exchange? | Yes. Leave Item Name and Item ID empty, set Maximum items to a high number like 1000000, and the Actor will list items according to your filters and sort order. |
| What does "Only Items With Live Prices" do? | When enabled, the Actor skips items that have no recent insta-buy and insta-sell price. This removes illiquid items that would clutter your dataset. |
| How do I filter by item name? | Use the Name Filter field when listing items. It keeps only items whose name contains your text, case insensitive, for example "rune" or "dragon". |
| Can I get only members or free-to-play items? | Yes, set the Members Filter to "Members only" or "Free-to-play only". The default is "All items". |
| What is the difference between insta-buy and insta-sell price? | Insta-buy is the price you pay to buy instantly, insta-sell is the price you get when selling instantly. The difference is the margin, which is included in the output. |
| How are items sorted when listing? | Use the Sort Listed Items By field. You can sort by high alch value, margin, insta-buy price, or name, all before the item limit is applied. |
| What output formats are supported? | The Actor returns data in JSON, and you can export the dataset to CSV, JSON, Excel, or XML from the Apify platform. |
| Is the data real-time? | The Actor fetches the latest prices from the Grand Exchange at the time of the run. Prices change frequently, so run it whenever you need fresh data. |
Related actors
Browse the full ParseForge collection for more scrapers.
๐ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
โ ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Jagex Ltd. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| itemName | string | Look up a single item by its exact or partial name (case insensitive), for example "Abyssal whip". Leave empty to list items. | not set |
| itemId | integer | Look up a single item by its numeric Grand Exchange item ID, for example 4151 for Abyssal whip. Leave empty to list items. | not set |
| maxItems | integer | How many items to collect per run. | 10 |
| nameFilter | string | When listing items, keep only those whose name contains this text (case insensitive), for example "rune" or "dragon". | not set |
| membersOnly | string (3 options) | Restrict listed items to members-only items, free-to-play items, or all items. | any |
| onlyPriced | boolean | When listing items, skip items that have no recent insta-buy and insta-sell price. Keeps the output clean of illiquid items. | true |
| sortBy | string (4 options) | Order used when listing items before applying the item limit. | value |
Pricing
from $1.00 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| result | Single result in the default dataset. | $0.001 to $0.003 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~osrs-grand-exchange-prices-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
Related scrapers
Run OSRS Grand Exchange Prices Scraper on Apify All scrapers
