API-Dokumentation fur Expired Domains

Eine REST API mit JSON-Antworten fur Domain-Intelligence: SEO-Metriken (TF, CF, DA, DR, Age, Backlinks, Traffic usw.), Wayback-Machine-Verlauf, 400.000+ neue Domains pro Tag, 30+ Domain-Datenquellen und 90+ Filter fur prazise Suche. Enthalt Live-Auktionen, Expired Domains, vollstandige Reports, Favoriten, Verfugbarkeitsprufungen, Karma Metric und Profildaten. Pro-Bearer-Key, 60 Anfragen pro Minute.

Kostenlos ausprobieren!
Verwenden Sie Bonuskredite!

Public API von Karma.Domains bietet programmgesteuerten Zugriff auf Domain-Reports: auctions, expired, backorder und buy-now. Alle Antworten sind JSON uber HTTPS. Basis-URL: https://api.karma.domains, Routen-Prafix: /v1.

Karma.Domains ist eine Domain-Intelligence-Plattform fur Investoren, SEO-Teams und Automatisierungs-Pipelines:

  • 400.000+ neue Domains taglich in Discovery- und Monitoring-Workflows (insgesamt 7.000.000+ Domains)
  • 30+ Domain-Datenquellen insgesamt, darunter 27+ Quellen fur auction/expired/backorder/buy-now (GoDaddy, NameJet, DropCatch, Dynadot, GNAME, Namecheap usw.)
  • 90+ Filter fur prazise Suche uber Domain-Qualitat, SEO, Content-Historie und Auktionssignale (TF, CF, DA, DR, Age, Backlinks, Traffic, Keywords, Anchor Text usw.)
  • TLD- und ccTLD-Abdeckung (zum Beispiel .com, .net, .org, .biz, .info, .at, .be, .ca, .cc, .cl, .co, .co.nz)
  • SEO- und Autoritatsdaten von fuhrenden Anbietern: Ahrefs, Majestic, Moz, SimilarWeb
  • Historische Inhalte und Anderungssignale uber die Wayback Machine

Request- und Response-Schemas (Filterfelder, Report-Struktur, Sortier-Enums) findest du in den interaktiven Docs: Swagger UI oder ReDoc.
Diese Seite ist eine Integrations-Ubersicht: Authentifizierung, Limits, Endpoint-Liste, typische Workflows und Beispiele.

Einfuhrung

Die Public API ist fur Skripte, interne Dashboards, CRM-Systeme und jede Automatisierung gedacht, die dieselben Daten wie die Karma.Domains-Web-App benotigt.

  • Format: JSON
  • API-Version: 1.0.0
  • Datenbanken: auctions, expired, backorder, buynow; Suche uber alle gleichzeitig — POST /v1/reports/search (entspricht der Tabelle "all databases" in der UI)
  • Felddokumentation: nur in OpenAPI
  • Verfugbar nur im Tarif Pro und hoher

Authentifizierung

Jede Anfrage muss den Header enthalten:

Authorization: Bearer YOUR_API_KEY

So bekommst du einen API-Key

  1. Pro-Tarif (ohne Pro ist die API nicht verfugbar).
  2. Profile → Settings — im Bereich API key den Schlussel erstellen oder zurucksetzen.

Derselbe Key wird fur den MCP-Server (KI-Assistenten) verwendet. Das Request-Limit wird zwischen REST und MCP geteilt.

Typische Antworten bei falschem Key

Code Reason
401 Fehlender Header, unguItiger Key oder Tippfehler in Bearer
403 Key ist gultig, aber das Konto hat kein aktives Pro (Pro plan required for API access)

Sende immer Accept: application/json.

Rate Limiting

  • 60 Anfragen pro Minute pro API-Key
  • Fenster: 60 Sekunden
  • Der Zahler ist geteilt uber alle Public-API-Endpoints und MCP

Erfolgreiche Antworten enthalten Header:

Header Description
X-RateLimit-Limit Limit (60)
X-RateLimit-Remaining Verbleibende Anfragen im aktuellen Fenster
X-RateLimit-Reset Unix-Timestamp, wann das Fenster resetet

Wenn das Limit uberschritten wird: 429 Too Many Requests und Header Retry-After (Sekunden bis zum Retry).

Tipps: nutze page_size bis 50 fur Listen; POST /search nicht haufiger pollen als notig — Antworten sind gecacht (siehe „Caching“).

Daily row quota

  • 50,000 list rows per day per account (API key / signed-in user)
  • Reset: UTC midnight
  • Counter is shared across Public API list endpoints, MCP list tools, web UI tables, and CSV export

Each list request charges page_size rows (the requested page size, not total_count).

Successful list responses include headers:

Header Description
X-Quota-Limit Daily limit (50000)
X-Quota-Remaining Rows left today
X-Quota-Reset Unix timestamp when the daily quota resets

When the quota is exceeded: 429 Too Many Requests and Retry-After (seconds until reset).

Pagination depth: for a single search/filter, page × page_size must not exceed 5000 (e.g. with page_size=50, max page is 100). This limits deep scraping of one result set; the daily quota caps total volume across all queries.

Endpoint-Ubersicht

Vollstandige Query-/Body-Parameter in OpenAPI.

Method Path Purpose
POST /v1/reports/search Reports nach ReportListFilterSchema-Body suchen, Pagination, Sorting
GET /v1/reports/favorites Favoritenliste des aktuellen Users
POST /v1/reports/favorites Report zu Favoriten hinzufugen
DELETE /v1/reports/favorites/{report_type}/{report_id} Aus Favoriten entfernen
GET /v1/reports/by-domain/{domain} Report-IDs nach exaktem Domainnamen finden
GET /v1/reports/{report_type}/{report_id} Vollstandiger Report nach Datenbanktyp und Report-ID
GET /v1/reports/check/expired/{report_id} Prufen, ob die Domain fur einen expired-Report gedroppt ist
GET /v1/user Benutzerprofil (PublicUserProfileSchema)
GET /v1/domains/checker/expiry/{domain} Live-Check: ob die Domain registrierbar ist
GET /v1/domains/checker/karma_metric/{domain} Live-Berechnung von Karma Metric uber die WayBack Machine

Referenz der Modellparameter

Unten ist eine praxisnahe Parameter-Ubersicht fur die 3 zentralen OpenAPI-Modelle, die den GroIteil der API-Funktionalitat definieren.

ReportListFilterSchema (Request-Body fur POST /v1/reports/search)

Verwendete Wert-Semantik in diesem Schema:

  • null oder ausgelassenes Feld = kein Filter.
  • String-Query-Felder unterstutzen , fur AND und | fur OR, wo dokumentiert.
  • Datumsbereiche sind Arrays mit 2 Strings: [from, to].
  • Die meisten Score-Bereiche nutzen inklusive *_min / *_max.
