Tony Wang5 Min. LesezeitTrustMRR scrapen 2026 (API & Python)
TrustMRRs verifizierte Startup-Umsätze, Leaderboard und Marketplace-Daten 2026 scrapen — DIY Python, No-Code oder eine strukturierte API.
TrustMRR ist der Ort, an dem die Indie-SaaS- und Bootstrapped-Startup-Community ihre Umsatzzahlen postet (und verkauft) — ein öffentliches Leaderboard MRR-verifizierter Unternehmen, plus ein Marketplace mit Startups, die tatsächlich zum Verkauf stehen. Der schnellste Weg, diese Daten programmatisch zu bekommen, ist ein strukturierter API-Call, der sauberes JSON zurückgibt. Du kannst es auch in Python selbst bauen, aber das eigentliche Hindernis ist nicht Anti-Bot — es ist, dass die Umsatzdaten der Seite innerhalb von Next.js' React-Server-Component-Streaming-Format leben, nicht auf einer Seite, die du einfach mit einem CSS-Selektor parsen kannst.
Warum TrustMRR scrapen
- Wettbewerbs-Benchmarking — sieh, was Indie-SaaS-Produkte in deiner Kategorie tatsächlich verdienen (verifiziert, nicht selbst gemeldet) und wie schnell sie wachsen.
- Akquisitions- und Deal-Sourcing — der Marketplace zeigt Startups zum Verkauf mit Preisvorstellung, MRR und einem aktualitätsbewussten Deal-Score, noch bevor du einzelne Listings manuell durchsuchst.
- Marktforschung zur Bootstrapped-SaaS-Ökonomie — Kategorie-Aufschlüsselungen und Leaderboard-Bewegungen sind ein Live-Signal dafür, welche Produktkategorien wachsen.
- Alternative Daten für Investoren und Researcher — verifizierter Kleinunternehmensumsatz in dieser Granularität ist außerhalb einer solchen Plattform selten.
Ist es legal, TrustMRR zu scrapen?
TrustMRRs robots.txt erlaubt Crawling weitgehend (User-agent: * / Allow: /) und veröffentlicht eine eigene startup-sitemap.xml speziell zum Auffinden jedes Startup-Profils — ein starkes Signal, dass das öffentliche Verzeichnis zum Crawlen gedacht ist. In den Nutzungsbedingungen ist zum Zeitpunkt dieses Schreibens keine eigene Anti-Scraping-Klausel aufgetaucht, aber Bedingungen ändern sich, und dieser Guide behandelt nur die öffentlichen Teaser-Felder, die ein ausgeloggter Besucher ohnehin sieht. Prüf TrustMRRs aktuelle Bedingungen selbst, bevor du im großen Maßstab scrapst, und sieh dir Is web scraping legal in 2026? für den allgemeinen Rahmen an. Keine Rechtsberatung.
Option 1: DIY in Python (und warum es kaputtgeht)
Slug-Discovery ist wirklich einfach — die Sitemap ist echt, öffentlich, und entspricht genau dem, was du willst:
import requests
import xml.etree.ElementTree as ET
resp = requests.get("https://trustmrr.com/startup-sitemap.xml", headers={"User-Agent": "Mozilla/5.0"})
root = ET.fromstring(resp.content)
ns = {"sm": "http://www.sitemaps.org/schemas/sitemap/0.9"}
slugs = [url.find("sm:loc", ns).text.rsplit("/", 1)[-1] for url in root.findall("sm:url", ns)]
print(len(slugs), "startups found, e.g.", slugs[:3])
Auch das Abrufen einer einzelnen Profilseite funktioniert mit einem einfachen requests.get() — TrustMRR sperrt das initiale HTML nicht hinter JavaScript-Ausführung:
page = requests.get("https://trustmrr.com/startup/gumroad", headers={"User-Agent": "Mozilla/5.0"})
Hier wird es fragil: Der <title> der Seite und die Meta-Description tragen die Headline-Umsatzzahl als reinen Text ("Gumroad - $7,143,938 last 30 days | TrustMRR"), die du per Regex für eine einzelne Zahl rausziehen kannst. Aber die strukturierten Felder, die dieser Guide eigentlich will — MRR, Wachstumsrate, Preisvorstellung, Kategorie, Tech-Stack — stehen nicht in einem sauberen <script type="application/json">-Block. Sie werden innerhalb von self.__next_f.push(...)-Aufrufen gestreamt, dem React-Server-Component-Flight-Format von Next.js' App Router. Es ist technisch parsebar (die Werte stecken als escapte Strings drin), aber das Format ist undokumentiert, an den exakten Next.js-Build gebunden und bietet keine Stabilitätsgarantie für Feldnamen über ein Redeploy hinweg. Ein Regex, der heute funktioniert, kann nach TrustMRRs nächstem Deploy still und leise nichts mehr zurückgeben — und du bekommst keinen Fehler, nur leere Felder.
Option 2: No-Code / vorgefertigte Tools
Ein visueller Scraper (Octoparse-artiges Point-and-Click, oder eine Spreadsheet-Import-Browser-Extension) kann die Leaderboard-Tabelle für einen einmaligen Export einigermaßen gut ziehen, da sie eine echte HTML-Tabelle ist, sobald sich die Seite gesetzt hat. Für eine wiederkehrende Pipeline wird es schnell unangenehm: Jedes Startup-Detailfeld muss weiterhin innerhalb derselben RSC-Payload-Struktur gefunden werden, mit der auch DIY-Parsing klarkommen muss, und die meisten No-Code-Tools haben keinen eingebauten RSC-Flight-Parser.
Option 3: Eine strukturierte TrustMRR-API
Crawloras TrustMRR-Endpoints geben dieselben Daten als normalisiertes JSON zurück — kein Sitemap-Crawling, kein RSC-Payload-Parsing, ein Auth-Header.
Umsatz-Leaderboard, gerankt nach MRR (oder last_30_days_revenue, all_time_revenue, growth, traffic, revenue_per_visitor):
curl "https://api.crawlora.net/api/v1/trustmrr/leaderboard?metric=mrr" \
-H "x-api-key: YOUR_API_KEY"
import requests
resp = requests.get(
"https://api.crawlora.net/api/v1/trustmrr/leaderboard",
params={"metric": "mrr"},
headers={"x-api-key": "YOUR_API_KEY"},
)
data = resp.json()["data"]
Eine echte Response (auf einen Eintrag gekürzt):
{
"code": 200,
"msg": "OK",
"data": {
"metric": "mrr",
"count": 100,
"entries": [
{
"rank": 1,
"name": "Stan",
"slug": "stan",
"url": "https://trustmrr.com/startup/stan",
"description": "Stan enables people to make living and work for themselves.",
"current_mrr": 3569654.22,
"current_total_revenue": 76627685.07,
"current_last_30_days_revenue": 3569654.22,
"on_sale": false,
"is_merchant_of_record": false,
"x_handle": "vitaliidodonov"
}
]
}
}
Jedes Startup aufzählen (das strukturierte Äquivalent zum obigen Sitemap-Crawl — paginiert, kein XML-Parsing):
curl "https://api.crawlora.net/api/v1/trustmrr/startups?page=1&page_size=100" \
-H "x-api-key: YOUR_API_KEY"
Dann hol dir das vollständige verifizierte Profil für einen beliebigen Slug — Umsatz- und MRR-Historie, Wachstum, Preisvorstellung und Marketplace-Status, Tech-Stack, Marketing-Kanäle und TrustMRRs KI-generierte Zusammenfassung:
curl "https://api.crawlora.net/api/v1/trustmrr/startup/gumroad" \
-H "x-api-key: YOUR_API_KEY"
Und der Marketplace-Snapshot — die 25 zuletzt gelisteten Startups zum Verkauf plus die aktuell 25 besten Deals nach TrustMRRs aktualitätsbewusstem Deal-Score:
curl "https://api.crawlora.net/api/v1/trustmrr/marketplace" \
-H "x-api-key: YOUR_API_KEY"
Was du sammeln kannst
- Leaderboard: Rang, Name, Slug, Beschreibung, aktuelle MRR, Umsatz der letzten 30 Tage, All-Time-Umsatz, ob es zum Verkauf steht, Merchant-of-Record-Status, X-Handle.
- Startup-Profile: Kategorie, Preisvorstellung (+ Historie), Branding, Tech-Stack, Marketing-Kanäle, Ahrefs Domain Rating, KI-generierte Business-Zusammenfassung.
- Kategorien: Slug, Label, Beschreibung und Keywords für jede Startup-Vertikale, die TrustMRR trackt.
- Marketplace: Aktive Subscriptions, Preisvorstellung, Kategorie, Land, Kundenzahl und Deal-Score für aktuell zum Verkauf stehende Listings.
Sources
Wo das reinpasst
Sieh dir die TrustMRR-Plattformseite für die vollständige Endpoint-Liste an. Für angrenzende Startup- und Deal-Daten deckt how to scrape PitchBook VC/PE-taugliche Firmen- und Investorenprofile ab, und how to scrape Product Hunt zeigt, wo dieselben Indie-Produkte launchen, bevor sie auf einem Umsatz-Leaderboard auftauchen. Sieh dir den breiteren Use Case Alternative Data an, um zu sehen, wie verifizierter Kleinunternehmensumsatz in eine Research-Pipeline passt.
Leg los mit dem Sammeln
Teste die /trustmrr/*-Endpoints im Playground, bevor du irgendeinen Code schreibst, oder spring direkt zu den Docs. Sieh dir auch how to scrape PitchBook und how to scrape Product Hunt für den Rest des Startup-Daten-Bilds an.
Teil unserer how-to-scrape-Guide-Serie — jede Plattform, die wir abdecken, in einem Index.
Häufig gestellte Fragen
Hat TrustMRR eine öffentliche API?
Keine selbstständig nutzbare für externe Entwickler. TrustMRRs eigene Seite läuft über eine interne API; es gibt keine veröffentlichte, dokumentierte öffentliche API für die Nutzung von außen — deshalb ist der Sitemap-plus-Seiten-Scrape (DIY) oder eine strukturierte Drittanbieter-API der praktikable Weg.
Ist es legal, TrustMRR zu scrapen?
TrustMRRs robots.txt erlaubt Crawling weitgehend und veröffentlicht eine eigene Startup-Sitemap, und in den Nutzungsbedingungen ist zum Zeitpunkt dieses Schreibens kein spezielles Scraping-Verbot aufgetaucht — prüf aber immer selbst die aktuellen Bedingungen, und bleib bei den öffentlichen Teaser-Daten, die ein ausgeloggter Besucher ohnehin sieht. Keine Rechtsberatung.
Warum bricht ein einfacher requests.get()-DIY-Scraper bei TrustMRR ab?
Er bricht nicht komplett ab — das initiale HTML lädt tatsächlich ohne JavaScript-Ausführung —, aber die strukturierten Felder (MRR, Wachstum, Preisvorstellung, Tech-Stack) werden innerhalb des React-Server-Component-Flight-Payloads von Next.js' App Router gestreamt (self.__next_f.push(...)-Aufrufe), nicht als sauberer JSON-Block. Dieses Format ist undokumentiert und an den exakten Next.js-Build gebunden, sodass ein funktionierender Parser nach einem Redeploy still und leise anfangen kann, leere Felder zurückzugeben.
Wie werden TrustMRRs Umsatzzahlen verifiziert?
Über verbundene Zahlungsanbieter (Stripe und Ähnliches), nicht durch selbst gemeldete Zahlen — diese Verifizierung bewerben sowohl TrustMRRs Leaderboard- als auch Marketplace-Seiten, und das ist der Hauptgrund, warum der Datensatz vertrauenswürdiger ist als eine typische selbst eingereichte Indie-Hacker-Umsatzliste.
Kann ich TrustMRRs Akquisitions-/Marketplace-Listings über die API bekommen?
Ja — ein eigener Marketplace-Endpoint gibt die 25 zuletzt gelisteten Startups zum Verkauf plus die aktuell 25 besten Deals nach TrustMRRs eigenem aktualitätsbewusstem Deal-Score zurück, jeweils mit Preisvorstellung, Kategorie, aktiven Subscriptions und Kundenzahl.
Was ist der schnellste Weg, jedes Startup auf TrustMRR aufzuzählen?
Ein paginierter strukturierter Endpoint, der Slug, URL und letztes Änderungsdatum direkt als JSON zurückgibt, ist schneller zu integrieren als das eigenständige Parsen der Sitemap-XML — und es ist derselbe zugrunde liegende Discovery-Mechanismus, nur ohne den XML-Parsing-Schritt.