Tony Wang6 Min. LesezeitVinted scrapen 2026 (API & Python)
Vinted 2026 scrapen – Listings, Items und Mitglieder – per DIY, No-Code oder API, inkl. rechtlicher Basics.
Der schnellste Weg, Vinted 2026 zu scrapen, ist der Aufruf einer strukturierten Marktplatz-API, die normalisiertes JSON zurückgibt — Katalogsuche, Item-Detail, Mitgliedsprofile, Marken und Kategorien —, statt Vinteds HTML selbst zu parsen. Du kannst einen DIY-Scraper in Python bauen, aber länderspezifische Domains, Anti-Bot-Abwehr und Preisformatierung machen es aufwendig, ihn dauerhaft am Laufen zu halten.
Vinted bietet keine allgemeine öffentliche API für Lesezugriff durch Dritte. Es betreibt zwar Vinted Pro Integrations, aber das ist eine allowlisted API für Pro-Seller, um ihr eigenes Inventar und ihre Bestellungen zu verwalten — kein Weg für externe Teams, den Katalog zu durchsuchen oder zu erforschen. Eine strukturierte Scraping-API ist der praktische Weg für Wiederverkaufspreis-Recherche, Markenverfolgung und marktübergreifende Vergleiche.
Warum Vinted-Daten scrapen?
- Wiederverkaufspreis-Recherche — nachvollziehen, was bestimmte Marken, Größen und Zustände tatsächlich erzielen versus wofür sie inseriert werden.
- Marken- und Kategorie-Trendverfolgung — beobachten, welche Marken und Kategorien über die Zeit an Listing- und Favoriten-Volumen gewinnen.
- Länderübergreifende Marktrecherche — Vinted betreibt separate Locale-Domains (vinted.fr, vinted.de, vinted.co.uk, vinted.it und weitere), sodass dieselbe Marke je nach Markt unterschiedlich bepreist sein kann.
- Seller-Monitoring — die Listings, Bewertungen und das Follower-Wachstum eines bestimmten Closets im Blick behalten.
- KI- und Datenpipelines — normalisierte Secondhand-Fashion-Listings in Pricing-Modelle, Sourcing-Tools oder Arbitrage-Recherche einspeisen.
Ist es legal, Vinted zu scrapen?
Vinteds Nutzungsbedingungen schränken automatisierten Zugriff auf die Seite ein, sodass Scraping eine Vertragsfrage mit Vinted ist, nicht automatisch eine strafrechtliche. In den USA haben Gerichte wiederholt entschieden, dass das Scrapen öffentlich zugänglicher Seiten nicht gegen den Computer Fraud and Abuse Act verstößt, selbst wenn die Nutzungsbedingungen einer Seite es verbieten (siehe hiQ Labs v. LinkedIn, unten zitiert) — aber ein Verstoß gegen die Nutzungsbedingungen kann trotzdem zu einer Account- oder IP-Sperre führen, und EU-Nutzer fallen zusätzlich unter die DSGVO, sobald personenbezogene Daten (wie Name oder Standort eines Mitglieds) betroffen sind.
Praktisch bedeutet das:
- Erfasse nur öffentliche Katalog-, Item-, Marken-, Kategorie- und Mitgliedsseiten — keine login-geschützten Daten.
- Halte dich an robots.txt und Rate-Limits; Vinteds robots-Datei sperrt explizit KI-Trainings-Crawler (
ai-train=no), erlaubt aber die Suchindexierung. - Vinted betreibt länderspezifische Domains — prüfe, ob dein Anwendungsfall Einwilligungs- oder Offenlegungspflichten berührt, die je nach Rechtsraum variieren.
- Verwende Listing-Fotos oder -Beschreibungen nicht über das hinaus, was dein Anwendungsfall und das Urheberrecht erlauben; Preise, Marken und Zustände sind Fakten, aber Artikelfotos und -texte sind der Inhalt des Sellers.
Option 1: DIY in Python (und warum das scheitert)
Der naive Ansatz lädt eine Katalog-Suchseite und parst die Item-Karten:
import csv, requests
from bs4 import BeautifulSoup
resp = requests.get(
"https://www.vinted.com/catalog",
params={"search_text": "leather jacket"},
headers={"User-Agent": "Mozilla/5.0", "Accept-Language": "en-US,en;q=0.9"},
)
soup = BeautifulSoup(resp.text, "html.parser")
rows = []
for card in soup.select("[data-testid='grid-item']"):
title = card.select_one("[data-testid='item-title']")
price = card.select_one("[data-testid='item-price']")
rows.append({"title": title.get_text(strip=True) if title else None,
"price": price.get_text(strip=True) if price else None})
with open("vinted.csv", "w", newline="") as f:
w = csv.DictWriter(f, fieldnames=["title", "price"]); w.writeheader(); w.writerows(rows)
# ...then keep these selectors alive, handle the SPA's client-rendered content, and paginate
Es funktioniert einmal, dann beginnt die Wartungsarbeit:
- Client-seitiges Rendering. Vinteds Katalog- und Item-Seiten hydrieren per JavaScript, sodass ein einfaches
requests.get()oft nur eine leere Hülle liefert — du brauchst einen Headless-Browser, um an das echte DOM zu kommen. - Anti-Bot-Abwehr. Rechenzentrums-IPs werden blockiert oder gedrosselt, also brauchst du rotierende Residential-Proxys und realistische Header.
- Länderspezifische Domains und Währungen. vinted.com, vinted.fr, vinted.de, vinted.co.uk und weitere Locale-Seiten nutzen unterschiedliche Währungen und Layouts für denselben zugrunde liegenden Katalog.
- Preisfelder. Der angezeigte Preis ist der Artikelpreis; beim Checkout kommt eine separate "Käuferschutz"-Gebühr hinzu — "den Preis" zu parsen bedeutet, das richtige Feld für deinen Anwendungsfall auszuwählen.
- Selektor-Verschleiß. Vinted überarbeitet sein Grid und seine Item-Seiten regelmäßig, wodurch handgeschriebene CSS-Selektoren ohne Vorwarnung brechen.
Option 2: No-Code- und Fertiglösungen
Browser-Erweiterungen und Point-and-Click-Scraper können eine Seite von Suchergebnissen exportieren, aber Wiederverkaufspreis- und Markentrend-Recherche bedeutet, dieselben Suchen nach Zeitplan erneut auszuführen und den Verlauf über Länder hinweg zu speichern. Das ist ein wiederkehrender Pipeline-Job, für den eine API, die du aus einem Skript oder Cronjob heraus aufrufst, besser geeignet ist als ein manuelles Export-Tool.
Option 3: Eine strukturierte Vinted-API
Crawloras Vinted API kapselt Request-Handling, Rendering, Proxys und Parsing hinter dokumentierten Endpoints für Katalogsuche, Item-Detail, Mitgliedsprofile, Marken und Kategorien.
curl "https://api.crawlora.net/api/v1/vinted/catalog?search_text=jacket&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"
import requests
resp = requests.get(
"https://api.crawlora.net/api/v1/vinted/catalog",
headers={"x-api-key": "YOUR_API_KEY"},
params={"search_text": "jacket", "page": 1},
)
for item in resp.json()["data"]["items"]:
print(item["title"], item["price_raw"], item["brand"])
Eine Antwort ist normalisiertes JSON (die genauen Felder findest du in den docs):
{
"code": 200,
"msg": "OK",
"data": {
"search_text": "jacket",
"page": 1,
"source_url": "https://www.vinted.com/catalog?search_text=jacket",
"items": [
{
"id": "9595406652",
"title": "Vintage leather Cabelas Women's jacket",
"url": "https://www.vinted.com/items/9595406652-vintage-leather-cabelas-womens-jacket",
"brand": "Cabela's",
"size": "L / US 12-14",
"condition": "Good",
"price_raw": "$20.00",
"total_price_raw": "$21.70",
"favourite_count": 9,
"image_url": "https://images1.vinted.net/t/01_00ebe_Runxp7FBSGM86vRdXFhYhM4A/310x430/3e52418b.webp"
}
]
}
}
Beachte price_raw (Artikelpreis) versus total_price_raw (Artikelpreis plus Käuferschutz) — wähle das Feld, das dein Anwendungsfall tatsächlich braucht. Aus einem Suchergebnis heraus kannst du Item-Detail, ein Mitgliedsprofil oder nach Marke und Kategorie browsen:
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/vinted"
item = requests.get(f"{base}/item", headers=h, params={"id": "9595406652"}).json()["data"]
member = requests.get(f"{base}/member", headers=h, params={"id": "3159465141"}).json()["data"]
brand_items = requests.get(f"{base}/brand", headers=h, params={"id": "386688", "price_from": "10", "price_to": "50"}).json()["data"]
categories = requests.get(f"{base}/categories", headers=h).json()["data"]["categories"]
catalog, brand und category akzeptieren alle price_from, price_to, order und page, sodass du eine Suche, die Listings einer Marke oder einen Kategorie-Browse auf dieselbe Weise filtern und paginieren kannst.
Was du sammeln kannst
- Katalog-Suchergebnisse: Titel, Marke, Größe, Zustand, Preis und Gesamtpreis, Favoriten-Anzahl und Bild
- Item-Detail: Beschreibung, Material, Farbe, Kategorien und Fotos für ein bestimmtes Listing
- Mitgliedsprofile: Username, Standort, Bewertung und Follower-/Following-Zahlen
- Marken- und Kategorie-Browsing, jeweils mit denselben Preis- und Paginierungsfiltern wie die Katalogsuche
- Die vollständige Markenliste und der Kategoriebaum, um deine eigene Taxonomie aufzubauen
Grenzen
- Keine Read-API für Dritte. Vinted Pro Integrations existiert für allowlisted Pro-Seller, die ihr eigenes Inventar verwalten — es ist keine Recherche- oder Bulk-Read-API, sodass voller Katalogzugriff weiterhin Scraping bedeutet.
- Locale-Fragmentierung. Preise und Währung sind pro Länder-Domain; Märkte zu vergleichen bedeutet, jede Locale einzeln abzufragen und die Währung selbst zu normalisieren.
- Preis-Mehrdeutigkeit. Artikelpreis und Käuferschutz-Gesamtpreis sind separate Felder — entscheide, welches deine Analyse braucht, bevor du aggregierst.
- Anti-Bot und Rendering. Client-seitiges Rendering plus IP-basierte Blockaden machen einfache HTTP-Requests unzuverlässig; eine strukturierte API übernimmt Header, Rendering und Retries hinter einem Key.
- Medien sind urheberrechtlich geschützt. Preise, Marken und Zustände sind Fakten, die du sammeln kannst; Listing-Fotos und -Beschreibungen unterliegen dem Urheberrecht — veröffentliche sie nicht über das hinaus, was dein Anwendungsfall und das Recht erlauben.
Wo das eingesetzt wird
- Wiederverkaufs- und Arbitrage-Recherche, die Listing-Preis mit typischem Verkaufspreis nach Marke und Kategorie vergleicht
- Secondhand-Fashion-Marktberichte, segmentiert nach Land oder Locale-Domain
- Seller- und Closet-Monitoring für Wettbewerbsrecherche
- Enrichment-Pipelines, die Marken- und Kategoriekataloge in Pricing- oder Sourcing-Tools einspeisen
Sources
Leg los mit dem Sammeln
Probier es zuerst kostenlos aus: jage eine beliebige öffentliche URL durch den Free Web Scraper, oder prüfe mit dem Anti-Bot Checker, ob eine Seite Bots blockiert — ohne Anmeldung.
Vinted-Daten passen gut zu anderen Wiederverkaufs-Marktplatz-APIs für plattformübergreifende Preisvergleiche — siehe how to scrape StockX für Sneaker- und Streetwear-Wiederverkauf, how to scrape eBay für allgemeine Secondhand- und Auktions-Listings, und how to scrape Etsy für handgefertigte und Vintage-Waren. Starte, indem du den Endpoint im Playground testest, das Request- und Response-Schema in den API docs liest und die Credit-Kosten auf der pricing page prüfst. Nicht sicher, ob das für deinen Anwendungsfall legal ist? Lies zuerst Is web scraping legal in 2026?.
Häufig gestellte Fragen
Hat Vinted eine offizielle öffentliche API?
Nicht für Lesezugriff durch Dritte. Vinted betreibt Vinted Pro Integrations, eine allowlisted API für Pro-Seller, um ihre eigenen Listings, Bestellungen und Webhooks zu verwalten — sie ist nicht für externe Recherche oder Bulk-Katalogabfragen offen, sodass das Abrufen von Suchergebnissen, Markenlistings oder Mitgliedsprofilen weiterhin bedeutet, öffentliche Seiten zu scrapen oder eine strukturierte Scraping-API zu nutzen.
Ist es legal, Vinted zu scrapen?
Das Scrapen öffentlich zugänglicher Seiten wird generell anders behandelt als unbefugter Zugriff auf private Accounts, und US-Gerichte haben entschieden, dass es nicht gegen den CFAA verstößt, selbst wenn die Nutzungsbedingungen einer Seite es verbieten. Vinteds Nutzungsbedingungen schränken automatisierten Zugriff jedoch ein, sodass ein Verstoß eine Vertragsfrage ist, die zu einer Account- oder IP-Sperre führen kann. Erfasse nur öffentliche Daten, halte dich an robots.txt, und betrachte dies als informativ, nicht als Rechtsberatung.
Warum zeigt Vinted zwei Preise an?
Der Artikelpreis (price_raw) ist das, was der Verkäufer inseriert hat; der Gesamtpreis (total_price_raw) addiert Vinteds Käuferschutzgebühr, die beim Checkout berechnet wird. Entscheide, welches Feld deine Analyse braucht — Artikelpreis für die Recherche zur vom Seller festgelegten Preisgestaltung, Gesamtpreis für das, was ein Käufer tatsächlich zahlt.
Kann ich Seller- oder Mitgliedsdaten aus einem Vinted-Item abrufen?
Item-Detail-Antworten schließen Seller-Informationen bewusst aus. Um das öffentliche Profil eines Sellers zu bekommen, rufst du den Member-Endpoint mit der numerischen Mitglieds-ID des Sellers auf, der Username, groben Standort, Bewertung und Follower-Zahlen zurückgibt — Aktivitätsdaten wie Zuletzt-gesehen-Zeitstempel werden bewusst weggelassen.
Wie durchsuche ich Vinted-Listings nach Marke oder Kategorie statt nach Stichwort?
Nutze den Brand-Endpoint mit einer numerischen Marken-ID (aus dem Marken-Link eines Items oder der Markenliste) oder den Category-Endpoint mit einer numerischen Kategorie-ID (aus dem Kategoriebaum). Beide unterstützen dieselben Filter price_from, price_to, order und page wie die Stichwort-Katalogsuche.
Unterscheiden sich Vinted-Preise je nach Land?
Ja. Vinted betreibt separate Locale-Domains — vinted.fr, vinted.de, vinted.co.uk, vinted.it und weitere — jede mit eigener Währung und eigenem Listing-Pool für denselben zugrunde liegenden Katalog, sodass marktübergreifende Preisrecherche bedeutet, jede Locale abzufragen und die Währung selbst zu normalisieren.
Was bringt einen DIY-Vinted-Scraper zum Scheitern?
Client-seitiges Rendering (Katalog- und Item-Seiten hydrieren per JavaScript, sodass einfache HTTP-Requests oft eine leere Hülle zurückgeben), Anti-Bot-IP-Blockaden, länderspezifische Domain- und Währungsunterschiede sowie CSS-Selektoren, die brechen, sobald Vinted sein Grid oder seine Item-Seiten überarbeitet.