NAV Navbar
Date updated: Nov 06, 2018
shell
  • OPSkins API
  • Terms of Use
  • SDKs
  • Postman collection
  • Requests
  • API key and auth hash
  • OAuth
  • Responses
  • Headers
  • Error Codes
  • Standard Sale Object
  • Interfaces
  • OPSkins API

    The OPSkins API uses a consistent, unified request and response system, and it supports per-method versioning.

    Terms of Use

    NEVER SHARE YOUR API KEY WITH ANYONE. YOUR API KEY GRANTS FULL, UNRESTRICTED ACCESS TO YOUR OPSKINS ACCOUNT.

    The OPSkins API is provided by OPSkins on an “as is” and “as available” basis. OPSkins makes no representations or warranties of any kind, express or implied, as to the operation of the OPSkinss API. OPSkins will not be liable for any damages of any kind arising from the use of, or inability to use the OPSkins API; including, but not limited to: direct, indirect, incidental, punitive, and consequential damages, whether in contract, tort, or otherwise. Your API key may be revoked at any time for any reason at the discretion of the OPSkins staff. You are responsible for the security of the API key that you are provided; you may not share it with anyone. If you feel your API key has been compromised, revoke and change it immediately. All other OPSkins Terms still apply.

    SDKs

    Postman collection

    You can use Postman to test OPSkins API with your account API key.

    Required to support Postman Collection Format v2.1.

    Use next files to Import to the Postman Application:

    Next open imported environment and setup your API key for api_key.

    Requests

    Much like Steam's WebAPI, requests to our API use the format https://api.opskins.com/IInterfaceName/MethodName/v1/.

    For GET requests, you should pass your input in the query string (e.g. https://api.opskins.com/IExample/ExampleMethod/v1/?foo=bar&bar=11&baz=22). If a particular method requires POST requests, then ALL of your input parameters (including your key, if not supplying it using HTTP basic authorization) MUST be sent in the request body in standard urlencoded format (the same format used by HTTP when posting an HTML <form>).

    If you are currently logged in on opskins.com, then your login cookies will be used to authenticate your requests. All calls to the API should use your API key, however, as cookie authentication is only meant for internal use by OPSkins. Your API key will override any login cookies.

    All requests MUST be made over HTTPS. HTTP is not supported and will redirect to HTTPS.

    API key and auth hash

    {{AUTH_HASH}} calculation examples:

    Shell

    echo -n 'your_api_key_value:' | base64
    

    PHP

    echo base64_encode('your_api_key_value' . ':');
    

    Node.js

    console.log(Buffer.from("your_api_key_value" + ":", "ascii").toString("base64"))
    

    Most requests require authentication, and those that don't are marked. To authenticate, you'll need your API key from your account page. We prefer that you send your key as your username in HTTP Basic authorization, but you can also supply it as a key GET or POST parameter (depending on the request method).

    In this documentation we use {{AUTH_HASH}} in Authorization header. To calculate your {{AUTH_HASH}} you need to base-64 encode your API key with colon. See examples in the right side panel.

    OAuth

    OPSkins uses an implementation of standard OAuth 2.0 to enable users to grant access to parts of their accounts to community applications.

    If you are not familiar with OAuth, please view our visual OPSkins OAuth overview/guide.

    OPSkins OAuth works automatically with WAX ExpressTrade API as well.

    Before getting started with OAuth, you will need OAuth client credentials, which can be generated using the OPSkins API. Before you generate credentials, you will need to determine if your client can keep a secret or not.

    Client Credentials

    Your OAuth Client ID

    Regardless of whether your client keeps a secret or not, it will be issued a client_id, which will be used to identify it with the OPSkins API.

    Note: In this context, a "client" is the site or app that communicates with the OPSkins API. You need only one client ID per site or application that uses the OAuth API, so don't create separate client credentials per user who authenticates with your app.

    Each OPSkins account is limited to 20 active OAuth clients.

    Secret-Keeping Clients

    If your client uses a restricted-access server (for example, your client is a website), then your client will need to keep a secret. In your CreateClient call, specify can_keep_secret=1 (or omit it, as the default is 1). This will result in a secret being generated for you and sent in the response. Keep this secret somewhere safe, but also private, as it cannot be retrieved again (it's hashed on the server-side) and you will need to invalidate and reset it if you lose it.

    Once you have a secret, you will need to use it to authenticate your requests for access tokens.

    Non-Secret-Keeping Clients

    If your client runs directly on end-user hardware and does not have a trusted server making calls to the OPSkins API, then your client cannot keep a secret. In your CreateClient call, specify can_keep_secret=0 and no secret will be generated for your client. You will need to generate and store a secret on each client device, which will be used to authenticate your requests for access tokens.

    Scopes

    OAuth makes use of scopes to limit what a token may have access to in a user's account. These are the scopes that may currently be requested:

    Scope Name Access
    identity_basic Grants access to retrieve basic details about the user: WAX ExpressTrade URL, UserID, SteamID, Username, Avatar, and Preferred Language & Currency. For user privacy, this is recommended for most sites over full identity. WAX ExpressTrade URL can be retrieved from ExpressTrade API ITrade/GetTradeURL.
    identity Grants access to Full Name, Email, UserID, SteamID, Subscription Details, and other user profile details & settings.
    deposit Grants access to deposit items into the user's account
    withdraw Grants access to withdraw items from the user's account
    trades Grants access to send, receive, and act on WAX ExpressTrade trade offers on the user's behalf
    items Grants access to see items in the user's OPSkins inventory, WAX ExpressTrade inventory, OPSkins purchase history, and WAX ExpressTrade trade history
    manage_items Grants access to manage and edit prices in the user's OPSkins listings and to transfer items between OPSkins and WAX ExpressTrade
    balance Grants access to view current wallet balances.

    Below are restricted scopes: - Please open a support ticket if you are interested in using any of these scopes.

    Scope Name Access
    edit_account Grants access to edit the user's account details
    payments Grants access to make payments to and from the user's account
    purchase Grants access to purchase OPSkins items on the user's behalf
    cashout Grants access to request cashouts from the user's OPSkins account, to cancel cashouts on the user's behalf, and to change the user's cashout addresses
    convert Grants access to convert currencies in the user's OPSkins account

    Authenticating Users

    Example URL:

    https://oauth.opskins.com/v1/authorize?client_id=ff371b045307&state=1234567&duration=permanent&mobile=1&scope=identity+items&response_type=code
    

    OAuth generally has two uses: to authenticate users (i.e. to determine their identity), and to grant access to a user account (i.e. to perform actions on their behalf). Regardless of the purpose for which you will be using OAuth, you will need to start by authorizing a user.

    Start by directing the user, in a browser, to this URL: https://oauth.opskins.com/v1/authorize

    Include these parameters in the query string:

    Parameter Required Description
    client_id + Your OAuth client's client_id
    response_type + code (the literal string "code")
    state + A random value that you've generated and stored securely (either in client memory, for applications which run on a client device, or in a server-side session, for applications which run on a server)
    duration permanent (the literal string "permanent"); specify this if you want to maintain permanent access to the user's account (with a refresh token). Access can be revoked by the user on their account page.
    mobile 1 (the literal string "1"); specify this if you are prompting the user in a mobile or embedded environment; this will remove the navigation bar from the authorization page
    scope A space-separated list of scopes that you're requesting access to. If omitted, defaults to only identity_basic.

    If the user is not already logged into OPSkins, they will be prompted to sign in. Once signed in, the user will be shown a list of scopes that are being requested by the OAuth client and buttons to approve or deny the request. Whichever button the user clicks, they will be redirected back to the OAuth client's set redirect_uri.

    Example Redirect URI:

    http://return-uri.com/?state=1234567&code=efGkwbUfi9RG9DOv
    

    These parameters will be present in the query string:

    Parameter Present If... Description
    state Always The state value that was passed to the authorize call. Use this to make sure that the authorization request originated from your app.
    error The user denied access access_denied (the literal string)
    code The user approved access An authorization code that you can exchange for a bearer token.

    Getting a Bearer Token

    You will use bearer tokens to access the OPSkins API on a user's behalf.

    Get a bearer token from this URL: https://oauth.opskins.com/v1/access_token

    This endpoint may only be accessed using the HTTP POST method, and you must authenticate with HTTP Basic authorization. The username for HTTP Basic authorization is your client_id, and the password is your client secret (if your client has one), or a random string that you generated and saved securely on the user's device (if your client doesn't have a secret).

    If you're using a device-specific string, you must use the same device secret to refresh your bearer token using a refresh token.

    Using an authorization code

    Example Request

    curl --request POST \
      --url https://oauth.opskins.com/v1/access_token \
      --header 'Authorization: Basic ZmYzNzFiMDQ1MzA3OiRuR3dZVmRhQEBQRXJLQVVwRyNrSFEmWUExTClBKlgx' \
      --data grant_type=authorization_code \
      --data code=efGkwbUfi9RG9DOv
    

    Example Response

    {
        "access_token": "AQAAAAQAAAAAAAVd4P////9Z3Sdf3C+GZhYgJzVwBLYfjo+n8LIAzj+JaAippILcmeX2e2o=",
        "token_type": "bearer",
        "expires_in": 1800,
        "scope": "identity items",
        "refresh_token": "6EnU6ZvGi5OoBcSpGs2V4PkcgfBgwr1V"
    }
    

    If you have an authorization code from the user authorization flow, you can exchange it for a bearer token by POSTing with these urlencoded parameters:

    Parameter Required Description
    grant_type + authorization_code (the literal string)
    code + (the authorization code you received in your return URL)

    Note that authorization codes are valid for a single use only.

    Using a refresh token

    Example Request

    curl --request POST \
      --url https://oauth.opskins.com/v1/access_token \
      --header 'Authorization: Basic ZmYzNzFiMDQ1MzA3OiRuR3dZVmRhQEBQRXJLQVVwRyNrSFEmWUExTClBKlgx' \
      --data grant_type=refresh_token \
      --data refresh_token=6EnU6ZvGi5OoBcSpGs2V4PkcgfBgwr1V
    

    Example Response

    {
        "access_token": "AQAAAAQAAAAAAAVd4P////9Z3Sdf3C+GZhYgJzVwBLYfjo+n8LIAzj+JaAippILcmeX2e2o=",
        "token_type": "bearer",
        "expires_in": 1800,
        "scope": "identity items"
    }
    

    If you have a refresh token (i.e. you've already authorized the user in the past), you can use it to get a new bearer token by POSTing with these urlencoded parameters:

    Parameter Required Description
    grant_type + refresh_token (the literal string)
    refresh_token + (your refresh token)

    Note that refresh tokens can be used to get a bearer token an unlimited number of times.

    Response

    Regardless of what you use to request a bearer token, the response will look like this (JSON-encoded):

    Parameter Description
    access_token Your new bearer token
    token_type bearer (the literal string)
    expires_in The number of seconds after which this bearer token will expire
    scope A space-separated list of scopes this new bearer token has access to
    refresh_token A new refresh token. Not always present in this response (see below)

    Note that bearer tokens expire after a relatively short amount of time (currently 30 minutes). After a bearer token expires, you will need to use a refresh token to get a new one (refresh tokens can be used to get an unlimited number of bearer tokens).

    If you're exchanging an authorization code for a bearer token, and you did not request duration=permanent, then you will not receive a refresh token in this response. Your bearer token will expire, after which time access to the user's account will no longer be available (unless you authorize them again).

    If you're exchanging a refresh token for a bearer token, you may or may not receive a refresh token in this response. If you don't receive a new refresh token, then the refresh token you just received is still valid. If you do receive a new refresh token, then your old refresh token is no longer valid and has been replaced with the new one you just received.

    Refresh tokens do not expire from disuse, but they do get rotated periodically after being used in the manner described in the preceding paragraph.

    Signing a User Out

    Example Request

    curl --request POST \
      --url https://oauth.opskins.com/v1/revoke_token \
      --header 'Authorization: Basic ZmYzNzFiMDQ1MzA3OiRuR3dZVmRhQEBQRXJLQVVwRyNrSFEmWUExTClBKlgx' \
      --data token_type=refresh \
      --data token=6EnU6ZvGi5OoBcSpGs2V4PkcgfBgwr1V
    

    Example Response

    {
        "success": true
    }
    

    If you did not request permanent access to a user's account, then you don't need to do anything to "sign the user out". Their bearer token will automatically expire.

    If you requested permanent access and received a refresh token, then when you no longer need access to the user's account, you should revoke the refresh token.

    To do so, make an HTTP POST to this URL: https://oauth.opskins.com/v1/revoke_token

    This endpoint may only be accessed using the HTTP POST method, and you must authenticate with HTTP Basic authorization. The username for HTTP Basic authorization is your client_id, and the password is your client secret (if your client has one), or the random string that you initially used to get the refresh token (if your client doesn't have a secret).

    Include these urlencoded parameters in the request body:

    Parameter Required Description
    token_type + refresh (the literal string)
    token + (the refresh token you wish to revoke)

    If your token is invalid, you will receive an error response. If your token is valid (and has thus been revoked), you will receive this JSON response: {"success": true}

    Error Responses

    Example Error Response

    {
        "error": "invalid_grant",
        "error_description": "Provided refresh token does not exist, has been revoked, or does not belong to this client"
    }
    

    Errors in calling the OAuth API will generate standard error responses. These responses are JSON-encoded objects.

    Parameter Description
    error An error code
    error_description A human-readable error message

    OAuth Error Codes

    Error Code Description
    invalid_request Your request was not well-formed (e.g. you were missing an input parameter)
    invalid_client Your client credentials were incorrect
    invalid_grant Your authorization code or refresh token is invalid
    unauthorized_client Your OAuth client credentials are not authorized to do what you're trying to do
    unsupported_grant_type You're trying to use a grant_type that this server doesn't support
    invalid_scope You requested a scope that does not exist or that you aren't entitled to request
    insufficient_scope You tried to perform an operation that requires a scope you don't have
    access_denied The user denied access to their account
    invalid_token The bearer token you tried to use is not valid

    Calling the API

    Example Request

    curl --request GET \
      --url 'https://api.opskins.com/ITest/TestAuthed/v1/' \
      --header 'Authorization: Bearer AQAAAAQAAAAAAAVd4P////9Z3Sdf3C+GZhYgJzVwBLYfjo+n8LIAzj+JaAippILcmeX2e2o=' 
    

    Example Invalid Bearer Token Response

    {
        "error": "invalid_token",
        "error_description": "Bearer token is not valid"
    }
    

    Example Invalid Scope Response

    {
        "error": "insufficient_scope",
        "error_description": "You lack the required scope to perform this action"
    }
    

    Now that you have a bearer token, you can call the standard OPSkins API on behalf of the user who authorized the bearer token to you. To do so, call the API as normal with this header:

    Authorization: Bearer <your bearer token>

    If your bearer token is invalid, you will receive a 401 response like shown to the right.

    Possible error_description messages are:

    Note that some API endpoints are not accessible over OAuth, and most require a specific scope to be accessed. If you try to call something for which you lack the appropriate scope, you will receive a 403 response like shown to the right.

    See the OPSkins API documentation for which scope is required by each endpoint.

    Responses

    Example of a successful request to ITest/TestAuthed/v1:

    {
        "status": 1,
        "time": 1498104663,
        "balance": 5124,
        "credits": 0,
        "response": {
            "uid": 12345,
            "id64": "76561197960287930"
        }
    }
    

    Example of a failed request to ISales/EditPrice/v1 due to attempt to update an item's price to the same price it's already listed at:

    {
        "status": 2012,
        "time": 1498105136,
        "message": "Price has not changed."
    }
    

    The API's response encoding can be controlled by the format input parameter. Currently, these formats are supported:

    These are the top-level properties which may be defined in the response object for responses bearing a 200 HTTP response code:

    Headers

    The X-Queries-Remaining header contains the number of API queries that you're allowed to make with your API key today. This isn't defined if your API key has no daily query limit. This number resets daily at midnight EDT.

    Some API methods may be cached for a period of time. For methods which are cached, X-Cache-Status may be either fresh or cached, depending on whether the data is fresh.

    Error Codes

    1xxx: User Account Error

    Code Error Meaning
    1000 GENERIC_USER_ACCOUNT_ERROR This code indicates that there was a generic error which involved a problem with your user account. Further details are unavailable.
    1001 NOT_ENOUGH_COINS This code indicates that the operation failed because your account balance is insufficient (we refer to funds as "coins" internally).
    1002 ACCESS_DENIED The operation failed because your account does not have necessary permissions.
    1003 NOT_LOGGED_IN The operation failed because you are not authenticated.
    1004 LISTING_LIMIT_EXCEEDED The operation failed because you have too many items listed under your account.
    1005 NO_MORE_FREE_USES The operation failed because you tried to use a paid feature for free (e.g. you tried to feature an item using a free featured listing from a subscription purchase), but your account has no more free uses of that item.
    1006 INVALID_PASSWORD The supplied password was incorrect.
    1007 PASSWORD_UNSET Your account does not have a password set on it.
    1008 TOO_MANY_PASSWORD_ATTEMPTS You have gotten too many passwords wrong, and you must wait.
    1009 UNACCEPTABLE_PASSWORD That password does not satisfy the password requirements.
    1010 TWOFACTOR_INCORRECT The supplied two-factor authentication code was not correct.
    1011 USERNAME_TAKEN That username has already been taken by another account.
    1012 UNACCEPTABLE_USERNAME That username does not satisfy the username requirements.
    1013 EMAIL_UNVERIFIED Your account's email address has not been verified.
    1014 NO_MORE_FREE_USES You requested a free usage of something (e.g. featured listing), but your account doesn't have any more free uses remaining.
    1015 UNACCEPTABLE_EMAIL That email address can't be used. Try another one.
    1016 NOT_ALLOWED_IN_COUNTRY Country location is not allow to make action.
    1017 NEEDS_EMAIL_CODE Verification code from email is required to perform action.
    1018 EMAIL_UNSET Request or user should have email.
    1019 WHITELIST_REQUIRED Whitelist required.
    1020 NEEDS_PHONE_CODE SMS phone code is required.
    1021 TRADE_URL_UNSET User required to have trade url.
    1022 INVENTORY_FULL Account inventory reached items limit.
    1023 ACCOUNT_NOT_SETUP Account is not setuped.

    2xxx: Internal Error

    Code Error Meaning
    2000 GENERIC_INTERNAL_ERROR The operation failed due to a problem on our end. Further details are unavailable.
    2001 DATABASE_ERROR The operation failed due to a problem with our database. Please try again in a few moments.
    2002 NOT_FOUND The operation failed because the requested item (be it a user, a listing, etc.) was not found.
    2003 BAD_STATE The operation failed because the requested object is in a bad state. The requested operation cannot be completed while the object is in its current state.
    2004 NO_MATCHING_ITEMS_FOUND Similar to NOT_FOUND, this indicates that the operation failed because we couldn't find anything matching your query.
    2005 BOT_UNAVAILABLE The operation failed because a bot that is needed to complete the operation is currently unavailable, most likely due to Steam issues. Please try again in a few moments.
    2006 PAYMENT_GATEWAY_UNAVAILABLE The operation failed because a required payment gateway is not available.
    2007 CANNOT_CREATE_DIRECTORY We weren't able to create a directory on our end.
    2008 FILE_UPLOAD_ERROR The operation failed due to an error in the file upload.
    2009 FILE_UPLOAD_ALREADY_EXISTS The file you are trying to upload already exists on the server.
    2010 CANNOT_DELETE_FILE A requested file could not be deleted.
    2011 BOT_FULL A required bot is full, and cannot accept any more items.
    2012 ALREADY_IN_THAT_STATE You are trying to change the state of an object, but the object is already in the desired state.
    2013 LOCKED The requested object is locked and cannot be changed.
    2014 PRICE_HAS_CHANGED The price on the requested object has changed.
    2015 ENCRYPTION_KEY_INVALID The encryption key you tried to use is not valid.
    2016 DISABLED The requested endpoint or system is currently disabled.
    2018 EXPIRED Expired.
    2019 EMPTY_DATA Data is empty.
    2020 FAILED_TO_CONVERT_CRYPTO Failed to make crypto exchange.

    3xxx: User Error

    Code Error Meaning
    3000 BAD_INPUT The input to your request was malformed or otherwise bad.
    3001 UNACCEPTABLE_ITEM When listing an item: we cannot accept that item for sale at this time. When editing an existing item: the requested operation cannot apply to that item.
    3002 DUPLICATE_ITEM - You're trying to list an item that is already on sale - You tried to list the same item in the same request twice - You tried to list two patterned CS:GO items with identical names and differing prices in the same trade
    3003 UNACCEPTABLE_PRICE You can't list that item for that price.
    3004 DIFFERENT_BOTS_NOT_ALLOWED You can't make this request for items on different bots (all items in the request must reside on the same bot)
    3005 BAD_REQUEST Your request was missing some data, or it was otherwise bad.
    3006 TOO_MANY_REDEMPTIONS This object has been redeemed too many times.
    3007 CAPTCHA_INVALID Your CAPTCHA solution was incorrect, or you need to supply a CAPTCHA solution to complete this action.
    3008 RATE_LIMIT_EXCEEDED You have been doing that action too frequently, and you must wait.
    3009 NOT_PURCHASABLE Item is not purchaseble.
    3010 EMPTY_CART Cart is empty.
    3011 BUYERS_CLUB_ONLY Allowed for Buyers Club.
    3012 MISSING_DEPENDENCY
    3013 CART_TOTAL_CHANGED
    3014 REQUEST_OR_FILE_TOO_LARGE
    3015 UNACCEPTABLE_FILE_TYPE
    3016 SUPPORT_TICKET_ALREADY_CREATED
    3017 INSUFFICIENT_BALANCE
    3018 NOT_PURCHASABLE_WITH_SPECIFIED_CURRENCY

    4xxx: Third Party Error

    Code Error Meaning
    4000 STEAM_UNAVAILABLE Steam is currently not available. Please try again later when Steam is working.
    4001 STEAM_LIMIT We've run into a Steam limitation (e.g. maximum number of trade offers, maximum number of items).
    4002 STEAM_UNAVAILABLE_CACHED Steam is currently not available (we didn't actually check this time, but it failed recently so we're delaying requests so we don't slam Steam). Please try again later when Steam is working.
    4003 THIRD_PARTY_UNAVAILABLE A third-party service is currently not available.
    4004 STEAM_OFFER_FAILURE
    4005 ORDER_UNFULFILLED

    Trade Offer Status Codes

    Where a trade offer ID is expected, these codes may be provided instead.

    Code Meaning
    -1 A trade offer has not yet been sent, or a trade offer was sent but wasn't accepted in the allotted time and it has been canceled
    -2 Either the user or the bot has too many trade offers out and cannot send any more
    -3 The user cannot trade right now due to a ban or a trade cooldown (e.g. Steam Guard)
    -4 A trade offer was sent but the user declined or countered it
    -5 The user's trade URL is wrong or their inventory is full
    -9 There was some unknown error; support will need to repair this item manually
    -10 Steam reports that this item's ID does not exist anymore. If the item is in the system, support will need to repair it manually

    Standard Sale Object

    Standard Sale Object example

    {
      "id": 35880764,
      "amount": 2,
      "showcase": 0,
      "color": "D2D2D2",
      "img": "https://steamcommunity-a.opskins.media/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXU5A1PIYQNqhpOSV-fRPasw8rsUFJ5KBFZv668FFYwnfKfcG9HvN7iktaOkqD1auLTxD5SvZYgiLvFpo7xjVLh-kdrYWnzcoGLMlhpsyM-5vg",
      "inspect": null,
      "type": "Base Grade Container",
      "classid": "1432174707",
      "instanceid": "0",
      "market_name": "Revolver Case",
      "market_hash_name": "Revolver Case",
      "appid": 730,
      "contextid": "2",
      "assetid": "7337546177",
      "bot_id": 702,
      "state": 2,
      "bumptime": null,
      "wear": "",
      "stickers": [],
      "val_1": null,
      "market_fee_app": null,
      "flags": {
          "tf2_uncraftable": false,
          "trade_locked": false,
          "has_screenshots": false,
          "screenshot_is_video": false,
          "steam_commodity": false
      },
      "is_your_item": false
    }
    

    Newer API methods output what we call "Standard Sale Objects" when you query them for details about a sale or an item in your OPSkins inventory. Each standard sale object has the properties listed here, although some methods might add or remove properties (which will be noted in their documentation).

    Parameter Type Description
    sale object
        id int The item's sale ID
        amount int The item's price, in USD cents. If the item is not on sale, it's the item's previous sale price. If the item was deposited into your OPSkins inventory, this will be a garbage value
        showcase int Indicates whether the item is privately listed (-1), featured (1), or has no special showcase (0)
        color string The item's "color" from Steam, in hex (e.g. "AABBCC")
        img URL (string) A full URL to the item's image
        inspect URL (string) The item's inspect link, or null if not applicable
        type string The item's "type" string from Steam, e.g. "Base Grade Container"
        classid string The item's Steam classid, as a string
        instanceid string The item's Steam instanceid, as a string
        market_name string The item's Steam market name (which is the name displayed on the site)
        market_hash_name string The item's Steam market_hash_name, which is usually identical to its market_name
        appid int The Steam AppID of the app which owns this item (e.g. 730 for CS:GO)
        contextid string The Steam contextid which owns this item, as a string
        assetid string The item's Steam asset ID, as a string, if available. null if not available
        bot_id int The internal OPSkins ID of the bot which is holding, will hold, or has held this item. You can map this to a SteamID using IStatus/GetBotList.
        state int The item's state. You can map this to a string using ISales/GetSaleStatuses
        bumptime int The Unix timestamp of when this item was last bumped
        wear float The item's wear, as a string, or null if not applicable
        stickers array-object An array of objects for each sticker applied to this item.
            sticker_id int
            wear string
        val_1 int The item's "val_1" value, which is always an integer (or null if not applicable). For TF2, this is an Unusual item's effect index. For CS:GO, this is a pattern index.
        market_fee_app int The AppID of the owning game for a Steam trading card, emoticon, etc. null if not applicable
        escrow_ends int Unix timestamp when escrow/trade lock ends (null if N/A)
        flags object An object containing the following boolean properties
            tf2_uncraftable bool Indicates whether this item is uncraftable in TF2
            trade_locked bool Indicates whether this item is on a temporary trade lock (e.g. H1Z1). Deprecated at this point as H1Z1 has removed trade locks.
            has_screenshots bool Indicates whether this item has an Instant Field Inspection
            screenshot_is_video bool If this item has an Instant Field Inspection, indicates whether there is a video available in addition to screenshots
            steam_commodity bool Indicates whether Steam considers this item to be a "commodity" (e.g. uses buy orders only on the Steam Community Market)
        is_your_item bool Only present when relevant. This is true if you own this item, or false otherwise.

    Interfaces

    ICashout

    Processor IDs

    Some of the API methods documented on this page will either consume or output processor IDs. These are integers which represent a particular cashout processor. The current cashout processor IDs are:

    Cashout Addresses

    Before a cashout may be requested, you first need to set your processor address. Most processors (everything except Bitcoin) will not allow you to change your cashout address once set, unless you contact support (for security reasons). If you have had two-factor authentication enabled on your account for at least 14 days, you may change your cashout addresses for these processors at any time, although you will be required to provide your latest two-factor authentication code.

    Cancel Pending Cashout

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/ICashout/CancelPendingCashout/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      -d cashoutid=43
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513761121
    }
    

    Attempts to cancel a pending cashout. If we are currently working on processing cashouts, this may return error code 2013 LOCKED. In this case, simply try again in a minute or so

    HTTP Request

    POST https://api.opskins.com/ICashout/CancelPendingCashout/v1/

    Input

    Parameter Type Required Description
    cashoutid int + The ID of the cashout you wish to cancel

    Output

    Parameter Type Description
    none

    Get Address

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ICashout/GetAddress/v1/?processor=1' \
      --header 'authorization: Basic {{AUTH_HASH}}' 
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "processor_name": "PayPal",
            "address": "email@example.com",
            "timestamp": 1482499687,
            "can_change": false,
            "change_requires_twofactor": true
        }
    }
    

    Get your saved cashout address for a particular processor.

    HTTP Request

    GET https://api.opskins.com/ICashout/GetAddress/v1/

    Input

    Parameter Type Required Description
    processor int + The ID of the processor you want to query

    Output

    Parameter Type Description
    processor_name string The name of the processor
    address string Your saved address, or null if not yet saved
    timestamp int The Unix timestamp of when you saved this address, or null if not yet saved
    can_change bool A boolean indicating whether you can change this address by calling SetAddress again right now
    change_requires_twofactor bool A boolean indicating whether you will need to provide a two-factor code to change this address

    Get Bitcoin Instant Cashout Rate

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ICashout/GetBitcoinInstantCashoutRate/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' 
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "usd_rate": 10656.75
        }
    }
    

    Get the current approximate BTC/USD exchange rate which will be used if you request an instant Bitcoin cashout.

    HTTP Request

    GET https://api.opskins.com/ICashout/GetBitcoinInstantCashoutRate/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    usd_rate float The price per 1 BTC, in USD (dollars, not cents)

    Get Cashoutable Balance

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ICashout/GetCashoutableBalance/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' 
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "total_balance": 4546899,
            "pending_cashout_balance": 126500,
            "deposited_balance": 0,
            "cashoutable_balance": 4420399
        }
    }
    

    Get your account's balance, including how much of your balance can be cashed out.

    HTTP Request

    GET https://api.opskins.com/ICashout/GetCashoutableBalance/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    total_balance int Your total (spendable) account balance, in USD cents
    pending_cashout_balance int The sum of all your pending cashouts, in USD cents
    deposited_balance int How much of your balance was deposited through a payment provider, in USD cents. This amount cannot be cashed out
    cashoutable_balance int The total amount of money you have that can be cashed out, in USD cents. This is your total_balance minus your pending_cashout_balance and your deposited_balance

    Get Ethereum Instant Cashout Rate

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ICashout/GetEthereumInstantCashoutRate/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' 
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "usd_rate": 802.95
        }
    }
    

    HTTP Request

    GET https://api.opskins.com/ICashout/GetEthereumInstantCashoutRate/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    usd_rate float USD rate in dollars

    Get Pending Cashouts

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ICashout/GetPendingCashouts/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' 
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513760722,
        "response": {
            "cashouts": [
                {
                    "id": 43,
                    "amount": 500,
                    "address": "email@example.com",
                    "timestamp": 1508488149,
                    "processor": 1,
                    "priority": true
                },
                {
                    "id": 44,
                    "amount": 10000,
                    "address": "1F1tAaz5x1HUXrCNLbtMDqcw6o5GNn4xqX",
                    "timestamp": 1513760707,
                    "processor": 3,
                    "priority": false
                }
            ]
        }
    }
    

    Retrieves a list of pending cashouts on your account

    HTTP Request

    GET https://api.opskins.com/ICashout/GetPendingCashouts/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    cashouts array-object An array of objects, each of which represents a cashout and has these properties:
        id int The cashout ID
        amount int The amount to be cashed out, in USD cents
        address string The address to which the cashout will be sent
        timestamp int A Unix timestamp representing when this cashout was requested
        processor int The ID of the processor which this cashout will be sent via
        priority bool A boolean indicating whether this is a priority cashout (which will incur extra fees)

    Request Bitcoin

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/ICashout/RequestBitcoin/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      -d amount=1000
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513762337,
        "response": {
            "address": "1F1tAaz5x1HUXrCNLbtMDqcw6o5GNn4xqX",
            "cashoutid": 45,
            "priority": false
        }
    }
    

    Request a Bitcoin cashout. You must have first set your Bitcoin address using SetAddress. Your account needs to be whitelisted for standard Bitcoin cashouts (but not for instant ones); if you aren't, then this will fail with error code 1019 WHITELIST_REQUIRED.

    Instant cashouts are not available for cashout requests below a certain USD size. This threshold is subject to change without notice. If you try to request an instant cashout that's too small, this will fail with error code 3003 UNACCEPTABLE_PRICE. If you request an instant cashout and instant Bitcoin cashouts are unavailable, this will fail with error code 2016 DISABLED.

    You can see the approximate exchange rate we will use for an instant Bitcoin cashout using the GetBitcoinInstantCashoutRate method.

    HTTP Request

    POST https://api.opskins.com/ICashout/RequestBitcoin/v1/

    Input

    Parameter Type Required Description
    amount int + The amount you wish to cashout, in USD cents
    priority int Pass 1 if you want an instant Bitcoin cashout, or 0 if you want a standard one

    Output

    Parameter Type Description
    address string The Bitcoin address where this cashout will be sent
    cashoutid int The ID of the newly-created cashout request
    priority string A boolean indicating whether this cashout request is for a priority/instant cashout
    bitcoin_txn_id string Only present if this was an instant cashout. This is the Bitcoin transaction ID (which is a hex-string hash) which was just paid to you
    bitcoin_amount_satoshis int Only present if this was an instant cashout. This is the amount of BTC you received, in satoshis (0.00000001 BTC)

    Request Ethereum

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/ICashout/RequestEthereum/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      -d amount=10000
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513764992,
        "balance": 4533815,
        "credits": 6780,
        "response": {
            "address": "0xC2D7CF95645D33006175B78989035C7c9061d3F9",
            "cashoutid": 61,
            "priority": true,
            "ethereum_txn_id": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331",
            "ether_amount_wei": "248120000000000000"
        }
    }
    

    Request a Bitcoin cashout. You must have first set your Bitcoin address using SetAddress. Your account needs to be whitelisted for standard Bitcoin cashouts (but not for instant ones); if you aren't, then this will fail with error code 1019 WHITELIST_REQUIRED.

    Instant cashouts are not available for cashout requests below a certain USD size. This threshold is subject to change without notice. If you try to request an instant cashout that's too small, this will fail with error code 3003 UNACCEPTABLE_PRICE. If you request an instant cashout and instant Bitcoin cashouts are unavailable, this will fail with error code 2016 DISABLED.

    You can see the approximate exchange rate we will use for an instant Bitcoin cashout using the GetBitcoinInstantCashoutRate method.

    HTTP Request

    POST https://api.opskins.com/ICashout/RequestEthereum/v1/

    Input

    Parameter Type Required Description
    amount int + The amount you wish to cashout, in USD cents
    priority int Pass 1 if you want an instant Bitcoin cashout, or 0 if you want a standard one

    Output

    Parameter Type Description
    address string The Ethereum address where this cashout will be sent
    cashoutid int The ID of the newly-created cashout request
    priority string A boolean indicating whether this cashout request is for a priority/instant cashout
    ethereum_txn_id string Ethereum transaction ID
    ether_amount_wei string Amount in wei

    Request PayPal

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/ICashout/RequestPayPal/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      -d amount=1000 \
      -d priority=1
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513766605,
        "response": {
            "address": "email@example.com",
            "cashoutid": 62,
            "priority": true
        }
    }
    

    Request a cashout via PayPal. PayPal cashouts carry a base fee of around 2.9% which is charged by PayPal. You must have first set your PayPal address using SetAddress. In some situations (typically PayPal service outages) we must disable the ability to request priority cashouts. In this case, if you request a priority cashout, you will receive an error code of 2016 LOCKED.

    HTTP Request

    POST https://api.opskins.com/ICashout/RequestPayPal/v1/

    Input

    Parameter Type Required Description
    amount int + The amount you wish to cashout, in USD cents
    priority int Pass 1 if you want an instant Bitcoin cashout, or 0 if you want a regular one

    Output

    Parameter Type Description
    address string The Bitcoin address where this cashout will be sent
    cashoutid int The ID of the newly-created cashout request
    priority string A boolean indicating whether this cashout request is for a priority/instant cashout

    Request Skrill

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/ICashout/RequestSkrill/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      -d amount=1000
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513766605,
        "response": {
            "address": "email@example.com",
            "cashoutid": 63,
            "priority": true,
            "skrill_txn_id": 497029,
            "skrill_txn_status": 2,
            "skrill_txn_status_msg": "processed"
        }
    }
    

    Request a Skrill cashout. Skrill cashouts are always instant and carry a flat 5% fee. You must have first set your Skrill address using SetAddress. In event of a Skrill service outage, you may receive error code 2006 PAYMENT_GATEWAY_UNAVAILABLE. In this situation, your account will not be charged, and you should try again in an hour or so. If OPSkins must disable Skrill cashouts at any time, this will fail with error code 2016 DISABLED.

    Because of their instant nature, Skrill cashouts cannot be canceled.

    HTTP Request

    POST https://api.opskins.com/ICashout/RequestSkrill/v1/

    Input

    Parameter Type Required Description
    amount int + The amount you wish to cashout, in USD cents

    Output

    Parameter Type Description
    address string The email address where the payment was sent
    cashoutid int The ID of the newly-created (and paid) cashout request
    skrill_txn_id int The ID of the Skrill payment transaction (see Skrill's documentation)
    skrill_txn_status int An integer representing the status of the Skrill payment transaction
    skrill_txn_status_msg string A string representing the status of the Skrill payment transaction

    Set Address

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/ICashout/SetAddress/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      -d processor=6 \
      -d address=0xC2D7CF95645D33006175B78989035C7c9061d3F9
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513763085,
        "response": {
            "processor_name": "Ethereum",
            "address": "0xC2D7CF95645D33006175B78989035C7c9061d3F9",
            "html": "Your Ethereum cashout address has been updated successfully."
        }
    }
    

    Set your saved cashout address for a particular processor. This will only update the address which will be used for cashout requests you create in the future; any pending cashout requests will still be paid to the address on file at time of request. If you want to change the address to which those requests will be sent, then you will need to cancel those requests and create new ones.

    HTTP Request

    POST https://api.opskins.com/ICashout/SetAddress/v1/

    Input

    Parameter Type Required Description
    processor int + The ID of the processor you want to use
    address string + Your cashout address
    twofactor_code string Optional if setting your address for the first time, or updating your Bitcoin address. Required otherwise. This is your current TOTP authentication code.

    Output

    Parameter Type Description
    processor_name string The name of the processor, as a string
    address string Your newly saved address
    html string Message

    ICrypto

    Convert Currencies

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/ICrypto/ConvertCurrencies/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --header 'Content-Type: application/json; charset=utf-8' \
      --data '{"convert_from":1,"convert_to":101,"convert_amount":1}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513867708,
        "response": {
            "converted": true
        }
    }
    

    HTTP Request

    POST https://api.opskins.com/ICrypto/ConvertCurrencies/v1/

    Input

    Parameter Type Required Description
    convert_from int + Currency ID
    convert_to int + Currency ID
    convert_amount int + Amount
    cashoutable boolean Set to true to convert from cashoutable balance

    Output

    Parameter Type Description
    converted bool true if converted

    Get Address

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ICrypto/GetAddress/v1/?currency_id=102' \
      --header 'authorization: Basic {{AUTH_HASH}}' 
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513864287,
        "response": {
            "currency_id": "102",
            "currency_code": "wax",
            "address": ""
        }
    }
    

    Get User's saved wallet's address

    HTTP Request

    GET https://api.opskins.com/ICrypto/GetAddress/v1/

    Input

    Parameter Type Required Description
    currency_id int + Currency ID

    Output

    Parameter Type Description
    currency_id string
    currency_code string
    address string

    Get Crypto Converted Amount

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ICrypto/GetCryptoConvertedAmount/v1?convert_from=1&convert_amount=10' \
      --header 'authorization: Basic {{AUTH_HASH}}' 
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513867387,
        "response": {
            "rates": {
                "eth": "0.131181949363767540",
                "wax": "15.80505414"
            }
        }
    }
    

    HTTP Request

    GET https://api.opskins.com/ICrypto/GetCryptoConvertedAmount/v1/

    Input

    Parameter Type Required Description
    convert_from int + Currency ID
    convert_amount int + Amount

    Output

    Parameter Type Description
    rates object Converted rates

    Get Currencies

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ICrypto/GetCurrencies/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' 
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1517904122,
        "response": {
            "currencies": [
                {
                    "index": 102,
                    "code": "wax",
                    "name": "WAX Token",
                    "name_short": "WAX",
                    "logo": "https://opskins.com/images/crypto-logos/wax.png"
                }
            ]
        }
    }
    

    Get info about available cryptocurrencies

    HTTP Request

    GET https://api.opskins.com/ICrypto/GetCurrencies/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    currencies array-object
        index int Internal cryptocurrency index (ID)
        code string Cryptocurrency code
        name string Full name of the cryptocurrency
        name_short string Short name of the cryptocurrency
        logo string(URL) Cryptocurrency logotype URL

    Get Withdraw List

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ICrypto/GetWithdrawList/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' 
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513864473,
        "response": {
            "statuses": [
                {
                    "status_id": 1,
                    "name": "Pending"
                },
                {
                    "status_id": 2,
                    "name": "Success"
                },
                {
                    "status_id": 3,
                    "name": "Failure"
                }
            ],
            "count": "0",
            "items": []
        }
    }
    

    Get paginated list of user's crypto withdrawals

    HTTP Request

    GET https://api.opskins.com/ICrypto/GetWithdrawList/v1/

    Input

    Parameter Type Required Description
    page int Page

    Output

    Parameter Type Description
    statuses array-object List of available ststuses
        status_id int
        name string
    count string Items count
    items array-object
        status int
        timestamp int
        currency_id int
        crypto string
        amount int
        address string
        comments string
        crypto_txid string

    Set Address

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/ICrypto/SetAddress/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --header 'Content-Type: application/json; charset=utf-8' \
      --data '{"currency_id":101,"address":"0xC2D7cF95645d33006175B78989035c7C9061D3f9"}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513864287,
        "response": {
            "currency_id": "101",
            "currency_code": "eth",
            "address": "0xC2D7cF95645d33006175B78989035c7C9061D3f9"
        }
    }
    

    Save User's wallet's address

    HTTP Request

    POST https://api.opskins.com/ICrypto/SetAddress/v1/

    Input

    Parameter Type Required Description
    currency_id int + Currency ID
    address string + Wallet address

    Output

    Parameter Type Description
    currency_id int
    currency_code string
    address string

    Withdraw

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/ICrypto/Withdraw/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --header 'Content-Type: application/json; charset=utf-8' \
      --data '{"currency_id":101,"amount":1}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513864287,
        "response": {
            "withdrawn_amount": "1.000000000000000000",
            "crypto_txid": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331",
            "new_balance": "10.000000000000000000",
            "new_withdrawable_balance": "10.000000000000000000"
        }
    }
    

    Withdrawing cryptos

    HTTP Request

    POST https://api.opskins.com/ICrypto/Withdraw/v1/

    Input

    Parameter Type Required Description
    currency_id int + Currency ID
    amount int + Amount
    address string Wallet address if user has no any

    Output

    Parameter Type Description
    withdrawn_amount string
    crypto_txid string
    new_balance string
    new_withdrawable_balance string

    IFeed

    Get Homepage Banners

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/IFeed/GetHomepageBanners/v1/'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "banners": [
                {
                    "desktop_img": "https://opskins.com/images/banners/homeheading-en-default.jpg",
                    "mobile_img": "https://opskins.com/images/banners/homeheading-mobile-en-default.jpg",
                    "caption": "Get started buying and selling in-game skins and virtual items today.",
                    "call_to_action_label": "Join Now",
                    "call_to_action_url": "https://opskins.com/?loc=login",
                    "is_external_call_to_action": false
                },
                {
                    "desktop_img": "https://opskins.com/images/banners/homeheading-en-ethcashout.jpg",
                    "mobile_img": "https://opskins.com/images/banners/homeheading-mobile-en-ethcashout.jpg",
                    "caption": "You can now cashout your OPSkins Wallet Funds to Ethereum and Bitcoin.",
                    "call_to_action_label": "See Details",
                    "call_to_action_url": "https://blog.opskins.com/instant-no-fee-bitcoin-cashouts-now-live/",
                    "is_external_call_to_action": true
                }
            ]
        }
    }
    

    Get Home page banners

    HTTP Request

    GET https://api.opskins.com/IFeed/GetHomepageBanners/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    banners array-object
        desktop_img string Bigger banner image url
        mobile_img string Smaller banner image url
        caption string Banner's caption (localized)
        call_to_action_label string Call to action label (localized)
        call_to_action_url string Call to action url
        is_external_call_to_action bool Is it external link?

    Get Featured Sales

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/IFeed/GetFeatured/v1/'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "featured": [
                {
                    "appid": 730,
                    "sales": [
                        {
                            "id": 37218730,
                            "amount": 21500,
                            "showcase": 1,
                            "color": "8650AC",
                            "img": "https://steamcommunity-a.opskins.media/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpotLu8JAllx8zJYAJG7dG3h4OehMj4OrzZgiVT7Jdz2euS84_x3wSyrxY_ZGr1dYGdcFBvZFnQ8gTvyOzng8K0uszB1zI97SQtQxI0",
                            "inspect": "steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561198254158431A7412443167D4633331731617786154",
                            "type": "? StatTrak™ Covert Knife",
                            "classid": "721059643",
                            "instanceid": "188530170",
                            "market_name": "★ StatTrak™ Bayonet | Damascus Steel (Factory New)",
                            "market_hash_name": "★ StatTrak™ Bayonet | Damascus Steel (Factory New)",
                            "appid": 730,
                            "contextid": "2",
                            "assetid": "7412443167",
                            "bot_id": 328,
                            "state": 2,
                            "bumptime": 1473293439,
                            "wear": "0.059836708009243",
                            "stickers": [],
                            "val_1": 410,
                            "market_fee_app": null,
                            "escrow_ends": null,
                            "flags": {
                                "tf2_uncraftable": false,
                                "trade_locked": false,
                                "has_screenshots": false,
                                "screenshot_is_video": false,
                                "steam_commodity": false
                            }
                        },
                        {
                            "id": 36956310,
                            "amount": 120000,
                            "showcase": 1,
                            "color": "8650AC",
                            "img": "https://steamcommunity-a.opskins.media/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpovbSsLQJf3qr3czxb49KzgL-Kmsj2P7rSnXtU6dd9teTA5475jV2urhcDPzCkfMKLIwRvYwrWqVS8wezpjcS_78_Mn3Bruykj7HbfzhPm00xLOLc-jPXNHELeWfLcbrqw2A",
                            "inspect": "steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561198219365715A7387729825D7683743778350955982",
                            "type": "? Covert Knife",
                            "classid": "1897901789",
                            "instanceid": "188530139",
                            "market_name": "★ M9 Bayonet | Doppler (Factory New)",
                            "market_hash_name": "★ M9 Bayonet | Doppler (Factory New)",
                            "appid": 730,
                            "contextid": "2",
                            "assetid": "7387729825",
                            "bot_id": 124,
                            "state": 2,
                            "bumptime": 1473290674,
                            "wear": "0.0093218917027116",
                            "stickers": [],
                            "val_1": 417,
                            "market_fee_app": null,
                            "escrow_ends": null,
                            "flags": {
                                "tf2_uncraftable": false,
                                "trade_locked": false,
                                "has_screenshots": true,
                                "screenshot_is_video": true,
                                "steam_commodity": false
                            }
                        }
                    ]
                }
            ]
        }
    }
    

    Get featured sales

    HTTP Request

    GET https://api.opskins.com/IFeed/GetFeatured/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    featured array-object An array of objects containing list of applications and featured sales
        appid integer Application ID
        sales array-object Array of featured sales for the application. Each object is Standard Sale Object

    IInventory

    Deposit

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/IInventory/Deposit/v1/' \
      --header 'content-type: application/json; charset=utf-8' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --data '{"items":"[{\"appid\":730,\"contextid\":2,\"assetid\":\"8916807344\"}]"}'
    

    Response returns JSON structured like this:

    {
      "status": 1,
      "time": 1512020202,
      "response": {
        "tradeoffer_id": 1458892,
        "tradeoffer_error": null,
        "bot_id": 593,
        "bot_id64": "76561197973578969",
        "security_token": "CkjkNS",
        "sales": [
          {
            "saleid": 37246531,
            "appid": 730,
            "contextid": "2",
            "assetid": "8916807344",
            "market_name": "Nova | Predator (Field-Tested)",
            "price": 10,
            "addons": []
          }
        ]
      }
    }
    

    Add between 1 and 50 items (upper cap subject to change) to your On-Site Inventory. This will fail if any of the items passed in already have sales with active trade offers out. If there's a matching sale for an item that doesn't have a trade offer out, it will automatically be deleted. This works identically to ISales/ListItems/v1 minus the price and addons parameters.

    HTTP Request

    GET https://api.opskins.com/IInventory/Deposit/v1/

    Input

    Parameter Type Required Description
    items string + A JSON-encoded array of objects. One object for each item you wish to list. Each object should contain these properties:
        appid int The Steam AppID of the game which owns this item (e.g. 730 for CS:GO, 440 for TF2, 570 for Dota 2)
        contextid string The Steam context ID which contains this item (2 for Valve games, 6 for Steam Community items, 1 for H1Z1, etc.). When you right-click on an item in your Steam inventory and copy its URL, the context ID is the second number after the hash.
        assetid string The Steam asset ID of the item. This is also known as just the item's id

    Output

    Parameter Type Description
    tradeoffer_id int If we were able to successfully send a trade offer, this is its ID. If error, this is null.
    tradeoffer_error string If we weren't able to send a trade offer, this is an error message string. If there was no error, this is null
    bot_id string The internal OPSkins ID of the storage account to which these sales were assigned.
    bot_id64 string The 64-bit SteamID of the storage account to which these sales were assigned. This is the account that's sending a trade offer.
    security_token string The 6-character security token that is included in the trade offer message.
    sales array-object An array containing objects describing the sales that were created. Each object has these properties:
        saleid int The OPSkins internal ID of this sale
        appid int The Steam AppID for this item
        contextid string The Steam context ID in which this item resides in your inventory
        assetid string The current asset ID of this item in your inventory
        market_name string The name of this item
        price int The list price of this item in USD cents (typically set to $99,999.99)
        addons array-string An array containing strings for each addon this item has

    Get Instant Sale Inventory

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/IInventory/GetInstantSaleInventory/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
      "status": 1,
      "time": 1512020202,
      "response": {
        "items": [
          {
            "id": 37246435,
            "id_parent": 35994866,
            "name": "Mr Grimmmz AR-15",
            "inspect": null,
            "type": "Skin",
            "appid": 433850,
            "contextid": "1",
            "assetid": "169270531706182691",
            "classid": "1943905157",
            "instanceid": "0",
            "bot_id": 587,
            "bot_id64": "76561198262531747",
            "added_time": 1502271146,
            "offer_id": null,
            "offer_declined": false,
            "offer_untradable": false,
            "requires_support": false,
            "can_repair": null,
            "instantsell_credits": 2505,
            "instantsell_money": 2505,
            "has_stickers": false
          }
        ],
        "commodities": {
          "AK-47 | Emerald Pinstripe (Field-Tested)": {
            "name": "AK-47 | Emerald Pinstripe (Field-Tested)",
            "type": "Restricted Rifle",
            "appid": 730,
            "contextid": "2",
            "classid": "469457057",
            "instanceid": "480085569",
            "instantsell_credits": 90,
            "instantsell_money": 90,
            "amount": 4
          },
          "AK-47 | Frontside Misty (Minimal Wear)": {
            "name": "AK-47 | Frontside Misty (Minimal Wear)",
            "type": "Classified Rifle",
            "appid": 730,
            "contextid": "2",
            "classid": "1310726693",
            "instanceid": "188530139",
            "instantsell_credits": 871,
            "instantsell_money": 871,
            "amount": 1
          }
        }
      }
    }
    

    Get the contents of the current user's OSI that are instant-sellable, with prices

    HTTP Request

    GET https://api.opskins.com/IInventory/GetInstantSaleInventory/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    items array-object
        id int OPSkins sale ID of the item
        id_parent int Sale ID of the item that created this
        name string Steam name of the item
        inspect string Inspect link, if inspectable
        type string Steam "type" of the item
        appid int Steam AppID of the game that owns this item
        contextid string ContextID that owns this item
        assetid string Steam AssetID of the item
        classid string The item's Steam classid
        bot_id int Internal ID of the bot holding this item
        bot_id64 string SteamID of the bot holding this item
        added_time int The Unix timestamp for when this item was added to your OPSkins inventory
        offer_id string If a trade offer was successfully sent, this is its ID as a string. If we weren't able to send a trade offer, this is null
        offer_declined bool Was an offer sent, and then declined by the user?
        offer_untradable bool Did we attempt to send an offer, and were we unable to because the user can't trade or has bad trade URL?
        requires_support bool Does this item need support intervention?
        can_repair bool If item requires support, can you try to self-repair it?
        instantsell_credits int
        instantsell_money int
        has_stickers bool
    commodities object Each property name is item market name
        name string Steam name of the item
        type string Steam "type" of the item
        appid int Steam AppID of the game that owns this item
        contextid string ContextID that owns this item
        classid string The item's Steam classid
        instanceid string The item's Steam instanceid
        instantsell_credits int
        instantsell_money int
        amount int

    Get Inventory v1

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/IInventory/GetInventory/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "limits": {
                "730": {
                    "free_slots": 20
                }
            },
            "items": [
                {
                    "id": 37246116,
                    "id_parent": 37163694,
                    "name": "AK-47 | Black Laminate (Battle-Scarred)",
                    "market_hash_name": "AK-47 | Black Laminate (Battle-Scarred)",
                    "inspect": "steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561198254952801A7409960970D918957424684059103",
                    "type": "Mil-Spec Grade Rifle",
                    "appid": 730,
                    "contextid": "2",
                    "assetid": "7409960970",
                    "classid": "1837803532",
                    "instanceid": "0",
                    "img": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot7HxfDhoyszJemkV4N27q4KcqP_xMq3I2GhTupQpi7DCrY2m3AzkrkZrZWz3cdCRcQBraQvX_lPtxOjugJO07svXiSw0Sdo_N6Y",
                    "wear": 0.62874603271484,
                    "bot_id": 469,
                    "bot_id64": "76561198254952801",
                    "added_time": 1486029172,
                    "offer_id": null,
                    "offer_declined": false,
                    "offer_untradable": false,
                    "requires_support": false,
                    "can_repair": null
                },
                {
                    "id": 37246543,
                    "id_parent": 37245493,
                    "name": "AK-47 | Redline (Field-Tested)",
                    "market_hash_name": "AK-47 | Redline (Field-Tested)",
                    "inspect": "steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561198216283564A7413350509D2361120003424397777",
                    "type": "Classified Rifle",
                    "appid": 730,
                    "contextid": "2",
                    "assetid": "7413350509",
                    "classid": "1440245414",
                    "instanceid": "480085569",
                    "img": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot7HxfDhjxszJemkV09-5lpKKqPrxN7LEmyVQ7MEpiLuSrYmnjQO3-UdsZGHyd4_Bd1RvNQ7T_FDrw-_ng5Pu75iY1zI97bhLsvQz",
                    "wear": 0.22321608662605,
                    "bot_id": 26,
                    "bot_id64": "76561198216283564",
                    "added_time": 1513277676,
                    "offer_id": null,
                    "offer_declined": false,
                    "offer_untradable": false,
                    "requires_support": false,
                    "can_repair": null
                }
            ]
        }
    }
    

    Gets the contents of your OPSkins inventory. This method is paginated, and will return up to per_page (Default: 10,000) results per page.

    HTTP Request

    GET https://api.opskins.com/IInventory/GetInventory/v1/

    Input

    Parameter Type Required Description
    none

    Output

    The response of this method is an array of objects, where each object has these properties

    Parameter Type Description
    items array-object
        id int OPSkins sale ID of the item
        id_parent int Sale ID of the item that created this
        name string Steam name of the item
        inspect string Inspect link, if inspectable
        type string Steam "type" of the item
        appid int Steam AppID of the game that owns this item
        contextid string ContextID that owns this item (as a string)
        assetid int Steam AssetID of the item
        bot_id int Internal ID of the bot holding this item
        bot_id64 string SteamID of the bot holding this item
        added_time int The Unix timestamp for when this item was added to your OPSkins inventory
        offer_id string If there's an active offer out, the offerID. If one is queued, 0. If no offer and none queued, null. Numbers are strings.
        offer_declined bool Was an offer sent, and then declined by the user?
        offer_untradable bool Did we attempt to send an offer, and were we unable to because the user can't trade or has bad trade URL?
        requires_support bool Does this item need support intervention?
        can_repair bool If item requires support, can you try to self-repair it?

    Get Inventory v2

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/IInventory/GetInventory/v2/' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "current_page": 1,
        "total_pages": 1,
        "response": {
            "limits": {
                "730": {
                    "free_slots": 20
                }
            },
            "items": [
                {
                    "id": 37246112,
                    "amount": 8139,
                    "showcase": 0,
                    "color": "D2D2D2",
                    "img": "https://steamcommunity-a.opskins.media/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot621FA957PHEcDB9_9W7hIyOqPv9NLPF2G5VuZQl072WodSkjQTn_UU-YTqncYaccFc2NQyBqVXqxuzqhZG7uc_XiSw0f3y6kYU",
                    "inspect": "steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561198300519336A7237478879D11817448509333327943",
                    "type": "Classified Sniper Rifle",
                    "classid": "310810014",
                    "instanceid": "188530139",
                    "market_name": "AWP | BOOM (Factory New)",
                    "market_hash_name": "AWP | BOOM (Factory New)",
                    "appid": 730,
                    "contextid": "2",
                    "assetid": "7237478879",
                    "bot_id": 678,
                    "state": 7,
                    "bumptime": 1486027762,
                    "wear": "0.063811652362347",
                    "stickers": [],
                    "val_1": 174,
                    "market_fee_app": null,
                    "escrow_ends": null,
                    "flags": {
                        "tf2_uncraftable": false,
                        "trade_locked": false,
                        "has_screenshots": false,
                        "screenshot_is_video": false,
                        "steam_commodity": false
                    },
                    "id_parent": 34167691,
                    "added_time": 1486027762,
                    "offer_id": null,
                    "offer_declined": false,
                    "offer_untradable": false,
                    "requires_support": false,
                    "can_repair": null
                },
                {
                    "id": 37246122,
                    "amount": 1379,
                    "showcase": 0,
                    "color": "D2D2D2",
                    "img": "https://steamcommunity-a.opskins.media/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpou-6kejhh3szDeDBN4tOJh5WFhf7nNoTdn2xZ_It33uqVp9-m3gfmrRY4ZGnzINfHdgA4ZwmFqwLrkLzqhpS_v86dnSZlpGB8smE_CYHw",
                    "inspect": "steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561198299823364A7412352294D14457202162449228456",
                    "type": "Restricted Rifle",
                    "classid": "992233855",
                    "instanceid": "480085569",
                    "market_name": "M4A4 | Daybreak (Factory New)",
                    "market_hash_name": "M4A4 | Daybreak (Factory New)",
                    "appid": 730,
                    "contextid": "2",
                    "assetid": "7412352294",
                    "bot_id": 803,
                    "state": 7,
                    "bumptime": 1486032137,
                    "wear": "0.03229545801878",
                    "stickers": [],
                    "val_1": 471,
                    "market_fee_app": null,
                    "escrow_ends": null,
                    "flags": {
                        "tf2_uncraftable": false,
                        "trade_locked": false,
                        "has_screenshots": false,
                        "screenshot_is_video": false,
                        "steam_commodity": false
                    },
                    "id_parent": 37216480,
                    "added_time": 1486032137,
                    "offer_id": null,
                    "offer_declined": false,
                    "offer_untradable": false,
                    "requires_support": false,
                    "can_repair": null
                }            
            ]
        }
    }
    

    Gets the contents of your OPSkins inventory. This method is paginated, and will return up to per_page (Default: 10,000) results per page.

    HTTP Request

    GET https://api.opskins.com/IInventory/GetInventory/v2/

    Input

    Parameter Type Required Description
    page int Page number to request. Defaults to 1.
    per_page int Number of items per page to return. Defaults to 10000. If you pass a value larger than 10,000, then it will be capped to 10,000.

    Output

    Parameter Type Description
    limits int An object whose keys represent an application id
        {app_id} int Steam Application ID. In this case, CS:GO. This key is dynamic and based off of which games we currently restrict inventory sizes for.
            free_slots int How many slots are available in your On-Site Inventory for this game
    items array-object An array of Standard Sale Objects, which also additionally have the following properties:
        id_parent int The OPSkins ID of the item you purchased which created this item. For example, if you bought item #12345 and ended up with item #23456 in your OPSkins inventory, then id will be 23456 and id_parent will be 12345.
        added_time int The Unix timestamp for when this item was added to your OPSkins inventory
        offer_id string If a trade offer was successfully sent, this is its ID as a string. If we weren't able to send a trade offer, this is null
        offer_declined bool If there was previously a withdrawal trade offer for this item but it was declined, this is true.
        offer_untradable bool If we previously attempted to send a withdrawal trade offer for this item but we were unable to due to a bad trade URL or another trading restriction (e.g. Steam Guard), this is true.
        requires_support bool If this item has a problem and requires support intervention before it can be withdrawn or relisted, this is true.
        can_repair bool If this item requires support but you can attempt to self-repair it, this is true.

    Get Steam Instant Sell Items

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/IInventory/GetSteamInstantSellItems/v1/?appid=730&contextid=2' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "items": [
                {
                    "classid": "469444882",
                    "instanceid": "302028390",
                    "id": "9845903946",
                    "instantsell_credits": 1,
                    "instantsell_money": 1
                },
                {
                    "classid": "310777133",
                    "instanceid": "302028390",
                    "id": "9840987581",
                    "instantsell_credits": 2,
                    "instantsell_money": 2
                }
            ],
            "descriptions": {
                "469444882_302028390": {
                    "name": "Tec-9 | Urban DDPAT",
                    "market_name": "Tec-9 | Urban DDPAT (Field-Tested)",
                    "market_hash_name": "Tec-9 | Urban DDPAT (Field-Tested)",
                    "fraudwarnings": [],
                    "commodity": 0,
                    "img": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpoor-mcjhoyszMdS1D-OOjhoK0mvLwOq7c2D4B6pwijLiXpt6s3lDkrkJvZG-hLI7Ee1M7YVmC8gO-kunrjZK1tJXXiSw0uDynv1g",
                    "color": "D2D2D2",
                    "type": "Consumer Grade Pistol",
                    "actions": [
                        {
                            "link": "steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20SA%assetid%D2937662689715671410",
                            "name": "Inspect in Game..."
                        }
                    ],
                    "descriptions": [],
                    "restricted": false
                },
                "310777133_302028390": {
                    "name": "Dual Berettas | Contractor",
                    "market_name": "Dual Berettas | Contractor (Well-Worn)",
                    "market_hash_name": "Dual Berettas | Contractor (Well-Worn)",
                    "fraudwarnings": [],
                    "commodity": 0,
                    "img": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpos7asPwJfwPz3YTBB09GzkImemrmnMuvQxTtXu5Eh2r6SpdTx3lbjrxZla2nwddWSc1Q3Y1-BrgDrwO_nm9bi60mswaUQ",
                    "color": "D2D2D2",
                    "type": "Consumer Grade Pistol",
                    "actions": [
                        {
                            "link": "steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20SA%assetid%D9414819751196385396",
                            "name": "Inspect in Game..."
                        }
                    ],
                    "descriptions": [],
                    "restricted": false
                }
            },
            "commodities": {
                "Nova | Candy Apple (Minimal Wear)": {
                    "classid": "310780494",
                    "instanceid": "302028390",
                    "amount": 1,
                    "id": "9227373883",
                    "pos": 22,
                    "instantsell_credits": 2,
                    "instantsell_money": 2
                },
                "StatTrak™ Dual Berettas | Ventilators (Factory New)": {
                    "classid": "1704312304",
                    "instanceid": "188530564",
                    "amount": 1,
                    "id": "8666175075",
                    "pos": 33,
                    "instantsell_credits": 49,
                    "instantsell_money": 49
                }
            }
        }
    }
    

    Get Steam Instant Sell Items

    HTTP Request

    GET https://api.opskins.com/IInventory/GetSteamInstantSellItems/v1/

    Input

    Parameter Type Required Description
    appid integer + The Steam AppID of the game which owns this item (e.g. 730 for CS:GO, 440 for TF2, 570 for Dota 2)
    contextid integer + The Steam context ID which contains this item (2 for Valve games, 6 for Steam Community items, 1 for H1Z1, etc.). When you right-click on an item in your Steam inventory and copy its URL, the context ID is the second number after the hash.

    Output

    Parameter Type Description
    items array-object
        classid string The item's Steam classid
        instanceid string The item's Steam instanceid
        id int
        instantsell_credits int
        instantsell_money int
    descriptions object Each property name is item market name
        name string Steam name of the item
        market_name string Steam name of the item
        market_hash_name string The item's Steam market_hash_name, which is usually identical to its market_name
        fraudwarnings array
        commodity int
        img string
        color string
        type string
        actions array-object
            link string
            name string
        descriptions array
        restricted boolean
    commodities object Each property name is item market name
        classid string The item's Steam classid
        instanceid string The item's Steam instanceid
        amount int
        id int
        pos int
        instantsell_credits int
        instantsell_money int

    TransferToTradeSite

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/IInventory/TransferToTradeSite/v1/' \
      --header 'content-type: application/json; charset=utf-8' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --data '{"items":"37246521,37246519"}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1528302276,
        "response": {
            "item_count": 1,
            "error_count": 0,
            "items": {
             "495152840": {
                "id": 2418,
                "sku": 1131,
                "wear": 0.12115149199963,
                "pattern_index": null,
                "preview_urls": null,
                "eth_inspect": null,
                "trade_hold_expires": null,
                "internal_app_id": 2,
                "inspect": "steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561198299226805A14458963896D16195198146817842130",
                "name": null,
                "category": null,
                "color": null,
                "image": {  
                   "300px": "https://steamcommunity-a.akamaihd.net/economy/image//300fx300f",
                   "600px": "https://steamcommunity-a.akamaihd.net/economy/image//600fx600f"
                },
                "suggested_price": null,
                "paint_index": 0
             }
          }
        }
    }
    

    Request a transfer of your items on OPSkins.com to trade.opskins.com

    HTTP Request

    POST https://api.opskins.com/IInventory/TransferToTradeSite/v1/

    Input

    Parameter Type Required Description
    items string + A comma-separated list of item IDs. Items must be in your OPSkins inventory or be on sale and do not have an outstanding trade offer or require support.

    Output

    Parameter Type Description
    item_count int Number of total items selected for transfer.
    error_count int Number of items that failed to transfer.
    items array-object Array of sales/items. In the following format:
        (Sale ID) int OPSkins Sale ID
            (Standard Item Object) object See in Trade Docs: Standard Item Object

    Withdraw

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/IInventory/Withdraw/v1/' \
      --header 'content-type: application/json; charset=utf-8' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --data '{"items":"37246521,37246519"}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "offers": [
                12345
            ]
        }
    }
    

    Requests a withdrawal trade offer for one or more items in your OPSkins inventory.

    HTTP Request

    POST https://api.opskins.com/IInventory/Withdraw/v1/

    Input

    Parameter Type Required Description
    items string + A comma-separated list of item IDs. Must be items in your OPSkins inventory that do not have an outstanding trade offer and do not require support.
    delivery_id64 string Steam id64 of the account to send the item to (contact support to enable this functionality on your account)
    delivery_token string Steam trade url token parameter of the account (contact support to enable this functionality on your account)
    delivery_message string Optional delivery message to send instead of the standard OPSkins one. (contact support to enable this functionality on your account)

    Output

    Parameter Type Description
    offers array-object An array of objects (one per bot), each with the following structure:
        bot_id int The internal ID of the bot which sent (or tried to send) the trade offer
        tradeoffer_id string If we were able to successfully send a trade offer, this is its ID. If error, this is null.
        tradeoffer_error string If we were not able to send a trade offer, this is a string containing an error message. If no error, this is null.
        items array-int An array of OPSkins item IDs in this trade offer
    offer_link string(URL) In case of the one trade offer this link will be presented

    Withdraw Crypto Asset

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/IInventory/WithdrawCryptoAsset/v1/' \
      --header 'content-type: application/json; charset=utf-8' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --data '{"saleid":37246521,"address":"0xC2D7CF95645D33006175B78989035C7c9061d3F9"}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "from_address": "0xC2D7cF95645d33006175B78989035c7C9061D3f9",
            "txid": "0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331"
        }
    }
    

    Requests a withdrawal trade offer for one or more items in your OPSkins inventory.

    HTTP Request

    POST https://api.opskins.com/IInventory/WithdrawCryptoAsset/v1/

    Input

    Parameter Type Required Description
    saleid int + Sale ID
    address string + Address

    Output

    Parameter Type Description
    from_address string An array of objects (one per bot), each with the following structure:
    txid string Etherium transaction id

    ILocalization

    Get Countries Regions

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ILocalization/GetCountriesRegions/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "countries": [
                {
                    "name": "United States & Canada",
                    "phone_code": "+1",
                    "code": "US",
                    "country_id": 1228,
                    "regions": [
                        {
                            "name": "Alabama",
                            "abbreviation": "AL"
                        },
                        {
                            "name": "Alaska",
                            "abbreviation": "AK"
                        },
                        {
                            "name": "Arizona",
                            "abbreviation": "AZ"
                        },
                        {
                            "name": "Arkansas",
                            "abbreviation": "AR"
                        },
                        {
                            "name": "California",
                            "abbreviation": "CA"
                        }
                    ]
                }
            ]
       }
    }
    

    Get the countries & regions

    HTTP Request

    GET https://api.opskins.com/ILocalization/GetCountriesRegions/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    countries array-object List of countries
        name string Country name (localized)
        phone_code string Phone Code
        code string 2 character country code
        country_id string 4 digit country id
        regions array-object List of regions
            name string Region name
            abbreviation string 3 character region abbreviation

    Get Site Languages

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ILocalization/GetSiteLanguages/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "lang": [
                {
                    "code": "en",
                    "native": "English",
                    "en_translated": "English"
                },
                {
                    "code": "zh",
                    "native": "中文",
                    "en_translated": "Chinese"
                },
                {
                    "code": "ru",
                    "native": "Русский",
                    "en_translated": "Russian"
                },
                {
                    "code": "de",
                    "native": "Deutsch",
                    "en_translated": "German"
                }
            ]
        }
    }
    

    Get's the languages available for the site

    HTTP Request

    GET https://api.opskins.com/ILocalization/GetSiteLanguages/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    lang array-object
        code string ISO 639-1 2 letter language code
        native string Language name in native characters
        en_translated string Language name translated to English

    IOAuth

    Create Client

    Request example:

    curl --request POST \
      --url https://api.opskins.com/IOAuth/CreateClient/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --data name=TestApp2 \
      --data redirect_uri=http://localhost:1234
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1535408581,
        "response": {
            "secret": "$nGwYVda@@PErKAUpG#kHQ&YA1L)A*X1",
            "client": {
                "client_id": "ff371b045307",
                "name": "TestApp2",
                "redirect_uri": "http://localhost:1234",
                "time_created": 1535407757,
                "has_secret": true
            }
        }
    }
    

    Create a new OAuth client.

    HTTP Request

    POST https://api.opskins.com/IOAuth/CreateClient/v1/

    Input

    Parameter Type Required Description
    name string + Name for this client, to be displayed to users when they are prompted to approve access
    redirect_uri string + URI to which users are redirected after approving or denying access
    can_keep_secret bool Set this to 0 if your client cannot keep a secret and will maintain per-token secrets (see OAuth documentation). Default 1

    Output

    Parameter Type Description
    secret string/null If your client can keep a secret, this is its new secret. If not, this is null. Record this somewhere safe, as it cannot be retrieved again later.
    client object Object representing the newly-created client
        client_id string The OAuth client's hexadecimal string ID (used as username in HTTP Basic auth)
        name string User-supplied name for the client, which is displayed to users when they approve access
        redirect_uri string The URI to which users are redirected after approving or denying access
        time_created int Unix timestamp for when the client was created
        has_secret bool true if this client has a secret, false if it is expected to main per-token secrets

    Delete Client

    Request example:

    curl --request POST \
      --url https://api.opskins.com/IOAuth/DeleteClient/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --data client_id=ff371b045307
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1535408581
    }
    

    Delete an OAuth client that you own, and invalidate all of its tokens.

    HTTP Request

    POST https://api.opskins.com/IOAuth/DeleteClient/v1/

    Input

    Parameter Type Required Description
    client_id string + Hexadecimal client_id of the client you want to delete

    Output

    none

    Get Owned Client List

    Request example:

    curl --request GET \
      --url https://api.opskins.com/IOAuth/GetOwnedClientList/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1535408581,
        "response": {
            "clients": [
                {
                    "client_id": "c757f21d1f54",
                    "name": "TestApp1",
                    "redirect_uri": "http://localhost",
                    "time_created": 1491512781,
                    "has_secret": false
                },
                {
                    "client_id": "ff371b045307",
                    "name": "TestApp2",
                    "redirect_uri": "http://localhost:1234",
                    "time_created": 1535407757,
                    "has_secret": true
                }
            ]
        }
    }
    

    Get a list of all OAuth clients owned by the authenticated user.

    HTTP Request

    GET https://api.opskins.com/IOAuth/GetOwnedClientList/v1/

    Input

    none

    Output

    Parameter Type Description
    clients object-array Array containing objects representing each client.
        client_id string The OAuth client's hexadecimal string ID (used as username in HTTP Basic auth)
        name string User-supplied name for the client, which is displayed to users when they approve access
        redirect_uri string The URI to which users are redirected after approving or denying access
        time_created int Unix timestamp for when the client was created
        has_secret bool true if this client has a secret, false if it is expected to main per-token secrets

    Reset Client Secret

    Request example:

    curl --request POST \
      --url https://api.opskins.com/IOAuth/ResetClientSecret/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --data client_id=ff371b045307
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1535408581,
        "response": {
            "secret": "$nGwYVda@@PErKAUpG#kHQ&YA1L)A*X1",
            "client": {
                "client_id": "ff371b045307",
                "name": "TestApp2",
                "redirect_uri": "http://localhost:1234",
                "time_created": 1535407757,
                "has_secret": true
            }
        }
    }
    

    Reset the secret for a secret-bearing OAuth client that you own. If you use this, a new secret will be generated and the old one will no longer work.

    Does not work if the client_id you pass does not keep a secret.

    HTTP Request

    POST https://api.opskins.com/IOAuth/ResetClientSecret/v1/

    Input

    Parameter Type Required Description
    client_id string + Hexadecimal client_id of the client you want to reset the secret for

    Output

    Parameter Type Description
    secret string The newly-generated secret. Record this somewhere safe, as it cannot be retrieved again later.
    client object Object representing the newly-reset client
        client_id string The OAuth client's hexadecimal string ID (used as username in HTTP Basic auth)
        name string User-supplied name for the client, which is displayed to users when they approve access
        redirect_uri string The URI to which users are redirected after approving or denying access
        time_created int Unix timestamp for when the client was created
        has_secret bool true if this client has a secret, false if it is expected to main per-token secrets

    Update Client

    Request example:

    curl --request POST \
      --url https://api.opskins.com/IOAuth/UpdateClient/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --data client_id=ff371b045307 \
      --data name=TestApp2 \
      --data redirect_uri=http://localhost:1234
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1535408581,
        "response": {
            "client": {
                "client_id": "ff371b045307",
                "name": "TestApp2",
                "redirect_uri": "http://localhost:1234",
                "time_created": 1535407757,
                "has_secret": true
            }
        }
    }
    

    Update an OAuth client that you own. At least one of name and redirect_uri is required.

    HTTP Request

    POST https://api.opskins.com/IOAuth/UpdateClient/v1/

    Input

    Parameter Type Required Description
    client_id string + Hexadecimal client_id of the client you want to update
    name string Name for this client, to be displayed to users when they are prompted to approve access
    redirect_uri string URI to which users are redirected after approving or denying access

    Output

    Parameter Type Description
    client object Object representing the newly-updated client
        client_id string The OAuth client's hexadecimal string ID (used as username in HTTP Basic auth)
        name string User-supplied name for the client, which is displayed to users when they approve access
        redirect_uri string The URI to which users are redirected after approving or denying access
        time_created int Unix timestamp for when the client was created
        has_secret bool true if this client has a secret, false if it is expected to main per-token secrets

    IPayments

    Create Bitcoin Payment

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/IPayments/CreateBitcoinPayment/v1' \
      --header 'content-type: application/json; charset=utf-8' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --data '{"amount": 1000}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513606752,
        "response": {
            "complete": false,
            "address": "2N9wct7ukKa9GtiSyNLx1rCdzgKbiMZ89Zy",
            "usd_amt": 1000,
            "btc_amt": 59000,
            "expires": 1513607652
        }
    }
    

    Create Bitcoin payment

    HTTP Request

    POST https://api.opskins.com/IPayments/CreateBitcoinPayment/v1/

    Input

    Parameter Type Required Description
    amount int + Amount of payment
    overwrite_old bool Set to replace old payment

    Output

    Parameter Type Description
    complete bool
    address string Bitcoin address
    usd_amt int Payment amount
    btc_amt int Bitcoint amount (satoshis)
    expires int Expiration time

    Get Bitcoin Address

    Example retrieving Bitcoin address:

    curl --request GET \
      --url 'http://api.opskins.com/IPayments/GetBitcoinAddress/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Example creating new Bitcoin address:

    curl --request GET \
      --url 'http://api.opskins.com/IPayments/GetBitcoinAddress/v1/?require_new=1' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Both examples returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "address": "2N9wct7ukKa9GtiSyNLx1rCdzgKbiMZ89Zy"
        }
    }
    

    Get users's Bitcoin address

    HTTP Request

    GET https://api.opskins.com/IPayments/GetBitcoinAddress/v1/

    Input

    Parameter Type Required Description
    require_new bool To add new Bitcoin address set to true

    Output

    Parameter Type Description
    address object Current or new Bitcoin address (view require_new parameter)

    Get Bitcoin Payment Status

    Request example:

    curl --request GET \
      --url 'http://api.opskins.com/IPayments/GetBitcoinPaymentStatus/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513606752,
        "response": {
            "complete": true,
            "invoice_id": 8952414,
            "btc_id": "2fcedfe9830b95681d5659067944f92bb0869e714a5cbcde209cd6c165000826",
            "confirmations": 5648,
            "confirmations_required": 5
        }
    }
    

    Get Bitcoin payment status

    HTTP Request

    GET https://api.opskins.com/IPayments/GetBitcoinPaymentStatus/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    complete bool
    invoice_id int Invoice id
    btc_id int Hash of the transaction
    confirmations int Number of blocks this transaction has been part of the blockchain
    confirmations_required int Number of confirmations required to credit payment

    Get Ethereum Address

    Request example:

    curl --request GET \
      --url 'http://api.opskins.com/IPayments/GetEthereumAddress/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513860736,
        "response": {
            "address": "0xC2D7cF95645d33006175B78989035c7C9061D3f9",
            "deploying": false,
            "confirmations_required": 12
        }
    }
    

    Get Bitcoin payment status

    HTTP Request

    GET https://api.opskins.com/IPayments/GetEthereumAddress/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    address string
    deploying bool
    confirmations_required int

    IPricing

    Get All Lowest List Prices

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/IPricing/GetAllLowestListPrices/v1/?appid=730'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "AK-47 | Aquamarine Revenge (Battle-Scarred)": {
                "price": 700,
                "quantity": 32
            },
            "AK-47 | Aquamarine Revenge (Factory New)": {
                "price": 2500,
                "quantity": 29
            },
            "AK-47 | Aquamarine Revenge (Field-Tested)": {
                "price": 1127,
                "quantity": 42
            },
            "AK-47 | Aquamarine Revenge (Minimal Wear)": {
                "price": 1643,
                "quantity": 49
            },
            "AK-47 | Aquamarine Revenge (Well-Worn)": {
                "price": 989,
                "quantity": 20
            },
            "AK-47 | Black Laminate (Battle-Scarred)": {
                "price": 615,
                "quantity": 3
            },
            "AK-47 | Black Laminate (Factory New)": {
                "price": 9566,
                "quantity": 4
            },
            "AK-47 | Black Laminate (Field-Tested)": {
                "price": 577,
                "quantity": 17
            }
        }
    }
    

    Get all lowest prices

    HTTP Request

    GET https://api.opskins.com/IPricing/GetAllLowestListPrices/v1/

    Input

    Parameter Type Required Description
    appid integer + Application ID

    Output

    Parameter Type Description
    {market_name} object Price data for the item
        price int Minimal item price
        quantity int Total items

    Get Price List v1

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/IPricing/GetPriceList/v1/?appid=730' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "AK-47 | Aquamarine Revenge (Battle-Scarred)": {
                "2017-12-14": {
                    "price": 998
                }
            },
            "AK-47 | Aquamarine Revenge (Factory New)": {
                "2017-12-14": {
                    "price": 2848
                }
            },
            "AK-47 | Aquamarine Revenge (Field-Tested)": {
                "2017-12-14": {
                    "price": 1475
                }
            },
            "AK-47 | Aquamarine Revenge (Minimal Wear)": {
                "2017-12-14": {
                    "price": 2061
                }
            },
            "AK-47 | Aquamarine Revenge (Well-Worn)": {
                "2017-12-14": {
                    "price": 1245
                }
            }
        }
    }
    

    Get price list for the application

    HTTP Request

    GET https://api.opskins.com/IPricing/GetPriceList/v1/

    Input

    Parameter Type Required Description
    appid integer + Application ID

    Output

    Parameter Type Description
    {market_name} object Price data for the item
        {date} object Item data for the date
            price int Item price

    Get Price List v2

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/IPricing/GetPriceList/v2/?appid=730'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "AK-47 | Aquamarine Revenge (Battle-Scarred)": {
                "2017-12-14": {
                    "mean": 994,
                    "min": 886,
                    "max": 1084,
                    "normalized_mean": 998,
                    "normalized_min": 979,
                    "normalized_max": 1021,
                    "std_dev": 30
                }
            },
            "AK-47 | Aquamarine Revenge (Factory New)": {
                "2017-12-14": {
                    "mean": 2888,
                    "min": 1950,
                    "max": 3675,
                    "normalized_mean": 2848,
                    "normalized_min": 2730,
                    "normalized_max": 2999,
                    "std_dev": 341
                }
            },
            "AK-47 | Aquamarine Revenge (Field-Tested)": {
                "2017-12-14": {
                    "mean": 1499,
                    "min": 1399,
                    "max": 2274,
                    "normalized_mean": 1475,
                    "normalized_min": 1399,
                    "normalized_max": 1605,
                    "std_dev": 124
                }
            },
            "AK-47 | Aquamarine Revenge (Minimal Wear)": {
                "2017-12-14": {
                    "mean": 2069,
                    "min": 1854,
                    "max": 2745,
                    "normalized_mean": 2061,
                    "normalized_min": 1965,
                    "normalized_max": 2152,
                    "std_dev": 121
                }
            }
        }
    }
    

    Get price list for the application

    HTTP Request

    GET https://api.opskins.com/IPricing/GetPriceList/v2/

    Input

    Parameter Type Required Description
    appid integer + Application ID

    Output

    Parameter Type Description
    {market_name} object Price data for the item
        {date} object Item data for the date
            mean int
            min int
            max int
            normalized_mean int
            normalized_min int
            normalized_max int
            std_dev int

    Get Suggested Prices v1

    Request example:

    curl --request GET \
      --url 'http://api.opskins.com/IPricing/GetSuggestedPrices/v1/?appid=730&items[0]=AK-47%20|%20Aquamarine%20Revenge%20%28Battle-Scarred%29&items[1]=AK-47%20|%20Aquamarine%20Revenge%20%28Factory%20New%29' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "prices": {
                "AK-47 | Aquamarine Revenge (Battle-Scarred)": {
                    "opskins_price": 995,
                    "market_price": 1163,
                    "opskins_lowest_price": 700
                },
                "AK-47 | Aquamarine Revenge (Factory New)": {
                    "opskins_price": 2865,
                    "market_price": 3402,
                    "opskins_lowest_price": 2500
                }
            }
        }
    }
    

    Get suggested prices for the application

    HTTP Request

    GET https://api.opskins.com/IPricing/GetSuggestedPrices/v1/

    Input

    Parameter Type Required Description
    appid string + Application ID
    items array-string + List of item market names (Max: 10 items)

    Output

    Parameter Type Description
    prices object
        {market_name} object Price data for the item
            opskins_price int OPSkins suggested price
            market_price int Market price
            opskins_lowest_price int OPSkins lowest price

    Get Suggested Prices v2

    Request example:

    curl --request GET \
      --url 'http://api.opskins.com/IPricing/GetSuggestedPrices/v2/?appid=730' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "AK-47 | Aquamarine Revenge (Battle-Scarred)": {
                "op_7_day": 995,
                "op_30_day": 995
            },
            "AK-47 | Aquamarine Revenge (Factory New)": {
                "op_7_day": 2865,
                "op_30_day": 2865
            },
            "AK-47 | Aquamarine Revenge (Field-Tested)": {
                "op_7_day": 1459,
                "op_30_day": 1459
            },
            "AK-47 | Aquamarine Revenge (Minimal Wear)": {
                "op_7_day": 2057,
                "op_30_day": 2057
            },
            "AK-47 | Aquamarine Revenge (Well-Worn)": {
                "op_7_day": 1235,
                "op_30_day": 1235
            },
            "AK-47 | Black Laminate (Battle-Scarred)": {
                "op_7_day": 799,
                "op_30_day": 799
            }
         }
    }
    

    Get suggested prices for the application

    HTTP Request

    GET https://api.opskins.com/IPricing/GetSuggestedPrices/v2/

    Input

    Parameter Type Required Description
    appid string + Application ID

    Output

    Parameter Type Description
    prices object
        {market_name} object Price data for the item
            op_7_day int OPSkins suggested 7-days price
            op_30_day int OPSkins suggested 30-days price

    ISales

    Bump Items

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/ISales/BumpItems/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --header 'content-type: application/json; charset=utf-8' \
      --data '{"items":"37246542"}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "sales": {
                "37246542": {
                    "status": 1,
                    "message": "OK"
                }
            }
        }
    }
    

    Bump one or more items you've listed for sale to the top of the browse page and the featured (default) sort for search. Will cost $0.50 per item, but will use any free bump credits you may have (e.g. from a premium membership) first.

    It is possible for bumping to fail for some items in this batch and to succeed for others.

    The top-level balance property will be present in this method's response, containing your up-to-date account balance.

    HTTP Request

    POST https://api.opskins.com/ISales/BumpItems/v1/

    Input

    Parameter Type Required Description
    items string + A list of sale IDs of items you want to bump, separated by commas (max 100). For example: 1234,5678,9012

    Output

    Parameter Type Description
    sales object An object whose keys are sale IDs and values are objects of the following structure:
        status int An ErrorCode value representing the status of the bump request for this item. Will be 1 (OK) on success.
        message string A string containing an error message on fail, or OK on success

    Buy Items

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/ISales/BuyItems/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --header 'content-type: application/json; charset=utf-8' \
      --data '{"saleids":"37245493","total":737}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "balance": 12237157,
        "response": {
            "items": [
                {
                    "saleid": 37245493,
                    "new_itemid": 37246543,
                    "name": "AK-47 | Redline (Field-Tested)",
                    "bot_id": 26
                }
            ]
        }
    }
    

    Purchase one or more items and deliver them to your OPSkins inventory. Once purchased, the item(s) can be delivered to your Steam inventory using IInventory/Withdraw. To prevent bot sniping, this endpoint will only purchase listings which have been publicly visible for at least ten minutes, and are not currently limited to Buyers Club members.

    If this request succeeds, then it will contain a root-level balance property containing your new account balance after the purchase, in USD cents.

    HTTP Request

    POST https://api.opskins.com/ISales/BuyItems/v1/

    Input

    Parameter Type Required Description
    saleids string + A comma-separated list of sale IDs for the items you wish to purchase. 300 maximum.
    total int + The total cost of these items, in USD cents. For example, if you are purchasing a $2 item and a $1.23 item, then this should be 323. The request will fail if this does not match the actual total.
    allow_trade_locked boolean When using API-Key-based authentication, this parameter is required in order to purchase items that are currently trade-locked by Valve (meaning you wont be able to withdraw them until the lock expires).

    Output

    Parameter Type Description
    items array-object An array of objects for the items you purchased. Each object has these properties:
        saleid int The OPSkins sale ID of the item. This will be one of the IDs you passed in your request.
        new_itemid int The new OPSkins ID of the item in your OPSkins inventory. This is the ID you will pass to Withdraw in order to withdraw the item to your Steam inventory. This will become the item's sale ID if you choose to re-list it.
        name string The name of the item
        bot_id int The internal OPSkins ID of the bot which is holding this item

    Edit Price

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/ISales/EditPrice/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --header 'content-type: application/json; charset=utf-8' \
      --data '{"saleid":37246283,"price":100}'
    

    Failed response example:

    {
        "status": 3003,
        "time": 1512020202,
        "message": "Price must be between $0.02 and $99,999.99."
    }
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": [
            {
              "id": 318778733,
              "amount": 8835,
              "wear": "37.9857886421",
              "timestamp": 1512020841
            },
            {
              "id": 221773734,
              "amount": 812,
              "wear": null,
              "timestamp": 1318326341
            }
        ]
    }
    

    Edits the price of an item you currently have listed. If the item is in your OPSkins inventory, it lists it for sale.

    HTTP Request

    POST https://api.opskins.com/ISales/EditPrice/v1/

    Input

    Parameter Type Required Description
    saleid int + The ID of the sale/item you want to edit the price for (must be yours)
    price int + The new price for your item, in USD cents. For example, to list an item for $4.00, use 400

    Output

    Parameter Type Description
    relisted bool true if the item was in your OPSkins inventory and has been re-listed, or false if it was already listed and its price has simply been edited

    Edit Price Multi

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/ISales/EditPriceMulti/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --header 'content-type: application/json; charset=utf-8' \
      --data '{"items":[{"37246122": 200}]}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "message": "Assuming all item IDs are valid, belong to you, and are not currently queued for a price update, their prices have been queued for update."
    }
    

    Queue price updates for up to 500 items. On success, this method will return an HTTP 202 Accepted status code and will respond immediately. The actual price updates will be queued and will be processed in the background. This will fail if you attempt to queue a price update for an item which already has a queued price update. Price update errors will not be reported and will be silently dropped in the background. For example, requests to edit the prices of items you do not own or which do not exist will be accepted, but will not actually be processed.

    HTTP Request

    POST https://api.opskins.com/ISales/EditPriceMulti/v1/

    Input

    Items must be in format items[itemid]=price

    Parameter Type Required Description
    items array-object + An associative array (using PHP terminology) where keys are OPSkins sale IDs and values are new prices, in USD cents. For example, items[12345]=100&items[12346]=53 will set the price of sale 12345 to $1.00 USD and will set the price of sale 12346 to $0.53 USD.

    Output

    Success http code is 202

    Parameter Type Description
    none

    Get Active Trade Offers

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ISales/GetActiveTradeOffers/v1' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "offers": {
                "15480545": {
                    "saleids": [
                        37246122
                    ],
                    "bot_id": 49,
                    "bot_id64": "76561198184630606",
                    "type": "pickup"
                },
                "16365901": {
                    "saleids": [
                        39822450
                    ],
                    "bot_id": 165,
                    "bot_id64": "76561198253047240",
                    "type": "withdrawal",
                    "recipient_id64": "76561197960287930"
                }
            }
        }
    }
    

    Get the list of active trade offers which our bots have sent you.

    HTTP Request

    GET https://api.opskins.com/ISales/GetActiveTradeOffers/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    offers object An object whose keys are Steam trade offer IDs, and values are objects each with this structure:
        saleids int-array An array containing the OPSkins sale IDs of the items in this offer
        bot_id int The internal OPSkins ID of the bot which sent this trade
        bot_id64 string The 64-bit SteamID of the bot which sent this trade
        type string A string, which may be one of pickup, return, or withdrawal
        recipient_id64 string If this trade offer was sent to a recipient other than your own Steam account (e.g. via delivery_id64 in IInventory/Withdraw) then this is the 64-bit SteamID (as a string) where the trade offer was sent. Not present if sent to your own account.

    Get Bump Confirmation

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ISales/GetBumpConfirmation/v1' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "should_confirm": true,
            "credits": 2,
            "confirm_message": "This will consume one of your 2 free bump credits and your item will be placed at the top of the sales lists. Are you sure you wish to do this?"
        }
    }
    

    Check if bump item should be confirmed

    HTTP Request

    GET https://api.opskins.com/ISales/GetBumpConfirmation/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    should_confirm bool
    credits int
    confirm_message string

    Get Last Sales

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ISales/GetLastSales/v1/?appid=730&market_name=AK-47+%7C+Redline+%28Field-Tested%29&contextid=2' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Failed response example:

    {
        "status": 2002,
        "time": 1512020202,
        "message": "No matches"
    }
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": [
            {
              "id": 318778733,
              "amount": 8835,
              "wear": "37.9857886421",
              "timestamp": 1512020841
            },
            {
              "id": 221773734,
              "amount": 812,
              "wear": null,
              "timestamp": 1318326341
            }
        ]
    }
    

    Get data about the most recent sales for a given item.

    HTTP Request

    GET https://api.opskins.com/ISales/GetLastSales/v1/

    Input

    Parameter Type Required Description
    appid int + The Steam AppID of the game which owns the item you're interested in
    contextid int + The Steam context ID for the item you're interested in
    market_name string + The full market name of the item you're interested in, for example: "AK-47
    val_1 int If you're interested in a particular variant of the item, this is its unusual effect index (for TF2) or pattern/paint index (for CS:GO)

    Output

    The response of this method is an array of objects, where each object has these properties

    Parameter Type Description
    id int The sale ID of the item that sold
    amount int The amount the item sold for, in USD cents
    wear string The item's wear as a float, or null if unknown or not applicable
    timestamp int The Unix timestamp of when this item sold

    Get Listing Limit

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ISales/GetListingLimit/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "listing_limit": 100
        }
    }
    

    Get the current limit of how many items you can list for sale in one request. This limit is subject to change periodically (usually it only goes up, but it is possible that we may need to decrease it at some point). This is not an account-based listing limit; this is only a limit on how many items can be listed in one sale queue (via the website) or one call to ListItems (via the API).

    HTTP Request

    GET https://api.opskins.com/ISales/GetListingLimit/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    listing_limit int The current listing limit

    Get Sale Details

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ISales/GetSaleDetails/v1/?saleid=37245499' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "sale": {
                "id": 37245499,
                "amount": 737,
                "showcase": 0,
                "color": "D2D2D2",
                "img": "https://steamcommunity-a.opskins.media/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot7HxfDhjxszJemkV09-5lpKKqPrxN7LEmyVQ7MEpiLuSrYmnjQO3-UdsZGHyd4_Bd1RvNQ7T_FDrw-_ng5Pu75iY1zI97bhLsvQz",
                "inspect": "steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561198216283564A7413350573D12442333357827425599",
                "type": "Classified Rifle",
                "classid": "1907377366",
                "instanceid": "188530139",
                "market_name": "AK-47 | Redline (Field-Tested)",
                "market_hash_name": "AK-47 | Redline (Field-Tested)",
                "appid": 730,
                "contextid": "2",
                "assetid": "7413350573",
                "bot_id": 26,
                "state": 2,
                "bumptime": 1473310277,
                "wear": "",
                "stickers": [],
                "val_1": null,
                "market_fee_app": null,
                "escrow_ends": null,
                "flags": {
                    "tf2_uncraftable": false,
                    "trade_locked": false,
                    "has_screenshots": false,
                    "screenshot_is_video": false,
                    "steam_commodity": false
                },
                "is_your_item": false
            }
        }
    }
    

    Get specific public details about one sale

    HTTP Request

    GET https://api.opskins.com/ISales/GetSaleDetails/v1/

    Input

    Parameter Type Required Description
    saleid int +
    uid int If the item is not yours and you know who owns it, pass their SteamID or OPSkins uid here (required for private listings or OSI items)

    Output

    Standard Sale Object

    Get Sales v1

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ISales/GetSales/v1/?type=1' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "current_page": 1,
        "total_pages": 1,
        "response": [
            {
                "id": 35553209,
                "price": 3,
                "commission": null,
                "tax": null,
                "classid": "1432174790",
                "instanceid": "302028390",
                "img": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpopL-zJAt21uH3Yi19-N2mkb-GkvP9JrafwmlS7JQnj-jEp96k2gPk_Ec5Z2ilJ9DAdgc7MwvS8lS6wejsg8K0vIOJlyVNyxsIvg",
                "appid": 730,
                "contextid": "2",
                "assetid": "7110023844",
                "name": "R8 Revolver | Bone Mask (Field-Tested)",
                "bot": 49,
                "offerid": "-1",
                "state": 1,
                "escrow_end_date": 0,
                "list_time": 1472452964,
                "bump_time": 1472452964,
                "last_updated": 0,
                "sale_time": null,
                "security_token": "vYZHvI",
                "wear": null,
                "txid": null,
                "trade_locked": false,
                "repair_attempted": false,
                "addons": [],
                "bot_id64": "76561198184630606"
            },
            {
                "id": 35632727,
                "price": 3,
                "commission": null,
                "tax": null,
                "classid": "310776632",
                "instanceid": "302028390",
                "img": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpopbmkOVUw7ODHTi1P7-O6nYeDg7n3YL6Bw2lQ7cZy27yTp9X00Qztrxc4Y2DwLYCRJw9tZQ3ZrAPrx-a-m9bi67t5CePh",
                "appid": 730,
                "contextid": "2",
                "assetid": "7299893428",
                "name": "SCAR-20 | Contractor (Minimal Wear)",
                "bot": 121,
                "offerid": "-1",
                "state": 1,
                "escrow_end_date": 0,
                "list_time": 1472488549,
                "bump_time": 1472488549,
                "last_updated": 0,
                "sale_time": null,
                "security_token": "UjxJRL",
                "wear": null,
                "txid": null,
                "trade_locked": false,
                "repair_attempted": false,
                "addons": [],
                "bot_id64": "76561198251470926"
            }
        ]
    }
    

    Gets a list of item sales for your account. This endpoint is paginated, and will return up to per_page (Default: 10,000) results per page.

    HTTP Request

    GET https://api.opskins.com/ISales/GetSales/v1/

    Input

    Parameter Type Required Description
    type int + Sale status filter
    appid int If provided, limit results to sales for this Steam AppID. If not provided, return all apps.
    after_saleid int If provided, limit results to sales with IDs greater than this.
    page int Page number to request. Defaults to 1.
    per_page int Number of items per page to return. Defaults to 10000. If you pass a value larger than 10,000, then it will be capped to 10,000.
    sort string Sorts the results by the chosen sort type. If not provided, returns results by ascending sale ID.
    type acceptable values
    sort acceptable values

    See ISales/GetSortTypes/v1 response values

    Output

    response is an array of sale objects, containing these properties:

    Parameter Type Description
    id int The sale ID of the item
    price int The sale price of the item, in USD cents
    commission int If the item is sold, how much commission OPSkins took, in USD cents. If not sold, null
    tax int If the item is sold, how much tax was taken, in USD cents. If not sold, null
    classid string The Steam class ID of the item
    instanceid string The Steam instance ID of the item
    appid int The AppID of the game to which this item belongs
    contextid string The Steam context ID to which this item belongs
    assetid string If the item is currently on the bot or awaiting pickup, its Steam asset ID
    name string The name of the item
    bot int The internal ID of the bot to which this item is assigned
    bot_id64 string The 64-bit SteamID of the bot to which this item is assigned
    offerid string The ID of the trade offer in which this item is being picked up or returned. null if the item is sold. There are some special values that have certain meaning
    state int An integer representing what state this item is in
    escrow_end_date int A Unix timestamp representing when the item will come out of a Steam trade hold. If trade_locked is set, then this is the date when the item will come out of its trade lock.
    list_time int A Unix timestamp representing when the item was listed (or deposited, if it's been deposited)
    bump_time int A Unix timestamp representing when the item was last bumped
    last_updated int A Unix timestamp representing when the item last changed state, or had its price edited. May be 0 for older sales.
    security_token string The security token that the bot will send in the trade offer.
    wear float The item's wear, as a float. null if unknown or not applicable.
    txid int If the item was sold and delivered, this is the transaction ID in which you got paid.
    trade_locked bool This will be true if the item is currently trade locked (H1Z1).
    repair_attempted bool This will be true if the item is in an errored state, and a repair has been attempted and failed.
    addons string-array An array containing strings for addons that are applied to this item.
    offerid constants
    state constants
    addons constants

    Get Sales v2

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ISales/GetSales/v2/?state=2' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
      "status": 1,
      "time": 1512020202,
      "current_page": 1,
      "total_pages": 1,
      "response": {
        "sales": [
          {
            "id": 37246359,
            "amount": 10,
            "showcase": 0,
            "color": "7D6D00",
            "img": "https://steamcommunity-a.opskins.media/economy/image/fWFc82js0fmoRAP-qOIPu5THSWqfSmTELLqcUywGkijVjZULUrsm1j-9xgEIUwsUSQnjtj9GmvfqDOCLDa4EyIgw4MQF2GRpx1kvbOfhaW81JlHGAqJfCqdu9gu0DyJi7J43V4TiuasILoAwZyfz",
            "inspect": null,
            "type": "Level 5 Revolver",
            "classid": "123",
            "instanceid": "0",
            "market_name": "L'Etranger",
            "market_hash_name": "L'Etranger",
            "appid": 440,
            "contextid": "2",
            "assetid": "5100409999",
            "bot_id": 643,
            "state": 2,
            "bumptime": 1491379552,
            "wear": null,
            "stickers": [],
            "val_1": null,
            "market_fee_app": null,
            "escrow_ends": null,
            "flags": {
              "tf2_uncraftable": false,
              "trade_locked": false,
              "has_screenshots": false,
              "screenshot_is_video": false,
              "steam_commodity": false,
              "requires_support": false,
              "repair_attempted": false,
              "deposit_into_inventory": false
            },
            "is_your_item": true,
            "commission": null,
            "tax": null,
            "offer_id": "-1",
            "listtime": 1491379552,
            "updatetime": 1491379552,
            "saletime": null,
            "credit_txid": null,
            "security_token": "KHnlGU"
          }
        ]
      }
    }
    

    Gets a list of item sales for your account.

    HTTP Request

    GET https://api.opskins.com/ISales/GetSales/v2/

    Input

    Parameter Type Required Description
    state int + Sale status filter
    appid int If provided, limit results to sales for this Steam AppID. If not provided, return all apps.
    after_saleid int If provided, limit results to sales with IDs greater than this.
    page int Page number to request. Defaults to 1.
    per_page int Number of items per page to return. Defaults to 10000. If you pass a value larger than 10,000, then it will be capped to 10,000.
    sort string Sorts the results by the chosen sort type. If not provided, returns results by ascending sale ID.
    type acceptable values
    sort acceptable values

    See ISales/GetSortTypes/v1 response values

    Output

    Parameter Type Description
    sales array-object Array of sales. Each object is Standard Sale Object
    offerid constants
    state constants
    addons constants

    Get Sale Statuses

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ISales/GetSaleStatuses/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "statuses": [
                {
                    "key": 1,
                    "name": "Awaiting Pickup"
                },
                {
                    "key": 2,
                    "name": "On Sale"
                },
                {
                    "key": 3,
                    "name": "Awaiting Delivery"
                },
                {
                    "key": 4,
                    "name": "Sold"
                },
                {
                    "key": 5,
                    "name": "Return Requested"
                },
                {
                    "key": 6,
                    "name": "Returned"
                }
            ]
        }
    }
    

    Returns a list of possible sale states and localized strings that go with them

    HTTP Request

    GET https://api.opskins.com/ISales/GetSaleStatuses/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    statuses array-object
        key integer Option's value
        name string Option's display name

    Get Search Schema

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ISales/GetSearchSchema/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "global": [
                {
                    "key": "app",
                    "type": "dropdown",
                    "name": "Game",
                    "values": [
                        {
                            "value": "730_2",
                            "name": "Counter-Strike: Global Offensive"
                        }
                    ]
                },
                {
                    "key": "search_item",
                    "type": "text",
                    "name": "Search",
                    "placeholder": "Name"
                },
                {
                    "type": "range",
                    "name": "Range",
                    "step": 0.01,
                    "min": 0.02,
                    "max": 99999.99,
                    "low": {
                        "key": "min",
                        "placeholder": "Minimum price"
                    },
                    "high": {
                        "key": "max",
                        "placeholder": "Maximum price"
                    }
                },
                {
                    "key": "sort",
                    "type": "dropdown",
                    "name": "Sorting",
                    "values": [
                        {
                            "value": "f",
                            "name": "Featured"
                        },
                        {
                            "value": "lh",
                            "name": "Price: Low → High"
                        },
                        {
                            "value": "hl",
                            "name": "Price: High → Low"
                        }
                    ]
                }
            ],
            "apps": {
                "440": [
                    {
                        "key": "stat",
                        "type": "dropdown",
                        "name": "Strange",
                        "values": [
                            {
                                "value": "",
                                "name": "",
                                "small_name": "Strange: Don't Care"
                            },
                            {
                                "value": 1,
                                "name": "Yes",
                                "small_name": "Only Strange"
                            },
                            {
                                "value": 0,
                                "name": "No",
                                "small_name": "No Strange"
                            }
                        ]
                    },
                    {
                        "key": "exterior",
                        "type": "dropdown",
                        "name": "Exterior",
                        "values": [
                            {
                                "value": "",
                                "name": "",
                                "small_name": "Any Exterior"
                            },
                            {
                                "value": "fn",
                                "name": "Factory New"
                            },
                            {
                                "value": "mw",
                                "name": "Minimal Wear"
                            },
                            {
                                "value": "ft",
                                "name": "Field-Tested"
                            },
                            {
                                "value": "ww",
                                "name": "Well-Worn"
                            },
                            {
                                "value": "bs",
                                "name": "Battle-Scarred"
                            }
                        ]
                    }
                ],
                "730": [
                    {
                        "key": "stat",
                        "type": "dropdown",
                        "name": "StatTrak",
                        "values": [
                            {
                                "value": "",
                                "name": "",
                                "small_name": "StatTrak: Don't Care"
                            },
                            {
                                "value": 1,
                                "name": "Yes",
                                "small_name": "Only StatTrak"
                            },
                            {
                                "value": 0,
                                "name": "No",
                                "small_name": "No StatTrak"
                            }
                        ]
                    },
                    {
                        "key": "grade",
                        "type": "dropdown",
                        "name": "Grade",
                        "values": [
                            {
                                "value": "",
                                "name": "",
                                "small_name": "Any Grade"
                            },
                            {
                                "value": "cg",
                                "name": "Consumer Grade"
                            }
                        ]
                    },
                    {
                        "key": "exterior",
                        "type": "dropdown",
                        "name": "Exterior",
                        "values": [
                            {
                                "value": "",
                                "name": "",
                                "small_name": "Any Exterior"
                            },
                            {
                                "value": "fn",
                                "name": "Factory New"
                            },
                            {
                                "value": "mw",
                                "name": "Minimal Wear"
                            }
                        ]
                    },
                    {
                        "key": "souvenir",
                        "type": "dropdown",
                        "name": "Souvenir",
                        "values": [
                            {
                                "value": "",
                                "name": "",
                                "small_name": "Souvenir: Don't Care"
                            },
                            {
                                "value": 1,
                                "name": "Yes",
                                "small_name": "Only Souvenir"
                            },
                            {
                                "value": 0,
                                "name": "No",
                                "small_name": "No Souvenir"
                            }
                        ]
                    },
                    {
                        "type": "range",
                        "name": "Wear",
                        "min": 0,
                        "max": 100,
                        "low": {
                            "placeholder": "Minimum wear %",
                            "key": "wear_range_low"
                        },
                        "high": {
                            "placeholder": "Maximum wear %",
                            "key": "wear_range_high"
                        }
                    },
                    {
                        "key": "type",
                        "type": "dropdown",
                        "name": "Type",
                        "values": [
                            {
                                "value": "",
                                "name": "",
                                "small_name": "Any Type"
                            },
                            {
                                "value": "k",
                                "name": "Knife"
                            },
                            {
                                "value": "p",
                                "name": "Pistol"
                            }
                        ],
                        "extended_view": true
                    },
                    {
                        "key": "phase",
                        "type": "dropdown",
                        "name": "Phase",
                        "values": [
                            {
                                "value": "",
                                "name": "",
                                "small_name": "Any Phase"
                            },
                            {
                                "value": "dr",
                                "name": "Doppler: Ruby"
                            }
                        ],
                        "extended_view": true
                    },
                    {
                        "key": "vanilla",
                        "type": "checkbox",
                        "name": "Vanilla Skins Only",
                        "small_name": "Vanilla Only",
                        "help": "Only search for items with their default skin coloring",
                        "extended_view": true
                    },
                    {
                        "key": "screenshot",
                        "type": "checkbox",
                        "name": "Instant Field Inspection Only",
                        "small_name": "Field Inspection Only",
                        "help": "Only search for items that have Instant Field Inspection available",
                        "extended_view": true
                    },
                    {
                        "key": "want_stickers",
                        "type": "dropdown",
                        "name": "Stickers",
                        "values": [
                            {
                                "value": "",
                                "name": "",
                                "small_name": "Stickers: Don't Care"
                            },
                            {
                                "value": 1,
                                "name": "Yes",
                                "small_name": "Only Stickers"
                            },
                            {
                                "value": 0,
                                "name": "No",
                                "small_name": "No Stickers"
                            }
                        ]
                    },
                    {
                        "key": "stickers",
                        "type": "text",
                        "name": "Sticker",
                        "help": "Start typing a sticker and click on the name to find only skins with ALL the specified stickers",
                        "placeholder": "Sticker",
                        "class": "sticker_search",
                        "extended_view": true
                    }
                ],
                "578080": []
            }
        }
    }
    

    Get the search schema to search the store

    HTTP Request

    GET https://api.opskins.com/ISales/GetSearchSchema/v1/

    Input

    Parameter Type Required Description
    none

    Output

    {app_id} can be "global" - global properties for any application, or specified application id.

    Parameter Type Description
    {app_id} array-object An array of fields that should be present when searching for any app (includes the app selection dropdown). The "app" key is the only required field.
        key string The key of the field; this is the key you should use when sending this field in a search. Not present for "range" types.
        type string One of dropdown, text, range, checkbox. If this isn't one of the recognized values, the field should be ignored.
        name string The localized label that should be displayed to the user for this field
        placeholder string A placeholder that can go inside this input when it's blank (for text fields). May not always be present. Will not be null; simply won't be present.
        step number Only present for "range" fields, and not always. If defined, then the values for the range should only be allowed to step by this amount (e.g. 0.01). If not present, allow any number input.
        min number Only present for "range" fields, but not always. If defined, then the values for the range should only be allowed to be at least this amount.
        max number Only present for "range" fields, but not always. If defined, then the values for the range should only be allowed to be at most this amount.
        low object Only present for "range" fields, always.
            placeholder string Not always present. This is a placeholder for the low end of the range input field.
            key string This is the key you should send for the low end of the range.
        high object Only present for "range" fields, always.
            placeholder string Not always present. This is a placeholder for the high end of the range input field.
            key string This is the key you should send for the high end of the range.
        values array-object Only present for "dropdown" fields, always. These are the valid options for the field.
            value string This is the value that should be sent if the user selects the option
            name string This is the localized name that should be displayed in the option
        help string Only present for "checkbox" types. This is a label that describes what the checkbox does (use "name" as the actual box's label, this is extra help text).
        extended_view bool Optional parameter. If present and equal to true, then the field should be present only in extended search form (if applicable)
        apps object This is an object. Keys are AppIDs (without contextids). Values are arrays of inputs in identical format to "global" above.

    Get Sort Types

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ISales/GetSortTypes/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "sort": [
                {
                    "key": "new",
                    "name": "Newest listings"
                },
                {
                    "key": "oldest_bump",
                    "name": "Oldest Bump Time"
                },
                {
                    "key": "last_sold",
                    "name": "Last Sold"
                },
                {
                    "key": "featured",
                    "name": "Featured"
                },
                {
                    "key": "not_featured",
                    "name": "Not Featured"
                },
                {
                    "key": "private",
                    "name": "Private"
                },
                {
                    "key": "price_desc",
                    "name": "Price Descending"
                },
                {
                    "key": "price_asc",
                    "name": "Price Ascending"
                },
                {
                    "key": "alpha",
                    "name": "Alphabetical"
                },
                {
                    "key": "bot",
                    "name": "Assigned Account"
                },
                {
                    "key": "activity_old",
                    "name": "Last Activity (Old to New)"
                },
                {
                    "key": "activity_new",
                    "name": "Last Activity (New to Old)"
                }
            ]
        }
    }
    

    Returns a list of possible sales sort types. Them can be used for sort value in next methods: - ISales/GetSales_v1 - ISales/GetSales_v2

    HTTP Request

    GET https://api.opskins.com/ISales/GetSortTypes/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    sort array-object
        key string Option's value
        name string Option's display name

    Get Supported Steam Apps

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ISales/GetSupportedSteamApps/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "apps": [
                {
                    "name": "Counter-Strike: Global Offensive",
                    "name_short": "CS:GO",
                    "appid": 730,
                    "contextid": 2,
                    "icon": "https://steamcdn-a.opskins.media/steamcommunity/public/images/apps/730/69f7ebe2735c366c65c0b33dae00e12dc40edbe4.jpg",
                    "thumb": "https://opskins.com/images/game-thumb-csgo.jpg",
                    "disabled": false
                }
            ]
        }
    }
    

    Get's all currently supported Steam Applications

    HTTP Request

    GET https://api.opskins.com/ISales/GetSupportedSteamApps/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    apps array-object List of applications
        name string Name of supported game
        name_short string Shortened name of supported game
        appid int App id of supported game
        contextid int Context id of supported game
        icon URL (string) Application icon url
        thumb URL (string) Aplication thumb image url
        disabled bool Supported game is currently disabled

    Instant SellItems

    Request with item data example:

    curl --request POST \
      --url 'https://api.opskins.com/ISales/InstantSellItems/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data 'total=2256&money_total=2256&items%5B0%5D%5Bname%5D=AK-47%20%7C%20Point%20Disarray%20(Field-Tested)&items%5B0%5D%5Btype%5D=Classified%20Rifle&items%5B0%5D%5Bappid%5D=730&items%5B0%5D%5Bcontextid%5D=2&items%5B0%5D%5Bclassid%5D=1867876426&items%5B0%5D%5Binstanceid%5D=188530139&items%5B0%5D%5Binstantsell_credits%5D=696&items%5B0%5D%5Binstantsell_money%5D=696&items%5B0%5D%5Bamount%5D=1&items%5B1%5D%5Bname%5D=AK-47%20%7C%20Case%20Hardened%20(Field-Tested)&items%5B1%5D%5Btype%5D=Classified%20Rifle&items%5B1%5D%5Bappid%5D=730&items%5B1%5D%5Bcontextid%5D=2&items%5B1%5D%5Bclassid%5D=1874218148&items%5B1%5D%5Binstanceid%5D=188530139&items%5B1%5D%5Binstantsell_credits%5D=1560&items%5B1%5D%5Binstantsell_money%5D=1560&items%5B1%5D%5Bamount%5D=1&instantsell=1'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "balance": 4563606,
        "credits": 6780,
        "response": {
            "items": [
                {
                    "saleid": 37246406,
                    "new_itemid": 37246527,
                    "name": "AK-47 | Point Disarray (Field-Tested)"
                },
                {
                    "saleid": 37246449,
                    "new_itemid": 37246528,
                    "name": "AK-47 | Case Hardened (Field-Tested)"
                }
            ]
        }
    }
    

    Request with sale id example:

    curl --request POST \
      --url 'https://api.opskins.com/ISales/InstantSellItems/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --header 'content-type: application/x-www-form-urlencoded' \
      --data 'total=209&money_total=209&items%5B0%5D%5Bid%5D=37246520&instantsell=2'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "balance": 4563815,
        "credits": 6780,
        "response": {
            "items": [
                {
                    "saleid": 37246520,
                    "new_itemid": 37246530,
                    "name": "AK-47 | Redline (Field-Tested)"
                }
            ]
        }
    }
    

    Instant-sell items in the user's OSI

    HTTP Request

    POST https://api.opskins.com/ISales/InstantSellItems/v1/

    Input

    Parameter Type Required Description
    total int + Total amount of credits
    money_total int + Total amount of USD
    instantsell int + 1 for credits, 2 for USD
    send_email_receipt bool Send email receipt
    items array-object + List of sales to instant sell. Acceptable two representation of sale items (see tables below)
    For instant sell by name, type and amount use next presentation of item
    Parameter Type Required Description
        name string Item market name
        type string
        amount string
    For instant sell by sale id use next presentation of item
    Parameter Type Required Description
        id string

    Output

    Parameter Type Description
    balance int New user balance
    credits int New user credit balance
    response object
        items array-object
            saleid int Old sale id
            new_itemid string New sale id
            name int Item market name

    List Items

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/ISales/ListItems/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --header 'content-type: application/json; charset=utf-8' \
      --data '{
        "items": "[{\"appid\":730,\"contextid\":2,\"assetid\":\"188530139\",\"price\":200,\"addons\":[]}]"
    }'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "tradeoffer_id": 541741,
            "tradeoffer_error": null,
            "bot_id": 711,
            "bot_id64": "76561197973578969",
            "security_token": "HfQxHf",
            "sales": [
                {
                    "saleid": 37246542,
                    "appid": 730,
                    "contextid": "2",
                    "assetid": "380183185",
                    "market_name": "P90 | Module (Field-Tested)",
                    "price": 200,
                    "addons": []
                }
            ]
        }
    }
    

    Lists between 1 and 50 items for sale (upper cap subject to change). This will fail if any of the items passed in already have sales with active trade offers out. If there's a matching sale for an item that doesn't have a trade offer out, it will automatically be deleted.

    HTTP Request

    POST https://api.opskins.com/ISales/ListItems/v1/

    Input

    Parameter Type Required Description
    items string + A JSON-encoded array of objects. One object for each item you wish to list. Each object should contain these properties

    JSON-encoded item data

    Parameter Type Required Description
    appid integer + The Steam AppID of the game which owns this item (e.g. 730 for CS:GO, 440 for TF2, 570 for Dota 2)
    contextid integer + The Steam context ID which contains this item (2 for Valve games, 6 for Steam Community items, 1 for H1Z1, etc.). When you right-click on an item in your Steam inventory and copy its URL, the context ID is the second number after the hash.
    assetid string + The Steam asset ID of the item. This is also known as just the item's id
    price integer + The desired list price for this item, before commission. Pass this in USD cents (formerly known as OP). For example, $20.00 is 2000.
    showcase integer
    addons array-string An array of strings (possible addon strings are listed below)
    addons constants

    Output

    Parameter Type Description
    tradeoffer_id integer If a trade offer was successfully sent, this is its ID as a string. If we weren't able to send a trade offer, this is null
    tradeoffer_error string If we weren't able to send a trade offer, this is an error message string. If there was no error, this is null
    bot_id integer The internal OPSkins ID of the storage account to which these sales were assigned
    bot_id64 string The 64-bit SteamID of the storage account to which these sales were assigned. This is the account that's sending a trade offer
    security_token string The 6-character security token that is included in the trade offer message
    sales array-object An array containing objects describing the sales that were created. Each object has these properties
        saleid int The OPSkins internal ID of this sale
        appid int The Steam AppID for this item
        contextid string The Steam context ID in which this item resides in your inventory
        assetid string The current asset ID of this item in your inventory
        market_name string The name of this item
        price int The list price of this item in USD cents
        addons array-string An array containing strings for each addon this item has

    Return Items

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/ISales/ReturnItems/v1/' \
      --header 'content-type: application/json; charset=utf-8' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --data '{"items": "37246039"}'
    

    Error response example:

    {
        "status": 4004,
        "time": 1512020202,
        "message": "There was a problem sending your trade offer. Please try again later.",
        "response": {
            "offers": [
                {
                    "bot_id": 365,
                    "items": [
                        37246039
                    ],
                    "tradeoffer_id": null,
                    "tradeoffer_error": null
                }
            ]
        }
    }
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "offers": [
                {
                    "bot_id": 365,
                    "items": [
                        37246039
                    ],
                    "tradeoffer_id": 454841,
                    "tradeoffer_error": null
                }
            ]
        }
    }
    

    Return one or more items you've listed for sale to your Steam accounts. Input items must be either on sale or awaiting return, and must not have an active trade offer out or queued. Under most circumstances, a trade offer won't be queued, but it's possible if, for example, you request that an item be returned and the bot is offline at the time of request.

    This will (attempt to) send trade offers for all items in your input. If multiple trade offers must be sent, they will be sent in series. Therefore, you may wish to call this method separately for each bot that will be sending an offer (you can use GetSales to find out which bot is holding which item).

    If the status is not OK (1), the output will still be defined (if your input was well-formed, there were no unexpected internal errors, and Steam is not completely down) in the event that the failure was due to Steam (e.g. bad trade URL, item doesn't exist anymore, trade server down).

    HTTP Request

    POST https://api.opskins.com/ISales/ReturnItems/v1/

    Input

    Parameter Type Required Description
    items string + A list of sale IDs of items you want to be returned, separated by commas. For example: 1234,5678,9012

    Output

    Parameter Type Description
    offers array-object An array of objects, where each object in this array represents one trade offer that we sent (or tried to send)
        bot_id int The internal ID of the bot that sent (or tried to send) this trade offer
        items array-int An array of sale IDs which were in this offer
        tradeoffer_id int If the offer was successfully sent, this is its trade offer ID as a string. null on failure
        tradeoffer_error string If the offer couldn't be sent, this is an error message. null on success

    Return Items To Inventory

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/ISales/ReturnItemsToInventory/v1/' \
      --header 'content-type: application/json; charset=utf-8' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --data '{"items": "37246247"}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202
    }
    

    Return one or more items that are on sale to the user's OPSkins inventory

    HTTP Request

    POST https://api.opskins.com/ISales/ReturnItemsToInventory/v1/

    Input

    Parameter Type Required Description
    items string + Comma-separated list of sale IDs

    Output

    Parameter Type Description
    none

    Search v1

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ISales/Search/v1/?app=730_2&search_item=AK-47' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "sales": [
                {
                    "id": 35880764,
                    "amount": 2,
                    "classid": "1432174707",
                    "instanceid": "0",
                    "img": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXU5A1PIYQNqhpOSV-fRPasw8rsUFJ5KBFZv668FFYwnfKfcG9HvN7iktaOkqD1auLTxD5SvZYgiLvFpo7xjVLh-kdrYWnzcoGLMlhpsyM-5vg",
                    "market_name": "Revolver Case",
                    "inspect": null,
                    "type": "Base Grade Container",
                    "item_id": "7337546177",
                    "stickers": null,
                    "wear": null,
                    "appid": 730,
                    "contextid": "2",
                    "bot_id": 702
                },
                {
                    "id": 35880765,
                    "amount": 2,
                    "classid": "1432174707",
                    "instanceid": "0",
                    "img": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXU5A1PIYQNqhpOSV-fRPasw8rsUFJ5KBFZv668FFYwnfKfcG9HvN7iktaOkqD1auLTxD5SvZYgiLvFpo7xjVLh-kdrYWnzcoGLMlhpsyM-5vg",
                    "market_name": "Revolver Case",
                    "inspect": null,
                    "type": "Base Grade Container",
                    "item_id": "7337546186",
                    "stickers": null,
                    "wear": null,
                    "appid": 730,
                    "contextid": "2",
                    "bot_id": 702
                }
            ]
        }
    }
    

    Search active OPSkins listings for particular items. To prevent bot sniping, this endpoint will only return listings which have been publicly visible for at least ten minutes, and are not currently limited to Buyers Club members. This endpoint always returns 100 listings sorted from lowest to highest price.

    Input is identical to that of the main site's search page. The most important parameters are listed here.

    HTTP Request

    GET https://api.opskins.com/ISales/Search/v1/

    Input

    Parameter Type Required Description
    app string + The app you want to search in, in appid_contextid format (e.g. 730_2)
    search_item string Item name for the search

    Output

    Parameter Type Description
    sales array-object An array of objects containing the results of your search query. Each object has these properties:
        id int The item's OPSkins sale ID
        amount int The item's list price, in USD cents
        classid string The item's Steam classid at time of pickup (may have changed in trade)
        instanceid string The item's Steam instanceid at time of pickup (may have changed in trade)
        img string The item's Steam image URL (append this to https://steamcommunity-a.akamaihd.net/economy/image/)
        market_name string The item's name
        inspect string The full URL to inspect this item, if applicable. If not, then this is null
        type string The item's "type" as reported by Steam (e.g. Base Grade Key)
        item_id string The item's Steam asset ID on our storage account
        stickers string A string containing the stickers applied to this item, as comma-separated pairs of stickerid,wear
        wear string The item's floating-point wear value, between 0 and 1 if applicable. If not applicable or unknown, then null
        appid int The item's Steam appID
        contextid string The item's Steam context ID
        bot_id int The internal OPSkins ID of the bot which is holding this item

    Search v2

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ISales/Search/v2/?app=730_2&search_item=AK-47' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "sales": [
                {
                    "id": 35880764,
                    "amount": 2,
                    "showcase": 0,
                    "color": "D2D2D2",
                    "img": "https://steamcommunity-a.opskins.media/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXU5A1PIYQNqhpOSV-fRPasw8rsUFJ5KBFZv668FFYwnfKfcG9HvN7iktaOkqD1auLTxD5SvZYgiLvFpo7xjVLh-kdrYWnzcoGLMlhpsyM-5vg",
                    "inspect": null,
                    "type": "Base Grade Container",
                    "classid": "1432174707",
                    "instanceid": "0",
                    "market_name": "Revolver Case",
                    "market_hash_name": "Revolver Case",
                    "appid": 730,
                    "contextid": "2",
                    "assetid": "7337546177",
                    "bot_id": 702,
                    "state": 2,
                    "bumptime": null,
                    "wear": "",
                    "stickers": [],
                    "val_1": null,
                    "market_fee_app": null,
                    "flags": {
                        "tf2_uncraftable": false,
                        "trade_locked": false,
                        "has_screenshots": false,
                        "screenshot_is_video": false,
                        "steam_commodity": false
                    },
                    "is_your_item": false
                }
            ]
        }
    }
    

    Search active OPSkins listings for particular items. To prevent bot sniping, this endpoint will only return listings which have been publicly visible for at least ten minutes, and are not currently limited to Buyers Club members. This endpoint always returns 100 listings sorted from lowest to highest price.

    Input is identical to that of the main site's search page. The most important parameters are listed here.

    HTTP Request

    GET https://api.opskins.com/ISales/Search/v2/

    Input

    Parameter Type Required Description
    app string + The app you want to search in, in appid_contextid format (e.g. 730_2)
    search_item string Item name for search
    trade_locked int Filtering CS:GO items by trade lock status. If not sent then no filtering happens, send 1 to show only trade-locked items, 0 - only non trade-locked items

    Output

    Parameter Type Description
    sales array-object An array of objects containing the results of your search query. Each object is Standard Sale Object

    Set Trade-Locked Filter Value

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/ISales/SetTradeLockedFilter/v1/' \
      --header 'content-type: application/json; charset=utf-8' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --data '{"value":"2"}' 
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202
    }
    

    Set user's preference on trade-locked filter

    HTTP Request

    POST https://api.opskins.com/ISales/SetTradeLockedFilter/v1/

    Input

    Parameter Type Required Description
    value int + Trade-locked filter value. One of 1, 2, 3, where 1 means no filtering, 2 - only trade-locked items, 3 - only non trade-locked items

    Output

    None

    IStatus

    Get Bot List

    Request example:

    curl --request GET \
      --url 'http://api.opskins.com/IStatus/GetBotList/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "bots": {
                "1": {
                    "id": 1,
                    "id64": "76561198168850067",
                    "online": false
                },
                "2": {
                    "id": 2,
                    "id64": "76561198173383125",
                    "online": false
                },
                "3": {
                    "id": 3,
                    "id64": "76561198173384045",
                    "online": false
                }
            }
        }
    }
    

    Get list of bots and online statuses

    HTTP Request

    GET https://api.opskins.com/IStatus/GetBotList/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    bots object
        {id} object
            id int Internal bot id
            id64 string Steam Id64 of the bot
            online bool

    ISupport

    Repair Item

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/ISupport/RepairItem/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --header 'Content-Type: application/json; charset=utf-8' \
      --data '{"saleid":2402474}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "type": "item",
            "bot": 58,
            "repairedSaleids": [37246350],
            "repaired": true
        }
    }
    

    Attempts to repair a sale that is in a broken "Contact Support" state. This will also attempt to repair all other broken items on the same bot.

    HTTP Request

    POST https://api.opskins.com/ISupport/RepairItem/v1/

    Input

    Parameter Type Required Description
    saleid int + Sale ID of the item

    Output

    Parameter Type Description
    type string A string representing what type of item this is in your account. sale for an item you're selling, purchase for an item you purchased, item for an item in your OPSkins inventory
    bot int The ID of the bot which owns this item
    repairedSaleids array-int An array containing the IDs of other items on this bot which are also repaired (will contain the passed-in ID if it was repaired). Some or all of these may not belong to you.
    repaired bool true if the passed-in ID was repaired, false if it wasn't. You'll need to contact support if it's false. Will also be true if the passed-in ID was not in a bad state to begin with.

    ITest

    Test

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ITest/Test/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' 
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513697229
    }
    

    Test

    HTTP Request

    GET|POST https://api.opskins.com/ITest/Test/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    none

    Test Authed

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ITest/TestAuthed/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' 
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513697516,
        "balance": 12383078,
        "credits": 330148,
        "response": {
            "uid": 1996773,
            "id64": "76561198273325252"
        }
    }
    

    Test authed user

    HTTP Request

    GET|POST https://api.opskins.com/ITest/TestAuthed/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    status int Response status code
    time int Timestamp
    balance int Wallet balance
    credits int Credits balance
    response object
        id integer Authed user ID
        id64 string Steam ID64, will be null if Steam is not linked.

    Test Localization

    Request example:

    curl --request GET \
      --url 'https://api.opskins.com/ITest/TestLocalization/v1/' \
      --header 'Accept-Language: ru' \
      --header 'authorization: Basic {{AUTH_HASH}}' 
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513698385,
        "response": {
            "lang": "ru",
            "test_string": "Купить и продать скины и вещи CSGO, H1Z1 и PUBG | Торговая площадка OPSkins"
        }
    }
    

    Returns language code and localized test message

    HTTP Request

    GET|POST https://api.opskins.com/ITest/TestLocalization/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    lang string Language code from request header
    test_string string Localized message

    ITransactions

    Get Failed Purchases

    Request example:

    curl --request GET \
      --url 'http://api.opskins.com/ITransactions/GetFailedPurchases/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "total": 2,
            "purchases": [
                {
                    "market_name": "StatTrak™ SCAR-20 | Crimson Web (Factory New)",
                    "amount": 4500,
                    "reason": "Refunded from OPSkins inventory",
                    "sale_id": 36576252,
                    "date": 1480945640
                },
                {
                    "market_name": "★ StatTrak™ Karambit | Doppler (Factory New)",
                    "amount": 95000,
                    "reason": "Refunded from OPSkins inventory",
                    "sale_id": 37058170,
                    "date": 1480945638
                }
            ]
        }
    }
    

    Get the user's failed purchases

    HTTP Request

    GET https://api.opskins.com/ITransactions/GetFailedPurchases/v1/

    Input

    Parameter Type Required Description
    per_page int Number of items to return per page (default and max is 50)
    page int Page number to fetch (default 1)

    Output

    Parameter Type Description
    total int Total number of failed purchases
    purchases array-object
        sale_id int
        date int
        market_name string Name of the item
        reason string Reason of failure
        amount int Purchase amount in USD cents

    Get Monetary Transaction History

    Request example:

    curl --request GET \
      --url 'http://api.opskins.com/ITransactions/GetMonetaryTransactionHistory/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "total_items": 96,
            "total_spent": 17184234,
            "total_cashed_out": 100000,
            "total_pending": 2000000,
            "transactions": [
                {
                    "type": "purchase",
                    "formatted_type": "Purchase",
                    "status": "Paid",
                    "timestamp": 1483713600,
                    "amount": 15000,
                    "email": "",
                    "transaction_id": "",
                    "comments": null,
                    "actions": [
                        {
                            "type": "api",
                            "text": "Purchase",
                            "value": "viewEmailPurchase"
                        }
                    ]
                },
                {
                    "type": "purchase",
                    "formatted_type": "Purchase",
                    "status": "Paid",
                    "timestamp": 1480430227,
                    "amount": 194100,
                    "email": "",
                    "transaction_id": "Bitcoin 46h443vf",
                    "comments": null,
                    "actions": [
                        {
                            "type": "api",
                            "text": "Purchase",
                            "value": "viewEmailPurchase"
                        },
                        {
                            "type": "link",
                            "text": "Bitcoin 46h443vf",
                            "value": "https://blockchain.info/tx/46h443vf"
                        }
                    ]
                },
                {
                    "type": "cashout",
                    "formatted_type": "PayPal One-Hour Cashout",
                    "status": "Denied",
                    "timestamp": 0,
                    "amount": 6000,
                    "email": "email@example.com",
                    "transaction_id": "8",
                    "comments": "Declined by user",
                    "actions": []
                }
            ]
        }
    }
    

    Get Monetary Transactions - combined Cashouts, WHMCS Payments and Add Funds Payments. Sorted by timestamp in descending order

    HTTP Request

    GET https://api.opskins.com/ITransactions/GetMonetaryTransactionHistory/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    total_items int Total number of transactions
    total_spent int Total amount of monies spent in USD cents
    total_cashed_out int Total amount of monies cashed out in USD cents
    total_pending int Total amount of pending monies in USD cents
    transactions array-object List of transactions
        type string Transaction type. One of cashout, WHMCS_purchase, purchase
        formatted_type string Transaction type display name. Can contain both type (Purchase or Cashout) and provider name, e.g. Bitcoin Cashout
        status string Transaction Status
        timestamp int Transaction's timestamp
        amount int Transaction's amount in USD cents
        email string Email, used in transaction
        transaction_id string Transaction ID. Can contain internal transaction id and/or payment provider name
        comments string Multi-purpose field to contain denial reason if any, staff comments, etc.
        actions array-object Actions associated with the record. Can be a link to external website, or a shortcut to another API endpoint
            type string Type of action to perform. Available values: link - open external url, api - call another api endpoint
            value string Value for the type above. URL in case of link, or a code for api call (should be handled by API client)
            text string Text to show with the action

    Get Operation Points Transaction History

    Request example:

    curl --request GET \
      --url 'http://api.opskins.com/ITransactions/GetOperationPointsTransactionHistory/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "current_page": 1,
        "total_pages": 1,
        "response": {
            "types": {
                "2": "Purchase",
                "8": "Subscription Purchase",
                "12": "Mystery Item"
            },
            "states": {
                "1": "Completed"
            },
            "transactions": [
                {
                    "id": 690,
                    "timestamp": 1506607151,
                    "updated_timestamp": null,
                    "type": 2,
                    "state": 1,
                    "target_item": 37246479,
                    "amount": -55000,
                    "amount_nocashout": -55000,
                    "new_balance": 330747,
                    "new_balance_nocashout": 2095914,
                    "amount_refunded": 0,
                    "amount_nocashout_refunded": 0,
                    "comment": null
                },
                {
                    "id": 552,
                    "timestamp": 1497017736,
                    "updated_timestamp": null,
                    "type": 12,
                    "state": 1,
                    "target_item": null,
                    "amount": -11495,
                    "amount_nocashout": -11495,
                    "new_balance": 433717,
                    "new_balance_nocashout": 2198884,
                    "amount_refunded": 0,
                    "amount_nocashout_refunded": 0,
                    "comment": "Mystery Knife purchase"
                }
            ]
        }
    }
    

    Get Monetary Transactions - combined Cashouts, WHMCS Payments and Add Funds Payments. Sorted by timestamp in descending order

    HTTP Request

    GET https://api.opskins.com/ITransactions/GetOperationPointsTransactionHistory/v1/

    Input

    Parameter Type Required Description
    type int Set to return only a specific type of transaction
    per_page int Number of transactions to return per page (default and max is 10,000)
    page int Page number to fetch (default 1)
    sort string How should we sort the listing? Valid values are: new_old (new to old); old_new (old to new)

    Output

    Parameter Type Description
    types object Keys of this object are type numbers, values are that type's display string (localized)
    states object Keys of this object are state numbers, values are that that state's display string (localized)
    transactions array-object List of transactions
        id int
        timestamp int
        updated_timestamp int
        type int The type of transaction this is
        state int This transaction's current state
        target_item int Sale ID/invoice ID/etc with which this transaction is associated
        amount int Operation points difference. Negative means you lost money, positive means you gained money
        amount_nocashout int Operation points difference in your non-cashoutable balance (i.e. how much of this transaction affected your non-cashoutable balance
        new_balance int Your new account balance after this transaction was finished
        new_balance_nocashout int Your new non-cashoutable balance after this transaction was finished
        amount_refunded int How much of this transaction was refunded (sign will be opposite of "amount"; e.g. if fully refunded, "amount" + "amount_refunded" = 0)
        amount_nocashout_refunded int How much of this transaction's non-cashoutable change was refunded (sign will be opposite of "amount_nocashout")
        comment string A comment to go along with this transaction

    Get Purchase History

    Request example:

    curl --request GET \
      --url 'http://api.opskins.com/ITransactions/GetPurchaseHistory/v1/?type=3' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "appids": {
                "570": "Dota 2",
                "730": "CS:GO",
                "218620": "PAYDAY 2",
                "295110": "JS",
                "433850": "H1Z1"
            },
            "currency_types": {
                "1": "USD Cents",
                "2": "Operation Points"
            },
            "purchases": [
                {
                    "sale_id": 37245493,
                    "timestamp": 1513277676,
                    "item_name": "AK-47 | Redline (Field-Tested)",
                    "appid": "730",
                    "amount": 737,
                    "amount_currency_type": 1,
                    "security_token": "plFceO",
                    "status": "Delivered to OPSkins Inventory",
                    "manage": null,
                    "refundable": null
                },
                {
                    "sale_id": 37243580,
                    "timestamp": 1487060264,
                    "item_name": "Red Bone Work Boots",
                    "appid": "433850",
                    "amount": 150,
                    "amount_currency_type": 1,
                    "security_token": "oEpbpF",
                    "status": "Delivered to OPSkins Inventory",
                    "manage": null,
                    "refundable": null
                }
            ]
        }
    }
    

    Get the user's wallet transaction history

    HTTP Request

    GET https://api.opskins.com/ITransactions/GetPurchaseHistory/v1/

    Input

    Parameter Type Required Description
    type int + Type of purchases to return. 3 = sold, awaiting delivery; 4 = sold and delivered
    appid int Set to return purchases by a game's appid
    currency_type int Set to return purchases based on currency type (Operation Points or USD cents)
    per_page int Number of transactions to return per page (default and max is 10,000)
    page int Page number to fetch (default 1)
    sort string How should we sort the listing? Valid values are: new_old (new to old); old_new (old to new)

    Output

    Parameter Type Description
    appids object Keys of this object are 'appid' numbers, values are that appid's display string
    currency_types object Keys of this object are 'currency type' numbers, values are that currency types's display string
    purchases array-object
        sale_id int
        timestamp int
        item_name string Name of the purchased item
        appid string The appid of the purchase
        amount int Purchase amount
        amount_currency_type int Number value of the currency type used to purchase. (Operation points or USD cents)
        security_token string Our storage account will respond to you with this token. This is for your protection to confirm it is an authentic OPSKINS storage account
        status string Status message of the purchase
        manage string If one exists, a description of a problem with the purchase
        refundable int If item is still refundable, a timestamp in unixtime the item can be refunded until

    Get Transaction Types

    Request example:

    curl --request GET \
      --url 'http://api.opskins.com/ITransactions/GetTransactionTypes/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "types": [
                {
                    "key": "",
                    "name": "All"
                },
                {
                    "key": "1",
                    "name": "Item Sale"
                },
                {
                    "key": "2",
                    "name": "Item Purchase"
                },
                {
                    "key": "3",
                    "name": "Bump/Feature"
                },
                {
                    "key": "4",
                    "name": "Cashout"
                },
                {
                    "key": "5",
                    "name": "Add Funds"
                },
                {
                    "key": "6",
                    "name": "Support Adjustment"
                },
                {
                    "key": "7",
                    "name": "Code/Gift Card"
                },
                {
                    "key": "8",
                    "name": "Subscription Purchase"
                }
            ]
        }
    }
    

    Get transaction types to create a filter

    HTTP Request

    GET https://api.opskins.com/ITransactions/GetTransactionTypes/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    types array-object
        key string Transaction type id
        name string Transaction type display name

    Get Wallet Transaction History

    Request example:

    curl --request GET \
      --url 'http://api.opskins.com/ITransactions/GetWalletTransactionHistory/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1512020202,
        "response": {
            "types": {
                "1": "Sale",
                "2": "Purchase",
                "5": "Add Funds",
                "7": "Redeemed Code",
                "8": "Subscription Purchase",
                "9": "Reversal"
            },
            "states": {
                "1": "Completed",
                "2": "Refunded",
                "3": "Refunded by Support"
            },
            "transactions": [
                {
                    "id": 242,
                    "timestamp": 1483616005,
                    "updated_timestamp": null,
                    "type": 5,
                    "state": 1,
                    "target_item": 10234476,
                    "amount": 1000,
                    "amount_nocashout": 1000,
                    "new_balance": 12232806,
                    "new_balance_nocashout": 2060107,
                    "amount_refunded": 0,
                    "amount_nocashout_refunded": 0,
                    "comment": "PayPal Payment"
                },
                {
                    "id": 233,
                    "timestamp": 1482497232,
                    "updated_timestamp": null,
                    "type": 2,
                    "state": 1,
                    "target_item": 37237998,
                    "amount": -9054,
                    "amount_nocashout": -9054,
                    "new_balance": 12238283,
                    "new_balance_nocashout": 2065584,
                    "amount_refunded": 0,
                    "amount_nocashout_refunded": 0,
                    "comment": null
                }
            ]
        }
    }
    

    Get the user's wallet transaction history

    HTTP Request

    GET https://api.opskins.com/ITransactions/GetWalletTransactionHistory/v1/

    Input

    Parameter Type Required Description
    type int Set to return only a specific type of transaction
    per_page int Number of transactions to return per page (default and max is 10,000)
    page int Page number to fetch (default 1)
    sort string How should we sort the listing? Valid values are: new_old (new to old); old_new (old to new)

    Output

    Parameter Type Description
    types object Keys of this object are type numbers, values are that type's display string (localized)
    states object Keys of this object are state numbers, values are that that state's display string (localized)
    transactions array-object
        id int
        timestamp int
        updated_timestamp int
        type int The type of transaction this is
        state int This transaction's current state
        target_item int Sale ID/invoice ID/etc with which this transaction is associated
        amount int USD cents difference. Negative means you lost money, positive means you gained money
        amount_nocashout int The USD cents difference in your non-cashoutable balance (i.e. how much of this transaction affected your non-cashoutable balance
        new_balance int Your new account balance after this transaction was finished
        new_balance_nocashout int Your new non-cashoutable balance after this transaction was finished
        amount_refunded int How much of this transaction was refunded (sign will be opposite of "amount"; e.g. if fully refunded, "amount" + "amount_refunded" = 0)
        amount_nocashout_refunded int How much of this transaction's non-cashoutable change was refunded (sign will be opposite of "amount_nocashout")
        comment string A comment to go along with this transaction

    Transfer Funds

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/ITransactions/TransferFunds/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --header 'Content-Type: application/json; charset=utf-8' \
      --data '{"id64":76561197973578969,"amount":10}'
    

    Response returns JSON structured like this:

    {
      "status": 1,
      "time": 1512020202,
      "balance": 852517,
      "credits": 0,
      "cryptoBalances": {
        "WAX": "100.000000000000000000"
      },
      "response": {
        "amount": 10,
        "recipient": "76561197973578969",
        "currency": 1,
        "transfer_id": 7,
        "txid_sender": 46258268,
        "txid_recipient": 46258269
      }
    }
    
    

    This endpoint allows users to transfer their OPSkins balance, or their Operations Points to another user (Operation Points are used first only if it will cover the entire transaction). The receiver will only receive Operation Points, which are OPSkins Credits that can only be used to purchase items. Operation Points can not be cashed out, converted, purchase subscriptions or used for any other functionality of the site. This endpoint requires pre-approval, if you wish to use this functionality please contact support

    HTTP Request

    POST https://api.opskins.com/ITransactions/TransferFunds/v1/

    Input

    Parameter Type Required Description
    id64 int 64-bit SteamID of recipient. Optional if uid is provided instead.
    uid int OPSkins UID of recipient. Optional if id64 is provided instead.
    amount int + Amount in USD cents to transfer

    Output

    Parameter Type Description
    amount int Amount in USD cents that was transferred
    recipient string OR int Depending on input, either Recipient's 64-bit SteamID (as a string) or OPSkins UID (as a int).
    currency int 1 if it deducted USD from the sender, 2 if it deducted OP (credit)
    transfer_id int The internal ID of the transfer that took place
    txid_sender int The wallet transaction ID in which the sender's funds were taken
    txid_recipient int The wallet transaction ID in which the recipient was granted funds

    Errors

    Status Code Description
    2002 NOT_FOUND If the specified recipient doesn't have an OPSkins account yet.
    3000 BAD_INPUT If id64 or uid passed in is the same as the API key owner. If amount passed in is <= 0.

    IUser

    Add Subscription

    Request example:

    curl --request POST \
      --url http://api.opskins.com/IUser/AddSubscription/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --header 'Content-Type: application/json; charset=utf-8' \
      --data '{"subscriptionid":2,"auto_renew":true}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513686484,
        "response": {
            "id": 2,
            "name": "Premium Member",
            "price": 599,
            "expire": 1516278482,
            "active_length": 2592000,
            "auto_renew": true
        }
    }
    

    Add a subscription to your account

    HTTP Request

    POST https://api.opskins.com/IUser/AddSubscription/v1/

    Input

    Parameter Type Required Description
    subscriptionid int + ID of the subscription type
    auto_renew bool Boolean if the subscription should auto renew after active length period. If not set, will default to false

    Output

    Parameter Type Description
    id int ID of the subscription type
    name string Name of the subscription
    price int Price of the subscription in USD cents
    expire int Timestamp of subscription expiration
    active_length int Amount of time (in seconds) the subscription will be active, in seconds
    auto_renew bool Is the subscription selected to auto renew?

    Get Account Summary

    Request example:

    curl --request GET \
      --url http://api.opskins.com/IUser/GetAccountSummary/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513687671,
        "response": {
            "can_refresh": true,
            "summary": {
                "sold": {
                    "count": 3,
                    "amount": 10073,
                    "user_amount": 9066
                },
                "listed": {
                    "count": 44,
                    "amount": 162752,
                    "user_amount": 154515
                },
                "purchases": {
                    "count": 127,
                    "amount": 3754442,
                    "services": 0
                }
            }
        }
    }
    

    Get the user's account summary

    HTTP Request

    GET https://api.opskins.com/IUser/GetAccountSummary/v1/

    Input

    Parameter Type Required Description
    refresh bool If set to true, should we try to update these values now? Will only work if allowed at this time.

    Output

    Parameter Type Description
    can_refresh bool Can you manually refresh right now?
    summary object
        sold object
            count int Total number of sold items, all time
            amount int Total list price, in USD cents
            user_amount int Total amount earned (amount less commission), in USD cents
        listed object
            count int Total number of listed items right now
            amount int Total list price, in USD cents
            user_amount int Total potential amount earned (amount less commission), in USD cents
        purchases object
            count int Total number of bought items
            amount int Total amount spent, in USD cents
            services int Total amount spent on services, in USD cents

    Get Action History

    Request example:

    curl --request GET \
      --url http://api.opskins.com/IUser/GetActionHistory/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status":1,
        "time":1522086745,
        "current_page": 1,
        "total_pages": 1,
        "response":{
            "actions":[
                {
                    "id":3,
                    "msg":"Admin changed email from <strong>lala@gmail.com</strong> to <strong></strong>",
                    "timestamp":0,
                    "ip":"",
                    "type":7
                },
                {
                    "id":2,
                    "msg":"Enabled 2FA",
                    "timestamp":1521565974,
                    "ip":"192.168.0.108",
                    "type":5
                },
                {
                    "id":1,
                    "msg":"Logged in via local",
                    "timestamp":1521506819,
                    "ip":"192.168.0.116",
                    "type":3
                }
            ],
            "types":{
                "1":"CHANGE_PASSWORD",
                "2":"CHANGE_EMAIL",
                "3":"LOGIN",
                "4":"LOGIN_FAILURE",
                "5":"TWOFACTOR",
                "6":"ENFORCE_PASSWORD",
                "7":"CHANGE_EMAIL_ADMIN",
                "8":"AUTH_MACHINE",
                "9":"CHANGE_LANGUAGE",
                "10":"CHANGE_SMS_PHONE"
            }
        }
    }
    

    Get the user's action history. If an action was done by an admin, IP is returned as an empty string. Login failure actions caused by no-2-factor-authentication failures are excluded from the response regardless of input parameters.

    HTTP Request

    GET https://api.opskins.com/IUser/GetActionHistory/v1/

    Input

    Parameter Type Required Description
    page int Page number to request. Defaults to 1.
    per_page int Number of action records per page to return. Defaults to 100 and capped at 5,000.
    type_id int Action type ID to filter by. Accepts only valid type ID. If an invalid ID or no ID is provided, no filtering is applied.
    sort string Sorting order by id. Accepts ASC or DESC in lowercase or uppercase. Defaults to DESC.

    Output

    Parameter Type Description
    actions array User action objects
        id int Action object ID
        msg string Action detail
        timestamp int UNIX timestamp
        ip string IP of action origin
        type int Action type ID
    types object Action types
        1 string Action type ID 1
        2 string Action type ID 2
        4 string Action type ID 4
        5 string Action type ID 5
        6 string Action type ID 6
        7 string Action type ID 7
        8 string Action type ID 8
        9 string Action type ID 9
        10 string Action type ID 10

    Get Api Key Details

    Request example:

    curl --request GET \
      --url http://api.opskins.com/IUser/GetApiKeyDetails/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513688444,
        "response": {
            "api_key": {
                "delay": 600,
                "fee_pct": 0
            }
        }
    }
    

    Get the user's API Key details.

    HTTP Request

    GET https://api.opskins.com/IUser/GetApiKeyDetails/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    api_key object
        delay int The number of seconds an API key owner has to wait before things show up in ISales/Search and how long an item has to be on sale before they can use ISales/BuyItems
        fee_pct int The purchase commission for this API key when using ISales/BuyItems

    Get Balance

    Request example:

    curl --request GET \
      --url http://api.opskins.com/IUser/GetBalance/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513688576,
        "balance": 12383078,
        "credits": 330148
    }
    

    Get account wallet balance

    HTTP Request

    GET https://api.opskins.com/IUser/GetBalance/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    balance int Wallet balance in USD (coins)
    credits int Instant sell credits

    Get Convertible Balance

    Request example:

    curl --request GET \
      --url http://api.opskins.com/IUser/GetConvertibleBalance/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513858261,
        "response": {
            "balances": {
                "usd": "$45,458.59",
                "wax": "0.00000000"
            }
        }
    }
    

    Get convertible balance

    HTTP Request

    GET https://api.opskins.com/IUser/GetConvertibleBalance/v1/

    Input

    Parameter Type Required Description
    cashoutable bool Request cashoutable balances (default: true)

    Output

    Parameter Type Description
    balances object
    usd string USD formatted balance
    wax string WAX balance

    Get Credits

    Request example:

    curl --request GET \
      --url http://api.opskins.com/IUser/GetCredits/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513689230,
        "response": {
            "instantsell_credits": 330148
        }
    }
    

    Get account wallet balance

    HTTP Request

    GET https://api.opskins.com/IUser/GetCredits/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    instantsell_credits int Instant sell credits

    Get Profile

    Request example:

    curl --request GET \
      --url http://api.opskins.com/IUser/GetProfile/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513690697,
        "response": {
            "id": 1996773,
            "id64": "76561198273325252",
            "create_time": 1472452157,
            "password_set_time": 1486644220,
            "balance": {
                "coins": null,
                "amount_coins_nocashout": 2064444,
                "credits": null
            },
            "showcases": 1,
            "bumps": 2,
            "username": "username",
            "avatar": "https:\/\/steamcdn-a.akamaihd.net\/steamcommunity\/public\/images\/avatars\/fe\/fef49e7fa7e1997310d705b2a6158ff8dc1cdfeb_full.jpg",
            "name": {
                "first": "FirstName",
                "last": "LastName"
            },
            "email": {
                "contact_email": "email@example.com",
                "verified": true,
                "notifications": true
            },
            "twofactor": {
                "enabled": false,
                "enable_time": null
            },
            "options": {
                "trade_url": "https://steamcommunity.com/tradeoffer/new/?partner=000000000&token=pYV4zmle",
                "balance_notify": 503,
                "suggestion_type": 1,
                "hidden_balance": true,
                "private_sales_list": false
            },
            "preferred_lang": "en",
            "sales_list": "https://opsk.in/u/000000",
            "personal_info": {
                "country": "US",
                "region": "CA",
                "city": "Los Angeles",
                "postal": "90000",
                "address": "0 S. Alameda Street Los Angeles",
                "dob": "1999-01-02",
                "phone": null,
                "gov_id": "*****"
            }
        }
    }
    

    Get user profile info

    HTTP Request

    GET https://api.opskins.com/IUser/GetProfile/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    id int OPSkins user's ID
    id64 string User's 64-bit SteamID as a string (64-bit int does not properly decode in JavaScript). Will be null if Steam is not linked.
    create_time int Timestamp of user's account creation
    password_set_time int Timestamp of last password change
    balance object For OAuth: only outputted with scope balance
        coins int User's account balance, in USD cents
        amount_coins_nocashout int Not cashoutable user's account balance, in USD cents
        credits int User's operation points * 100
    showcases int Amount of items user can feature on purchase or renewal of subscription
    username string Account username
    avatar string(URL) Account avatar image URL
    bumps int Amount of bumps given to user on purchase or renewal of subscription
    name object
        first string User's first name
        last string User's last name
    email object For OAuth: only outputted with scope identity
        contact_email string User's contact email
        verified bool Is user's email verified?
        notifications bool Does user want email notifications about items they sold, and promos?
    twofactor object
        enabled bool Does user have 2FA?
        enable_time int Timestamp when 2FA was accepted, null otherwise
    options object
        trade_url string User's Steam trade URL
        balance_notify int Balance threshold at which user wants email notification in USD cents; null if disabled
        suggestion_type int User's desired price suggestion type; 1 = Steam Analyst, 2 = OPSkins
        hidden_balance bool Does user want their balance hidden?
        private_sales_list bool Is user's public sales list private?
    preferred_currency int Preferred crypt-currency index (see: ICrypto_GetCurrencies_v1)
    preferred_lang string User's 2-letter language code
    sales_list string Short link to user's public sales list page
    personal_info object Available only for privileged OAuth requests
        country string 2-letter country code
        region string Region code
        city string City name
        postal string Postal code
        address string Street address
        dob string Birthdate in MM/DD/YYYY format
        phone string Phone number
        gov_id string Empty string if no gov ID number is set, or "*****" if one is

    Get Subscriptions Status

    Request example:

    curl --request GET \
      --url http://api.opskins.com/IUser/GetSubscriptionsStatus/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513692272,
        "response": {
            "subscriptions": [
                {
                    "id": 2,
                    "price": 599,
                    "showcase_count": 1,
                    "bump_count": 3,
                    "com": 5,
                    "name": "Premium Member",
                    "purchasable": true,
                    "active_length": 2592000,
                    "sales_blurb": "<center>\n<p>Sales Commission: 5%% on CS:GO items</p>\n<p>Included Bumps: 3<span id=\"bumps-left\"></span></p>\n<p>Included Featured Sales: 1<span id=\"sc-left\"></span></p>\n<p>%s for 30 days, and included extras</p>\n</center>",
                    "items_per_day": 0,
                    "item_availability_time": 300,
                    "is_dependent": null,
                    "status": null
                },
                {
                    "id": 12,
                    "price": 9950,
                    "showcase_count": 0,
                    "bump_count": 0,
                    "com": 10,
                    "name": "Buyers Club™ Booster Pack 10",
                    "purchasable": true,
                    "active_length": 2592000,
                    "sales_blurb": "<center>\n<p>Booster pack for the Buyers Club&trade; </p>\n<p>Add 10 additional items per day.</p>\n<p>5 minutes exclusivity on Good Deals.</p>\n<p>for %s a month!</p>\n</center>",
                    "items_per_day": 10,
                    "item_availability_time": 0,
                    "is_dependent": 8,
                    "status": {
                        "expire": "1506783544",
                        "auto_renew": "1",
                        "last_renewal": "1504191544",
                        "num_renewals": "3"
                    }
                }
            ]
        }
    }
    

    Get subscriptions statuses

    HTTP Request

    GET https://api.opskins.com/IUser/GetSubscriptionsStatus/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    response array-object Array of objects, where each object contains the current available subscriptions and the user's subscription status
    id int Unique id of subscription type
    price int Cost in USD cents of the subscription
    showcase_count int Amount of items you can Feature on purchase or renewal of subscription
    bump_count int Amount of Bumps you are given on purchase or renewal of subscription
    com int Amount of commision (in percent) you will pay
    name string Name of the subscription
    purchasable bool Is this subscription currently purchasable
    active_length int Amount of time (in seconds) the subscription will be active, in seconds
    sales_blurb string Sales description
    items_per_day int Number of items allowed during Good Deals exclusivity time (see item_availability_time for time length)
    item_availability_time int Amount of time (in seconds) for Good Deals exclusivity
    is_dependent int Int of parent subscription id, false if there are no dependencies
    status object If subscribed returns an object containing subscription details, if not, returns false
        expire int Unix timestamp when subscription expires
        auto_renew bool Is the subscription selected to auto renew?
        last_renewal int Unix timestamp when subscription was last renewed
        num_renewals int Number of subscription renewals

    Get Suggestion Types

    Request example:

    curl --request GET \
      --url http://api.opskins.com/IUser/GetSuggestionTypes/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513692675,
        "response": {
            "types": [
                {
                    "id": 1,
                    "name": "Steam Analyst (Market Value; Usually Higher)"
                },
                {
                    "id": 2,
                    "name": "OPSkins (7-Day Real Average; Usually Lower)"
                }
            ]
        }
    }
    

    Get available price suggestion types for CS:GO

    HTTP Request

    GET https://api.opskins.com/IUser/GetSuggestionTypes/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    types array-object
    id int Price suggestion type code
    name string Display name of price suggestion type

    Get Whitelist Status

    Request example:

    curl --request GET \
      --url http://api.opskins.com/IUser/GetWhitelistStatus/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513692955,
        "response": {
            "is_payment_whitelisted": true,
            "is_bitpay_whitelisted": false
        }
    }
    

    Get payment and bitpay whitelist statuses

    HTTP Request

    GET https://api.opskins.com/IUser/GetWhitelistStatus/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    is_payment_whitelisted bool true if your account is whitelisted for Payments, false if not
    is_bitpay_whitelisted bool true if your account is whitelisted for BitPay, false if not

    Save Trade URL

    Request example:

    curl --request POST \
      --url http://api.opskins.com/IUser/SaveTradeURL/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --header 'Content-Type: application/json; charset=utf-8' \
      --data '{"trade_url":"https://steamcommunity.com/tradeoffer/new/?partner=000000000&token=00000000"}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513692955
    }
    

    Update your account's trade URL.

    HTTP Request

    POST https://api.opskins.com/IUser/SaveTradeURL/v1/

    Input

    Parameter Type Required Description
    trade_url string + Your new trade URL. Must be for the Steam account linked with this OPSkins account, or else will be rejected.

    Output

    Parameter Type Description
    none

    Self Lock Account

    Request example:

    curl --request POST \
      --url http://api.opskins.com/IUser/SelfLockAccount/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --header 'Content-Type: application/json; charset=utf-8' \
      --data '{}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513692955
    }
    

    Issue a self-ban that requires contacting support to unlock.

    HTTP Request

    POST https://api.opskins.com/IUser/SelfLockAccount/v1/

    Input

    Parameter Type Required Description
    none

    Output

    Parameter Type Description
    none

    Toggle Renew Subscription

    Request example:

    curl --request POST \
      --url http://api.opskins.com/IUser/ToggleRenewSubscription/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --header 'Content-Type: application/json; charset=utf-8' \
      --data '{"subscriptionid":2}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513694017,
        "response": {
            "id": 2,
            "expire": 1516278482,
            "auto_renew": false
        }
    }
    

    Toggle auto renew on a subscription

    HTTP Request

    POST https://api.opskins.com/IUser/ToggleRenewSubscription/v1/

    Input

    Parameter Type Required Description
    subscriptionid int + ID of the subscription type

    Output

    Parameter Type Description
    id int ID of the subscription type
    expire int Timestamp of subscription expiration
    auto_renew bool Is the subscription selected to auto renew?

    Update Profile

    Request example:

    curl --request POST \
      --url http://api.opskins.com/IUser/UpdateProfile/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --header 'Content-Type: application/json; charset=utf-8' \
      --data '{"first_name":"Alex","last_name":"Po","email":"new_email@example.com","dob":"1990-01-01","suggestion_type":2,"email_notify":true,"hide_balance":false}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513695176,
        "response": {
            "updated": true,
            "needs_email_verification": true,
            "whitelist_removed": false
        }
    }
    

    Update the user's account details and preferences.

    HTTP Request

    POST https://api.opskins.com/IUser/UpdateProfile/v1/

    Input

    Parameter Type Required Description
    first_name string
    last_name string
    email Email Address (string) If present and not equal to current email, a verification email will be sent which must be clicked before the email changes.
    country string
    region string
    city string
    postal string
    address string
    dob string Birthdate, MM/DD/YYYY
    phone string
    gov_id string
    suggestion_type string User's desired price suggestion type; 1 = Steam Analyst, 2 = OPSkins
    email_notify string Does user want email notifications about items they sold, and promos?
    hide_balance string Does user want to hide their balance in the site's UI?
    not_canadian string User certifies they aren't Canadian?
    sales_list_private string User wants their public sales list to be hidden?
    enable_one_click string User wants to opt-into Buy Now?
    beta_opt_in string User wants to opt-into beta program?
    balance_notify string Balance threshold at which user wants email notification; null to disable
    preferred_currency int Preferred crypt-currency index or null to remove preferred currency (see: ICrypto_GetCurrencies_v1)

    Output

    Parameter Type Description
    updated bool Did any fields change?
    needs_email_verification bool Did the user change their contact email, and if so, does it require verification?
    whitelist_removed bool Did this change result in the user losing their whitelist status?

    Update SMS Phone Number

    Request example:

    curl --request POST \
      --url http://api.opskins.com/IUser/UpdateSMSPhoneNumber/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --header 'Content-Type: application/json; charset=utf-8' \
      --data '{"sms_phone":"+300000000000","phone_login_verification":true}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513695176,
        "response": {
            "sms_phone": "+300000000000",
            "phone_login_verification": true,
            "validation_sms_sent": true
        }
    }
    

    Add, update, or remove SMS verification phone number

    HTTP Request

    POST https://api.opskins.com/IUser/UpdateSMSPhoneNumber/v1/

    Input
    Parameter Type Required Description
    sms_phone string + SMS phone number
    phone_login_verification bool Use phone login verification instead of email?
    Output
    Parameter Type Description
    sms_phone string Phone number used to send verification SMS
    phone_login_verification bool Use phone login verification instead of email?
    validation_sms_sent bool Was the validation SMS sent?

    Verify Phone Code

    Request example:

    curl --request POST \
      --url http://api.opskins.com/IUser/VerifyPhoneCode/v1/ \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      --header 'Content-Type: application/json; charset=utf-8' \
      --data '{"code":"123456"}'
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1513695176
    }
    

    Verify SMS phone number with delivered code

    HTTP Request

    POST https://api.opskins.com/IUser/VerifyPhoneCode/v1/

    Input

    Parameter Type Required Description
    code string + Verification code delivered via SMS

    Output

    Parameter Type Description
    none

    IVault

    Transfer To Vault

    Request example:

    curl --request POST \
      --url 'https://api.opskins.com/IVault/TransferToVault/v1/' \
      --header 'authorization: Basic {{AUTH_HASH}}' \
      -d amount=500
    

    Response returns JSON structured like this:

    {
        "status": 1,
        "time": 1521585751,
        "balance": 97507600,
        "credits": 4841,
        "cryptoBalances": {
            "ETH": "4.948579545454545455",
            "WAX": "100000810.382771640000000000"
        },
        "response": {
            "vault_txn": {
                "id": 17,
                "timestamp": 1521585751,
                "type": 1,
                "initiated_by_staff": false,
                "amount": 500,
                "new_balance": 1500,
                "wallet_txn": {
                    "id": 46248089,
                    "timestamp": 1521585751,
                    "updated_timestamp": null,
                    "type": 20,
                    "type_name": "Vault Transfer",
                    "state": 1,
                    "state_name": "Completed",
                    "currency": 1,
                    "target_item": "17",
                    "amount": -500,
                    "amount_nocashout": 0,
                    "new_balance": 97507596,
                    "new_balance_nocashout": 0,
                    "amount_refunded": 0,
                    "amount_nocashout_refunded": 0,
                    "comment": "Initiated from 127.0.0.1"
                }
            }
        }
    }
    

    Transfer some cashoutable money from your account's USD balance to your account's vault. Your account needs to be pre-setup for vault usage by OPSkins staff.

    You cannot directly withdraw funds in your vault. To access your vault funds, you will need to contact OPSkins staff.

    The top-level balance property will be present in this method's response, containing your up-to-date account balance.

    HTTP Request

    POST https://api.opskins.com/IVault/TransferToVault/v1/

    Input

    Parameter Type Required Description
    amount int + Amount in USD cents that you want to transfer to your vault. You will get an error if this is zero, negative, or greater than your cashoutable USD account balance.

    Output

    Parameter Type Description
    vault_txn object A VaultTransaction object representation
        id int The resulting VaultTransaction ID
        timestamp int The Unix timestamp of when the VaultTransaction was executed
        type int The VaultTransaction type (1 = balance to vault; 2 = vault to balance; 3 = vault deduction)
        initiated_by_staff bool true if this VaultTransaction was initiated by OPSkins staff
        amount int The amount in cents that was moved in this transaction
        new_balance int The new balance in cents of your vault immediately following this transaction
        wallet_txn object/null If there's an associated wallet transaction, this is an object representation of it. Otherwise, it's null
            id int The wallet transaction ID
            timestamp int The Unix timestamp of when the wallet transaction was executed
            updated_timestamp int/null The Unix timestamp of when the wallet transaction was updated, or null if not applicable
            type int The type code for this transaction
            type_name string The localized string for the type
            state int The state code for this transaction
            state_name string The localized string for the state
            currency int The currency code for this transaction
            target_item string/null If applicable, the "target" for this transaction (for vault transactions, it's the VaultTransaction id)
            amount int/string Amount transacted. Negative if a deduction. If fiat, USD cents. If crypto, decimal string.
            amount_nocashout int/string How much of the amount was deducted from/added to your account's uncashoutable balance
            new_balance int/string New balance immediately following the transaction
            new_balance_nocashout int/string Amount of your new balance immediately following the transaction that's not cashoutable
            amount_refunded int/string Amount of the transaction that has been reverted
            amount_nocashout_refunded int/string Amount of the uncashoutable portion of the transaction that has been reverted
            comment string/null Arbitrary comment to go with the transaction