Steamwebapi is a high-quality API service that provides developers with seamless access to a wide range of information on Steam games, user profiles, inventories, and more. By using Steamwebapi, you can easily retrieve data without relying directly on the official Steam API — reducing the risk of IP blocking or application limitations.
Please note that Steamwebapi operates as an independent service and is not affiliated with Valve, Steam, or any of their partners. All rights belong to their respective owners.
To use the API, please follow these steps:
Discover real-world API use cases on GitHub. Explore the following links to access code samples and projects using the API:
Stay tuned for more exciting packages coming soon! Get inspired, learn from existing implementations, and unleash the full potential of the API in your own projects.
And that’s it! Start exploring the power of the API today and open doors to the world of possibilities for your projects.
Here is a list of projects using our API:
If you want to add your project to this list, feel free to send us a message on Discord!
To get your API key:
Your Steam data is not stored by us.
Yes! You have access to all plans under the free tier. You can upgrade anytime if you need more.
The base URL for all requests is:
</em>https://www.steamwebapi.com/steam/api/YOUR_ENDPOINT?key=YOUR_API_KEY
You can authenticate in two ways:
Query parameter:
</em>https://www.steamwebapi.com/steam/api/inventory?key=YOUR_API_KEY
HTTP header:
</em>X-API-Key: YOUR_API_KEY
You can test the API with tools like Postman or Insomnia. Alternatively, you can use your browser directly by adding the API key to the request URL.
Example:
</em>https://www.steamwebapi.com/steam/api/inventory?key=YOUR_API_KEY
All responses are returned in JSON format. If an error occurs, the response will contain an error message.
| GAME | SHORTNAME | STATUS |
|---|---|---|
| CS2 | cs2 | Fully Tested |
| RUST | rust | Basic Tested |
| DOTA | dota | Basic Tested |
| Name | Endpoint | Description | Costs |
|---|---|---|---|
| Items | /steam/api/items | Get all items of a game - one click full export for paid customers | |
| Inventory | /steam/api/inventory | Get inventory of a user | |
| Profile | /steam/api/profile | Get profile of a user | |
| Item Detail | /steam/api/item | Get details of an item | |
| Steamid | /steam/api/steamid | SteamID Converter | |
| Float Information API | /steam/api/float | Get the Float of an Item |
Notes:
priceXXXXX refer to Steam Market data.pricerealXXXXX refer to Third-Party Marketplaces.| Key | Description |
|---|---|
pricelatest |
Steam – Latest offer price; null if no offer available |
pricelatestsell |
Steam – Latest sell price |
pricelatestsell24h |
Steam – Sell price 24 hours ago |
pricelatestsell7d |
Steam – Sell price 7 days ago |
pricelatestsell30d |
Steam – Sell price 30 days ago |
pricelatestsell90d |
Steam – Sell price 90 days ago |
lateststeamsellat |
Steam – Last Steam sell date |
latest10steamsales |
Steam – Last 10 Steam sales as array: `date |
pricemedian |
Steam – Median price based on last 10 sales |
pricemedian24h |
Steam – Median 24 hours ago |
pricemedian7d |
Steam – Median 7 days ago |
pricemedian30d |
Steam – Median 30 days ago |
pricemedian90d |
Steam – Median 90 days ago |
priceavg |
Steam – Average price based on last 10 sales |
priceavg24h |
Steam – Average 24 hours ago |
priceavg7d |
Steam – Average 7 days ago |
priceavg30d |
Steam – Average 30 days ago |
priceavg90d |
Steam – Average 90 days ago |
pricesafe |
Steam – Safe price = median history of last 90 days × 0.95 |
pricemin |
Steam – Minimum price from last 90 days |
pricemax |
Steam – Maximum price from last 90 days |
pricemix |
Steam – Lowest among last sell, last offer, or real market price |
pricereal |
Third-Party – Current lowest price from external markets |
pricereal24h |
Third-Party – Lowest price 24 hours ago |
pricereal7d |
Third-Party – Lowest price 7 days ago |
pricereal30d |
Third-Party – Lowest price 30 days ago |
pricereal90d |
Third-Party – Lowest price 90 days ago |
pricerealmedian |
Third-Party – Median of the 5 lowest external prices |
winloss |
Percentage difference between Third-Party and Steam price (profit or loss) |
buyorderprice |
Steam – Current buy order price |
buyordermedian |
Steam – Median of last 5 buy orders |
buyorderavg |
Steam – Average of last 5 buy orders |
buyordervolume |
Steam – Current buy order volume |
offervolume |
Steam – Current number of offers |
soldtoday |
Steam – Number sold today |
sold24h |
Steam – Number sold yesterday |
sold7d |
Steam – Number sold 7 days ago |
sold30d |
Steam – Number sold 30 days ago |
sold90d |
Steam – Number sold 90 days ago |
soldtotal |
Steam – Total number sold |
hourstosold |
Steam – Average time to sell |
points |
Demand points based on item popularity |
priceupdatedat |
Steam – Last update time for prices, offers, and sales |
markethashname |
Market hash name of the item |
marketname |
Market name of the item |
slug |
URL-friendly identifier of the item |
color |
Item color code – can be null |
bordercolor |
Border color code – can be null |
unstable |
Steam – 1 for unstable, 0 for stable |
unstablereason |
Reason for instability – can be null |
wear |
Wear condition (e.g. fn for Factory New) – can be null |
itemgroup |
Item group (e.g. rifle) – can be null |
itemtype |
Item type (e.g. m4a1-s) – can be null |
itemname |
Item name (e.g. printstream) – can be null |
rarity |
Item rarity (e.g. covert) – can be null |
quality |
Item quality (e.g. normal) – can be null |
isstattrack |
1 = StatTrak, 0 = not StatTrak |
isstar |
1 = has star, 0 = no star |
markettradablerestriction |
Number of days for trade restriction – can be null |
itemimage |
Item image URL |
Subscriptions do not renew automatically — each plan is a one-time subscription.
Newly released game items are typically added within 1–3 days.
All Pro plans include priority support.
Rate limits vary by plan. See your Dashboard for current limits.
Output format is selected via the format query parameter.
format=json (or omit format)pretty=1 pretty-prints JSON (and JSON inside gzip/zip)You can also:
filename=MY_EXPORT to set a custom download filename.callback=myFunction when using format=jsonp to control the JSONP callback name.Examples
</em># JSON (default)
/steam/api/inventory?key=YOUR_API_KEY
# Pretty JSON
/steam/api/inventory?key=YOUR_API_KEY&format=json&pretty=1
# Gzip-compressed JSON download
/steam/api/items?key=YOUR_API_KEY&format=gzip
# ZIP archive containing a JSON file
/steam/api/items?key=YOUR_API_KEY&format=zip
# CSV download
/steam/api/items?key=YOUR_API_KEY&format=csv
# TSV download
/steam/api/items?key=YOUR_API_KEY&format=tsv
# YAML document
/steam/api/items?key=YOUR_API_KEY&format=yaml
# Simple HTML page printing JSON
/steam/api/items?key=YOUR_API_KEY&format=html
# Interactive HTML table (sortable & searchable)
/steam/api/items?key=YOUR_API_KEY&format=table
# (aliases: format=view, format=html)
# NDJSON (one record per line)
/steam/api/items?key=YOUR_API_KEY&format=ndjson
# JSONP with callback
/steam/api/items?key=YOUR_API_KEY&format=jsonp&callback=myFunction
# MySQL INSERTs (without/with CREATE TABLE)
/steam/api/items?key=YOUR_API_KEY&format=mysql
/steam/api/items?key=YOUR_API_KEY&format=mysql_with_table
# PostgreSQL INSERTs (without/with CREATE TABLE)
/steam/api/items?key=YOUR_API_KEY&format=pgsql
/steam/api/items?key=YOUR_API_KEY&format=pgsql_with_table
# MongoDB insertMany (JavaScript)
/steam/api/items?key=YOUR_API_KEY&format=mongo
format |
Description | Content-Type | File suffix / download |
|---|---|---|---|
json (default) |
JSON body (supports pretty=1) |
application/json |
– |
gzip |
Gzip-compressed JSON | application/gzip |
.json.gz |
zip |
ZIP archive containing a JSON file | application/zip |
.zip |
csv |
CSV export (UTF‑8 with BOM) | text/csv; charset=UTF-8 |
.csv |
tsv |
Tab-separated values export | text/tab-separated-values; charset=UTF-8 |
.tsv |
xml |
XML document | application/xml; charset=UTF-8 |
.xml |
yaml |
YAML document (alias: yml) |
application/x-yaml; charset=UTF-8 |
.yaml / .yml |
html / table / view |
Interactive HTML table (sortable, searchable) or simple HTML JSON view | text/html; charset=UTF-8 |
– (inline) |
text |
Plain text (debug-style print_r) |
text/plain; charset=UTF-8 |
.txt |
ndjson |
Newline-delimited JSON (one object per line) | application/x-ndjson; charset=UTF-8 |
.ndjson |
jsonp |
JSON with callback (callback= or default name) |
application/javascript; charset=UTF-8 |
.js |
xls |
Minimal HTML table that Excel can open | application/vnd.ms-excel; charset=UTF-8 |
.xls |
json-pretty |
Pretty formatted JSON body | application/json |
– |
mysql |
MySQL INSERT statements (no CREATE TABLE) |
text/plain; charset=UTF-8 |
.sql |
mysql_with_table |
MySQL CREATE TABLE + INSERT statements |
text/plain; charset=UTF-8 |
.sql |
pgsql |
PostgreSQL INSERT statements (no CREATE TABLE) |
text/plain; charset=UTF-8 |
.sql |
pgsql_with_table |
PostgreSQL CREATE TABLE + INSERT statements |
text/plain; charset=UTF-8 |
.sql |
mongo |
MongoDB insertMany script |
application/javascript; charset=UTF-8 |
.js |
Notes
pretty=1 affects json, and the JSON that is embedded inside gzip/zip.ndjson intentionally ignores pretty-printing to keep one record per line./steam/api/items → items.*) unless overridden with filename=....Currently supported for the Inventory API. Item language support is coming soon.
| Language Original Name | API Value |
|---|---|
| Dansk | danish |
| English | english |
| Français | french |
| Deutsch | german |
| Polski | polish |
| Português | portuguese |
| Русский | russian |
| Svenska | swedish |
| Türkçe | turkish |
Steamwebapi currently collects pricing data from multiple external marketplaces for pricerealXXXX values: