Tony Wang6 Min. LesezeitSo scrapst du Pinterest 2026 (API & Python)
Pinterest 2026 scrapen — DIY mit Python, No-Code-Tools oder eine strukturierte API für Pins, Boards und Suche, plus was die offizielle API abdeckt.
Der schnellste Weg, Pinterest 2026 zu scrapen, ist der Aufruf einer strukturierten Pinterest-API, die normalisiertes JSON zurückgibt — Pins, Boards, Profile und Suchergebnisse — statt einen Headless-Browser an Pinterests Bot-Allowlist und Infinite Scroll vorbeizusteuern. Pinterest hat zwar eine eigene v5-API, die ist aber für die Verwaltung der eigenen Inhalte eines verbundenen Business-Accounts gebaut, nicht für das Lesen beliebiger öffentlicher Pins und Boards. Dieser Guide behandelt alle drei Ansätze, was jeder zurückgibt, wo jeder scheitert, und die rechtlichen Grundlagen.
Warum Pinterest-Daten scrapen?
- Trend- und Ideenrecherche — verfolge, was in Wohnen, Mode, Food oder DIY im Kommen ist, bevor es anderswo seinen Höhepunkt erreicht.
- Datensätze für visuelle Inhalte — baue Bild-/Beschreibungspaare für Computer-Vision- oder Empfehlungsmodelle aus öffentlichen Pins.
- Wettbewerber-Board-Monitoring — sieh, welche Boards und Pins eine Wettbewerbermarke kuratiert und wie sich ihre Follower entwickeln.
- AI-Vision- und RAG-Pipelines — speise strukturierte Pin-Metadaten (Titel, Beschreibung, dominante Farbe, Quelldomain) in Agenten ein, die über visuelle Trends nachdenken.
- Affiliate- und Produktrecherche — finde Pins, die auf Produktseiten verlinken, und verfolge, welche Domains am häufigsten weitergepinnt werden.
Is it legal to scrape Pinterest?
Option 1: DIY in Python (and why it breaks)
Pinterest rendert Pin- und Board-Seiten mit Daten, die in einem Script-Tag (__PWS_DATA__ oder ähnlich) eingebettet sind, sodass ein naiver Scraper HTML parst, statt einen dokumentierten Endpoint aufzurufen:
import requests
from bs4 import BeautifulSoup
import json, re
resp = requests.get(
"https://www.pinterest.com/patrontequila/el-cafecito/",
headers={"User-Agent": "Mozilla/5.0"},
)
soup = BeautifulSoup(resp.text, "html.parser")
script = soup.find("script", {"id": "__PWS_DATA__"})
data = json.loads(script.string) if script else None
Im Demo funktioniert es, danach bricht es:
- Bot-Allowlisting — Pinterests
robots.txtblockiert jeden User-Agent, der nicht auf der veröffentlichten Allowlist steht, und nicht genehmigter automatisierter Traffic wird unabhängig davon, was die Datei technisch erlaubt, schnell auffällig. - Infinite Scroll statt Pagination — Boards, Suchergebnisse und Profil-Pin-Grids laden über scroll-getriggerte XHR-Aufrufe mit Bookmark-Tokens, sodass ein einfacher HTTP-Client nur die erste Charge sieht.
- Fragiles eingebettetes JSON — die Form der Script-Tag-Payload verschiebt sich zwischen Seitenvorlagen-Versionen, sodass Selektoren und JSON-Pfade bei Redesigns brechen.
- Bildlastige Seiten — Pinterest ist dicht gepackt mit
srcset-Varianten und Lazy-Loading-Bildern; die richtige Größe (736x,originalsusw.) aus rohem HTML herauszupicken, ist fehleranfällig.
Option 2: No-code / ready-made tools
Browser-Erweiterungen zum Pin-Speichern und visuelle Scraper-Builder können ein Board oder Suchergebnis für eine einmalige Recherche als CSV exportieren, stoßen bei echtem Volumen aber auf dieselben Allowlist- und Scroll-Pagination-Probleme und liefern keine vorhersehbaren Felder für eine Pipeline.
Option 3: A structured Pinterest API
Für wiederholbare Workflows über öffentliche Daten gibt eine Pinterest scraping API normalisiertes JSON zurück, ohne dass ein Browser laufen muss. Öffentliche Pins nach Keyword durchsuchen:
curl "https://api.crawlora.net/api/v1/pinterest/search?query=minimalist+living+room" \
-H "x-api-key: $CRAWLORA_API_KEY"
import requests
resp = requests.get(
"https://api.crawlora.net/api/v1/pinterest/search",
headers={"x-api-key": "YOUR_API_KEY"},
params={"query": "minimalist living room"},
)
for pin in resp.json()["data"]["pins"]:
print(pin.get("title"), pin.get("link"))
Eine Suchantwort ist normalisiertes JSON (das vollständige Schema steht in den docs):
{
"code": 200,
"msg": "OK",
"data": {
"query": "minimalist living room",
"pins": [
{
"id": "21673641953485811",
"url": "https://www.pinterest.com/pin/21673641953485811/",
"title": "Minimalist Luxury Living Spaces That Look Clean But Still Cozy",
"description": "Minimalist Luxury Living Spaces can feel cozy when the room uses texture, lighting, and practical furniture instead of extra clutter.",
"image_url": "https://i.pinimg.com/736x/da/b7/2a/dab72a3f9f2b9f18274752facb0349ef.jpg",
"domain": "impactdriverdrill.com",
"link": "https://impactdriverdrill.com/minimalist-luxury-living-spaces/",
"board_name": "Løkken hus",
"pinner_username": "annlizeth9550"
}
]
}
}
Ein öffentliches Profil, dessen Pins, dessen Boards und die Pins eines einzelnen Boards abrufen:
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/pinterest"
user = requests.get(f"{base}/user/patrontequila", headers=h).json()["data"]
pins = requests.get(f"{base}/user/patrontequila/pins", headers=h).json()["data"]["pins"]
boards = requests.get(f"{base}/user/patrontequila/boards", headers=h).json()["data"]["boards"]
board = requests.get(f"{base}/board/patrontequila/el-cafecito", headers=h).json()["data"]
Das url-Feld eines Boards (aus dem Boards-Aufruf) liefert den slug für /board/{username}/{slug} — man braucht also erst die Boards-Liste, bevor man ein einzelnes Board abrufen kann.
Einen einzelnen Pin per ID abrufen oder Pinterests "Ideas"-Taxonomie durchsuchen und die trendenden Pins unter einer Kategorie abrufen:
pin = requests.get(f"{base}/pin/52846995624279072", headers=h).json()["data"]
categories = requests.get(f"{base}/categories", headers=h).json()["data"]["categories"]
animals_id = next(c["id"] for c in categories if c["slug"] == "animals")
idea = requests.get(f"{base}/ideas/{animals_id}", headers=h).json()["data"]
What you can collect
- Suche — öffentliche Pins nach Keyword: Titel, Beschreibung, Bild-URL, dominante Farbe, Quelldomain und -link, Board-Name, Pinner-Username.
- Pin — vollständiges Pin-Detail per ID: das oben Genannte plus Kommentarzahl, Repin-Zahl und Erstellungsdatum.
- User — öffentliche Profilfelder per Username: Anzeigename, Bio, Website, Follower-/Following-Zahlen, Pin-/Board-Zahlen, Avatar.
- User-Pins / -Boards — die Pins oder Boards eines öffentlichen Profils, jedes Board mit eigenen Pin-/Follower-Zahlen und Datenschutzeinstellung.
- Board — die Metadaten eines bestimmten Boards plus eine Seite seiner Pins, adressiert über
username/slug. - Categories & Ideas — Pinterests oberste "Ideas"-Taxonomie (10 Kategorien) und die trendenden öffentlichen Pins unter jeder davon.
Limitations
- Keine offene Public-Search-API von Pinterest selbst. Die offizielle v5-API ist OAuth-beschränkt auf die eigenen Pins, Boards und Werbedaten eines verbundenen Accounts — sie ersetzt nicht das Lesen beliebiger öffentlicher Inhalte, wofür die oben genannten Such-, Board- und Profil-Endpoints gebaut sind.
- Bot-Allowlist. Pinterests
robots.txtverbietet standardmäßig nicht gelistete Crawler; nicht genehmigter automatisierter Traffic riskiert eine Blockade, unabhängig davon, ob die Daten öffentlich sind. - Infinite Scroll und Cursor. Boards, Profile und Suchergebnisse paginieren über scroll-getriggerte Aufrufe statt einfacher Seitenzahlen — eine gemanagte API übernimmt das, statt dass man es selbst nachbaut.
- Der Umweg über Username → Slug. Um ein bestimmtes Board abzurufen, braucht man dessen
slug, der aus der Boards-Liste des Nutzers stammt, nicht nur aus dem Board-Namen. - Identitäten sind personenbezogene Daten. Usernames, Anzeigenamen und Bios sind nach DSGVO/CCPA personenbezogen — sammle nur öffentliche, nicht personenbezogene Felder mit einer Rechtsgrundlage.
Where this gets used
- Trendrecherche — verfolge aufkommende Wohn-, Mode- und Food-Ästhetiken, bevor sie in der Suchnachfrage sichtbar werden.
- Wettbewerber- und Markenmonitoring — beobachte die öffentlichen Boards und Pin-Aktivitäten eines Wettbewerbers über die Zeit.
- Content- und Datensatz-Pipelines — speise öffentliche Pin-Bilder und -Metadaten in Vision-Modelle oder Empfehlungssysteme ein.
Sources
Start collecting
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.
Teste den Such-Endpoint im Playground, sieh dir das Schema in den API docs an und wirf einen Blick auf die pricing. Siehe auch how to scrape Instagram und how to scrape TikTok für den Rest des visuellen Social-Stacks, sowie is web scraping legal.
Häufig gestellte Fragen
Hat Pinterest eine offizielle öffentliche API?
Ja, Pinterest betreibt eine offizielle v5-REST-API, die ist aber OAuth-basiert und auf die eigenen Pins, Boards und Werbedaten eines verbundenen Business-Accounts beschränkt — sie bietet keinen offenen Lesezugriff auf beliebige öffentliche Pins, Boards oder Suchergebnisse ohne Zustimmung dieses Accounts.
Ist es legal, öffentliche Pinterest-Pins und -Boards zu scrapen?
Das Scrapen streng öffentlicher, nicht personenbezogener Daten fällt in eine risikoärmere Kategorie, und hiQ v. LinkedIn stellte fest, dass der Zugriff auf öffentliche Daten in den USA keinen CFAA-Verstoß darstellt. Pinterests Developer Guidelines verbieten jedoch automatisiertes Scraping, außer wenn ausdrücklich erlaubt, und die robots.txt verbietet standardmäßig nicht gelistete Bots. Das ist keine Rechtsberatung — prüfe Pinterests Nutzungsbedingungen selbst.
Warum bricht ein DIY-Pinterest-Scraper?
Pinterest setzt in der robots.txt eine Bot-Allowlist durch, die nicht gelistete Crawler blockiert, paginiert Boards und Suchergebnisse über scroll-getriggerte Aufrufe statt einfacher Seitenzahlen, und bettet Seitendaten in Script-Tags ein, deren Form sich zwischen Vorlagenversionen ändert.
Wie bekomme ich die Pins eines Boards, wenn ich nur einen Username habe?
Rufe zuerst den Boards-Endpoint des Nutzers auf, um den Slug jedes Boards aus dessen url-Feld zu erhalten, und übergib dieses Username/Slug-Paar dann an den Board-Endpoint, der die Metadaten des Boards plus eine Seite seiner Pins zurückgibt.
Welche Felder liefert eine Pinterest-Pin-API?
Typische Felder sind die Pin-ID und -URL, Titel, Beschreibung, Bild-URL, dominante Farbe, Quelldomain und ausgehender Link, Board-Name und Pinner-Username; eine Einzel-Pin-Abfrage ergänzt Kommentarzahl, Repin-Zahl und Erstellungsdatum.
Kann ich mit dem Pinterest-Categories-Endpoint trendende Pins finden?
Ja. Der Categories-Endpoint gibt Pinterests oberste Ideas-Taxonomie zurück (rund 10 Kategorien), und die ID jeder Kategorie kann an den Ideas-Endpoint übergeben werden, um die öffentlichen Pins dieser Kategorie zu erhalten.
Was sollte ich beim Sammeln von Pinterest-Daten vermeiden?
Vermeide alles, was hinter einem Login liegt, behandle Usernames und Bios als personenbezogene Daten nach DSGVO/CCPA, umgehe nicht Pinterests Bot-Allowlist, und bleib bei öffentlichen, nicht personenbezogenen Feldern mit einer Rechtsgrundlage für die Sammlung.