A Python wrapper around the Skinport API.
Project description
skinport
An unofficial Python wrapper around the Skinport API.
Installation
skinport is available on PyPI:
$ pip install skinport
To install from source use:
$ pip install -e .
Usage
import skinport
# Public endpoints work without credentials
client = skinport.Client()
items = client.items(app_id=730, currency="EUR")
client.sales.history(market_hash_name="AK-47 | Redline (Field-Tested)")
client.sales.out_of_stock()
# Authenticated endpoints require credentials
client = skinport.Client(
client_id="<skinport_client_id>",
client_secret="<skinport_client_secret>",
)
transactions = client.account.transactions()
The client can also be used as a context manager:
with skinport.Client() as client:
items = client.items()
history = client.sales.history(market_hash_name="AK-47 | Redline (Field-Tested)")
Rate Limiting
Client-side rate limiting is enabled by default (8 requests per 5 minutes per endpoint group), matching the Skinport API limits. The client will automatically sleep when the limit is reached. To disable:
client = skinport.Client(rate_limit=False)
WebSocket Sale Feed
from skinport import SaleFeed
feed = SaleFeed(app_id=730, currency="EUR", locale="en")
@feed.on_event
def handle(data):
print(data["eventType"], data["sales"])
feed.connect() # blocks until disconnected
Documentation
Documentation for the skinport library is available here.
To learn more about the Skinport API, check out the
official documentation.
Skinport API Key
You will need an API key to Skinport to access authenticated endpoints. To obtain a key, follow these steps:
- Register for and verify an account.
- Log into your account.
- Scroll down to the Skinport API section.
- Click on
Generate API keyand follow the instructions.
License
Copyright 2022-2026 Martin Simon
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Buy me a coffee?
If you feel like buying me a coffee (or a beer?), donations are welcome:
BTC : bc1qq04jnuqqavpccfptmddqjkg7cuspy3new4sxq9
DOGE: DRBkryyau5CMxpBzVmrBAjK6dVdMZSBsuS
ETH : 0x2238A11856428b72E80D70Be8666729497059d95
LTC : MQwXsBrArLRHQzwQZAjJPNrxGS1uNDDKX6
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file skinport-0.2.0.tar.gz.
File metadata
- Download URL: skinport-0.2.0.tar.gz
- Upload date:
- Size: 23.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f1c4f61f577dabd94059c740261df1744a00d16a6e813040047abd92875659a
|
|
| MD5 |
7fca6e6bc03712d2505a0a05bfc8b0ba
|
|
| BLAKE2b-256 |
349fb9fb5338d762721e9db3cda42cc56701efa963051c4e27570c9852ea6215
|
Provenance
The following attestation bundles were made for skinport-0.2.0.tar.gz:
Publisher:
release.yml on barnumbirr/skinport
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
skinport-0.2.0.tar.gz -
Subject digest:
4f1c4f61f577dabd94059c740261df1744a00d16a6e813040047abd92875659a - Sigstore transparency entry: 1084631952
- Sigstore integration time:
-
Permalink:
barnumbirr/skinport@53b9f7ad8dff5f314be840a54dc4c0b776083081 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/barnumbirr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@53b9f7ad8dff5f314be840a54dc4c0b776083081 -
Trigger Event:
push
-
Statement type:
File details
Details for the file skinport-0.2.0-py3-none-any.whl.
File metadata
- Download URL: skinport-0.2.0-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd23ac2fe4086750cd0732eb8eb6b1a4816977fbc0897b622a463737643ab0ad
|
|
| MD5 |
a70f13bb6f7bffddc6f26452cd375472
|
|
| BLAKE2b-256 |
243c486a3740bf70a44f5f6df780c37a0fe4bac7c27e81fe1810bf4bf7189e8a
|
Provenance
The following attestation bundles were made for skinport-0.2.0-py3-none-any.whl:
Publisher:
release.yml on barnumbirr/skinport
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
skinport-0.2.0-py3-none-any.whl -
Subject digest:
fd23ac2fe4086750cd0732eb8eb6b1a4816977fbc0897b622a463737643ab0ad - Sigstore transparency entry: 1084632000
- Sigstore integration time:
-
Permalink:
barnumbirr/skinport@53b9f7ad8dff5f314be840a54dc4c0b776083081 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/barnumbirr
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@53b9f7ad8dff5f314be840a54dc4c0b776083081 -
Trigger Event:
push
-
Statement type: