5 min read

Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.

GET /v2/users/{userId}/tradableItems — openapi

Gets tradable items for a user.

Endpoint

Method: GET

Path: /v2/users/{userId}/tradableItems

Servers:

Parameters

NameLocationRequiredDescription
userIdpathtrueThe id of the user.
searchqueryfalseOptional search query to filter items by.
itemTargetTypesqueryfalseOptional list of item target types to filter by.
sortByqueryfalseThe key to sort tradable items by.
sortOrderqueryfalseThe sort order for the tradable items.
limitqueryfalseThe maximum number of items to return.
cursorqueryfalseThe pagination cursor.
[
  {
    "in": "path",
    "name": "userId",
    "description": "The id of the user.",
    "required": true,
    "schema": {
      "type": "integer",
      "format": "int64"
    }
  },
  {
    "in": "query",
    "name": "search",
    "description": "Optional search query to filter items by.",
    "schema": {
      "type": "string"
    }
  },
  {
    "in": "query",
    "name": "itemTargetTypes",
    "description": "Optional list of item target types to filter by.",
    "explode": true,
    "schema": {
      "type": "array",
      "items": {
        "description": "The type of the underlying of a tradable item. ['Unknown' = 0, 'HatAccessory' = 1, 'HairAccessory' = 2, 'FaceAccessory' = 3, 'NeckAccessory' = 4, 'ShoulderAccessory' = 5, 'FrontAccessory' = 6, 'BackAccessory' = 7, 'WaistAccessory' = 8, 'Gear' = 9, 'Face' = 10, 'JacketAccessory' = 11, 'SweaterAccessory' = 12, 'DressSkirtAccessory' = 13, 'Character' = 14, 'DynamicHead' = 15, 'Shoes' = 16, 'Animation' = 17]",
        "enum": [
          "Unknown",
          "HatAccessory",
          "HairAccessory",
          "FaceAccessory",
          "NeckAccessory",
          "ShoulderAccessory",
          "FrontAccessory",
          "BackAccessory",
          "WaistAccessory",
          "Gear",
          "Face",
          "JacketAccessory",
          "SweaterAccessory",
          "DressSkirtAccessory",
          "Character",
          "DynamicHead",
          "Shoes",
          "Animation"
        ],
        "type": "string"
      }
    }
  },
  {
    "in": "query",
    "name": "sortBy",
    "description": "The key to sort tradable items by.",
    "schema": {
      "type": "string",
      "enum": [
        "Unknown",
        "CreationTime",
        "AcquisitionTime"
      ],
      "default": "CreationTime"
    }
  },
  {
    "in": "query",
    "name": "sortOrder",
    "description": "The sort order for the tradable items.",
    "schema": {
      "type": "integer",
      "format": "int32",
      "enum": [
        0,
        1,
        2
      ],
      "default": 2
    }
  },
  {
    "in": "query",
    "name": "limit",
    "description": "The maximum number of items to return.",
    "schema": {
      "type": "integer",
      "format": "int32",
      "default": 25
    }
  },
  {
    "in": "query",
    "name": "cursor",
    "description": "The pagination cursor.",
    "schema": {
      "type": "string",
      "default": ""
    }
  }
]

Responses

StatusDescription
200OK
40025: The cursor provided is invalid.
4010: Authorization has been denied for this request. 4: You are not authorized to modify this trade.
4034: You are not authorized to modify this trade.
4040: An unknown error occured.
{
  "200": {
    "description": "OK",
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/Roblox.Trades.Api.Models.V2.GetUserTradableItemsResponse"
        }
      },
      "text/json": {
        "schema": {
          "$ref": "#/components/schemas/Roblox.Trades.Api.Models.V2.GetUserTradableItemsResponse"
        }
      }
    }
  },
  "400": {
    "description": "25: The cursor provided is invalid."
  },
  "401": {
    "description": "0: Authorization has been denied for this request.\r\n4: You are not authorized to modify this trade."
  },
  "403": {
    "description": "4: You are not authorized to modify this trade."
  },
  "404": {
    "description": "0: An unknown error occured."
  }
}

Authentication

