Steamwebapi Documentation: Getting started
What is Steamwebapi?
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.
How to use?
To use the API, please follow these steps:
- Make a GET request to the designated API endpoint.
- Click the “API” button at the top of the page to open the full documentation.
- Review the available endpoints, parameters, and response formats there.
Example of usage
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.
Example 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!
How to obtain an API Key?
To get your API key:
- Create an account by clicking “Login with Steam”.
- Once logged in, go to your Dashboard → API Key.
Your Steam data is not stored by us.
Is it free?
Yes! You have access to all plans under the free tier. You can upgrade anytime if you need more.
Base URL
The base URL for all requests is:
</em>https://www.steamwebapi.com/steam/api/YOUR_ENDPOINT?key=YOUR_API_KEY
Authentication
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
Best tools to test the API
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
Responses
All responses are returned in JSON format. If an error occurs, the response will contain an error message.
Games
| GAME | SHORTNAME | STATUS |
|---|---|---|
| CS2 | cs2 | Fully Tested |
| RUST | rust | Basic Tested |
| DOTA | dota | Basic Tested |
Endpoints
| 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 |
General response information
Notes:
- All fields starting with
priceXXXXXrefer to Steam Market data. - All fields starting with
pricerealXXXXXrefer to Third-Party Marketplaces. - Third-Party price data currently available for CS2 only – other games follow soon.
Item & pricing fields
| 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 |
Subscription and support
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
Rate limits vary by plan. See your Dashboard for current limits.
Output
Output format is selected via the format query parameter.
- Default:
format=json(or omitformat) - Optional:
pretty=1pretty-prints JSON (and JSON insidegzip/zip)
You can also:
- Use
filename=MY_EXPORTto set a custom download filename. - Use
callback=myFunctionwhen usingformat=jsonpto 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
Available output formats
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=1affectsjson, and the JSON that is embedded insidegzip/zip.ndjsonintentionally ignores pretty-printing to keep one record per line.- Filenames are auto-derived from the request path (e.g.,
/steam/api/items→items.*) unless overridden withfilename=.... - SQL and Mongo formats also derive a sensible table/collection name from the endpoint.
Supported languages
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 |
Third-Party Marketplaces Used
Steamwebapi currently collects pricing data from multiple external marketplaces for pricerealXXXX values:
- Skinport
- DMarket
- Buff
- CSGO.com
- Tradeit
- Skinpull
- Waxpeer
- Skinbaron