Metadata-Version: 2.4
Name: skinapi-sdk
Version: 0.1.0
Summary: Python client for SkinAPI - CS2/Steam skin prices, float values, inventories and marketplace data.
Project-URL: Homepage, https://skinapi.skinvaults.online
Project-URL: Documentation, https://skinapi.skinvaults.online/docs
Project-URL: Repository, https://github.com/soccervortex/skinapi-py
Author: SkinVaults
License: MIT
License-File: LICENSE
Keywords: api,cs2,csgo,float,inventory,marketplace,skin-prices,skinapi,skins,steam
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Requires-Dist: requests>=2.20
Description-Content-Type: text/markdown

# skinapi (Python)

Python client for [SkinAPI](https://skinapi.skinvaults.online) - real-time **CS2 / Dota 2 / Rust / TF2** skin prices, **float values**, Steam **inventories & profiles**, and multi-marketplace data through one REST API.

- Real-time prices aggregated across marketplaces
- CS2 float values, paint seed and wear
- Steam inventories, profiles and price history
- Automatic retries, timeouts and rate-limit tracking
- Free tier - get a key in ~2 minutes

## Install

```bash
pip install skinapi
```

## Get a key

1. Sign in with Steam: https://skinapi.skinvaults.online/api/auth/steam
2. Create a key in your [dashboard](https://skinapi.skinvaults.online/dashboard)

## Usage

```python
from skinapi import SkinAPI

api = SkinAPI("sk_live_your_key")

# Aggregated price for one item
price = api.item_price("AK-47 | Redline (Field-Tested)", game="cs2", currency="USD")

# Compare across marketplaces
markets = api.markets("AK-47 | Redline (Field-Tested)", game="cs2")

# Float value, paint seed and wear from a Steam inspect link
fl = api.float("STEAM_INSPECT_LINK")

# Steam profile and bans
profile = api.profile("STEAM_ID_OR_VANITY")

# Priced Steam inventory
inv = api.inventory("STEAM_ID", game="cs2", prices=True)

# Many items at once
batch = api.markets_batch(["AK-47 | Redline (Field-Tested)", "AWP | Asiimov (Field-Tested)"])

# Remaining quota after any call
print(api.rate_limit)  # {'remaining_minute': ..., 'remaining_day': ..., 'reset': ...}
```

Errors raise `SkinAPIError` with `.status` and `.code`:

```python
from skinapi import SkinAPIError

try:
    api.item_price("Nonexistent Item")
except SkinAPIError as e:
    print(e.status, e.code, e)
```

## Methods

`item_price`, `item_meta`, `search`, `catalog`, `history`, `markets`, `markets_batch`,
`deals`, `float`, `float_leaderboard`, `profile`, `friendlist`, `inventory`,
`inventory_history`, `inventory_batch`, `tradeup`, `status`.

Authentication uses the `x-api-key` header. Games: `cs2`, `dota2`, `rust`, `tf2`.

## Links

- Docs: https://skinapi.skinvaults.online/docs
- OpenAPI spec: https://skinapi.skinvaults.online/api/v1/openapi.json
- JavaScript client: https://www.npmjs.com/package/skinapi-js
- Discord: https://discord.gg/CqVnGdGc4Q

## License

MIT