Parameter Type Description
domain string | null Domain-Substring-Filter, case-insensitive. , = AND (alle Begriffe mussen passen), | = OR (beliebiger Begriff). Max-Lange: 350.
tlds string | null TLD-Liste, durch Komma oder Leerzeichen getrennt (z. B. .com .net .org). Max-Lange: 350.
domain_type string[] | null Zulassige Werte: auctions, backorder, buynow, expired. OR-Logik zwischen gewahlten Werten.
favorites boolean | null true = nur Favoriten, false = Favoriten ausschlieIen. Erfordert authentifizierten Benutzerkontext.
categories string[] | null OR-Logik nach Kategorie, unterstutzt Category / Subcategory-Format, case-insensitive Substring-Matching.
languages string Sprach-Query mit , (AND) / | (OR), case-insensitive Substring-Matching. Max-Lange: 350.
keywords string | null Suche im Wayback-Content (title, description, h1-h6 usw.). , = AND, | = OR. Max-Lange: 350.
website_ids string[] IDs wie GA/Metrika, um Domains mit gleichem Inhaber zu finden.
domain_length_min / domain_length_max integer | null Grenzen der Domain-Lange (dokumentiert als 1..30).
domain_numbers / domain_hyphens boolean Ziffern und Bindestriche in Domainnamen verlangen/ausschlieIen.
report_added_time string[2] | null Datumsbereich: ["YYYY-MM-DD","YYYY-MM-DD"]. Backend setzt Start-/Ende-des-Tages-Grenzen automatisch.
karmascore_min / karmascore_max integer | null KarmaScore-Grenzen, 0..100.
karmametric_min / karmametric_max integer | null Karma-Metric-Grenzen, 0..100.
brandscore_min / brandscore_max integer | null Brandscore-Grenzen, 0..100.
openpagerank_min / openpagerank_max integer | null Open-PageRank-Grenzen, dokumentiert als 0..10.
ahrefs_dr_min / ahrefs_dr_max number | null Ahrefs-DR-Grenzen, 0..100.
ahrefs_ur_min / ahrefs_ur_max number | null Ahrefs-UR-Grenzen, 0..100.
ahrefs_ar_min / ahrefs_ar_max integer | null Ahrefs-Rank-Grenzen (>= 0).
majestic_tf_min / majestic_tf_max integer | null Majestic-TF-Grenzen, 0..100.
majestic_cf_min / majestic_cf_max integer | null Majestic-CF-Grenzen, 0..100.
majestic_bl_min / majestic_bl_max integer Grenzen fur Majestic-Backlinks.
majestic_rd_min / majestic_rd_max integer Grenzen fur Majestic-Referring-Domains.
majestic_topics / majestic_lang string[] / string Topic- und Anchor-Language-Filter.
moz_da_min / moz_da_max integer | null Moz-DA-Grenzen, 0..100.
moz_ss_min / moz_ss_max integer | null Moz-Spam-Score-Grenzen, 0..100.
moz_bl_min / moz_bl_max integer Grenzen fur Moz-Backlinks.
moz_rd_min / moz_rd_max integer Grenzen fur Moz-Referring-Domains.
moz_bl_url / moz_bl_anchor string Moz-Backlink-URL-/Anchor-Phrase-Filter.
sw_visits_min / sw_visits_max integer SimilarWeb-Visits-Grenzen.
sw_last_traffic_date string[2] | null SimilarWeb-Monatsbereich: ["YYYY-MM","YYYY-MM"].
sw_country_filters object[] Country-Share-Filter (country, optional share_min).
sw_ts_direct_min...sw_ts_social_max number | null SimilarWeb-Channel-Share-Grenzen der Traffic-Quellen, 0..100.
wa_age_min / wa_age_max integer | null Wayback-Domain-Alter in Jahren.
wa_first_snap / wa_last_snap string[2] | null Datumsbereich: ["YYYY-MM-DD","YYYY-MM-DD"] fur erste/letzte Snapshot-Fenster.
wa_changes_min/max, wa_redirects_min/max, wa_parkings_min/max integer Wayback-History-Counter.
wa_hieroglyphs, wa_redirects, wa_error403 boolean Wayback-Content-Quality-Flags.
wa_lang_filters object[] Wayback-Sprachfilter (language, optional ratio_min).
wa_server_code, wa_server_code_ratio_min/max integer | null / number | null Wayback-Server-Code-Filter (z. B. 200, 301, 302, 403, 404) + Ratio-Grenzen 0..100.
ke_etv_min/max, ke_total_min/max integer Keywords-Everywhere-Traffic-Value-/Keyword-Grenzen.
ke_keyword string Keywords-Everywhere-Phrase-Filter.
google_has_index, google_has_mentions boolean | null true/false/unset-Semantik fur erforderlichen Index oder Mentions in Google-SERP.
google_title_index/mentions, google_description_index/mentions string SERP-Snippet-Title-/Description-Phrase-Filter.
trustpilot_rating_min/max, trustpilot_reviews_count_min/max number | null / integer | null Trustpilot-Rating-Grenzen (0..5) und Review-Count-Grenzen.
trustpilot_category string Trustpilot-Kategorie-Phrase-Filter.
auction_source string[] | null Auktionsquellnamen (case-insensitive) oder zusammengesetzter Wert `source
auction_end_time, auction_added_time string[2] | null Datumsbereich: ["YYYY-MM-DD","YYYY-MM-DD"].
auction_price_min/max number Auktionspreis-Grenzen.
auction_bids_min/max integer Auktionsgebote-Anzahl-Grenzen.
combine_seo object | null Cross-Vendor-CombineSEOFilter: authority/backlinks/refdomains/traffic/keywords/backlink-url/anchors, mit vendor-spezifischer OR-Logik pro Zeile und AND zwischen Zeilen.

ReportListResponseSchema (Response fur POST /search und GET /favorites)

Parameter Type Description
report_list ReportItem[] Paginierte Zeilen fur Tabellenansicht und Shortlist-Erstellung.
total_count integer Gesamtzahl passender Datensatze fur den aktuellen Filter.

report_list[]-Felder auf Zeilenebene (aus ReportItem) enthalten:

Parameter Type Description
report_id string Stabiler Report-Identifier (fur Vollreport und Favoriten).
report_type string Einer von auctions, expired, backorder, buynow.
domain, domain_tld string Domainname und TLD.
added_at, updated_at integer Zeitstempel.
processed, demo, is_expired boolean Status-Flags in UI/API-Workflows.
karmascore, karmametric, brandscore integer Kernmetriken fur Qualitat/Brandability.
ahrefs_dr, ahrefs_ur number Ahrefs-Zusammenfassungsmetriken.
majestic_tf/cf/bl/rd, moz_da/ss/bl/rd integer Majestic- und Moz-Zusammenfassungsmetriken.
ke_etv, ke_total integer Keywords-Everywhere-Zusammenfassungswerte.
sw_last_traffic, sw_country_share, sw_sources integer/object SimilarWeb-Traffic-Zusammenfassungen.
wa_age, wa_last_snap, wa_changes, wa_langs, wa_server_code integer/array Wayback-Zusammenfassungssignale.
google_index, trustpilot_rating, trustpilot_reviews_count boolean/number/integer Google-/Trustpilot-Zusammenfassungsfelder.
auctions array/object Auktions-Eintrage-Zusammenfassung, falls verfugbar.

ReportFullResponseSchema (Response fur GET /v1/reports/{report_type}/{report_id})

Parameter Type Description
report_id, report_type, domain, domain_tld string Kern-Identitatsfelder.
domain_length, domain_numbers, domain_hyphens integer/boolean Domainstruktur-Attribute.
favorite, demo, processed, is_expired boolean Report-Status und benutzerbezogene Flags.
added_at, updated_at, created_at, checked_at, expire_checked_at integer Lifecycle-Zeitstempel.
providers_status object Pro-Provider-Statusmap der Verarbeitung (String-Werte).
web_archive object Wayback-Machine-Daten — siehe Aufschlüsselung unten.
metrics DomainMetrics Verschachtelte SEO-/Traffic-/Reputationsmetriken — siehe unten.
auctions object | null Auktionslose, gruppiert nach end_time — siehe unten.

metricsDomainMetrics

Die meisten Provider-Blocke konnen Objekt mit Daten, false (nicht geladen) oder null sein. categories und blacklists konnen bei leerem Inhalt auch [] sein.

Parameter Type Description
openpagerank number | integer | boolean | null Open-PageRank-Score (typischerweise 0..10), wenn verfugbar.
categories CategoryData[] | boolean | null Content-Kategorien von Klassifikations-Providern.
blacklists BlacklistsData[] | boolean | null Treffer in Security-/Reputations-Blacklists.
ahrefs AhrefsData | boolean | null Ahrefs-Domainmetriken.
majestic MajesticData | boolean | null Majestic Trust/Citation Flow und Backlink-Profil.
moz MozData | boolean | null Moz Authority, Spam Score und Backlink-Details.
keywordseverywhere KeywordseverywhereData | boolean | null Keywords-Everywhere-Traffic-/Keyword-Schatzungen.
similarweb SimilarWebData | boolean | null SimilarWeb Visits, Sources und Geo-Anteile.
brandscore BrandscoreData | boolean | null Brandability-Score-Komponenten.
karma_metric KarmaMetricData | boolean | null Karma-Metric-Score aus Wayback-Historie.
trustpilot TrustpilotData | boolean | null Trustpilot-Rating und Review-Statistiken.
google GoogleData | boolean | null Google-Index und Mention-SERP-Snippets.
ai_summary string | null KI-generierter Domain-Zusammenfassungstext.

AhrefsData

Parameter Type Description
domain_rating number | null Ahrefs DR.
url_rating number | integer | null Ahrefs UR.
ahrefs_rank integer | null Ahrefs Rank (niedriger = starker).

MajesticData

Parameter Type Description
tf, cf integer | null Trust Flow / Citation Flow (0..100).
backlinks, refdomains integer | null Backlinks- und Referring-Domains-Anzahl.
primary_topic string | null Hauptthemen-Kategorie.
topics array | null Themenverteilungsliste.
anchor_lang array | null Sprachverteilung der Anchor-Texte.
indexed_urls, referring_ips, referring_subnets integer | null Index- und Netzwerkdiversitats-Counter.

MozData

Parameter Type Description
moz_domain_authority integer | null Moz DA.
moz_spam_score integer | null Moz Spam Score.
page_rank, moz_link_propensity number | integer | null Legacy-Rank und Link-Propensity.
moz_*_to_subdomain fields integer | null Moz-Linkgraph-Counter (pages/domains, follow/nofollow/redirect/deleted).
moz_da_history_values string | null Serialisierte DA-Historienwerte.
backlinks MozBacklink[] | null Backlink-Zeilen (domain_source, url_source, domain_target, url_target, anchor_text, harmonic_centrality, last_found_date).

KeywordseverywhereData

Parameter Type Description
etv integer | null Geschatzter Traffic Value.
total_keywords integer | null Gesamtzahl verfolgter Keywords.
data KeywordItem[] | null Keyword-Zeilen (position, etv, keyword).

SimilarWebData

Parameter Type Description
estimated_monthly_visits object | null Monat → Visits-Map.
traffic_sources TrafficSources | null Kanalanteile: Social, Paid Referrals, Mail, Referrals, Search, Direct (0..1-Verhaltnisse).
top_country_shares CountryShare[] | null Geo-Verteilung (Country, CountryCode, Value).
engagments Engagements | null BounceRate, PagePerVisit, Visits, TimeOnSite, Month, Year.
category string | null SimilarWeb-Site-Kategorie.

BrandscoreData

Parameter Type Description
pronounceability, memorability, uniqueness, appeal, brandscore integer Brandability-Komponenten und Endscore.

KarmaMetricData

Parameter Type Description
karma_metric integer Endscore, 0..100.
components KarmaMetricComponents A_mass, A_cont, A_stab, A_trend (jeweils 0..100).
period string | null Zeitraum im Format YYYY-MM (oder null, wenn nicht verfugbar).

TrustpilotData

Parameter Type Description
rating number | null Bewertung, typischerweise 0..5.
reviews_count integer | null Anzahl Reviews.
category string | null Trustpilot-Business-Kategorie.

GoogleData

Parameter Type Description
google_index GoogleItem[] | null Indexierte Seiten fur site:domain (rank, url, title, description).
google_mentions GoogleItem[] | null Mention-Ergebnisse fur Domain-Suchen in Anfuhrungszeichen.

CategoryData / BlacklistsData

Model Key fields
CategoryData categories[], vendor, info_url
BlacklistsData vendor, info_url, optional info

web_archive (Wayback-Machine-Payload)

Objekt mit drei Hauptblocken: info, ts_summary, history. In Vollreport-Antworten wird history newest-first zuruckgegeben.

Parameter Type Description
info object | null Zusammenfassung der Archivabdeckung fur die Domain.
ts_summary object | null Aggregierte KarmaScore-/Wayback-Signale fur Tabellenfilter.
history array Snapshot-Timeline (ein Objekt pro Wayback-Capture).

web_archive.info

Parameter Type Description
snap_counter integer Gesamtzahl gezahlter Wayback-Snapshots.
years_counter integer Anzahl Jahre mit Archivaktivitaten (Domain-Age-Signal).
first_ts integer Unix-Timestamp des ersten Snapshots.
last_ts integer Unix-Timestamp des neuesten Snapshots.
years object Jahr → monatliche Snapshot-Count-Map (Sparkline-/Kalenderdaten).

web_archive.ts_summary

Parameter Type Description
average_karma_score integer Durchschnittlicher KarmaScore, 0..100 (mapped auf Listenfeld karmascore).
wa_changes integer Anzahl signifikanter Content-Anderungen in der gescannten Historie.
wa_langs array Sprachverteilungszeilen: language, pageRatio (0..100).
wa_server_code array HTTP-Code-Verteilung: server_code (z. B. 200, 301, 403), response_ratio (0..100).
wa_tags array Erkannte Content-Tags uber die Historie.
pattern_shares array Pattern-Share-Zeilen: factor, description, share.
chart_data array Zeitreihenpunkte: timestamp, karma_score, lang, server_code, tags, detected_patterns.

web_archive.history[] (Snapshot-Zeile)

Parameter Type Description
snaped_at integer Snapshot-Unix-Timestamp.
webarchive_link string | null Wayback-URL fur dieses Capture (null bei schlieIendem Placeholder-Snapshot).
headers object | null HTTP-Metadaten, haufig status_code (200, 301, 302, 403, 404, 429, …), original_url.
screenshot boolean | null true, wenn Screenshot existiert (Binary separat gespeichert; Abruf uber Screenshot-API in der UI).
content_info object | null Geparster Seiteninhalt (siehe unten).
karma_score object | null Score pro Snapshot: score (0..100), detected_patterns, tags (porno/crypto/gambling/… Flags).
redirects array | null Redirect-Chain-Daten, falls vorhanden.
website_ids array | null Erkannte Site-IDs (name, website, ids[]), z. B. Analytics-Tags.
built_with object | null Technology-Stack-Detection-Payload (wenn verfugbar).

web_archive.history[].content_info

Parameter Type Description
lang string | null Erkannter Sprachcode der Seite.
title, description, keywords string | null Meta-/Seitentextfelder fur Filter und UI.
generator, author, copyright string | null Weitere Meta-Felder.
h1h6 string[] | null Heading-Texte (durchsuchbar uber keywords-Filter).
cloud_words array | null Word-Cloud-Eintrage (word).
external_links, internal_links array | null Outbound-/Inbound-Linklisten.
rel_canonical, meta_robots string | null Canonical-URL und Robots-Meta.
length_symbols, length_words integer Content-GroIencounter.

auctions (Auktionslose)

Vorhanden, wenn der Report Auktionsdaten hat (auctions, und manchmal zugehorige Zeilen in anderen Bases).
In Vollreport-Antworten sind Lose nach Endzeit gruppiert:

{
  "1764441900": [
    { "source": "godaddy", "sale_type": "auction", "price": 120, "bids": 3, "...": "..." }
  ]
}
  • Objektschlussel = end_time (Unix-Sekunden).
  • Wert = Array von Lot-Objekten mit diesem Endzeitpunkt (mehrere Plattformen konnen einen Schlussel teilen).
Parameter Type Description
source string Auktionsplattform-/Registrar-Quelle (z. B. godaddy, namejet, dynadot, dropcatch, sedo, sav.com). Case-insensitive in Filtern.
sale_type string Listing-Typ (z. B. auction, buynow, Closeout, Pre-Release, Dropped).
domain string Domainname des Lots.
item_id string Plattform-spezifische Lot-/Listing-ID.
end_time integer Lot-Endzeit (Unix-Sekunden); auch Gruppierungsschlussel im Vollreport.
price number Aktueller Preis (typischerweise USD).
bids integer | null Gebotsanzahl, wenn anwendbar.
currency string Wahrungssymbol/-code (Standard "$").
report_type string Zugehorige Base: auctions, backorder oder buynow.
priority integer Internes Sortier-/Prioritatsgewicht (Standard 0).

Filter-Tipp: auction_source in der Suche akzeptiert reine Quelle (godaddy) oder zusammengesetzten Wert source|sale_type (z. B. godaddy|auction).

Fur exakte Feldrestriktionen (Nullable-Regeln, Enum-Werte, Min/Max, verschachtelte Objekte) immer OpenAPI oder ReDoc nutzen.

Parameter report_type

Fur Vollreport und Favoriten: auctions, expired, backorder, buynow.
Wert all wird nur in der Suchlogik (alle Datenbanken) verwendet, nicht als {report_type} im Path.

Pagination und Sorting (Listen-Endpoints)

Query-Parameter:

Parameter Default Description
page 1 Seitennummer
page_size 10 SeitengroIe (max 50)
sort_by added_at Name der Sortierspalte (wie in der UI-Tabelle; Enum in OpenAPI)
sort_desc true true — absteigend

Depth limit: page × page_size ≤ 5000. Requests beyond this return 422 validation error.

Domains in URLs

Fur {domain} im Path Percent-Encoding verwenden (IDN, Kyrillisch usw.). Der Server normalisiert den Namen (punycoded/lowercase).

Typische Workflows

1. Suche → Vollreport

  1. POST https://api.karma.domains/v1/reports/search mit Filter-Body (siehe OpenAPIReportListFilterSchema).
  2. Aus report_list[] report_id und report_type entnehmen.
  3. GET https://api.karma.domains/v1/reports/{report_type}/{report_id}.

Filter entsprechen den Filtern in der Web-UI — einfacher UI-Abgleich; Feldschema in OpenAPI.

2. Exakte Domain ohne lange Suche

  1. GET /v1/reports/by-domain/example.com
  2. In der Antwort matches[] — bis zu ein Eintrag pro Datenbank, in der die Domain existiert.
  3. Gewunschten report_type wahlen → GET /v1/reports/{report_type}/{report_id}.

Wenn matches leer ist — die Domain ist nicht in den Karma-Datenbanken.

3. Favoriten

  • Nur Liste: GET /v1/reports/favorites
  • Dieselbe Liste uber Suche: POST /v1/reports/search mit "favorites": true im Body
  • Hinzufugen: POST /v1/reports/favorites mit {"report_id": "...", "report_type": "expired"}
  • Entfernen: DELETE /v1/reports/favorites/expired/{report_id}

4. Drop-Check (expired report)

GET /v1/reports/check/expired/{report_id}Report-ID, nicht Domainname.

  • Bei erfolgreichem Check wird der Report-Datensatz auf dem Server aktualisiert
  • is_expired: true — Domain ist wahrscheinlich registrierbar (nicht "WHOIS expiry date passed")
  • Wiederholter Live-Check fur denselben Report — maximal einmal alle 3 Stunden (Business-Regel)
  • HTTP-Response wird 1 Stunde fur wiederholte GETs mit derselben report_id gecacht (siehe „Caching“)

5. Domain-Check ohne Report in der Datenbank

GET /v1/domains/checker/expiry/{domain} — Live WHOIS/DNS; verandert den Datenbank-Report nicht.

  • available: true — wahrscheinlich registrierbar
  • available: false — vergeben oder reserviert
  • Wiederholte Anfrage fur dieselbe Domain innerhalb von ~1 Stunde kann eine gecachte Antwort liefern

6. Karma Metric on the fly

GET /v1/domains/checker/karma_metric/{domain} — Karma Metric aus der WayBack Machine; aktualisiert den Report nicht. Response-Felder — OpenAPI (KarmaMetricData). Response-Cache pro Domain — ~1 Stunde.

Mehr zu Karma Metric im Blog

7. Guthaben und Tarif

GET /v1/user — E-Mail, balance (Credits), Tarif-Flags, Subscription-Daten. API-Key ist nicht in der Antwort. Antwort wird ~1 Minute pro Key gecacht — nicht haufiger pollen als notig fur aktuelles Guthaben.

Caching

Auf Public-API-Ebene wird der HTTP-Response-Body gecacht. Manche Endpoints nutzen Early Refresh (Hintergrund-Refresh vor TTL-Ablauf: 4 Min bei 5 Min TTL, 50 Min bei 1 h TTL).

Endpoint TTL
POST /v1/reports/search 5 min
GET /v1/reports/favorites 5 min
POST /v1/reports/favorites none
DELETE /v1/reports/favorites/{report_type}/{report_id} none
GET /v1/reports/by-domain/{domain} 5 min
GET /v1/reports/check/expired/{report_id} 1 h
GET /v1/reports/{report_type}/{report_id} none
GET /v1/user 1 min
GET /v1/domains/checker/expiry/{domain} 1 h
GET /v1/domains/checker/karma_metric/{domain} 1 h

POST/DELETE bei Favoriten andern Serverdaten sofort, aber ein erneutes GET /favorites oder POST /search mit favorites: true kann bis zum Cache-Ablauf (5 Min) eine veraltete Liste liefern.

Request-Beispiele (curl)

Ersetze YOUR_API_KEY durch deinen Profil-Key. Basis-URL: https://api.karma.domains.

Expired mit Filter suchen

curl -X POST "https://api.karma.domains/v1/reports/search?page=1&page_size=25&sort_by=added_at&sort_desc=true" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "karmascore_min": 60,
    "domain_type": ["expired"]
  }'

Filter-Body — beliebige Felder aus ReportListFilterSchema in OpenAPI.

Vollreport

curl "https://api.karma.domains/v1/reports/expired/507f1f77bcf86cd799439011" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

Lookup nach Domain

curl "https://api.karma.domains/v1/reports/by-domain/example.com" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

Zu Favoriten hinzufugen

curl -X POST "https://api.karma.domains/v1/reports/favorites" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "report_id": "507f1f77bcf86cd799439011",
    "report_type": "expired"
  }'

Domain-Verfugbarkeit prufen

curl "https://api.karma.domains/v1/domains/checker/expiry/mybrand.com" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

Karma Metric

curl "https://api.karma.domains/v1/domains/checker/karma_metric/mybrand.com" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"

Integrations-Use-Cases

Nachtliche Expired-Selection-Pipeline

Taglicher Cron: POST /search mit gespeichertem JSON-Filter (wie ein saved filter in der UI), Pagination mit page_size=50, report_id in die eigene DB exportieren. Detaillierte Analyse — GET Vollreport nur fur die Shortlist.

Monitoring einer Namensliste vor Registrierung

Queue von Domains → GET /domains/checker/expiry/{domain} → Verzweigung uber available. Benotigt keinen Report in Karma.Domains.

Favoriten mit internem CRM synchronisieren

Periodisch GET /favorites; bei User-Aktion im CRM — POST/DELETE Favoriten. ~5 Min Listen-Cache berucksichtigen.

BI / Funnel-Analytics

Search-Seiten exportieren, total_count und Metriken aus report_list aggregieren, ohne die UI zu offnen. Listenzeilen-Schema — ReportListResponseSchema in OpenAPI.

MCP + Skripte mit einem Key

Team nutzt MCP in Cursor fur ad-hoc Suche und Public API fur stabiles ETL. Gesamtlimit 60 Anfragen pro Minute — Batches planen und Backoff bei 429.

MCP und Public API

Public API (REST) MCP
Audience Entwickler, Skripte, ETL KI-Assistenten (Cursor, Claude)
Interface HTTP + JSON Dialog, Tools
Docs Diese Seite + OpenAPI /de/expired-domains-mcp/
Data Dieselben Reports und Datenbanken Dasselbe
Key & limit Geteilt Geteilt

Fur neue Code-Integrationen mit REST starten. Fur Chat-Experimente — MCP.

FAQ

Wo ist die vollstandige Referenz der Filterfelder?

OpenAPI, Schema ReportListFilterSchema. Feldbedeutungen entsprechen der Filter-Hilfe in der UI.

Was ist der Unterschied zwischen available und is_expired?

Beides bedeutet im API-Kontext: Domain ist wahrscheinlich registrierbar.
available — Live-Check nach Name (/domains/checker/expiry).
is_expired — Check, gebunden an einen expired-Datenbank-Report (/reports/check/expired/{report_id}).

Warum 403 trotz korrektem Key?

Kein aktiver Pro-Tarif. Subscription im Profil prufen.

Warum passt die API-Antwort nicht zur UI oder zu einer gerade ausgefuhrten Aktion?

Public-API-HTTP-Cache — siehe Tabelle in „Caching“. TTL bei UI-Sync berucksichtigen.

Welche sort_by-Werte sind erlaubt?

Enum-Liste in OpenAPI — Spaltennamen der Report-Tabelle in der Web-App.

Brauche ich diese Seite, wenn OpenAPI existiert?

OpenAPI ist die Source of Truth fur Typen und Felder. Diese Seite liefert Kontext: Limits, Cache, Call-Reihenfolge, Use-Cases und Fallstricke, die nicht im Schema stehen.

Can I export the entire database via the API?

No. A single search is limited to 5000 rows of pagination depth, and your account can retrieve at most 50,000 list rows per day (UTC) across API, MCP, and UI. Use filters to narrow results; fetch full reports one domain at a time via GET /reports/{report_type}/{report_id}.

Gibt es eine Sandbox?

Keine separate Sandbox; nutze ein Pro-Konto und halte Rate Limits ein. Fur Debugging eignen sich GET /user und ein enges POST /search mit strengem Filter.

Error-Codes

Code Meaning
200 Success
401 Unauthorized (key)
403 No Pro
404 Report oder Ressource nicht gefunden
422 Body-/Query-Validierungsfehler (ungultiger Filter, sort_by, …)
429 Rate limit or daily row quota exceeded
503 Rate Limiter vorubergehend nicht verfugbar

Error-Body hat normalerweise detail (String oder Array von Validierungsobjekten). Beispiel:

{
  "detail": "Invalid API key"
}

Kostenlos ausprobieren!

Verwenden Sie Bonuskredite!

Domainliste öffnen
+5