api-key header, requires CORE_ACCESS scope)
Request
Body Parameters
Response
Response Fields
State Values
Caching
Results are cached for 1 hour. UseforceRefresh: true only when you need to recheck a specific URL, not on every call.
Documentation Index
Fetch the complete documentation index at: /docs/llms.txt
Use this file to discover all available pages before exploring further.
Validate a Steam trade URL and check the linked account’s trade eligibility before you authenticate a client, so restricted or invalid accounts fail early.
api-key header, requires CORE_ACCESS scope)
POST https://api.assetpay.gg/secure/check-tradeurl
Content-Type: application/json
api-key: YOUR_API_KEY
{
"tradeurl": "https://steamcommunity.com/tradeoffer/new/?partner=12345678&token=AbCdEfGh",
"forceRefresh": false
}
| Parameter | Type | Required | Description |
|---|---|---|---|
tradeurl | string | Yes | Steam trade URL to validate |
forceRefresh | boolean | No | Bypass cache and recheck (default: false) |
{
"requestId": "...",
"success": true,
"data": {
"state": 1,
"steamid": "76561198012345678",
"message": "Trade URL is valid",
"canTrade": true,
"bans": { "vacBanned": false, "gameBans": 0, "economyBan": "none" }
}
}
| Field | Type | Description |
|---|---|---|
state | number | Trade URL state (see values below) |
steamid | string | Steam ID 64 (present when the URL resolves to a user) |
message | string | Human-readable status message |
canTrade | boolean | Whether the account can perform trades (present when state is 1-4) |
reason | object | Present only when canTrade is false |
reason.escrowDays | number | Steam escrow days (0 if mobile auth is set up) |
reason.probation | boolean | Whether the account is on probation |
bans | object | Steam ban record for the account (present when the URL resolves to a user) |
bans.vacBanned | boolean | VAC ban on record. Blocks CS2 deposits; Rust is unaffected |
bans.gameBans | number | Game bans on record. Informational only; Steam still trades for these accounts |
bans.economyBan | string | Steam economy ban state: none, probation or banned |
| Value | Name | Meaning |
|---|---|---|
1 | Normal | Trade URL is valid, full trading permissions |
2 | CS2Banned | Can trade Rust items but not CS2 items. Also returned when bans shows a VAC ban: Steam refuses CS2 offers from such accounts even though the inventory still lists the items as tradable, and a CS2 deposit fails with USER_NOT_TRADEABLE |
3 | RustBanned | Can trade CS2 items but not Rust items |
4 | Banned | No trading permissions for any game |
5 | InventoryPrivate | User’s inventory is set to private |
6 | TradeUrlInvalid | The trade URL format is invalid |
7 | UserNotFound | No user found under this trade URL |
8 | UnknownError | An unexpected error occurred |
9 | UserNotTradeable | Steam reports the account as not available to trade (new device, recent password change, Steam Guard cooldown) |
10 | SteamUnavailable | Steam did not answer; retry later |
forceRefresh: true only when you need to recheck a specific URL, not on every call.
| Merchant Status | Limit |
|---|---|
| Verified | 100,000 requests / hour |
| Unverified | 100 requests / hour |