Skip to main content

POST /secure/check-tradeurl

Validates a Steam trade URL and returns information about the account’s trade eligibility. Use this before authenticating a client to catch invalid or restricted accounts early. Authentication: API Key (api-key header, requires CORE_ACCESS scope)

Request

POST https://api.assetpay.co/secure/check-tradeurl
Content-Type: application/json
api-key: YOUR_API_KEY

{
  "tradeurl": "https://steamcommunity.com/tradeoffer/new/?partner=12345678&token=AbCdEfGh",
  "forceRefresh": false
}

Body Parameters

ParameterTypeRequiredDescription
tradeurlstringYesSteam trade URL to validate
forceRefreshbooleanNoBypass cache and recheck (default: false)

Response

{
  "requestId": "...",
  "success": true,
  "data": {
    "state": 1,
    "steamid": "76561198012345678",
    "message": "Trade URL is valid",
    "canTrade": true
  }
}

Response Fields

FieldTypeDescription
statenumberTrade URL state (see values below)
steamidstringSteam ID 64 (present when the URL resolves to a user)
messagestringHuman-readable status message
canTradebooleanWhether the account can perform trades (present when state is 1-4)
reasonobjectPresent only when canTrade is false
reason.escrowDaysnumberSteam escrow days (0 if mobile auth is set up)
reason.probationbooleanWhether the account is on probation

State Values

ValueNameMeaning
1NormalTrade URL is valid, full trading permissions
2CS2BannedCan trade Rust items but not CS2 items
3RustBannedCan trade CS2 items but not Rust items
4BannedNo trading permissions for any game
5InventoryPrivateUser’s inventory is set to private
6TradeUrlInvalidThe trade URL format is invalid
7UserNotFoundNo user found under this trade URL
8UnknownErrorAn unexpected error occurred

Caching

Results are cached for 1 hour. Use forceRefresh: true only when you need to recheck a specific URL, not on every call.

Rate Limits

Merchant StatusLimit
Verified100,000 requests / hour
Unverified100 requests / hour