Warframe Market Scraper avatar

Warframe Market Scraper

Pricing

from $10.30 / 1,000 item extracteds

Go to Apify Store
Warframe Market Scraper

Warframe Market Scraper

Export current Warframe Market mod buy and sell orders with rank, platinum price, trader activity, reputation, timestamps, and price summaries.

Pricing

from $10.30 / 1,000 item extracteds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Export current public Warframe Market mod buy and sell orders as structured data. Select mods by name, catalog search, and source tags, then receive rank-aware platinum prices, quantities, trader activity, reputation, timestamps, and normalized price summaries.

The Actor is designed for repeatable Warframe mod valuation rather than manual page checking. Each dataset row is one visible marketplace order, ready for JSON, CSV, Excel, APIs, schedules, and downstream analytics.

What does Warframe Market Scraper do?

The Actor:

  • resolves exact mod names such as Serration and Primed Continuity;
  • searches the current marketplace catalog by text;
  • requires source-native tags such as mod, legendary, rare, or rifle;
  • fetches current public buy and sell orders;
  • filters orders by rank and trader activity status;
  • exports platinum price, quantity, order side, and source timestamps;
  • includes public trader reputation, platform, cross-play, and activity fields when exposed;
  • calculates rank-specific lowest and median sell prices;
  • calculates rank-specific highest and median buy prices;
  • records an observedAt timestamp for recurring snapshots.

It uses Warframe Market's public structured data surface. No game account, marketplace login, or browser automation is required.

Who is this Actor for?

Warframe traders can compare active listings before buying or selling a ranked mod.

Game-economy analysts can schedule comparable snapshots and study platinum-price spreads.

Community tool builders can feed current order rows into dashboards, Discord bots, or sheets.

Data teams can export clean marketplace records without maintaining catalog resolution, retry handling, rank grouping, or API normalization.

Choose Warframe World State API for invasions, fissures, sorties, alerts, and reference items instead of player-market orders.

Why use it instead of checking listings manually?

A marketplace page is useful for one decision. Structured runs are useful for repeated decisions. The Actor creates a stable row shape across multiple mods and makes every observation traceable.

Important differences include:

  1. exact and catalog-based mod selection in one input;
  2. the same rank, order-side, and activity filters across every selected mod;
  3. both raw order facts and a comparable rank-level summary;
  4. hard caps for predictable scheduled runs;
  5. bounded retries for temporary rate limits and upstream server errors;
  6. no automatic residential proxy or browser fallback.

What Warframe mod price data is extracted?

FieldMeaning
itemId, itemName, itemSlugStable marketplace identity and English name
itemUrl, itemTags, itemMaxRankPublic page, catalog labels, and maximum rank
orderId, orderTypeStable listing ID and buy or sell side
platinum, quantity, rankListed platinum, offered quantity, and mod rank
subtype, visibleSource subtype and visibility state
sellerName, sellerReputationPublic trader name and marketplace reputation
sellerStatus, sellerLastSeenPublic activity status and last-seen timestamp
sellerPlatform, sellerCrossplayAccount platform and cross-play indicator
sellerActivityType, sellerActivityDetailsExtra public activity fields when exposed
orderCreatedAt, orderUpdatedAtSource order timestamps
priceSummaryRank-specific counts and lowest/highest/median prices
sourceUrl, observedAtAPI provenance and run observation time

All source-dependent fields may be absent or null in future upstream responses. The complete machine-readable contract is attached to the default dataset.

How to run the Warframe Market mod price scraper

  1. Open the Actor in Apify Console.
  2. Enter one or more exact Mod names, or set a Catalog search.
  3. Keep the default mod tag unless you intentionally want another catalog class.
  4. Choose buy orders, sell orders, or both.
  5. Select trader activity statuses and optional ranks.
  6. Set mod, per-mod order, and total record caps.
  7. Click Start.
  8. Open the Dataset tab and export JSON, CSV, Excel, XML, or RSS.

A safe first run is:

{
"itemNames": ["Serration"],
"orderTypes": ["sell", "buy"],
"userStatuses": ["ingame", "online"],
"maxMods": 1,
"maxOrdersPerMod": 20,
"maxItems": 20
}

Input parameters

itemNames

An array of exact Warframe Market mod names or slugs. Matching is case-insensitive and treats underscores like spaces. Up to 50 names are accepted. If supplied, each output mod must match one of these names.

searchQuery

Optional text contained in a mod name or slug. Use at least two characters. primed discovers mods whose current catalog names include that term.

tags

