vinted-api-kit


Namevinted-api-kit JSON
Version 0.1.0.post1 PyPI version JSON
download
home_pageNone
SummaryLightweight asynchronous Python client library for accessing Vinted API and scraping item data.
upload_time2025-08-07 12:24:36
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT
keywords api async ecommerce python vinted vinted-api web-scraping
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">

![Vinted Api Kit logo](https://raw.githubusercontent.com/vlymar-dev/vinted-api-kit/main/assets/logo.png)

***Lightweight asynchronous Python client library for accessing Vinted API and scraping item data.***

[![Package Version](https://img.shields.io/pypi/v/vinted-api-kit.svg)](https://pypi.org/project/vinted-api-kit/)
[![Python Version](https://img.shields.io/pypi/pyversions/vinted-api-kit.svg)](https://pypi.org/project/vinted-api-kit/)
[![codecov](https://codecov.io/github/vlymar1/vinted-api-kit/graph/badge.svg?token=SLCFGVYDOM)](https://codecov.io/github/vlymar1/vinted-api-kit)
[![License](https://img.shields.io/pypi/l/vinted-api-kit.svg)](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![Vinted Api Kit logo](https://raw.githubusercontent.com/vlymar-dev/vinted-api-kit/main/assets/logo.png)\n\n***Lightweight asynchronous Python client library for accessing Vinted API and scraping item data.***\n\n[![Package Version](https://img.shields.io/pypi/v/vinted-api-kit.svg)](https://pypi.org/project/vinted-api-kit/)\n[![Python Version](https://img.shields.io/pypi/pyversions/vinted-api-kit.svg)](https://pypi.org/project/vinted-api-kit/)\n[![codecov](https://codecov.io/github/vlymar1/vinted-api-kit/graph/badge.svg?token=SLCFGVYDOM)](https://codecov.io/github/vlymar1/vinted-api-kit)\n[![License](https://img.shields.io/pypi/l/vinted-api-kit.svg)](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"
}
        
Elapsed time: 1.30972s