{
  "security": [
    {
      "roblox-legacy-cookie": []
    }
  ],
  "securitySchemes": {
    "roblox-api-key": {
      "type": "apiKey",
      "description": "A configurable key that allows granular access to Roblox resources. See https://create.roblox.com/docs/cloud/auth/api-keys for more information.",
      "name": "x-api-key",
      "in": "header"
    },
    "roblox-legacy-cookie": {
      "type": "apiKey",
      "description": "A browser cookie that represents the identity of a Roblox user. DO NOT SHARE THIS. Sharing this will allow someone to log in as you and to steal your Robux and items. We do not recommend using cookies to call endpoints. When possible, use API keys with the x-api-key header or OAuth 2.0 instead for authentication.",
      "in": "cookie",
      "name": ".ROBLOSECURITY"
    },
    "roblox-oauth2": {
      "type": "oauth2",
      "description": "Build or authorize apps to access Roblox resources. See https://create.roblox.com/docs/cloud/auth/oauth2-overview for more information.",
      "flows": {
        "authorizationCode": {
          "authorizationUrl": "https://apis.roblox.com/oauth/v1/authorize",
          "tokenUrl": "https://apis.roblox.com/oauth/v1/token",
          "refreshUrl": "https://apis.roblox.com/oauth/v1/token",
          "scopes": {}
        }
      }
    }
  }
}

Complete Operation Definition

{
  "tags": [
    "Trades"
  ],
  "summary": "Gets tradable items for a user.",
  "parameters": [
    {
      "in": "path",
      "name": "userId",
      "description": "The id of the user.",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int64"
      }
    },
    {
      "in": "query",
      "name": "search",
      "description": "Optional search query to filter items by.",
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "itemTargetTypes",
      "description": "Optional list of item target types to filter by.",
      "explode": true,
      "schema": {
        "type": "array",
        "items": {
          "description": "The type of the underlying of a tradable item. ['Unknown' = 0, 'HatAccessory' = 1, 'HairAccessory' = 2, 'FaceAccessory' = 3, 'NeckAccessory' = 4, 'ShoulderAccessory' = 5, 'FrontAccessory' = 6, 'BackAccessory' = 7, 'WaistAccessory' = 8, 'Gear' = 9, 'Face' = 10, 'JacketAccessory' = 11, 'SweaterAccessory' = 12, 'DressSkirtAccessory' = 13, 'Character' = 14, 'DynamicHead' = 15, 'Shoes' = 16, 'Animation' = 17]",
          "enum": [
            "Unknown",
            "HatAccessory",
            "HairAccessory",
            "FaceAccessory",
            "NeckAccessory",
            "ShoulderAccessory",
            "FrontAccessory",
            "BackAccessory",
            "WaistAccessory",
            "Gear",
            "Face",
            "JacketAccessory",
            "SweaterAccessory",
            "DressSkirtAccessory",
            "Character",
            "DynamicHead",
            "Shoes",
            "Animation"
          ],
          "type": "string"
        }
      }
    },
    {
      "in": "query",
      "name": "sortBy",
      "description": "The key to sort tradable items by.",
      "schema": {
        "type": "string",
        "enum": [
          "Unknown",
          "CreationTime",
          "AcquisitionTime"
        ],
        "default": "CreationTime"
      }
    },
    {
      "in": "query",
      "name": "sortOrder",
      "description": "The sort order for the tradable items.",
      "schema": {
        "type": "integer",
        "format": "int32",
        "enum": [
          0,
          1,
          2
        ],
        "default": 2
      }
    },
    {
      "in": "query",
      "name": "limit",
      "description": "The maximum number of items to return.",
      "schema": {
        "type": "integer",
        "format": "int32",
        "default": 25
      }
    },
    {
      "in": "query",
      "name": "cursor",
      "description": "The pagination cursor.",
      "schema": {
        "type": "string",
        "default": ""
      }
    }
  ],
  "responses": {
    "200": {
      "description": "OK",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Roblox.Trades.Api.Models.V2.GetUserTradableItemsResponse"
          }
        },
        "text/json": {
          "schema": {
            "$ref": "#/components/schemas/Roblox.Trades.Api.Models.V2.GetUserTradableItemsResponse"
          }
        }
      }
    },
    "400": {
      "description": "25: The cursor provided is invalid."
    },
    "401": {
      "description": "0: Authorization has been denied for this request.\r\n4: You are not authorized to modify this trade."
    },
    "403": {
      "description": "4: You are not authorized to modify this trade."
    },
    "404": {
      "description": "0: An unknown error occured."
    }
  },
  "servers": [
    {
      "url": "https://trades.roblox.com"
    }
  ],
  "x-roblox-engine-usability": {
    "apiKeyWithHttpService": false
  },
  "security": [
    {
      "roblox-legacy-cookie": []
    }
  ],
  "externalDocs": {
    "url": "https://create.roblox.com/docs/cloud/reference/features/trades#trades_get_v2_users__userId__tradableItems"
  }
}