Base URL:Documentation Index
Fetch the complete documentation index at: https://docs.mannco.store/llms.txt
Use this file to discover all available pages before exploring further.
https://api.mannco.store.
Routes here use the api filter. Endpoints marked Connected + API need Authorization: Bearer <jwt> from POST /user/login. Endpoints marked API only do not require a user session (no Bearer).
Get item details
Item identifier (numeric ID or URL slug)
items table. You can pass either a numeric item ID or a URL slug.
Response
Item Fields
| Field | Type | Description |
|---|---|---|
id | integer | Unique item ID |
name | string | Item display name |
effect | string | Unusual effect name (TF2) or empty |
SKU | string | Stock Keeping Unit identifier |
quality | string | Item quality (Unique, Strange, Unusual, Souvenir, etc.) |
type | string | Item type/category |
type_steam | string/null | Steam-specific type |
class | string/null | Item class (TF2) |
image | string | Item image URL/path |
imagePertinence | integer | Image relevance score |
craftable | integer | 1 = craftable, 0 = uncraftable |
rarity | string | Item rarity (CS:GO/CS2) |
featured | integer | 1 if featured, 0 otherwise |
deal | integer | Steam market price in cents |
t | any/null | Additional data |
color | string | Hex color code for rarity |
game | integer | Game App ID (440, 730, 570, 252490) |
slot | string | Equipment slot (TF2) |
hero | string/null | Hero name (Dota 2) |
weapon | string | Weapon name (CS:GO/CS2) |
exterior | string | Wear condition (CS:GO/CS2) |
url | string | URL-friendly slug |
description | string/null | Item description |
tf2shop | any/null | TF2 shop related data |
Get item sales graph
Item identifier (numeric ID)
Time period for sales data:
1M, 3M, 6M, 1Y, 5Y, or ALLitems_stats table with daily price and volume. For periods 5Y and ALL, data is grouped by week instead of by day.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
period | string | Yes | Time period: 1M (1 month), 3M (3 months), 6M (6 months), 1Y (1 year), 5Y (5 years), ALL (all time) |
Response (Daily data for 1M, 3M, 6M, 1Y)
Response (Weekly data for 5Y and ALL)
Response Fields (Daily)
| Field | Type | Description |
|---|---|---|
date | string | Date and time (YYYY-MM-DD HH:MM:SS) |
price | integer | Total sales value in cents for the day |
nb | integer | Number of sales that day |
Response Fields (Weekly)
| Field | Type | Description |
|---|---|---|
first_date | string | First day of the week (Monday) |
week | string | Year and week number (YYYYWW) |
total_price | integer | Total sales value in cents for the week |
total_nb | integer | Number of sales that week |
Use daily data (
1M, 3M, 6M, 1Y) for detailed graphs. Use weekly data (5Y, ALL) for long-term trends to reduce data points.Get listing count
Item identifier (numeric ID)
Optional user SteamID to filter listings by seller
userid is provided, returns the count for that specific seller only.
Response
Response Fields
| Field | Type | Description |
|---|---|---|
err | boolean | Error flag (false if no error) |
success | boolean | Success flag (true if successful) |
content.count | integer | Number of active listings for the item |
Get item listings
Item identifier (numeric ID)
Optional user SteamID to filter by seller
Number of items per page
Page number (offset = page × count)
Game ID filter (
440 for TF2, 730 for CS2). Affects which extra info is joined.maxCount.itemListing). Each listing includes backpack details. For non-admin callers, user and ip are omitted from each listing.
Listing type
| Field | Type | Description |
|---|---|---|
id | integer | Backpack entry ID |
assetId | string | Steam asset ID |
item_id | integer | Item definition ID |
user | string | Seller SteamID |
state | integer | Item state (1 = on sale) |
price | integer | Listed price in cents |
bot | string | Bot holding the item |
game | integer | Game App ID |
wear | float|null | Wear value (CS2 items) |
sheen | string | Killstreak sheen (TF2) |
killstreaker | string | Killstreaker effect (TF2) |
spell | string | Halloween spell (TF2) |
parts | string | Strange parts (TF2) |
html | string | Custom HTML description |
paint | string | Paint color (TF2) |
values | object|null | Extra inspection values (CS2/TF2) |
getImage | string|null | Custom image URL |
Get buy order list
Item identifier (numeric ID)
0–4; additional tiers are aggregated under the key "more".
Response
| Field | Type | Description |
|---|---|---|
informations[n].count | integer | Total quantity at this price |
informations[n].price | integer | Buy order price in cents |
informations.more | object | Aggregated count and lowest price for remaining tiers |
Get item pricing
Item identifier (numeric ID)
Response
| Field | Type | Description |
|---|---|---|
item_id | integer | Item ID |
cached | boolean | Whether the result was served from cache |
last_updated | string | Last calculation or cache update (Y-m-d H:i:s) |
pricing.lowest_sale_price | float | Lowest active listing price in cents |
pricing.lowest_buy_order | float | Highest active buy order price in cents |
pricing.steam_price | float | Steam Community Market price in cents |
pricing.suggested_price | float | Suggested listing price |
pricing.last_sale | object/null | Last sale price and date (Unix timestamp) if available |
Pricing data is cached for 20 minutes. Fresh data is calculated and stored when the cache expires.
Get bulk pricing
Comma-separated item IDs (maximum 100 items)
GET /item/pricing/{item} pricing fields, plus from_cache: true if the row was read from prices while still considered fresh, false if prices were recalculated and written back to prices.
The envelope includes cached_items and refreshed_items counts (same semantics as from_cache, summed over every returned row — duplicate IDs in the query string are counted separately).
Response
| Field | Type | Description |
|---|---|---|
total_items | integer | Number of item entries returned (same length as items) |
cached_items | integer | How many entries were served from cache (from_cache true) |
refreshed_items | integer | How many entries were recalculated and persisted (from_cache false) |
items[].item_id | integer | Item ID |
items[].from_cache | boolean | true if read from prices without recalculation; false if refreshed this request |
items[].last_updated | string | updated_at from DB when cached, or time of refresh (Y-m-d H:i:s) |
items[].pricing.* | Same as Get item pricing (lowest_sale_price, lowest_buy_order, steam_price, suggested_price, last_sale) |
Bulk pricing reuses rows in
prices when updated_at is within the last 5 minute (shorter than the single-item GET /item/pricing/{item} cache window). Outside that window, the API recomputes from live tables and updates prices.Example
Get item details from backpack ID (TF2)
Backpack asset ID
backpack, items, and item_infos tables.
Get item details from backpack ID (CS2)
Backpack asset ID
Response Fields for Backpack Details
Both endpoints return combined data frombackpack, items, and item_infos tables:
Important: The
craftable field is set to empty string ("") for all non-TF2 games. Only TF2 items (game 440) retain the original craftable value (0 or 1). Additionally, trailing spaces and trailing semicolons are removed from all string fields.