Skip to main content

Vinted Scraper

Package Version Python Version codecov Codacy Badge License FOSSA Status

A very simple Python package for scraping Vinted. Supports both synchronous and asynchronous operations with automatic cookie management and typed responses.

📖 Full Documentation | 💡 Examples | 📝 Changelog

Installation

Install using pip:

pip install vinted_scraper

Functions

The package offers the following methods:

search - Gets all items from the listing page based on search parameters.

Parameters

name type data type description
params optional Dict Query parameters like the pagination and so on

Returns: List[VintedItem] (VintedScraper) or Dict[str, Any] (VintedWrapper)

item - Reads item metadata (title, description, url, image) from the public item page.

The JSON item endpoint is blocked by the anti-bot protection and returns 403 (see #59), so the data is read from the public item page instead. Only the fields exposed by the page's OpenGraph <head> tags are populated, and only the <head> is streamed (the full page body is not downloaded).

Parameters

name type data type description
id required str The unique identifier of the item to retrieve
fields optional List[str] OG fields to extract (defaults to all available)

Returns: Optional[VintedItem] (VintedScraper) or Optional[Dict[str, Any]] (VintedWrapper) — the metadata (e.g. result["description"]), or None if the page has no description.

curl - Perform an HTTP GET request to the given relative endpoint.

Parameters

name type data type description
endpoint required str The relative endpoint to make the request to
params optional Dict Query parameters like the pagination and so on
api_endpoint optional bool Route to the api. host (default: False)

Returns: VintedJsonModel (VintedScraper) or Dict[str, Any] (VintedWrapper)

Usage

from vinted_scraper import VintedScraper

scraper = VintedScraper("https://www.vinted.com")
items = scraper.search({"search_text": "board games"})

for item in items:
    print(f"{item.title} - {item.price}")

The base URL may be passed with or without the www. prefix (e.g. https://vinted.com or https://www.vinted.com); it is normalized internally.

from vinted_scraper import VintedScraper

scraper = VintedScraper("https://www.vinted.com")

Check out the examples for more!

Debugging

To enable debug logging for troubleshooting:

import logging

# Configure logging BEFORE importing vinted_scraper
logging.basicConfig(
    level=logging.DEBUG,
    format="%(levelname)s:%(name)s:%(message)s"
)

from vinted_scraper import VintedScraper

scraper = VintedScraper("https://www.vinted.com")
scraper.search({"search_text": "board games"})
Debug output (click to expand)
DEBUG:vinted_scraper._vinted_wrapper:Initializing VintedScraper(baseurl=https://www.vinted.com, user_agent=None, session=auto-fetch, config=None)
DEBUG:vinted_scraper._vinted_wrapper:Refreshing session cookie
DEBUG:vinted_scraper._vinted_wrapper:Cookie fetch attempt 1/3
DEBUG:vinted_scraper._vinted_wrapper:Session fetched successfully: VintedSession(cookies={'access_token_web': 'eyJraWQiOiJFNTdZ...'}, csrf_token=None, anon_id='...')...
DEBUG:vinted_scraper._vinted_wrapper:Calling search() with params: {'search_text': 'board games'}
DEBUG:vinted_scraper._vinted_wrapper:API Request: GET /svc-catalogue/items with params {'search_text': 'board games'}
DEBUG:vinted_scraper._vinted_wrapper:API Response: /svc-catalogue/items - Status: 200

Common Issues

  • 403 Forbidden Error: The Vinted JSON item endpoint frequently returns 403 errors (#59). Because of this, item() reads the item metadata from the public item page (a document navigation that is not blocked the same way) instead of the JSON API, so only the fields exposed by the page (title, description, url, image) are available.

  • Cookie Fetch Failed: If cookies cannot be fetched:

    • Verify the base URL is correct
    • Check your internet connection, there is an anti-bot protection, so requests from datacenter IPs/VPNs may be rejected. Try manually getting the cookie by running the following:
      curl -v -c - -L "<base-url>" | grep access_token_web
    

License

This project is licensed under the MIT License - see the LICENSE file for details.

FOSSA Status

Metadata

Release files for vinted-scraper 5.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vinted-scraper 5.0.3
File Size Uploaded
vinted_scraper-5.0.3.tar.gz 22.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vinted-scraper 5.0.3
File Interpreter ABI Platform
vinted_scraper-5.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 61.0 kB

Release files / vinted_scraper-5.0.3.tar.gz

Download URL vinted_scraper-5.0.3.tar.gz
Size 22.9 kB
Tags Source
SHA-256 checksum
How to use checksums
4ef1e4c1faa2c558325733e790c25a253d2f8ad2329148b7c2478e778cdd18d3
BLAKE2b-256 checksum
How to use checksums
c3810766ac6fa1c7cb228cf71e3c1834d3bb6031eb8ba99b6dd090ce4ed30046
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.

Transparency log

Release files / vinted_scraper-5.0.3-py3-none-any.whl

Download URL vinted_scraper-5.0.3-py3-none-any.whl
Size 38.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bfdf907caf32effb66d0f6c54350c1c16757c49c34a522487bed25f9f7c9c8d4
BLAKE2b-256 checksum
How to use checksums
314d14c5a6104d60ffe23759fe95338b4a87e184fc0f950e3fee5ddb9a47d9ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page