Every selected catalog item must contain every supplied source-native tag. The default is ["mod"], which prevents non-mod marketplace items from entering results. Useful combinations include mod + legendary, mod + rare, and mod + rifle.

orderTypes

Choose sell, buy, or both. The default includes both sides.

userStatuses

Choose ingame, online, and/or offline. The default includes active in-game and online users. Set an empty list to retain all statuses, including offline orders.

ranks

Optional integer ranks from 0 to 20. An empty list includes every listed rank.

Result limits

  • maxMods limits selected catalog mods from 1 to 50.
  • maxOrdersPerMod limits exported matching orders for each mod from 1 to 1,000.
  • maxItems limits the entire default dataset from 1 to 5,000 rows.

The first reached limit wins. Summary counts and prices are calculated before the per-mod output cap, after order-side, activity, rank, and visibility filters.

Example output

A current row has this shape; the trader name below is anonymized:

{
"recordType": "order",
"itemId": "54a74454e779892d5e515596",
"itemName": "Serration",
"itemSlug": "serration",
"itemUrl": "https://warframe.market/items/serration",
"itemTags": ["mod", "uncommon", "rifle", "primary"],
"itemMaxRank": 10,
"orderId": "6a70b87c90780835bc384d68",
"orderType": "sell",
"platinum": 2,
"quantity": 1,
"rank": 0,
"subtype": "regular",
"visible": true,
"sellerName": "SampleTrader",
"sellerReputation": 8,
"sellerStatus": "ingame",
"sellerPlatform": "pc",
"sellerCrossplay": true,
"sellerLastSeen": "2025-01-15T12:00:00Z",
"sellerActivityType": "UNKNOWN",
"sellerActivityDetails": "unknown",
"orderCreatedAt": "2025-01-10T08:30:00Z",
"orderUpdatedAt": "2025-01-14T18:20:00Z",
"priceSummary": {
"rank": 0,
"sellOrderCount": 6,
"lowestSellPrice": 2,
"medianSellPrice": 3.5,
"buyOrderCount": 2,
"highestBuyPrice": 1,
"medianBuyPrice": 1
},
"sourceUrl": "https://api.warframe.market/v2/orders/item/serration",
"observedAt": "2025-01-15T12:05:00.000Z"
}

Prices are marketplace listings, not guaranteed completed-sale values.

Understanding normalized price summaries

priceSummary is grouped by mod and exact rank after your filters are applied. For sell orders, lower prices generally represent cheaper visible supply. For buy orders, higher prices generally represent stronger visible demand.

The summary includes:

  • matching sell and buy order counts;
  • lowest sell and highest buy platinum prices;
  • median sell and buy prices;
  • the rank shared by those orders.

The same summary is repeated on each matching row so flat CSV and spreadsheet exports remain self-contained. A missing side is represented by a zero count and null price fields.

How much does it cost to export Warframe Market mod orders?

Pricing uses pay per event: one small start event plus one item event for each order written to the default dataset. The exact current rates appear in Apify Console before you start a run.

At the current provisional BRONZE rate of $0.005 per run plus $0.017164 per order:

  • 10 orders cost about $0.17664;
  • 50 orders cost about $0.86320;
  • 100 orders cost about $1.72140.

Apify plan tiers can use different per-order rates. Limits make the maximum number of charged rows explicit. Failed, rejected, duplicate, or filtered-out source orders are not saved as results and do not receive an item event.

Recurring valuation workflows

For a comparable price watchlist:

  1. use the same itemNames, ranks, statuses, and order sides every run;
  2. keep limits high enough that truncation does not distort comparison;
  3. schedule the Actor hourly, daily, or weekly in Apify;
  4. retain observedAt, orderUpdatedAt, and orderId downstream;
  5. compare rank-specific lowest sell, highest buy, and median values;
  6. alert only after applying your own spread or volume threshold.

Apify integrations can send completed datasets to Google Sheets, webhooks, Make, Zapier, Slack, or a custom HTTP service.

Export to spreadsheets and data pipelines

From the Dataset tab, download CSV or Excel for manual analysis. For automation, consume the default dataset API and key records by orderId. observedAt identifies the snapshot while orderUpdatedAt indicates when the marketplace says a listing changed.

For historical analysis, store each run separately or append rows to your own warehouse. The Actor reports current observations; it does not maintain a hidden cross-run price-history store and does not claim that visible listings became completed trades.

Use the Actor through the Apify API

Replace APIFY_TOKEN with your token.

cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~warframe-market-mod-prices/run-sync-get-dataset-items?token=APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"itemNames":["Serration"],"maxItems":20}'

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/warframe-market-mod-prices').call({
itemNames: ['Primed Continuity', 'Blind Rage'],
ranks: [10],
maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient("APIFY_TOKEN")
run = client.actor("automation-lab/warframe-market-mod-prices").call(run_input={
"searchQuery": "primed",
"tags": ["mod", "legendary"],
"orderTypes": ["sell"],
"maxItems": 30,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

Use with Apify MCP

Add the Actor to Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/warframe-market-mod-prices"

Claude Desktop setup

Add this server to Claude Desktop's MCP configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/warframe-market-mod-prices"
}
}
}

Cursor setup

In Cursor, open Settings → Tools & MCP → Add custom MCP and use the same server URL: https://mcp.apify.com?tools=automation-lab/warframe-market-mod-prices.

VS Code setup

In VS Code with MCP support, add an HTTP MCP server named apify with that Actor-specific URL to your workspace or user MCP configuration.

Example prompts:

  • “Export active Serration buy and sell orders and compare rank 0 and rank 10 prices.”
  • “Find three legendary mods containing Primed and return the cheapest online sell orders.”
  • “Run my max-rank Primed Continuity and Blind Rage watchlist and save the dataset.”

Reliability, limits, and failure behavior

The Actor makes one catalog request plus one order request for each selected mod. Temporary HTTP 429 and server errors receive at most three bounded attempts with backoff. Network timeouts are retried within the same bound. Stable 4xx responses, malformed JSON, and changed response shapes fail the run instead of returning a misleading empty success.

The Actor intentionally has no proxy or browser fallback. This keeps runtime cost predictable while the public v2 structured source works directly. Source maintenance, rate limits, catalog changes, and marketplace outages can still affect availability.

A valid selector with no matching catalog mods returns an empty dataset and a warning. Some requested exact names matching no current tradable mod are also reported in logs.

Tips for useful results

  • Keep the default mod tag unless broad marketplace data is intentional.
  • Use exact names for stable scheduled watchlists.
  • Use search plus tags for discovery workflows.
  • Include offline users only when historical listing depth matters more than contactability.
  • Compare prices only within the same rank.
  • Use maxOrdersPerMod high enough to avoid clipping distributions.
  • Check the dataset count and Actor logs when a query naturally has no active listings.
  • Treat public user activity as transient marketplace metadata, not proof of availability.

Responsible use and legality

This Actor reads public marketplace catalog and order data. Use it in accordance with Warframe Market terms, Apify policies, and applicable laws. Do not use public trader fields for harassment, spam, profiling unrelated to trading, or attempts to identify private individuals.

Minimize retained personal data, set appropriate retention periods, and secure exported datasets. The Actor is not affiliated with Digital Extremes or Warframe Market. Warframe names and related marks belong to their respective owners.

Related Actors solve different jobs. This Actor is specifically for player-market mod listings and platinum valuation.

Troubleshooting

Why did my run return no records?

Confirm that exact names are current tradable mod names, retain the mod tag, and loosen rank or activity filters. A mod can have no online or in-game listings at a particular rank.

Why is a requested mod missing?

Exact itemNames do not perform fuzzy spelling correction. Copy the current marketplace name or use searchQuery to discover the canonical spelling.

Why are summary counts larger than exported rows?

Summaries use all matching visible orders before maxOrdersPerMod truncates output. This preserves market depth context even when you request only the most actionable rows.

Why did the run fail with an upstream HTTP error?

Inspect logs for the status and endpoint. Temporary 429 and 5xx responses are already retried. A persistent failure can indicate an upstream outage or incompatible public API change; rerun later rather than treating an empty dataset as valid market evidence.

FAQ

Does this Actor return completed trades?

No. It returns current visible buy and sell orders. Listed prices are not guaranteed transaction prices.

Does it support Riven mod valuation?

This release targets ordinary catalog mods and their item-order endpoints. It does not claim free-form Riven attribute appraisal.

Can I schedule it for price history?

Yes. Schedule consistent inputs and retain each run's dataset downstream. The Actor supplies observation timestamps but does not merge history across runs.

Are price summaries global across all ranks?

No. They are calculated for the exact rank on each output row, after your side, activity, rank, and visibility filters.

Are trader reputation and activity always present?

They are exported when the public source exposes them. Upstream fields can be null or change.

Can I request all marketplace items?

The product is intentionally scoped to catalog-selected mods. maxMods, maxOrdersPerMod, and maxItems provide bounded exports rather than an unbounded marketplace crawl.