API publique Karma.Domains fournit un accès programmatique aux rapports de domaine : enchères, expirations, commandes en souffrance et achat immédiat. Toutes les réponses sont JSON sur HTTPS. URL de base : https://api.karma.domains, préfixe de route : /v1.
Karma.Domains est une plateforme d'intelligence de domaine pour les investisseurs, les équipes SEO et les pipelines d'automatisation :
- Plus de 400 000 nouveaux domaines par jour dans les flux de découverte et de surveillance (plus de 7 000 000 de domaines au total)
- Plus de 30 sources de données de domaine au total, dont 27+ sources d'enchères/expirées/en rupture de stock/achat immédiat (GoDaddy, NameJet, DropCatch, Dynadot, GNAME, Namecheap, etc.)
- Plus de 90 filtres pour une recherche précise sur la qualité du domaine, le référencement, l'historique du contenu et les signaux d'enchères (TF, CF, DA, DR, âge, backlinks, trafic, mots clés, texte d'ancrage, etc.)
- Couverture TLD et ccTLD (par exemple
.com,.net,.org,.biz,.info,.at,.be,.ca,.cc,.cl,.co,.co.nz) - Données de référencement et d'autorité des principaux fournisseurs : Ahrefs, Majestic, Moz, SimilarWeb
- Contenu historique et signaux de changement via Wayback Machine
Schémas de requête et de réponse (champs de filtre, structure du rapport, énumérations de tri) — dans les documents interactifs : Swagger UI ou ReDoc. Cette page est une présentation de l'intégration : authentification, limites, liste des points de terminaison, flux de travail typiques et exemples.
- Introduction
- Authentification
- Limitation du débit
- Daily row quota
- Présentation du point de terminaison
- Référence des paramètres du modèle
ReportListFilterSchema(corps de la demande pourPOST /v1/reports/search)ReportListResponseSchema(réponse pourPOST /searchetGET /favorites)ReportFullResponseSchema(réponse pourGET /v1/reports/{report_type}/{report_id})- Paramètre
report_type - Pagination et tri (liste des points de terminaison)
- Domaines dans les URL
- Flux de travail typiques
- Mise en cache
- Demander des exemples (curl)
- Cas d'utilisation de l'intégration
- MCP et API publique
- FAQ
- Où se trouve la référence complète du champ de filtre ?
- Quelle est la différence entre
availableetis_expired? - Pourquoi 403 avec une clé correcte ?
- Pourquoi la réponse de l'API ne correspond-elle pas à l'interface utilisateur ou à une action qui vient d'être effectuée ?
- Quelles valeurs
sort_bysont autorisées ? - Ai-je besoin de cette page si OpenAPI existe ?
- Y a-t-il un bac à sable ?
- Codes d'erreur
- Liens utiles
Introduction
L'API publique est destinée aux scripts, aux tableaux de bord internes, aux systèmes CRM et à toute automatisation nécessitant les mêmes données que l'application Web Karma.Domains.
- **Format :**JSON
- Version API : 1.0.0
- Bases de données :
auctions,expired,backorder,buynow; effectuer une recherche simultanée —POST /v1/reports/search(identique au tableau « toutes les bases de données » dans l'interface utilisateur) - Documentation de terrain : uniquement dans OpenAPI
- Disponible uniquement sur le Pro plan and above
Authentification
Chaque demande doit inclure l'en-tête :
Authorization: Bearer YOUR_API_KEY
Comment obtenir une clé API
- Forfait Pro (sans Pro, l'API n'est pas disponible).
- Profile → Settings : créez ou réinitialisez la clé dans la section Clé API.
La même clé est utilisée pour les MCP server (assistants IA). La limite de requêtes est partagée entre REST et MCP.
Réponses typiques lorsque la clé est fausse
| Code | Raison |
|---|---|
| 401 | En-tête manquant, clé non valide ou faute de frappe dans Bearer |
| 403 | La clé est valide, mais le compte n'a pas de Pro actif (Pro plan required for API access) |
Envoyez toujours Accept: application/json.
Limitation du débit
- 60 requêtes par minute par clé API
- Fenêtre : 60 secondes
- Le compteur est partagé entre tous les points de terminaison de l'API publique et MCP
Les réponses réussies incluent les en-têtes :
| En-tête | Description |
|---|---|
X-RateLimit-Limit | Limite (60) |
X-RateLimit-Remaining | Demandes laissées dans la fenêtre actuelle |
X-RateLimit-Reset | Horodatage Unix lorsque la fenêtre est réinitialisée |
Lorsque la limite est dépassée : 429 Too Many Requests et en-tête Retry-After (secondes jusqu'à la nouvelle tentative).
Conseils : utilisez page_size jusqu'à 50 pour les listes ; n'interrogez pas POST /search plus souvent que nécessaire — les réponses sont mises en cache (voir « Mise en cache »).
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.
Présentation du point de terminaison
Paramètres complets de requête/corps — dans OpenAPI.
| Méthode | Chemin | But |
|---|---|---|
POST | /v1/reports/search | Rechercher des rapports par corps ReportListFilterSchema, pagination, tri |
GET | /v1/reports/favorites | Liste des rapports favoris de l'utilisateur actuel |
POST | /v1/reports/favorites | Ajouter un rapport aux favoris |
DELETE | /v1/reports/favorites/{report_type}/{report_id} | Supprimer des favoris |
GET | /v1/reports/by-domain/{domain} | Rechercher les ID de rapport par nom de domaine exact |
GET | /v1/reports/{report_type}/{report_id} | Rapport complet par type de base de données et identifiant de rapport |
GET | /v1/reports/check/expired/{report_id} | Vérifiez si le domaine a été abandonné pour un rapport expiré |
GET | /v1/user | Profil utilisateur (PublicUserProfileSchema) |
GET | /v1/domains/checker/expiry/{domain} | Vérification en direct : si le domaine est disponible pour l'enregistrement |
GET | /v1/domains/checker/karma_metric/{domain} | Calcul de métrique de karma en direct via WayBack Machine |
Référence des paramètres du modèle
Vous trouverez ci-dessous une carte pratique au niveau des paramètres pour les 3 modèles OpenAPI de base qui définissent la plupart des fonctionnalités de l'API.
ReportListFilterSchema (corps de la demande pour POST /v1/reports/search)
Sémantique de valeur utilisée dans ce schéma :
nullou champ omis = pas de filtre.- Les champs de requête de chaîne prennent en charge
,pour AND et|pour OR lorsque cela est documenté. - Les plages de dates sont des tableaux de 2 chaînes :
[from, to]. - La plupart des plages de scores utilisent
*_min/*_maxinclus.
| Paramètre | Taper | Description |
|---|---|---|
domain | chaîne |nul | Filtre de sous-chaîne de domaine, insensible à la casse. , = AND (tous les termes doivent correspondre), | = OU (n'importe quel terme). Longueur maximale : 350. |
tlds | chaîne |nul | Liste de TLD séparée par une virgule ou un espace (par exemple, .com .net .org). Longueur maximale : 350. |
domain_type | chaîne[] |nul | Valeurs autorisées : auctions, backorder, buynow, expired. OU logique entre les valeurs sélectionnées. |
favorites | booléen |nul | true = uniquement les favoris, false = exclure les favoris. Nécessite un contexte utilisateur authentifié. |
categories | chaîne[] |nul | Logique OU par catégorie, prend en charge le format Category / Subcategory, correspondance de sous-chaînes insensible à la casse. |
languages | string | Requête de langage avec , (AND) / | (OR), correspondance de sous-chaîne insensible à la casse. Longueur maximale : 350. |
keywords | chaîne |nul | Recherchez dans le contenu Wayback (title, description, h1-h6, etc.). , = ET, | = OU. Longueur maximale : 350. |
website_ids | string[] | Des identifiants comme GA/Metrika pour trouver des domaines du même propriétaire. |
domain_length_min / domain_length_max | entier |nul | Limites de longueur de domaine (documentées comme 1..30). |
domain_numbers / domain_hyphens | boolean | Exiger/exclure les chiffres et les tirets dans les noms de domaine. |
report_added_time | chaîne[2] |nul | Plage de dates : ["YYYY-MM-DD","YYYY-MM-DD"]. Le backend applique automatiquement les limites de début/fin de journée. |
karmascore_min / karmascore_max | entier |nul | Limites du KarmaScore, 0..100. |
karmametric_min / karmametric_max | entier |nul | Limites métriques du karma, 0..100. |
brandscore_min / brandscore_max | entier |nul | Limites du Brandscore, 0..100. |
openpagerank_min / openpagerank_max | entier |nul | Limites ouvertes du PageRank, documentées comme 0..10. |
ahrefs_dr_min / ahrefs_dr_max | numéro |nul | Limites Ahrefs DR, 0..100. |
ahrefs_ur_min / ahrefs_ur_max | numéro |nul | Limites Ahrefs UR, 0..100. |
ahrefs_ar_min / ahrefs_ar_max | entier |nul | Limites du rang Ahrefs (>= 0). |
majestic_tf_min / majestic_tf_max | entier |nul | Limites Majestic TF, 0..100. |
majestic_cf_min / majestic_cf_max | entier |nul | Limites Majestic CF, 0..100. |
majestic_bl_min / majestic_bl_max | integer | Limites majestueuses des backlinks. |
majestic_rd_min / majestic_rd_max | integer | Limites majestueuses des domaines référents. |
majestic_topics / majestic_lang | string[] / string | Filtres de sujets et de langues d'ancrage. |
moz_da_min / moz_da_max | entier |nul | Limites Moz DA, 0..100. |
moz_ss_min / moz_ss_max | entier |nul | Limites du score de spam Moz, 0..100. |
moz_bl_min / moz_bl_max | integer | Les backlinks de Moz limitent. |
moz_rd_min / moz_rd_max | integer | Limites des domaines référents Moz. |
moz_bl_url / moz_bl_anchor | string | Filtres d'URL de backlink / de phrases d'ancrage Moz. |
sw_visits_min / sw_visits_max | integer | SimilarWeb visite les limites. |
sw_last_traffic_date | chaîne[2] |nul | Plage de mois Web similaire : ["YYYY-MM","YYYY-MM"]. |
sw_country_filters | object[] | Filtres de partage de pays (country, share_min en option). |
sw_ts_direct_min...sw_ts_social_max | numéro |nul | Limites de partage de canal source de trafic Web similaire, 0..100. |
wa_age_min / wa_age_max | entier |nul | Âge du domaine Wayback en années. |
wa_first_snap / wa_last_snap | chaîne[2] |nul | Plage de dates : ["YYYY-MM-DD","YYYY-MM-DD"] pour les premières/dernières fenêtres d'instantané. |
wa_changes_min/max, wa_redirects_min/max, wa_parkings_min/max | integer | Compteurs d'histoire Wayback. |
wa_hieroglyphs, wa_redirects, wa_error403 | boolean | Indicateurs de qualité du contenu Wayback. |
wa_lang_filters | object[] | Filtres de langue Wayback (language, ratio_min en option). |
wa_server_code, wa_server_code_ratio_min/max | entier |null / numéro |nul | Filtre de code du serveur Wayback (par exemple, 200, 301, 302, 403, 404) + limites de rapport 0..100. |
ke_etv_min/max, ke_total_min/max | integer | Mots-clés partout valeur du trafic / limites des mots-clés. |
ke_keyword | string | Filtre d'expressions Mots-clés partout. |
google_has_index, google_has_mentions | booléen |nul | Sémantique true/false/unset pour exiger un index ou des mentions dans Google SERP. |
google_title_index/mentions, google_description_index/mentions | string | Filtres de titre/expression de description d’extrait de code SERP. |
trustpilot_rating_min/max, trustpilot_reviews_count_min/max | numéro |null / entier |nul | Les limites des notes de Trustpilot (0 à 5) et les avis comptent les limites. |
trustpilot_category | string | Filtre d'expressions de catégorie Trustpilot. |
auction_source | chaîne[] |nul | Noms des sources d'enchères (insensibles à la casse) ou valeur composée `source |
auction_end_time, auction_added_time | chaîne[2] |nul | Plage de dates : ["YYYY-MM-DD","YYYY-MM-DD"]. |
auction_price_min/max | number | Limites du prix des enchères. |
auction_bids_min/max | integer | Les enchères comptent des limites. |
combine_seo | objet |nul | CombineSEOFilter multi-fournisseurs : autorité/backlinks/refdomains/traffic/keywords/backlink-url/anchors, avec une logique OU à l'échelle du fournisseur dans chaque ligne et ET entre les lignes. |
ReportListResponseSchema (réponse pour POST /search et GET /favorites)
| Paramètre | Taper | Description |
|---|---|---|
report_list | ReportItem[] | Lignes paginées pour l'affichage du tableau et la génération de listes restreintes. |
total_count | integer | Nombre total d'enregistrements correspondants pour le filtre actuel. |
Les champs au niveau de la ligne report_list[] (à partir de ReportItem) incluent :
| Paramètre | Taper | Description |
|---|---|---|
report_id | string | Identifiant de rapport stable (utilisé pour le rapport complet et les favoris). |
report_type | string | L'un des auctions, expired, backorder, buynow. |
domain, domain_tld | string | Nom de domaine et TLD. |
added_at, updated_at | integer | Horodatages. |
processed, demo, is_expired | boolean | Indicateurs d'état utilisés dans les flux de travail UI/API. |
karmascore, karmametric, brandscore | integer | Mesures de qualité/brandabilité de base. |
ahrefs_dr, ahrefs_ur | number | Métriques récapitulatives Ahrefs. |
majestic_tf/cf/bl/rd, moz_da/ss/bl/rd | integer | Métriques récapitulatives Majestic et Moz. |
ke_etv, ke_total | integer | Valeurs récapitulatives de Keywords Everywhere. |
sw_last_traffic, sw_country_share, sw_sources | integer/object | Résumés du trafic Web similaires. |
wa_age, wa_last_snap, wa_changes, wa_langs, wa_server_code | integer/array | Signaux récapitulatifs Wayback. |
google_index, trustpilot_rating, trustpilot_reviews_count | boolean/number/integer | Champs de résumé Google/Trustpilot. |
auctions | array/object | Résumé des entrées aux enchères si disponible. |
ReportFullResponseSchema (réponse pour GET /v1/reports/{report_type}/{report_id})
| Paramètre | Taper | Description |
|---|---|---|
report_id, report_type, domain, domain_tld | string | Champs d’identité de base. |
domain_length, domain_numbers, domain_hyphens | integer/boolean | Attributs de structure de domaine. |
favorite, demo, processed, is_expired | boolean | Signaler l’état et les indicateurs liés à l’utilisateur. |
added_at, updated_at, created_at, checked_at, expire_checked_at | integer | Horodatages du cycle de vie. |
providers_status | object | Carte d’état de traitement par fournisseur (valeurs de chaîne). |
web_archive | object | Données de Wayback Machine – voir la répartition ci-dessous. |
metrics | DomainMetrics | Métriques imbriquées de référencement/trafic/réputation – voir la répartition ci-dessous. |
auctions | objet |nul | Lots d'enchères regroupés par end_time — voir répartition ci-dessous. |
metrics → DomainMetrics
La plupart des blocs fournisseurs peuvent être un objet avec des données, false (non chargé) ou null. categories et blacklists peuvent également être [] lorsqu'ils sont vides.
| Paramètre | Taper | Description |
|---|---|---|
openpagerank | numéro |entier |booléen |nul | Ouvrez le score PageRank (généralement 0..10) lorsqu'il est disponible. |
categories | CatégorieDonnées[] |booléen |nul | Catégories de contenu des fournisseurs de classification. |
blacklists | Listes noiresDonnées[] |booléen |nul | Liste noire de sécurité/réputation. |
ahrefs | AhrefsData|booléen |nul | Métriques du domaine Ahrefs. |
majestic | MajesticData|booléen |nul | Majestic Trust/Citation Flow et profil de backlink. |
moz | MozData|booléen |nul | Autorité Moz, score de spam et détails du backlink. |
keywordseverywhere | Mots-cléspartoutDonnées|booléen |nul | Mots-clés partout estimations de trafic/mots-clés. |
similarweb | Données Web similaires |booléen |nul | Visites Web similaires, sources et partage géographique. |
brandscore | BrandscoreData|booléen |nul | Composants du score de brandabilité. |
karma_metric | KarmaMetricData|booléen |nul | Score Karma Metric de l’histoire de Wayback. |
trustpilot | TrustpilotData|booléen |nul | Statistiques d’évaluation et d’avis de Trustpilot. |
google | GoogleDonnées|booléen |nul | Indexez Google et mentionnez les extraits SERP. |
ai_summary | chaîne |nul | Texte de résumé du domaine généré par l'IA. |
AhrefsData
| Paramètre | Taper | Description |
|---|---|---|
domain_rating | numéro |nul | Ahrefs DR. |
url_rating | numéro |entier |nul | Ahrefs UR. |
ahrefs_rank | entier |nul | Rang Ahrefs (inférieur = plus fort). |
MajesticData
| Paramètre | Taper | Description |
|---|---|---|
tf, cf | entier |nul | Flux de confiance / flux de citations (0..100). |
backlinks, refdomains | entier |nul | Les backlinks et les domaines référents comptent. |
primary_topic | chaîne |nul | Catégorie thématique principale. |
topics | tableau |nul | Liste de distribution des sujets. |
anchor_lang | tableau |nul | Ancrer la distribution du langage du texte. |
indexed_urls, referring_ips, referring_subnets | entier |nul | Compteurs d’index et de diversité de réseau. |
MozData
| Paramètre | Taper | Description |
|---|---|---|
moz_domain_authority | entier |nul | Moz DA. |
moz_spam_score | entier |nul | Score de spam Moz. |
page_rank, moz_link_propensity | numéro |entier |nul | Classement hérité et propension aux liens. |
Champs moz_*_to_subdomain | entier |nul | Compteurs de graphiques de liens Moz (pages/domaines, suivi/nofollow/redirection/supprimé). |
moz_da_history_values | chaîne |nul | Valeurs d'historique DA sérialisées. |
backlinks | MozBacklink[] |nul | Lignes de backlink (domain_source, url_source, domain_target, url_target, anchor_text, harmonic_centrality, last_found_date). |
KeywordseverywhereData
| Paramètre | Taper | Description |
|---|---|---|
etv | entier |nul | Valeur estimée du trafic. |
total_keywords | entier |nul | Total des mots-clés suivis. |
data | Mot-clé[] |nul | Lignes de mots clés (position, etv, keyword). |
SimilarWebData
| Paramètre | Taper | Description |
|---|---|---|
estimated_monthly_visits | objet |nul | Mois → carte des visites. |
traffic_sources | Sources de trafic |nul | Partages de chaîne : Social, Paid Referrals, Mail, Referrals, Search, Direct (rapports 0..1). |
top_country_shares | PartagePays[] |nul | Répartition géographique (Country, CountryCode, Value). |
engagments | Fiançailles |nul | BounceRate, PagePerVisit, Visits, TimeOnSite, Month, Year. |
category | chaîne |nul | Catégorie de site Web similaire. |
BrandscoreData
| Paramètre | Taper | Description |
|---|---|---|
pronounceability, memorability, uniqueness, appeal, brandscore | integer | Composants de brandabilité et score final. |
KarmaMetricData
| Paramètre | Taper | Description |
|---|---|---|
karma_metric | integer | Note finale, 0..100. |
components | KarmaMetricComponents | A_mass, A_cont, A_stab, A_trend (chacun 0..100). |
period | chaîne |nul | Période au format YYYY-MM (ou null en cas d'indisponibilité). |
TrustpilotData
| Paramètre | Taper | Description |
|---|---|---|
rating | numéro |nul | Note, généralement 0..5. |
reviews_count | entier |nul | Nombre d'avis. |
category | chaîne |nul | Catégorie d'entreprise Trustpilot. |
GoogleData
| Paramètre | Taper | Description |
|---|---|---|
google_index | GoogleItem[] |nul | Pages indexées pour site:domain (rank, url, title, description). |
google_mentions | GoogleItem[] |nul | Mentionnez les résultats des recherches de domaines cités. |
CategoryData / BlacklistsData
| Modèle | Champs clés |
|---|---|
CategoryData | categories[], vendor, info_url |
BlacklistsData | vendor, info_url, info en option |
web_archive (charge utile Wayback Machine)
Objet avec trois blocs principaux : info, ts_summary, history. Dans les réponses du rapport complet, history est renvoyé en premier.
| Paramètre | Taper | Description |
|---|---|---|
info | objet |nul | Récapitulatif de la couverture des archives pour le domaine. |
ts_summary | objet |nul | Signaux KarmaScore / Wayback agrégés utilisés dans les filtres de table. |
history | array | Chronologie de l'instantané (un objet par capture Wayback). |
web_archive.info
| Paramètre | Taper | Description |
|---|---|---|
snap_counter | integer | Nombre total d'instantanés Wayback comptés. |
years_counter | integer | Nombre d'années d'activité d'archivage (signal d'âge du domaine). |
first_ts | integer | Horodatage Unix du premier instantané. |
last_ts | integer | Horodatage Unix du dernier instantané. |
years | object | Année → carte mensuelle du nombre d’instantanés (données sparkline/calendrier). |
web_archive.ts_summary
| Paramètre | Taper | Description |
|---|---|---|
average_karma_score | integer | KarmaScore moyen, 0..100 (correspond au champ de liste karmascore). |
wa_changes | integer | Nombre de modifications de contenu significatives dans l'historique analysé. |
wa_langs | array | Lignes de répartition des langues : language, pageRatio (0..100). |
wa_server_code | array | Répartition du code HTTP : server_code (par exemple 200, 301, 403), response_ratio (0..100). |
wa_tags | array | Balises de contenu détectées au cours de l'historique. |
pattern_shares | array | Lignes de partage de modèle : factor, description, share. |
chart_data | array | Points de série chronologique : timestamp, karma_score, lang, server_code, tags, detected_patterns. |
web_archive.history[] (ligne d'instantané)
| Paramètre | Taper | Description |
|---|---|---|
snaped_at | integer | Horodatage Unix de l'instantané. |
webarchive_link | chaîne |nul | URL de retour pour cette capture (null lors de la fermeture du snap d'espace réservé). |
headers | objet |nul | Métadonnées HTTP, généralement status_code (200, 301, 302, 403, 404, 429, …), original_url. |
screenshot | booléen |nul | true si la capture d'écran existe (binaire stocké séparément ; récupération via l'API de capture d'écran dans l'interface utilisateur). |
content_info | objet |nul | Contenu de la page analysé (voir ci-dessous). |
karma_score | objet |nul | Score par instantané : score (0..100), detected_patterns, tags (drapeaux porno/crypto/jeu/…). |
redirects | tableau |nul | Rediriger les données de la chaîne lorsqu'elles sont présentes. |
website_ids | tableau |nul | ID de site détectés (name, website, ids[]), par ex. balises d’analyse. |
built_with | objet |nul | Charge utile de détection de la pile technologique (si disponible). |
web_archive.history[].content_info
| Paramètre | Taper | Description |
|---|---|---|
lang | chaîne |nul | Code de langue de la page détecté. |
title, description, keywords | chaîne |nul | Champs de texte méta/page utilisés dans les filtres et l'interface utilisateur. |
generator, author, copyright | chaîne |nul | Champs méta supplémentaires. |
h1 … h6 | chaîne[] |nul | Textes de titre (recherchables via le filtre keywords). |
cloud_words | tableau |nul | Entrées de nuages de mots (word). |
external_links, internal_links | tableau |nul | Listes de liens sortants/entrants. |
rel_canonical, meta_robots | chaîne |nul | URL canonique et méta des robots. |
length_symbols, length_words | integer | Compteurs de taille de contenu. |
auctions (lots de ventes aux enchères)
Présent lorsque le rapport contient des données d'enchères (auctions, et parfois des lignes associées dans d'autres bases). Dans les réponses du rapport complet, les lots sont regroupés par heure de fin :
{
"1764441900": [
{ "source": "godaddy", "sale_type": "auction", "price": 120, "bids": 3, "...": "..." }
]
}
- Clé d'objet =
end_time(secondes Unix). - Valeur = tableau d'objets de lot se terminant à ce moment (plusieurs plates-formes peuvent partager une clé).
| Paramètre | Taper | Description |
|---|---|---|
source | string | Plateforme d'enchères/source du bureau d'enregistrement (par exemple, godaddy, namejet, dynadot, dropcatch, sedo, sav.com). Insensible à la casse dans les filtres. |
sale_type | string | Type d'annonce (par exemple auction, buynow, Closeout, Pre-Release, Dropped). |
domain | string | Nom de domaine du lot. |
item_id | string | Identifiant de lot/liste spécifique à la plateforme. |
end_time | integer | Heure de fin du lot (secondes Unix) ; également utilisé comme clé de regroupement dans le rapport complet. |
price | number | Prix actuel (généralement en USD). |
bids | entier |nul | Nombre d'offres, le cas échéant. |
currency | string | Symbole/code monétaire (par défaut "$"). |
report_type | string | Base propriétaire : auctions, backorder ou buynow. |
priority | integer | Poids de tri/priorité interne (par défaut 0). |
Astuce de filtre : auction_source dans la recherche accepte une source simple (godaddy) ou une valeur composée source|sale_type (par exemple, godaddy|auction).
Pour les contraintes de champ exactes (règles nullables, valeurs d'énumération, min/max, objets imbriqués), utilisez toujours OpenAPI ou ReDoc.
Paramètre report_type
Pour le rapport complet et les favoris : auctions, expired, backorder, buynow. La valeur all n'est utilisée que dans la logique de recherche (toutes les bases de données), et non comme {report_type} dans le chemin.
Pagination et tri (liste des points de terminaison)
Paramètres de requête :
| Paramètre | Défaut | Description |
|---|---|---|
page | 1 | Numéro de page |
page_size | 10 | Taille de la page (maximum 50) |
sort_by | added_at | Trier le nom de la colonne (comme dans la table de l'interface utilisateur ; énumération dans OpenAPI) |
sort_desc | true | true — décroissant |
Depth limit: page × page_size ≤ 5000. Requests beyond this return 422 validation error.
Domaines dans les URL
Pour {domain} dans le chemin, utilisez percent-encoding (IDN, cyrillique, etc.). Le serveur normalise le nom (punycoded/minuscule).
Flux de travail typiques
1. Recherche → rapport complet
POST https://api.karma.domains/v1/reports/searchavec un corps de filtre (voir OpenAPI →ReportListFilterSchema).- À partir de
report_list[], prenezreport_idetreport_type. GET https://api.karma.domains/v1/reports/{report_type}/{report_id}.
Les filtres correspondent à filters in the web UI — faciles à comparer avec l'interface utilisateur ; voir OpenAPI pour le schéma de champ.
2. Domaine exact sans longue recherche
GET /v1/reports/by-domain/example.com- Dans la réponse,
matches[]— jusqu'à une entrée par base de données où le domaine existe. - Choisissez le
report_type→GET /v1/reports/{report_type}/{report_id}nécessaire.
Si matches est vide, le domaine ne figure pas dans les bases de données Karma.
3. Favoris
- Liste uniquement :
GET /v1/reports/favorites - Même liste via recherche :
POST /v1/reports/searchavec"favorites": truedans le corps - Ajoutez :
POST /v1/reports/favoritesavec{"report_id": "...", "report_type": "expired"} - Supprimer :
DELETE /v1/reports/favorites/expired/{report_id}
4. Abandonner le chèque (rapport expiré)
GET /v1/reports/check/expired/{report_id} — identifiant du rapport, pas le nom de domaine.
- En cas de vérification réussie, met à jour l'enregistrement du rapport sur le serveur
is_expired: true— le domaine est probablement disponible pour l'enregistrement (et non « date d'expiration WHOIS dépassée »)- Répétez la vérification en direct pour le même rapport — au maximum une fois toutes les 3 heures (règle métier)
- La réponse HTTP est mise en cache 1 heure pour un GET répété avec le même
report_id(voir « Mise en cache »)
5. Vérification du domaine sans rapport dans la base de données
GET /v1/domains/checker/expiry/{domain} — WHOIS/DNS en direct ; ne modifie pas le rapport de la base de données.
available: true— probablement enregistrableavailable: false— pris ou réservé- Répéter la demande pour le même domaine dans un délai de ~ 1 heure peut renvoyer une réponse en cache
6. Karma Metric à la volée
GET /v1/domains/checker/karma_metric/{domain} — Karma Metric de WayBack Machine ; ne met pas à jour le rapport. Champs de réponse — OpenAPI (KarmaMetricData). Cache de réponse par domaine — ~1 heure.
En savoir plus sur la métrique Karma in the blog
7. Équilibre et plan
GET /v1/user — e-mail, balance (crédits), indicateurs de plan, données d'abonnement. La clé API n'est pas dans la réponse. Réponse mise en cache ~1 minute par clé — n'interrogez pas plus souvent que nécessaire pour un solde à jour.
Mise en cache
Au niveau de l'API publique, le corps de la réponse HTTP est mis en cache. Certains points de terminaison utilisent l'actualisation anticipée (actualisation en arrière-plan avant l'expiration de la durée de vie : 4 minutes pour 5 minutes de durée de vie, 50 minutes pour 1 heure de durée de vie).
| Point de terminaison | Durée de vie |
|---|---|
POST /v1/reports/search | 5 minutes |
GET /v1/reports/favorites | 5 minutes |
POST /v1/reports/favorites | aucun |
DELETE /v1/reports/favorites/{report_type}/{report_id} | aucun |
GET /v1/reports/by-domain/{domain} | 5 minutes |
GET /v1/reports/check/expired/{report_id} | 1 heure |
GET /v1/reports/{report_type}/{report_id} | aucun |
GET /v1/user | 1 minute |
GET /v1/domains/checker/expiry/{domain} | 1 heure |
GET /v1/domains/checker/karma_metric/{domain} | 1 heure |
Les favoris POST/DELETE modifient immédiatement les données du serveur, mais une répétition de GET /favorites ou POST /search avec favorites: true peut renvoyer une liste obsolète jusqu'à l'expiration du cache (5 min).
Demander des exemples (curl)
Remplacez YOUR_API_KEY par votre clé de profil. URL de base : https://api.karma.domains.
Recherche expirée avec un filtre
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"]
}'
Corps du filtre : tous les champs de ReportListFilterSchema dans OpenAPI.
Rapport complet
curl "https://api.karma.domains/v1/reports/expired/507f1f77bcf86cd799439011" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Recherche par domaine
curl "https://api.karma.domains/v1/reports/by-domain/example.com" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Ajouter aux favoris
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"
}'
Vérification de la disponibilité du domaine
curl "https://api.karma.domains/v1/domains/checker/expiry/mybrand.com" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Métrique du karma
curl "https://api.karma.domains/v1/domains/checker/karma_metric/mybrand.com" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json"
Cas d'utilisation de l'intégration
Pipeline de sélection expiré la nuit
Cron quotidien : POST /search avec un filtre JSON enregistré (comme un saved filter dans l'interface utilisateur), pagination avec page_size=50, exportez report_id vers votre base de données. Analyse détaillée — Rapport complet GET uniquement pour la liste restreinte.
Surveillance d'une liste de noms avant l'inscription
File d'attente des domaines → GET /domains/checker/expiry/{domain} → branche sur available. Ne nécessite pas de rapport dans Karma.Domains.
Synchronisation des favoris avec le CRM interne
Périodique GET /favorites ; sur l'action de l'utilisateur dans CRM – favoris POST/DELETE. Tenez compte d'environ 5 minutes de cache de liste.
BI / analyse d'entonnoir
Exportez les pages de recherche, regroupez total_count et les métriques de report_list sans ouvrir l'interface utilisateur. Schéma de ligne de liste – ReportListResponseSchema dans OpenAPI.
MCP + scripts sur une seule clé
L'équipe utilise MCP dans Cursor pour la recherche ad hoc et l'API publique pour un ETL stable. Total 60 requêtes par minute : planifiez des lots et des interruptions sur 429.
MCP et API publique
| API publique (REST) | PCM | |
|---|---|---|
| Public | Développeurs, scripts, ETL | Assistants IA (Curseur, Claude) |
| Interface | HTTP + JSON | Boîte de dialogue, outils |
| Documents | Cette page + OpenAPI | /fr/expired-domains-mcp/ |
| Données | Mêmes rapports et bases de données | Même |
| Clé et limite | Commun | Commun |
Pour les nouvelles intégrations de code, commencez par REST. Pour les expériences de chat – MCP.
FAQ
Où se trouve la référence complète du champ de filtre ?
OpenAPI, schéma ReportListFilterSchema. Les significations des champs correspondent à filter help dans l’interface utilisateur.
Quelle est la différence entre available et is_expired ?
Dans le contexte de l'API, cela signifie : le domaine est probablement disponible pour l'enregistrement. available — vérification en direct par nom (/domains/checker/expiry). is_expired — chèque lié à un rapport de base de données expiré (/reports/check/expired/{report_id}).
Pourquoi 403 avec une clé correcte ?
Aucun forfait Pro actif. Vérifiez l'abonnement dans le profil.
Pourquoi la réponse de l'API ne correspond-elle pas à l'interface utilisateur ou à une action qui vient d'être effectuée ?
Cache HTTP de l'API publique — voir le tableau dans « Mise en cache ». Tenez compte du TTL lors de la synchronisation avec l'interface utilisateur.
Quelles valeurs sort_by sont autorisées ?
Liste d'énumérations dans OpenAPI — noms des colonnes du tableau de rapport dans l'application Web.
Ai-je besoin de cette page si OpenAPI existe ?
OpenAPI est la source de vérité pour les types et les champs. Cette page ajoute du contexte : limites, cache, ordre d'appel, cas d'utilisation et pièges qui ne figurent pas dans le schéma.
Y a-t-il un bac à sable ?
Pas de bac à sable séparé ; utilisez un compte Pro et respectez les limites de tarifs. Pour le débogage, GET /user et un POST /search étroit avec un filtre strict fonctionnent bien.
Codes d'erreur
| Code | Signification |
|---|---|
| 200 | Succès |
| 401 | Non autorisé (clé) |
| 403 | Pas de pro |
| 404 | Rapport ou ressource introuvable |
| 422 | Erreur de validation du corps/requête (filtre invalide, sort_by, …) |
| 429 | Limite de débit dépassée |
| 503 | Limiteur de débit temporairement indisponible |
Le corps de l'erreur contient généralement detail (chaîne ou tableau d'objets de validation). Exemple:
{
"detail": "Invalid API key"
}
Liens utiles
- OpenAPI (Swagger) : https://api.karma.domains/docs
- ReDoc : https://api.karma.domains/redoc
- MCP for AI
- Clé API : Profile → Settings
- UI filter help