<div align="center">

***Lightweight asynchronous Python client library for accessing Vinted API and scraping item data.***
[](https://pypi.org/project/vinted-api-kit/)
[](https://pypi.org/project/vinted-api-kit/)
[](https://codecov.io/github/vlymar1/vinted-api-kit)
[](https://github.com/vlymar1/vinted-api-kit/blob/main/LICENSE)
</div>
---
## ✨ Features
- 🚀 **Asynchronous** - Built with asyncio for high performance
- 🌍 **Multi-locale** - Supports multiple Vinted domains (FR, DE, US, etc.)
- 🔍 **Item Search** - Search catalog with filters and pagination
- 📦 **Item Details** - Get complete item information
- 🍪 **Cookie Persistence** - Automatic session management
- 🔐 **Proxy Support** - Built-in proxy configuration
- 📊 **Type Hints** - Full typing support for better IDE experience
---
## 📚 Table of Contents
- [Installation](#installation)
- [Quick Start](#quick-start)
- [Configuration](#configuration)
- [Development](#development)
- [Changelog](#changelog)
- [License](#license)
---
## Installation
Install via pip:
```bash
pip install vinted-api-kit
```
Or using poetry:
```bash
poetry add vinted-api-kit
```
---
## Quick Start
```python
import asyncio
from vinted_api_kit import VintedApi, CatalogItem, DetailedItem
async def main():
async with VintedApi(locale="fr") as vinted:
# Get detailed item information
item_detail: DetailedItem = await vinted.item_details(
url="https://www.vinted.fr/items/922704975-adidas-x-15"
)
print(f"📦 {item_detail.title}")
print(f"💰 {item_detail.price}\n")
# Search for items
items: list[CatalogItem] = await vinted.search_items(
url="https://www.vinted.fr/catalog?search_text=adidas",
per_page=5
)
print("🔍 Search results:")
for item in items:
print(f" • {item.title} - {item.price} {item.currency}")
if __name__ == "__main__":
asyncio.run(main())
```
---
## Configuration
### Basic usage
```python
from vinted_api_kit import VintedApi
async with VintedApi(locale="fr") as vinted:
pass
```
### Advanced configuration
```python
from vinted_api_kit import VintedApi
async with VintedApi(
locale="de",
proxies={"http": "http://proxy:8080"},
client_ip="192.168.1.1",
cookies_dir="./cookies",
persist_cookies=True
) as vinted:
pass
```
**Parameters:**
- `locale` - Vinted domain locale (`'fr'`, `'de'`, `'us'`, etc.)
- `proxies` - Proxy configuration (requests format)
- `client_ip` - Override client IP header
- `cookies_dir` - Directory for cookie storage
- `persist_cookies` - Enable/disable cookie persistence
These can be set when creating an instance of the `VintedApi` class.
No additional environment variables are required by default.
---
## 🛠️ Development
### Setup
```shell
git clone https://github.com/vlymar1/vinted-api-kit.git
cd vinted-api-kit
```
*Install dependencies (you'll need to set up your dev environment)*
### Testing
```shell
make test-coverage # run tests with coverage
make test-coverage-view # view coverage report in browser
```
### Code Quality
```shell
make lint-check # check code with ruff and mypy
make lint-reformat # format and fix code with ruff
```
### Cleanup
```shell
make clean # remove cache files and build artifacts
```
**Development Guidelines:**
- Follow PEP8 style guidelines
- Configure ruff in `pyproject.toml` for your preferred rules
- Set up pre-commit hooks for automatic linting
- Contributions welcome! Please open issues or pull requests
---
## Changelog
See [`CHANGELOG.md`](CHANGELOG.md) for the list of notable changes per version.
### How to create and maintain changelog?
- Start a `CHANGELOG.md` file at the root of your repo.
- Follow [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) format for consistent structure.
- For each release version, record:
- Added — new features
- Changed — updates/improvements
- Fixed — bug fixes
- Removed — deprecated or removed features
- Update changelog **before** tagging a new release (e.g., `v1.0.0`).
- Automate changelog generation optionally by tools such as:
- [github-changelog-generator](https://github.com/github-changelog-generator/github-changelog-generator)
- [auto-changelog](https://github.com/CookPete/auto-changelog)
- Conventional commits combined with [semantic-release](https://semantic-release.gitbook.io/semantic-release/)
---
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
---
## Maintainers / Contacts
- GitHub: [https://github.com/vlymar1](https://github.com/vlymar1)
Feel free to open issues or contact for support and collaborations.
Raw data
{
"_id": null,
"home_page": null,
"name": "vinted-api-kit",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "Lymar Volodymyr <volodymyr.lymar1@gmail.com>",
"keywords": "api, async, ecommerce, python, vinted, vinted-api, web-scraping",
"author": null,
"author_email": "Lymar Volodymyr <volodymyr.lymar1@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/dc/97/4ec05860ec0d37cb8379491b92898d8811f524e2eaefb63ac95dab0005c3/vinted_api_kit-0.1.0.post1.tar.gz",
"platform": null,
"description": "<div align=\"center\">\n\n\n\n***Lightweight asynchronous Python client library for accessing Vinted API and scraping item data.***\n\n[](https://pypi.org/project/vinted-api-kit/)\n[](https://pypi.org/project/vinted-api-kit/)\n[](https://codecov.io/github/vlymar1/vinted-api-kit)\n[](https://github.com/vlymar1/vinted-api-kit/blob/main/LICENSE)\n</div>\n\n---\n## \u2728 Features\n\n- \ud83d\ude80 **Asynchronous** - Built with asyncio for high performance\n- \ud83c\udf0d **Multi-locale** - Supports multiple Vinted domains (FR, DE, US, etc.)\n- \ud83d\udd0d **Item Search** - Search catalog with filters and pagination\n- \ud83d\udce6 **Item Details** - Get complete item information\n- \ud83c\udf6a **Cookie Persistence** - Automatic session management\n- \ud83d\udd10 **Proxy Support** - Built-in proxy configuration\n- \ud83d\udcca **Type Hints** - Full typing support for better IDE experience\n\n---\n## \ud83d\udcda Table of Contents\n\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Configuration](#configuration)\n- [Development](#development)\n- [Changelog](#changelog)\n- [License](#license)\n\n---\n## Installation\n\nInstall via pip:\n```bash\npip install vinted-api-kit\n```\nOr using poetry:\n```bash\npoetry add vinted-api-kit\n```\n\n---\n## Quick Start\n\n```python\nimport asyncio\nfrom vinted_api_kit import VintedApi, CatalogItem, DetailedItem\n\nasync def main():\n async with VintedApi(locale=\"fr\") as vinted:\n # Get detailed item information\n item_detail: DetailedItem = await vinted.item_details(\n url=\"https://www.vinted.fr/items/922704975-adidas-x-15\"\n )\n print(f\"\ud83d\udce6 {item_detail.title}\")\n print(f\"\ud83d\udcb0 {item_detail.price}\\n\")\n\n # Search for items\n items: list[CatalogItem] = await vinted.search_items(\n url=\"https://www.vinted.fr/catalog?search_text=adidas\",\n per_page=5\n )\n\n print(\"\ud83d\udd0d Search results:\")\n for item in items:\n print(f\" \u2022 {item.title} - {item.price} {item.currency}\")\n\nif __name__ == \"__main__\":\n asyncio.run(main())\n```\n\n---\n## Configuration\n\n### Basic usage\n```python\nfrom vinted_api_kit import VintedApi\n\nasync with VintedApi(locale=\"fr\") as vinted:\n pass\n```\n\n### Advanced configuration\n```python\nfrom vinted_api_kit import VintedApi\n\nasync with VintedApi(\n locale=\"de\",\n proxies={\"http\": \"http://proxy:8080\"},\n client_ip=\"192.168.1.1\",\n cookies_dir=\"./cookies\",\n persist_cookies=True\n) as vinted:\n pass\n```\n\n**Parameters:**\n- `locale` - Vinted domain locale (`'fr'`, `'de'`, `'us'`, etc.)\n- `proxies` - Proxy configuration (requests format)\n- `client_ip` - Override client IP header\n- `cookies_dir` - Directory for cookie storage\n- `persist_cookies` - Enable/disable cookie persistence\n\nThese can be set when creating an instance of the `VintedApi` class.\n\nNo additional environment variables are required by default.\n\n---\n## \ud83d\udee0\ufe0f Development\n\n### Setup\n```shell\ngit clone https://github.com/vlymar1/vinted-api-kit.git\ncd vinted-api-kit\n```\n*Install dependencies (you'll need to set up your dev environment)*\n### Testing\n\n```shell\nmake test-coverage # run tests with coverage\nmake test-coverage-view # view coverage report in browser\n```\n\n### Code Quality\n\n```shell\nmake lint-check # check code with ruff and mypy\nmake lint-reformat # format and fix code with ruff\n```\n\n### Cleanup\n\n```shell\nmake clean # remove cache files and build artifacts\n```\n\n**Development Guidelines:**\n- Follow PEP8 style guidelines\n- Configure ruff in `pyproject.toml` for your preferred rules\n- Set up pre-commit hooks for automatic linting\n- Contributions welcome! Please open issues or pull requests\n\n---\n## Changelog\n\nSee [`CHANGELOG.md`](CHANGELOG.md) for the list of notable changes per version.\n\n### How to create and maintain changelog?\n\n- Start a `CHANGELOG.md` file at the root of your repo.\n- Follow [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) format for consistent structure.\n- For each release version, record:\n - Added \u2014 new features\n - Changed \u2014 updates/improvements\n - Fixed \u2014 bug fixes\n - Removed \u2014 deprecated or removed features\n- Update changelog **before** tagging a new release (e.g., `v1.0.0`).\n- Automate changelog generation optionally by tools such as:\n - [github-changelog-generator](https://github.com/github-changelog-generator/github-changelog-generator)\n - [auto-changelog](https://github.com/CookPete/auto-changelog)\n - Conventional commits combined with [semantic-release](https://semantic-release.gitbook.io/semantic-release/)\n\n---\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n## Maintainers / Contacts\n\n- GitHub: [https://github.com/vlymar1](https://github.com/vlymar1)\n\nFeel free to open issues or contact for support and collaborations.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Lightweight asynchronous Python client library for accessing Vinted API and scraping item data.",
"version": "0.1.0.post1",
"project_urls": {
"Documentation": "https://github.com/vlymar-dev/vinted-api-kit",
"Homepage": "https://github.com/vlymar-dev/vinted-api-kit",
"Repository": "https://github.com/vlymar-dev/vinted-api-kit"
},
"split_keywords": [
"api",
" async",
" ecommerce",
" python",
" vinted",
" vinted-api",
" web-scraping"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "abf8fb7d97a76e76007dc2259387b3e05860c2bc3f1bc8b657eac2c8d63759f0",
"md5": "2b964ea6d5c84591df1286be61850932",
"sha256": "d68db7398067c418c92921b8057dca4b9f20060ff90a32ab82b80c73ad957eac"
},
"downloads": -1,
"filename": "vinted_api_kit-0.1.0.post1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2b964ea6d5c84591df1286be61850932",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 16358,
"upload_time": "2025-08-07T12:24:34",
"upload_time_iso_8601": "2025-08-07T12:24:34.920201Z",
"url": "https://files.pythonhosted.org/packages/ab/f8/fb7d97a76e76007dc2259387b3e05860c2bc3f1bc8b657eac2c8d63759f0/vinted_api_kit-0.1.0.post1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "dc974ec05860ec0d37cb8379491b92898d8811f524e2eaefb63ac95dab0005c3",
"md5": "99e298dafe79474a1b46d4cf33ff6087",
"sha256": "79787071d32e74d77209ad0b17e779ee1b99708bc3483dbd60376c1255c7fc1f"
},
"downloads": -1,
"filename": "vinted_api_kit-0.1.0.post1.tar.gz",
"has_sig": false,
"md5_digest": "99e298dafe79474a1b46d4cf33ff6087",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 45299,
"upload_time": "2025-08-07T12:24:36",
"upload_time_iso_8601": "2025-08-07T12:24:36.274025Z",
"url": "https://files.pythonhosted.org/packages/dc/97/4ec05860ec0d37cb8379491b92898d8811f524e2eaefb63ac95dab0005c3/vinted_api_kit-0.1.0.post1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-07 12:24:36",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "vlymar-dev",
"github_project": "vinted-api-kit",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "vinted-api-kit"
}