Inspect
Source Code that Powers the CSFloat Inspect Link API
Install / Use
/learn @csfloat/InspectREADME
Deprecated
As of March 2026, all CS2 inspect links self-encode the item details, please use libraries such as @csfloat/cs-inspect-serializer.
Repo Links
Table of Contents
API
GET /
Parameters s, a, d, m can be found in the inspect link of a csgo item.
| Parameter | Description | |:-------------:|:-------------| | s | Optional: If an inventory item, fill out this parameter from the inspect URL | | a | Required: Inspect URL "a" param | | d | Required: Inspect URL "d" param | | m | Optional: If a market item, fill out this parameter from the inspect URL |
Examples
http://<ip>:<port>/?m=563330426657599553&a=6710760926&d=9406593057029549017
http://<ip>:<port>/?s=76561198084749846&a=6777992090&d=3378412659870065794
GET / (Using an Inspect URL)
| Parameter | Description | |:-------------:|:-------------| | url | Required: Inspect URL of the CSGO item |
Examples
http://<ip>:<port>/?url=steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561198084749846A698323590D7935523998312483177
http://<ip>:<port>/?url=steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20M625254122282020305A6760346663D30614827701953021
Reply
The reply of this API is based upon this CSGO protobuf.
| Attribute | Data Type | Description | |:-------------:|:-------------:|:--------------| | itemid | uint32 | Item ID | | defindex | uint32 | Weapon ID | | paintindex | uint32 | Paint ID of the weapon (skin) | | rarity | uint32 | Rarity value of the weapon | | quality | uint32 | Quality of the weapon | | paintwear | uint32 | Wear of the exterior of the skin | | paintseed | uint32 | Seed for the RNG that defines how to place the skin texture | | killeatervalue | uint32 | If the item is StatTrak, this is the amount of kills | | customname | string | If the item has a nametag, this is the custom name | | stickers | array | Contains data on the placement of stickers | | origin | uint32 | Origin ID of the weapon | | floatvalue | float | Exterior wear of the skin in its float representation | | imageurl | string | Optional: Image of the item | | min | float | Minimum wear of the skin | | max | float | Maximum wear of the skin | | item_name | uint32 | Optional: Name of the skin | | weapon_type | string | Weapon type name | | origin_name | string | Origin name (Trade-Up, Dropped, etc...) | | quality_name | string | Quality name (Souvenir, Stattrak, etc...) | | rarity_name | string | Rarity name (Covert, Mil-Spec, etc...) | | wear_name | string | Wear name (Factory New, Minimal Wear, etc...) | | full_item_name | string | Full Item Name (ex. SSG 08 Blue Spruce (Minimal Wear)) |
{
"iteminfo": {
"accountid": null,
"itemid": "13874827217",
"defindex": 7,
"paintindex": 282,
"rarity": 5,
"quality": 4,
"paintseed": 361,
"killeaterscoretype": null,
"killeatervalue": null,
"customname": null,
"stickers": [],
"inventory": 11,
"origin": 8,
"questid": null,
"dropreason": null,
"musicindex": null,
"s": "0",
"a": "13874827217",
"d": "4649025583329100061",
"m": "2608048286785948758",
"floatvalue": 0.22740158438682556,
"imageurl": "http://media.steampowered.com/apps/730/icons/econ/default_generated/weapon_ak47_cu_ak47_cobra_light_large.7494bfdf4855fd4e6a2dbd983ed0a243c80ef830.png",
"min": 0.1,
"max": 0.7,
"weapon_type": "AK-47",
"item_name": "Redline",
"rarity_name": "Classified",
"quality_name": "Unique",
"origin_name": "Found in Crate",
"wear_name": "Field-Tested",
"full_item_name": "AK-47 | Redline (Field-Tested)"
}
}
POST /bulk
Allows you to request the inspect link data for multiple items at once.
NOTE: Ensure that you send proper Content-Type: application/json headers
Request Body:
{
"links": [
{"link": "steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20M2906459769049600931A18971892678D9403672490970763167"},
{"link": "steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20M2907585668964658722A17231546984D5353704955732169451"}
]
}
Example Response:
{
"18971892678": {
"origin": 8,
"quality": 4,
"rarity": 5,
"a": "18971892678",
"d": "9403672490970763167",
"paintseed": 49,
"defindex": 7,
"paintindex": 282,
// STUB...
},
"17231546984": {
"origin": 4,
"quality": 4,
"rarity": 4,
"a": "17231546984",
"d": "5353704955732169451",
"paintseed": 597,
"defindex": 9,
"paintindex": 838,
// STUB...
},
...
}
GET /stats
Gives some data on the current status of your bots and queue.
Example:
{"bots_online":100,"bots_total":100,"queue_size":20,"queue_concurrency":100}
Errors
Error Codes
| Code | Description | |:-------------:|:-------------| | 1 | Improper Parameter Structure | | 2 | Invalid Inspect Link Structure | | 3 | You may only have X pending request(s) at a time | | 4 | Valve's servers didn't reply in time | | 5 | Valve's servers appear to be offline, please try again later! | | 6 | Something went wrong on our end, please try again | | 7 | Improper body format | | 8 | Bad Secret |
Example Error
{
"error": "Valve's servers didn't reply in time",
"code": 4
}
If using a /bulk request and the error only applies to a specific inspect link, the returned response for it will be
replaced while other inspect links will be processed normally. If the error applies to the entire request (ie. bad post body),
it will return a root-level error as shown above.
Example:
{
"18971892678": {
"origin": 8,
"quality": 4,
"rarity": 5,
"a": "18971892678",
"d": "9403672490970763167",
"paintseed": 49,
"defindex": 7,
"paintindex": 282,
// STUB...
},
"16231546984": {
"error": "Valve's servers didn't reply in time",
"code": 4,
"status": 500
}
}
How to Install
In order to retrieve float values for weapons in this way, you must have Steam account(s) with a copy of CS:GO. Each account can request 1 float per second. CSGOFloat allows you to have as many bots as you'd like by inputting the login info into config.js.
Each instance of CSGOFloat can operate around 300 accounts. It is recommended to either configure a Postgres server or setup another cache such as Varnish or Nginx in front of your server.
Docker
Pull the image from docker and mount the config directory
docker pull step7750/csgofloat:master
docker run -d --name csgofloat -v /host/config:/config -p 80:80 -p 443:443 step7750/csgofloat:master
The first time you start the docker container, it'll copy the config.js file to the config directory and stop. You'll need to edit this file and include your bots login information and then start the docker again. See the section How to First Login a Bot for further info.
Make sure you configure a Postgres server to use for caching!
Manual
Requires Node.js v14+!
Clone the repo (or npm install csgofloat) and install th
