Documentación de API de Expired Domains

Una sola REST API con respuestas JSON para inteligencia de dominios: métricas SEO (TF, CF, DA, DR, Age, Backlinks, Traffic, etc.), historial de Wayback Machine, 400,000+ dominios nuevos cada día, 30+ fuentes de datos de dominios y 90+ filtros para búsqueda precisa. Incluye subastas en vivo, dominios expirados, informes completos, favoritos, comprobaciones de disponibilidad, Karma Metric y datos de perfil. Clave Bearer Pro, 60 solicitudes por minuto.

¡Pruebe gratis!
¡Use créditos de bonificación!

Public API de Karma.Domains proporciona acceso programático a informes de dominios: auctions, expired, backorder y buy-now. Todas las respuestas son JSON sobre HTTPS. URL base: https://api.karma.domains, prefijo de rutas: /v1.

Karma.Domains es una plataforma de inteligencia de dominios para inversores, equipos SEO y pipelines de automatización:

  • 400,000+ dominios nuevos diarios en flujos de descubrimiento y monitoreo (7,000,000+ dominios en total)
  • 30+ fuentes de datos de dominios en total, incluyendo 27+ fuentes de auction/expired/backorder/buy-now (GoDaddy, NameJet, DropCatch, Dynadot, GNAME, Namecheap, etc.)
  • 90+ filtros para búsqueda precisa por calidad de dominio, SEO, historial de contenido y señales de subasta (TF, CF, DA, DR, Age, Backlinks, Traffic, Keywords, Anchor Text, etc.)
  • Cobertura de TLD y ccTLD (por ejemplo .com, .net, .org, .biz, .info, .at, .be, .ca, .cc, .cl, .co, .co.nz)
  • Datos SEO y de autoridad de grandes proveedores: Ahrefs, Majestic, Moz, SimilarWeb
  • Contenido histórico y señales de cambios mediante Wayback Machine

Esquemas de request y response (campos de filtro, estructura de informe, enums de ordenación) — en la documentación interactiva: Swagger UI o ReDoc.
Esta página es una visión general de integración: autenticación, límites, lista de endpoints, flujos típicos y ejemplos.

Introducción

La Public API es para scripts, dashboards internos, sistemas CRM y cualquier automatización que necesite los mismos datos que la app web de Karma.Domains.

  • Formato: JSON
  • Versión de API: 1.0.0
  • Bases de datos: auctions, expired, backorder, buynow; búsqueda en todas a la vez — POST /v1/reports/search (igual que la tabla “all databases” en la UI)
  • Documentación de campos: solo en OpenAPI
  • Disponible solo en el plan Pro y superiores

Autenticación

Cada solicitud debe incluir el encabezado:

Authorization: Bearer YOUR_API_KEY

Cómo obtener una API key

  1. Plan Pro (sin Pro, la API no está disponible).
  2. Profile → Settings — crea o restablece la clave en la sección API key.

La misma clave se usa para el servidor MCP (asistentes de IA). El límite de solicitudes se comparte entre REST y MCP.

Respuestas típicas cuando la clave es incorrecta

Code Reason
401 Falta el header, clave inválida o error tipográfico en Bearer
403 La clave es válida, pero la cuenta no tiene Pro activo (Pro plan required for API access)

Envía siempre Accept: application/json.

Rate limiting

  • 60 solicitudes por minuto por API key
  • Ventana: 60 segundos
  • El contador se comparte entre todos los endpoints de Public API y MCP

Las respuestas exitosas incluyen encabezados:

Header Description
X-RateLimit-Limit Límite (60)
X-RateLimit-Remaining Solicitudes restantes en la ventana actual
X-RateLimit-Reset Unix timestamp cuando se reinicia la ventana

Cuando se excede el límite: 429 Too Many Requests y encabezado Retry-After (segundos hasta reintentar).

Consejos: usa page_size hasta 50 para listas; no consultes POST /search más de lo necesario — las respuestas están cacheadas (ver “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.

Resumen de endpoints

Parámetros completos de query/body — en OpenAPI.

Method Path Purpose
POST /v1/reports/search Buscar informes por body ReportListFilterSchema, paginación, ordenación
GET /v1/reports/favorites Lista de informes favoritos del usuario actual
POST /v1/reports/favorites Añadir un informe a favoritos
DELETE /v1/reports/favorites/{report_type}/{report_id} Quitar de favoritos
GET /v1/reports/by-domain/{domain} Encontrar IDs de informes por nombre de dominio exacto
GET /v1/reports/{report_type}/{report_id} Informe completo por tipo de base y report id
GET /v1/reports/check/expired/{report_id} Comprobar si el dominio cayó para un informe expired
GET /v1/user Perfil de usuario (PublicUserProfileSchema)
GET /v1/domains/checker/expiry/{domain} Comprobación en vivo: si el dominio está disponible para registrar
GET /v1/domains/checker/karma_metric/{domain} Cálculo de Karma Metric en vivo vía WayBack Machine

Referencia de parámetros de modelos

A continuación, un mapa práctico a nivel de parámetros para los 3 modelos principales de OpenAPI que definen la mayor parte de capacidades de la API.

ReportListFilterSchema (request body para POST /v1/reports/search)

Semántica de valores usada en este esquema:

  • null o campo omitido = sin filtro.
  • Los campos de query string soportan , para AND y | para OR donde esté documentado.
  • Los rangos de fecha son arrays de 2 strings: [from, to].
  • La mayoría de rangos de score usan *_min / *_max inclusivos.
Parameter Type Description
domain string | null Filtro por subcadena de dominio, sin distinguir mayúsculas/minúsculas. , = AND (todos los términos deben coincidir), | = OR (cualquier término). Longitud máxima: 350.
tlds string | null Lista de TLD separada por coma o espacio (p. ej., .com .net .org). Longitud máxima: 350.
domain_type string[] | null Valores permitidos: auctions, backorder, buynow, expired. Lógica OR entre valores seleccionados.
favorites boolean | null true = solo favoritos, false = excluir favoritos. Requiere contexto de usuario autenticado.
categories string[] | null Lógica OR por categoría, soporta formato Category / Subcategory, coincidencia por subcadena sin distinguir mayúsculas/minúsculas.
languages string Query de idiomas con , (AND) / | (OR), coincidencia por subcadena sin distinguir mayúsculas/minúsculas. Longitud máxima: 350.
keywords string | null Búsqueda en contenido Wayback (title, description, h1-h6, etc.). , = AND, | = OR. Longitud máxima: 350.
website_ids string[] IDs como GA/Metrika para encontrar dominios con el mismo propietario.
domain_length_min / domain_length_max integer | null Límites de longitud de dominio (documentado como 1..30).
domain_numbers / domain_hyphens boolean Requerir/excluir dígitos y guiones en nombres de dominio.
report_added_time string[2] | null Rango de fecha: ["YYYY-MM-DD","YYYY-MM-DD"]. El backend aplica automáticamente límites de inicio/fin de día.
karmascore_min / karmascore_max integer | null Límites de KarmaScore, 0..100.
karmametric_min / karmametric_max integer | null Límites de Karma Metric, 0..100.
brandscore_min / brandscore_max integer | null Límites de Brandscore, 0..100.
openpagerank_min / openpagerank_max integer | null Límites de Open PageRank, documentado como 0..10.
ahrefs_dr_min / ahrefs_dr_max number | null Límites de Ahrefs DR, 0..100.
ahrefs_ur_min / ahrefs_ur_max number | null Límites de Ahrefs UR, 0..100.
ahrefs_ar_min / ahrefs_ar_max integer | null Límites de Ahrefs Rank (>= 0).
majestic_tf_min / majestic_tf_max integer | null Límites de Majestic TF, 0..100.
majestic_cf_min / majestic_cf_max integer | null Límites de Majestic CF, 0..100.
majestic_bl_min / majestic_bl_max integer Límites de backlinks de Majestic.
majestic_rd_min / majestic_rd_max integer Límites de referring domains de Majestic.
majestic_topics / majestic_lang string[] / string Filtros de topic e idioma de anchor.
moz_da_min / moz_da_max integer | null Límites de Moz DA, 0..100.
moz_ss_min / moz_ss_max integer | null Límites de Moz Spam Score, 0..100.
moz_bl_min / moz_bl_max integer Límites de backlinks de Moz.
moz_rd_min / moz_rd_max integer Límites de referring domains de Moz.
moz_bl_url / moz_bl_anchor string Filtros de URL / anchor phrase de backlinks de Moz.
sw_visits_min / sw_visits_max integer Límites de visitas de SimilarWeb.
sw_last_traffic_date string[2] | null Rango de mes de SimilarWeb: ["YYYY-MM","YYYY-MM"].
sw_country_filters object[] Filtros de cuota por país (country, opcional share_min).
sw_ts_direct_min...sw_ts_social_max number | null Límites de cuota por canal de fuente de tráfico de SimilarWeb, 0..100.
wa_age_min / wa_age_max integer | null Antigüedad de dominio en Wayback en años.
wa_first_snap / wa_last_snap string[2] | null Rango de fecha: ["YYYY-MM-DD","YYYY-MM-DD"] para ventanas de primera/última captura.
wa_changes_min/max, wa_redirects_min/max, wa_parkings_min/max integer Contadores de historial Wayback.
wa_hieroglyphs, wa_redirects, wa_error403 boolean Flags de calidad de contenido de Wayback.
wa_lang_filters object[] Filtros de idioma Wayback (language, opcional ratio_min).
wa_server_code, wa_server_code_ratio_min/max integer | null / number | null Filtro de server code Wayback (p. ej., 200, 301, 302, 403, 404) + límites de ratio 0..100.
ke_etv_min/max, ke_total_min/max integer Límites de traffic value / keywords de Keywords Everywhere.
ke_keyword string Filtro de frase de Keywords Everywhere.
google_has_index, google_has_mentions boolean | null Semántica true/false/no establecido para exigir indexación o menciones en Google SERP.
google_title_index/mentions, google_description_index/mentions string Filtros de frase en title/description de snippets SERP.
trustpilot_rating_min/max, trustpilot_reviews_count_min/max number | null / integer | null Límites de rating de Trustpilot (0..5) y de cantidad de reviews.
trustpilot_category string Filtro de frase de categoría de Trustpilot.
auction_source string[] | null Nombres de fuentes de subasta (sin distinguir mayúsculas/minúsculas) o valor compuesto `source
auction_end_time, auction_added_time string[2] | null Rango de fecha: ["YYYY-MM-DD","YYYY-MM-DD"].
auction_price_min/max number Límites de precio de subasta.
auction_bids_min/max integer Límites de cantidad de pujas de subasta.
combine_seo object | null CombineSEOFilter cross-vendor: authority/backlinks/refdomains/traffic/keywords/backlink-url/anchors, con lógica OR por vendor en cada fila y AND entre filas.

ReportListResponseSchema (response para POST /search y GET /favorites)

Parameter Type Description
report_list ReportItem[] Filas paginadas para vista de tabla y generación de shortlist.
total_count integer Número total de registros coincidentes para el filtro actual.

Campos a nivel de fila en report_list[] (de ReportItem) incluyen:

Parameter Type Description
report_id string Identificador estable de informe (usado para informe completo y favoritos).
report_type string Uno de auctions, expired, backorder, buynow.
domain, domain_tld string Nombre de dominio y TLD.
added_at, updated_at integer Timestamps.
processed, demo, is_expired boolean Flags de estado usados en flujos UI/API.
karmascore, karmametric, brandscore integer Métricas base de calidad/brandability.
ahrefs_dr, ahrefs_ur number Métricas resumen de Ahrefs.
majestic_tf/cf/bl/rd, moz_da/ss/bl/rd integer Métricas resumen de Majestic y Moz.
ke_etv, ke_total integer Valores resumen de Keywords Everywhere.
sw_last_traffic, sw_country_share, sw_sources integer/object Resúmenes de tráfico de SimilarWeb.
wa_age, wa_last_snap, wa_changes, wa_langs, wa_server_code integer/array Señales resumen de Wayback.
google_index, trustpilot_rating, trustpilot_reviews_count boolean/number/integer Campos resumen de Google/Trustpilot.
auctions array/object Resumen de entradas de subasta si está disponible.

ReportFullResponseSchema (response para GET /v1/reports/{report_type}/{report_id})

Parameter Type Description
report_id, report_type, domain, domain_tld string Campos de identidad básicos.
domain_length, domain_numbers, domain_hyphens integer/boolean Atributos de estructura del dominio.
favorite, demo, processed, is_expired boolean Estado del informe y flags relacionados con usuario.
added_at, updated_at, created_at, checked_at, expire_checked_at integer Timestamps de ciclo de vida.
providers_status object Mapa de estado de procesamiento por proveedor (valores string).
web_archive object Datos de Wayback Machine — ver desglose abajo.
metrics DomainMetrics Métricas SEO/tráfico/reputación anidadas — ver desglose abajo.
auctions object | null Lotes de subasta agrupados por end_time — ver desglose abajo.

metricsDomainMetrics

La mayoría de bloques de proveedor pueden ser un objeto con datos, false (no cargado) o null. categories y blacklists también pueden ser [] cuando están vacíos.

Parameter Type Description
openpagerank number | integer | boolean | null Puntuación de Open PageRank (normalmente 0..10) cuando está disponible.
categories CategoryData[] | boolean | null Categorías de contenido de proveedores de clasificación.
blacklists BlacklistsData[] | boolean | null Coincidencias en blacklists de seguridad/reputación.
ahrefs AhrefsData | boolean | null Métricas de dominio Ahrefs.
majestic MajesticData | boolean | null Trust/Citation Flow de Majestic y perfil de backlinks.
moz MozData | boolean | null Authority, spam score y detalles de backlinks de Moz.
keywordseverywhere KeywordseverywhereData | boolean | null Estimaciones de tráfico/keywords de Keywords Everywhere.
similarweb SimilarWebData | boolean | null Visitas, fuentes y cuota geo de SimilarWeb.
brandscore BrandscoreData | boolean | null Componentes de score de brandability.
karma_metric KarmaMetricData | boolean | null Score Karma Metric desde historial de Wayback.
trustpilot TrustpilotData | boolean | null Rating de Trustpilot y stats de reviews.
google GoogleData | boolean | null Índice de Google y snippets SERP de menciones.
ai_summary string | null Texto resumen de dominio generado por IA.

AhrefsData

Parameter Type Description
domain_rating number | null Ahrefs DR.
url_rating number | integer | null Ahrefs UR.
ahrefs_rank integer | null Ahrefs Rank (más bajo = más fuerte).

MajesticData

Parameter Type Description
tf, cf integer | null Trust Flow / Citation Flow (0..100).
backlinks, refdomains integer | null Conteos de backlinks y referring domains.
primary_topic string | null Categoría temática principal.
topics array | null Lista de distribución de topics.
anchor_lang array | null Distribución de idioma de anchor text.
indexed_urls, referring_ips, referring_subnets integer | null Contadores de índice y diversidad de red.

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 Rank legacy y propensión de enlace.
moz_*_to_subdomain fields integer | null Contadores de grafo de enlaces de Moz (pages/domains, follow/nofollow/redirect/deleted).
moz_da_history_values string | null Valores serializados del historial de DA.
backlinks MozBacklink[] | null Filas de backlinks (domain_source, url_source, domain_target, url_target, anchor_text, harmonic_centrality, last_found_date).

KeywordseverywhereData

Parameter Type Description
etv integer | null Valor estimado de tráfico.
total_keywords integer | null Total de keywords rastreadas.
data KeywordItem[] | null Filas de keywords (position, etv, keyword).

SimilarWebData

Parameter Type Description
estimated_monthly_visits object | null Mapa mes → visitas.
traffic_sources TrafficSources | null Cuotas por canal: Social, Paid Referrals, Mail, Referrals, Search, Direct (ratios 0..1).
top_country_shares CountryShare[] | null Distribución geográfica (Country, CountryCode, Value).
engagments Engagements | null BounceRate, PagePerVisit, Visits, TimeOnSite, Month, Year.
category string | null Categoría del sitio en SimilarWeb.

BrandscoreData

Parameter Type Description
pronounceability, memorability, uniqueness, appeal, brandscore integer Componentes de brandability y score final.

KarmaMetricData

Parameter Type Description
karma_metric integer Score final, 0..100.
components KarmaMetricComponents A_mass, A_cont, A_stab, A_trend (cada uno 0..100).
period string | null Periodo en formato YYYY-MM (o null cuando no está disponible).

TrustpilotData

Parameter Type Description
rating number | null Rating, normalmente 0..5.
reviews_count integer | null Número de reviews.
category string | null Categoría de negocio en Trustpilot.

GoogleData

Parameter Type Description
google_index GoogleItem[] | null Páginas indexadas para site:domain (rank, url, title, description).
google_mentions GoogleItem[] | null Resultados de menciones para búsquedas de dominio entre comillas.

CategoryData / BlacklistsData

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

web_archive (payload de Wayback Machine)

Objeto con tres bloques principales: info, ts_summary, history. En respuestas de informe completo, history se devuelve de más nuevo a más antiguo.

Parameter Type Description
info object | null Resumen de cobertura de archivo para el dominio.
ts_summary object | null Señales agregadas de KarmaScore / Wayback usadas en filtros de tabla.
history array Línea temporal de snapshots (un objeto por captura de Wayback).

web_archive.info

Parameter Type Description
snap_counter integer Número total de snapshots de Wayback contabilizados.
years_counter integer Número de años con actividad en archivo (señal de edad del dominio).
first_ts integer Unix timestamp del primer snapshot.
last_ts integer Unix timestamp del snapshot más reciente.
years object Mapa año → recuento mensual de snapshots (datos de sparkline/calendario).

web_archive.ts_summary

Parameter Type Description
average_karma_score integer KarmaScore promedio, 0..100 (mapea al campo de lista karmascore).
wa_changes integer Número de cambios de contenido significativos en el historial escaneado.
wa_langs array Filas de distribución de idioma: language, pageRatio (0..100).
wa_server_code array Distribución de códigos HTTP: server_code (p. ej., 200, 301, 403), response_ratio (0..100).
wa_tags array Tags de contenido detectados a lo largo del historial.
pattern_shares array Filas de cuotas de patrón: factor, description, share.
chart_data array Puntos de serie temporal: timestamp, karma_score, lang, server_code, tags, detected_patterns.

web_archive.history[] (fila de snapshot)

Parameter Type Description
snaped_at integer Unix timestamp del snapshot.
webarchive_link string | null URL de Wayback para esta captura (null en snapshot placeholder de cierre).
headers object | null Metadatos HTTP, comúnmente status_code (200, 301, 302, 403, 404, 429, …), original_url.
screenshot boolean | null true si existe screenshot (binario almacenado aparte; obtener vía screenshot API en UI).
content_info object | null Contenido de página parseado (ver abajo).
karma_score object | null Score por snapshot: score (0..100), detected_patterns, tags (flags porno/crypto/gambling/…).
redirects array | null Datos de cadena de redirecciones cuando están presentes.
website_ids array | null IDs de sitio detectados (name, website, ids[]) p. ej., tags de analytics.
built_with object | null Payload de detección de stack tecnológico (cuando disponible).

web_archive.history[].content_info

Parameter Type Description
lang string | null Código de idioma detectado de la página.
title, description, keywords string | null Campos meta / texto de página usados en filtros y UI.
generator, author, copyright string | null Campos meta adicionales.
h1h6 string[] | null Textos de encabezados (buscables mediante filtro keywords).
cloud_words array | null Entradas de nube de palabras (word).
external_links, internal_links array | null Listas de enlaces salientes/entrantes.
rel_canonical, meta_robots string | null URL canonical y meta robots.
length_symbols, length_words integer Contadores de tamaño del contenido.

auctions (lotes de subasta)

Presente cuando el informe tiene datos de subasta (auctions, y a veces filas relacionadas en otras bases).
En respuestas de informe completo, los lotes se agrupan por hora de fin:

{
  "1764441900": [
    { "source": "godaddy", "sale_type": "auction", "price": 120, "bids": 3, "...": "..." }
  ]
}
  • Clave del objeto = end_time (segundos Unix).
  • Valor = array de objetos de lote que terminan en ese momento (múltiples plataformas pueden compartir una clave).
Parameter Type Description
source string Fuente de plataforma/registrador de subasta (p. ej., godaddy, namejet, dynadot, dropcatch, sedo, sav.com). Insensible a mayúsculas/minúsculas en filtros.
sale_type string Tipo de listing (p. ej., auction, buynow, Closeout, Pre-Release, Dropped).
domain string Nombre de dominio del lote.
item_id string ID de lote/listing específico de plataforma.
end_time integer Hora de fin del lote (segundos Unix); también usada como clave de agrupación en informe completo.
price number Precio actual (normalmente USD).
bids integer | null Conteo de pujas cuando aplica.
currency string Símbolo/código de moneda (por defecto "$").
report_type string Base propietaria: auctions, backorder o buynow.
priority integer Peso interno de ordenación/prioridad (por defecto 0).

Tip de filtro: auction_source en búsqueda acepta fuente simple (godaddy) o valor compuesto source|sale_type (p. ej., godaddy|auction).

Para restricciones exactas de campos (reglas nullable, valores enum, min/max, objetos anidados), usa siempre OpenAPI o ReDoc.

Parámetro report_type

Para informe completo y favoritos: auctions, expired, backorder, buynow.
El valor all solo se usa en lógica de búsqueda (todas las bases), no como {report_type} en el path.

Paginación y ordenación (list endpoints)

Parámetros query:

Parameter Default Description
page 1 Número de página
page_size 10 Tamaño de página (máx. 50)
sort_by added_at Nombre de columna de orden (como en la tabla UI; enum en OpenAPI)
sort_desc true true — descendente

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

Dominios en URLs

Para {domain} en el path, usa percent-encoding (IDN, cirílico, etc.). El servidor normaliza el nombre (punycoded/lowercase).

Flujos típicos

1. Búsqueda → informe completo

  1. POST https://api.karma.domains/v1/reports/search con body de filtro (ver OpenAPIReportListFilterSchema).
  2. De report_list[], toma report_id y report_type.
  3. GET https://api.karma.domains/v1/reports/{report_type}/{report_id}.

Los filtros coinciden con los filtros en la web UI — fácil de comparar con la UI; ver OpenAPI para el esquema de campos.

2. Dominio exacto sin búsqueda larga

  1. GET /v1/reports/by-domain/example.com
  2. En la respuesta, matches[] — hasta una entrada por base donde existe el dominio.
  3. Elige el report_type necesario → GET /v1/reports/{report_type}/{report_id}.

Si matches está vacío — el dominio no está en las bases de Karma.

3. Favoritos

  • Solo listado: GET /v1/reports/favorites
  • La misma lista vía búsqueda: POST /v1/reports/search con "favorites": true en el body
  • Añadir: POST /v1/reports/favorites con {"report_id": "...", "report_type": "expired"}
  • Eliminar: DELETE /v1/reports/favorites/expired/{report_id}

4. Comprobación de drop (expired report)

GET /v1/reports/check/expired/{report_id}report id, no nombre de dominio.

  • En comprobación exitosa, actualiza el registro del informe en el servidor
  • is_expired: true — el dominio es probablemente disponible para registrar (no “WHOIS expiry date passed”)
  • Repetir comprobación live para el mismo informe — como máximo una vez cada 3 horas (regla de negocio)
  • La respuesta HTTP se cachea 1 hora para GET repetidos con el mismo report_id (ver “Caching”)

5. Comprobación de dominio sin informe en base de datos

GET /v1/domains/checker/expiry/{domain} — WHOIS/DNS en vivo; no cambia el informe en la base de datos.

  • available: true — probablemente registrable
  • available: false — tomado o reservado
  • Repetir request para el mismo dominio dentro de ~1 hora puede devolver respuesta cacheada

6. Karma Metric al vuelo

GET /v1/domains/checker/karma_metric/{domain} — Karma Metric desde WayBack Machine; no actualiza el informe. Campos de response — OpenAPI (KarmaMetricData). Cache de response por dominio — ~1 hora.

Lee más sobre Karma Metric en el blog

7. Balance y plan

GET /v1/user — email, balance (créditos), flags de plan, datos de suscripción. La API key no viene en la respuesta. Respuesta cacheada ~1 minuto por clave — no consultes más de lo necesario para obtener balance actualizado.

Caching

A nivel de Public API, se cachea el HTTP response body. Algunos endpoints usan early refresh (refresh en background antes de expirar TTL: 4 min para TTL de 5 min, 50 min para TTL de 1 h).

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 de favoritos cambian datos en servidor inmediatamente, pero un GET /favorites repetido o POST /search con favorites: true puede devolver una lista desactualizada hasta que expire cache (5 min).

Ejemplos de solicitud (curl)

Reemplaza YOUR_API_KEY con tu clave de perfil. URL base: https://api.karma.domains.

Buscar expired con filtro

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"]
  }'

Body de filtro — cualquier campo de ReportListFilterSchema en OpenAPI.

Informe completo

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

Búsqueda por dominio

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

Añadir a favoritos

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"
  }'

Comprobación de disponibilidad de dominio

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"

Casos de uso de integración

Pipeline nocturno de selección de expired

Cron diario: POST /search con filtro JSON guardado (como un saved filter en la UI), paginación con page_size=50, exportar report_id a tu BD. Análisis detallado — GET de informe completo solo para shortlist.

Monitorear una lista de nombres antes de registrar

Cola de dominios → GET /domains/checker/expiry/{domain} → ramificar por available. No requiere informe en Karma.Domains.

Sincronizar favoritos con CRM interno

GET /favorites periódico; en acción de usuario en CRM — POST/DELETE favoritos. Tener en cuenta cache de lista de ~5 min.

BI / analítica de embudos

Exportar páginas de búsqueda, agregar total_count y métricas de report_list sin abrir la UI. Esquema de fila de lista — ReportListResponseSchema en OpenAPI.

MCP + scripts con una sola key

El equipo usa MCP en Cursor para búsqueda ad-hoc y Public API para ETL estable. Total 60 solicitudes por minuto — planificar lotes y backoff en 429.

MCP y Public API

Public API (REST) MCP
Audience Desarrolladores, scripts, ETL Asistentes de IA (Cursor, Claude)
Interface HTTP + JSON Diálogo, herramientas
Docs Esta página + OpenAPI /es/expired-domains-mcp/
Data Los mismos informes y bases Lo mismo
Key & limit Compartido Compartido

Para integraciones nuevas en código, empieza con REST. Para experimentos en chat — MCP.

FAQ

¿Dónde está la referencia completa de campos de filtros?

OpenAPI, esquema ReportListFilterSchema. El significado de campos coincide con la ayuda de filtros en la UI.

¿Cuál es la diferencia entre available e is_expired?

Ambos, en contexto API, significan: dominio probablemente disponible para registrar.
available — comprobación en vivo por nombre (/domains/checker/expiry).
is_expired — comprobación asociada a informe de base expired (/reports/check/expired/{report_id}).

¿Por qué 403 con una clave correcta?

No hay plan Pro activo. Revisa la suscripción en el perfil.

¿Por qué la respuesta de API no coincide con la UI o con una acción recién hecha?

Cache HTTP de Public API — ver la tabla en “Caching”. Ten en cuenta TTL al sincronizar con UI.

¿Qué valores sort_by están permitidos?

Lista enum en OpenAPI — nombres de columnas de la tabla de informes en la app web.

¿Necesito esta página si existe OpenAPI?

OpenAPI es la fuente de verdad para tipos y campos. Esta página añade contexto: límites, cache, orden de llamadas, casos de uso y riesgos que no están en el esquema.

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}.

¿Hay sandbox?

No hay sandbox separado; usa una cuenta Pro y respeta los rate limits. Para depurar, GET /user y un POST /search acotado con filtro estricto funcionan bien.

Códigos de error

Code Meaning
200 Success
401 Unauthorized (key)
403 No Pro
404 Informe o recurso no encontrado
422 Error de validación de body/query (filtro inválido, sort_by, …)
429 Límite de solicitudes excedido
503 Rate limiter temporalmente no disponible

El cuerpo de error normalmente incluye detail (string o array de objetos de validación). Ejemplo:

{
  "detail": "Invalid API key"
}

Enlaces útiles


t: 'API para dominios caducados (más de 400.000 nuevos dominios diarios de más de 30 fuentes de datos)' _d: 'Una API REST con respuestas JSON para inteligencia de dominio: métricas de SEO (TF, CF, DA, DR, edad, vínculos de retroceso, tráfico, etc.), historial de Webback Machine, más de 400 000 dominios nuevos cada día, más de 30 fuentes de datos de dominio y más de 90 filtros para una búsqueda precisa. Incluye subastas en vivo, dominios caducados, informes completos, favoritos, comprobaciones de disponibilidad, Karma Metric y datos de perfil. Clave Pro Bearer, 60 solicitudes por minuto.' title: 'Documentación de la API de dominios caducados'

API pública Karma.Domains proporciona acceso programático a informes de dominio: subastas, vencidos, pedidos pendientes y comprar ahora. Todas las respuestas son JSON sobre HTTPS. URL base: https://api.karma.domains, prefijo de ruta: /v1.

Karma.Domains es una plataforma de inteligencia de dominios para inversores, equipos de SEO y procesos de automatización:

  • Más de 400.000 dominios nuevos diariamente en flujos de descubrimiento y monitoreo (más de 6.000.000 de dominios en total)
  • Más de 30 fuentes de datos de dominio en general, incluidas 27+ fuentes de subasta/caducadas/pedidos pendientes/compra ahora (GoDaddy, NameJet, DropCatch, Dynadot, GNAME, Namecheap, etc.)
  • Más de 90 filtros para una búsqueda precisa en la calidad del dominio, SEO, historial de contenido y señales de subasta (TF, CF, DA, DR, edad, vínculos de retroceso, tráfico, palabras clave, texto ancla, etc.)
  • Cobertura de TLD y ccTLD (por ejemplo, .com, .net, .org, .biz, .info, .at, .be, .ca, .cc, .cl, .co, .co.nz)
  • Datos de autoridad y SEO de los principales proveedores: Ahrefs, Majestic, Moz, SimilarWeb
  • Contenido histórico y señales de cambio a través de Wayback Machine

Esquemas de solicitud y respuesta (filtrar campos, estructura de informes, ordenar enumeraciones): en los documentos interactivos: Swagger UI o ReDoc. Esta página es una descripción general de la integración: autenticación, límites, lista de puntos finales, flujos de trabajo típicos y ejemplos.

Introducción

La API pública es para scripts, paneles internos, sistemas CRM y cualquier automatización que necesite los mismos datos que la aplicación web Karma.Domains.

  • Formato: JSON
  • Versión de API: 1.0.0
  • Bases de datos: auctions, expired, backorder, buynow; buscar en todas a la vez: POST /v1/reports/search (igual que la tabla "todas las bases de datos" en la interfaz de usuario)
  • Documentación de campo: solo en OpenAPI
  • Disponible sólo en el Pro plan and above

Autenticación

Cada solicitud debe incluir el encabezado:

Authorization: Bearer YOUR_API_KEY

Cómo obtener una clave API

  1. Plan Pro (sin Pro, la API no está disponible).
  2. Profile → Settings: crea o restablece la clave en la sección Clave API.

La misma clave se utiliza para MCP server (asistentes de IA). El límite de solicitudes se comparte entre REST y MCP.

Respuestas típicas cuando la clave está mal

Código Razón
401 Falta encabezado, clave no válida o error tipográfico en Bearer
403 La clave es válida, pero la cuenta no tiene ningún Pro activo (Pro plan required for API access)

Envíe siempre Accept: application/json.

Limitación de velocidad

  • 60 solicitudes por minuto por clave API
  • Ventana: 60 segundos
  • El contador se comparte en todos los puntos finales de API pública y MCP

Las respuestas exitosas incluyen encabezados:

Encabezamiento Descripción
X-RateLimit-Limit Límite (60)
X-RateLimit-Remaining Solicitudes dejadas en la ventana actual
X-RateLimit-Reset Marca de tiempo de Unix cuando la ventana se reinicia

Cuando se excede el límite: 429 Demasiadas solicitudes y encabezado Retry-After (segundos hasta el reintento).

Consejos: utilice page_size hasta 50 para listas; no sondee POST /search más a menudo de lo necesario: las respuestas se almacenan en caché (consulte “Almacenamiento en caché”).

Descripción general del punto final

Parámetros completos de consulta/cuerpo: en OpenAPI.

Método Camino Objetivo
POST /v1/reports/search Buscar informes por cuerpo ReportListFilterSchema, paginación, clasificación
GET /v1/reports/favorites Lista de informes favoritos del usuario actual
POST /v1/reports/favorites Agregar un informe a favoritos
DELETE /v1/reports/favorites/{report_type}/{report_id} Quitar de favoritos
GET /v1/reports/by-domain/{domain} Encuentre ID de informes por nombre de dominio exacto
GET /v1/reports/{report_type}/{report_id} Informe completo por tipo de base de datos e identificación del informe
GET /v1/reports/check/expired/{report_id} Compruebe si el dominio se ha caído para obtener un informe caducado
GET /v1/user Perfil de usuario (PublicUserProfileSchema)
GET /v1/domains/checker/expiry/{domain} Comprobación en vivo: si el dominio está disponible para registrarse
GET /v1/domains/checker/karma_metric/{domain} Cálculo de Live Karma Metric a través de WayBack Machine

Referencia de parámetros del modelo

A continuación se muestra un mapa práctico a nivel de parámetros para los 3 modelos principales de OpenAPI que definen la mayoría de las capacidades de API.

ReportListFilterSchema (cuerpo de solicitud para POST /v1/reports/search)

Semántica de valores utilizada en este esquema:

  • null o campo omitido = sin filtro.
  • Los campos de consulta de cadenas admiten , para AND y | para OR cuando esté documentado.
  • Los rangos de fechas son matrices de 2 cadenas: [from, to].
  • La mayoría de los rangos de puntuación utilizan *_min / *_max inclusive.
Parámetro Tipo Descripción
domain cadena|nulo Filtro de subcadena de dominio, que no distingue entre mayúsculas y minúsculas. , = AND (todos los términos deben coincidir), | = O (cualquier término). Longitud máxima: 350.
tlds cadena|nulo Lista de TLD separada por coma o espacio (por ejemplo, .com .net .org). Longitud máxima: 350.
domain_type cadena[]|nulo Valores permitidos: auctions, backorder, buynow, expired. O lógica entre valores seleccionados.
favorites booleano |nulo true = solo favoritos, false = excluir favoritos. Requiere contexto de usuario autenticado.
categories cadena[]|nulo O lógica por categoría, admite formato Category / Subcategory, coincidencia de subcadenas que no distingue entre mayúsculas y minúsculas.
languages string Consulta de idioma con , (AND) / | (O), coincidencia de subcadenas que no distingue entre mayúsculas y minúsculas. Longitud máxima: 350.
keywords cadena|nulo Buscar en contenido de Wayback (title, description, h1-h6, etc.). , = Y, | = O. Longitud máxima: 350.
website_ids string[] ID como GA/Metrika para encontrar dominios del mismo propietario.
domain_length_min / domain_length_max entero |nulo Límites de longitud del dominio (documentados como 1..30).
domain_numbers / domain_hyphens boolean Requerir/excluir dígitos y guiones en los nombres de dominio.
report_added_time cadena[2]|nulo Rango de fechas: ["YYYY-MM-DD","YYYY-MM-DD"]. El backend aplica automáticamente los límites del día de inicio/finalización.
karmascore_min / karmascore_max entero |nulo Límites de KarmaScore, 0..100.
karmametric_min / karmametric_max entero |nulo Límites métricos de Karma, 0..100.
brandscore_min / brandscore_max entero |nulo Límites de puntuación de marca, 0..100.
openpagerank_min / openpagerank_max entero |nulo Límites abiertos de PageRank, documentados como 0...10.
ahrefs_dr_min / ahrefs_dr_max número |nulo Límites de Ahrefs DR, 0..100.
ahrefs_ur_min / ahrefs_ur_max número |nulo Límites UR de Ahrefs, 0..100.
ahrefs_ar_min / ahrefs_ar_max entero |nulo Límites de rango de Ahrefs (>= 0).
majestic_tf_min / majestic_tf_max entero |nulo Límites TF majestuosos, 0..100.
majestic_cf_min / majestic_cf_max entero |nulo Límites majestuosos de CF, 0..100.
majestic_bl_min / majestic_bl_max integer Límites majestuosos de vínculos de retroceso.
majestic_rd_min / majestic_rd_max integer Límites majestuosos de dominios de referencia.
majestic_topics / majestic_lang string[] / string Filtros de tema y de idioma ancla.
moz_da_min / moz_da_max entero |nulo Límites de Moz DA, 0..100.
moz_ss_min / moz_ss_max entero |nulo Límites de puntuación de spam de Moz, 0..100.
moz_bl_min / moz_bl_max integer Límites de vínculos de retroceso de Moz.
moz_rd_min / moz_rd_max integer Límites de dominios de referencia de Moz.
moz_bl_url / moz_bl_anchor string Filtros de frase de anclaje/URL de vínculo de retroceso de Moz.
sw_visits_min / sw_visits_max integer Límites de visitas web similares.
sw_last_traffic_date cadena[2]|nulo Rango de meses de SimilarWeb: ["YYYY-MM","YYYY-MM"].
sw_country_filters object[] Filtros de participación de países (country, opcional share_min).
sw_ts_direct_min...sw_ts_social_max número |nulo Límites de participación del canal de fuente de tráfico web similar, 0..100.
wa_age_min / wa_age_max entero |nulo Antigüedad del dominio Wayback en años.
wa_first_snap / wa_last_snap cadena[2]|nulo Rango de fechas: ["YYYY-MM-DD","YYYY-MM-DD"] para la primera/última ventana de instantáneas.
wa_changes_min/max, wa_redirects_min/max, wa_parkings_min/max integer Contadores de historia de Wayback.
wa_hieroglyphs, wa_redirects, wa_error403 boolean Banderas de calidad del contenido de Wayback.
wa_lang_filters object[] Filtros de idioma Wayback (language, opcional ratio_min).
wa_server_code, wa_server_code_ratio_min/max entero |nulo / número |nulo Filtro de código del servidor Wayback (por ejemplo, 200, 301, 302, 403, 404) + límites de relación 0..100.
ke_etv_min/max, ke_total_min/max integer Palabras clave en todas partes Valor del tráfico/límites de palabras clave.
ke_keyword string Filtro de frases de palabras clave en todas partes.
google_has_index, google_has_mentions booleano |nulo true/false/semántica unset para requerir índice o menciones en Google SERP.
google_title_index/mentions, google_description_index/mentions string Filtros de frase de descripción/título de fragmento SERP.
trustpilot_rating_min/max, trustpilot_reviews_count_min/max número |nulo / entero |nulo Límites de calificación de Trustpilot (0..5) y límites de recuento de reseñas.
trustpilot_category string Filtro de frases de categoría de Trustpilot.
auction_source cadena[]|nulo Nombres de fuentes de subasta (no distinguen entre mayúsculas y minúsculas) o valor compuesto `fuente
auction_end_time, auction_added_time cadena[2]|nulo Rango de fechas: ["YYYY-MM-DD","YYYY-MM-DD"].
auction_price_min/max number Límites del precio de la subasta.
auction_bids_min/max integer Las ofertas de subasta cuentan con límites.
combine_seo objeto|nulo CombineSEOFilter entre proveedores: autoridad/vínculos de retroceso/dominios de referencia/tráfico/palabras clave/url-vínculo de retroceso/anclajes, con lógica OR limitada al proveedor en cada fila y Y entre filas.

ReportListResponseSchema (respuesta para POST /search y GET /favorites)

Parámetro Tipo Descripción
report_list ReportItem[] Filas paginadas para vista de tabla y generación de listas cortas.
total_count integer Número total de registros coincidentes para el filtro actual.

Los campos de nivel de fila report_list[] (de ReportItem) incluyen:

Parámetro Tipo Descripción
report_id string Identificador de informe estable (utilizado para el informe completo y los favoritos).
report_type string Uno de auctions, expired, backorder, buynow.
domain, domain_tld string Nombre de dominio y TLD.
added_at, updated_at integer Marcas de tiempo.
processed, demo, is_expired boolean Banderas de estado utilizadas en flujos de trabajo de UI/API.
karmascore, karmametric, brandscore integer Métricas básicas de calidad/marcabilidad.
ahrefs_dr, ahrefs_ur number Métricas resumidas de Ahrefs.
majestic_tf/cf/bl/rd, moz_da/ss/bl/rd integer Métricas resumidas de Majestic y Moz.
ke_etv, ke_total integer Valores de resumen de palabras clave en todas partes.
sw_last_traffic, sw_country_share, sw_sources integer/object Resúmenes de tráfico web similares.
wa_age, wa_last_snap, wa_changes, wa_langs, wa_server_code integer/array Señales resumidas de Wayback.
google_index, trustpilot_rating, trustpilot_reviews_count boolean/number/integer Campos de resumen de Google/Trustpilot.
auctions array/object Resumen de las entradas a la subasta si está disponible.

ReportFullResponseSchema (respuesta para GET /v1/reports/{report_type}/{report_id})

Parámetro Tipo Descripción
report_id, report_type, domain, domain_tld string Campos de identidad básicos.
domain_length, domain_numbers, domain_hyphens integer/boolean Atributos de la estructura del dominio.
favorite, demo, processed, is_expired boolean Informar sobre indicadores de estado y relacionados con el usuario.
added_at, updated_at, created_at, checked_at, expire_checked_at integer Marcas de tiempo del ciclo de vida.
providers_status object Mapa de estado de procesamiento por proveedor (valores de cadena).
web_archive object Datos de Wayback Machine: consulte el desglose a continuación.
metrics DomainMetrics Métricas anidadas de SEO/tráfico/reputación: consulte el desglose a continuación.
auctions objeto|nulo Lotes de subasta agrupados por end_time; consulte el desglose a continuación.

metricsDomainMetrics

La mayoría de los bloques de proveedores pueden ser un objeto con datos, false (no cargado) o null. categories y blacklists también pueden ser [] cuando están vacíos.

Parámetro Tipo Descripción
openpagerank número |entero |booleano |nulo Abra la puntuación de PageRank (normalmente de 0 a 10) cuando esté disponible.
categories CategoríaDatos[] |booleano |nulo Categorías de contenido de proveedores de clasificación.
blacklists Datos de listas negras[] |booleano |nulo Accesos a la lista negra de seguridad/reputación.
ahrefs AhrefsDatos|booleano |nulo Métricas del dominio Ahrefs.
majestic MajesticData|booleano |nulo Majestic Trust/Citation Flow y perfil de vínculo de retroceso.
moz MozData|booleano |nulo Autoridad de Moz, puntuación de spam y detalles del vínculo de retroceso.
keywordseverywhere Palabras clave en todas partesDatos |booleano |nulo Palabras clave en todas partes: estimaciones de tráfico/palabras clave.
similarweb Datos Web similares |booleano |nulo Visitas web similares, fuentes y uso compartido geográfico.
brandscore Datos de puntuación de marca |booleano |nulo Componentes de la puntuación de marcabilidad.
karma_metric KarmaMetricData|booleano |nulo Puntuación de Karma Metric de la historia de Wayback.
trustpilot Datos de Trustpilot|booleano |nulo Estadísticas de reseñas y calificaciones de Trustpilot.
google GoogleDatos|booleano |nulo Google indexa y menciona fragmentos de SERP.
ai_summary cadena|nulo Texto de resumen de dominio generado por IA.

AhrefsData

Parámetro Tipo Descripción
domain_rating número |nulo Ahrefs DR.
url_rating número |entero |nulo Ahrefs UR.
ahrefs_rank entero |nulo Rango de Ahrefs (inferior = más fuerte).

MajesticData

Parámetro Tipo Descripción
tf, cf entero |nulo Flujo de confianza / Flujo de citas (0..100).
backlinks, refdomains entero |nulo Los vínculos de retroceso y los dominios de referencia cuentan.
primary_topic cadena|nulo Categoría temática principal.
topics matriz |nulo Lista de distribución de temas.
anchor_lang matriz |nulo Distribución del idioma del texto ancla.
indexed_urls, referring_ips, referring_subnets entero |nulo Contadores de diversidad de índices y redes.

MozData

Parámetro Tipo Descripción
moz_domain_authority entero |nulo Moz DA.
moz_spam_score entero |nulo Puntuación de spam de Moz.
page_rank, moz_link_propensity número |entero |nulo Rango heredado y propensión a vincularse.
moz_*_to_subdomain campos entero |nulo Contadores de gráficos de enlaces de Moz (páginas/dominios, seguir/nofollow/redireccionar/eliminar).
moz_da_history_values cadena|nulo Valores del historial de DA serializados.
backlinks MozBacklink[] |nulo Filas de vínculo de retroceso (domain_source, url_source, domain_target, url_target, anchor_text, harmonic_centrality, last_found_date).

KeywordseverywhereData

Parámetro Tipo Descripción
etv entero |nulo Valor de tráfico estimado.
total_keywords entero |nulo Total de palabras clave rastreadas.
data ElementoPalabraClave[] |nulo Filas de palabras clave (position, etv, keyword).

SimilarWebData

Parámetro Tipo Descripción
estimated_monthly_visits objeto|nulo Mes → mapa de visitas.
traffic_sources Fuentes de tráfico|nulo Compartir canales: Social, Paid Referrals, Mail, Referrals, Search, Direct (proporciones 0..1).
top_country_shares PaísCompartido[] |nulo Distribución geográfica (Country, CountryCode, Value).
engagments Compromisos |nulo BounceRate, PagePerVisit, Visits, TimeOnSite, Month, Year.
category cadena|nulo Categoría de sitio web similar.

BrandscoreData

Parámetro Tipo Descripción
pronounceability, memorability, uniqueness, appeal, brandscore integer Componentes de brandability y puntuación final.

KarmaMetricData

Parámetro Tipo Descripción
karma_metric integer Puntuación final, 0..100.
components KarmaMetricComponents A_mass, A_cont, A_stab, A_trend (cada 0..100).
period cadena|nulo Período en formato YYYY-MM (o null cuando no esté disponible).

TrustpilotData

Parámetro Tipo Descripción
rating número |nulo Clasificación, normalmente de 0 a 5.
reviews_count entero |nulo Número de reseñas.
category cadena|nulo Categoría empresarial de Trustpilot.

GoogleData

Parámetro Tipo Descripción
google_index GoogleItem[] |nulo Páginas indexadas para site:domain (rank, url, title, description).
google_mentions GoogleItem[] |nulo Mencione los resultados de las búsquedas de dominios citados.

CategoryData / BlacklistsData

Modelo Campos clave
CategoryData categories[], vendor, info_url
BlacklistsData vendor, info_url, opcional info

web_archive (carga útil de Wayback Machine)

Objeto con tres bloques principales: info, ts_summary, history. En las respuestas del informe completo, history se devuelve más reciente primero.

Parámetro Tipo Descripción
info objeto|nulo Resumen de cobertura de archivo para el dominio.
ts_summary objeto|nulo Señales KarmaScore / Wayback agregadas utilizadas en filtros de tabla.
history array Línea de tiempo de instantáneas (un objeto por captura de Wayback).

web_archive.info

Parámetro Tipo Descripción
snap_counter integer Número total de instantáneas de Wayback contadas.
years_counter integer Número de años con actividad de archivo (señal de antigüedad del dominio).
first_ts integer Marca de tiempo Unix de la primera instantánea.
last_ts integer Marca de tiempo Unix de la última instantánea.
years object Año → mapa de recuento de instantáneas mensual (minigráfico/datos de calendario).

web_archive.ts_summary

Parámetro Tipo Descripción
average_karma_score integer KarmaScore promedio, 0..100 (se asigna al campo de lista karmascore).
wa_changes integer Número de cambios de contenido significativos en el historial escaneado.
wa_langs array Filas de distribución de idiomas: language, pageRatio (0..100).
wa_server_code array Distribución de código HTTP: server_code (por ejemplo, 200, 301, 403), response_ratio (0..100).
wa_tags array Etiquetas de contenido detectadas a lo largo del historial.
pattern_shares array Filas compartidas de patrón: factor, description, share.
chart_data array Puntos de la serie temporal: timestamp, karma_score, lang, server_code, tags, detected_patterns.

web_archive.history[] (fila de instantáneas)

Parámetro Tipo Descripción
snaped_at integer Marca de tiempo instantánea de Unix.
webarchive_link cadena|nulo URL de retorno para esta captura (null al cerrar el marcador de posición).
headers objeto|nulo Metadatos HTTP, comúnmente status_code (200, 301, 302, 403, 404, 429,…), original_url.
screenshot booleano |nulo true si existe una captura de pantalla (el binario se almacena por separado; se recupera a través de la API de captura de pantalla en la interfaz de usuario).
content_info objeto|nulo Contenido de la página analizado (ver más abajo).
karma_score objeto|nulo Puntuación por instantánea: score (0..100), detected_patterns, tags (banderas porno/cripto/juegos/…).
redirects matriz |nulo Redirigir los datos de la cadena cuando estén presentes.
website_ids matriz |nulo ID de sitios detectados (name, website, ids[]), p. etiquetas analíticas.
built_with objeto|nulo Carga útil de detección de pila de tecnología (cuando esté disponible).

web_archive.history[].content_info

Parámetro Tipo Descripción
lang cadena|nulo Código de idioma de página detectado.
title, description, keywords cadena|nulo Campos de texto de meta/página utilizados en filtros y interfaz de usuario.
generator, author, copyright cadena|nulo Metacampos adicionales.
h1h6 cadena[]|nulo Textos de encabezado (buscables mediante el filtro keywords).
cloud_words matriz |nulo Entradas de nube de palabras (word).
external_links, internal_links matriz |nulo Listas de enlaces salientes/entrantes.
rel_canonical, meta_robots cadena|nulo URL canónica y meta de robots.
length_symbols, length_words integer Contadores de tamaño de contenido.

auctions (lotes de subasta)

Presente cuando el informe tiene datos de subasta (auctions y, a veces, filas relacionadas en otras bases). En las respuestas del informe completo, los lotes se agrupan por hora de finalización:

{
  "1764441900": [
    { "source": "godaddy", "sale_type": "auction", "price": 120, "bids": 3, "...": "..." }
  ]
}
  • Clave de objeto = end_time (segundos Unix).
  • Valor = conjunto de objetos de lote que finalizan en ese momento (varias plataformas pueden compartir una clave).
Parámetro Tipo Descripción
source string Plataforma de subasta/fuente de registro (por ejemplo, godaddy, namejet, dynadot, dropcatch, sedo, sav.com). No distingue entre mayúsculas y minúsculas en los filtros.
sale_type string Tipo de listado (por ejemplo, auction, buynow, Closeout, Pre-Release, Dropped).
domain string Nombre de dominio del lote.
item_id string ID de lote/listado específico de la plataforma.
end_time integer Hora de finalización del lote (segundos Unix); También se utiliza como clave de agrupación en el informe completo.
price number Precio actual (normalmente USD).
bids entero |nulo Recuento de ofertas cuando corresponda.
currency string Símbolo/código de moneda (predeterminado "$").
report_type string Base propietaria: auctions, backorder o buynow.
priority integer Peso de clasificación/prioridad interna (predeterminado 0).

Consejo de filtro: auction_source en la búsqueda acepta fuente simple (godaddy) o valor compuesto source|sale_type (por ejemplo, godaddy|auction).

Para restricciones de campo exactas (reglas que admiten valores NULL, valores de enumeración, mínimo/máximo, objetos anidados), utilice siempre OpenAPI o ReDoc.

Parámetro report_type

Para ver el informe completo y los favoritos: auctions, expired, backorder, buynow. El valor all solo se usa en la lógica de búsqueda (todas las bases de datos), no como {report_type} en la ruta.

Paginación y clasificación (lista de puntos finales)

Parámetros de consulta:

Parámetro Por defecto Descripción
page 1 Número de página
page_size 10 Tamaño de página (máximo 50)
sort_by added_at Ordenar el nombre de la columna (como en la tabla de la interfaz de usuario; enumeración en OpenAPI)
sort_desc true true — descendente

Dominios en URL

Para {domain} en la ruta, utilice codificación porcentual (IDN, cirílico, etc.). El servidor normaliza el nombre (punycode/minúsculas).

Flujos de trabajo típicos

1. Buscar → informe completo

  1. POST https://api.karma.domains/v1/reports/search con cuerpo de filtro (ver OpenAPIReportListFilterSchema).
  2. De report_list[], tome report_id y report_type.
  3. GET https://api.karma.domains/v1/reports/{report_type}/{report_id}.

Los filtros coinciden con filters in the web UI: fácil de comparar con la interfaz de usuario; consulte OpenAPI para conocer el esquema de campo.

2. Dominio exacto sin una larga búsqueda

  1. GET /v1/reports/by-domain/example.com
  2. En la respuesta, matches[]: hasta una entrada por base de datos donde existe el dominio.
  3. Elija el report_typeGET /v1/reports/{report_type}/{report_id} necesario.

Si matches está vacío, el dominio no está en las bases de datos de Karma.

3. Favoritos

  • Solo lista: GET /v1/reports/favorites
  • Misma lista mediante búsqueda: POST /v1/reports/search con "favorites": true en el cuerpo
  • Agregar: POST /v1/reports/favorites con {"report_id": "...", "report_type": "expired"}
  • Eliminar: DELETE /v1/reports/favorites/expired/{report_id}

4. Quitar cheque (informe caducado)

GET /v1/reports/check/expired/{report_id}identificación del informe, no nombre de dominio.

  • Si la verificación es exitosa, actualiza el registro del informe en el servidor.
  • is_expired: true: el dominio probablemente esté disponible para registrarse (no "la fecha de vencimiento de WHOIS pasó")
  • Repita la verificación en vivo para el mismo informe; como máximo una vez cada 3 horas (regla comercial)
  • La respuesta HTTP se almacena en caché 1 hora para GET repetidos con el mismo report_id (consulte “Almacenamiento en caché”)

5. Verificación de dominio sin informe en la base de datos.

GET /v1/domains/checker/expiry/{domain} — WHOIS/DNS en vivo; no cambia el informe de la base de datos.

  • available: true — probablemente registrable
  • available: false — tomado o reservado
  • La solicitud repetida para el mismo dominio dentro de ~1 hora puede devolver una respuesta almacenada en caché

6. Métrica de Karma sobre la marcha

GET /v1/domains/checker/karma_metric/{domain} — Métrica de karma de WayBack Machine; no actualiza el informe. Campos de respuesta: OpenAPI (KarmaMetricData). Caché de respuesta por dominio: ~1 hora.

Leer más sobre la Métrica de Karma in the blog

7. Equilibrio y plan

GET /v1/user: correo electrónico, balance (créditos), indicadores del plan, datos de suscripción. La clave API no está en la respuesta. Respuesta almacenada en caché ~1 minuto por clave: no realice sondeos con más frecuencia de la necesaria para obtener un saldo actualizado.

Almacenamiento en caché

En el nivel de API pública, el cuerpo de respuesta HTTP se almacena en caché. Algunos puntos finales usan actualización temprana (actualización en segundo plano antes de que expire el TTL: 4 min para 5 min TTL, 50 min para 1 h TTL).

Punto final TTL
POST /v1/reports/search 5 minutos
GET /v1/reports/favorites 5 minutos
POST /v1/reports/favorites ninguno
DELETE /v1/reports/favorites/{report_type}/{report_id} ninguno
GET /v1/reports/by-domain/{domain} 5 minutos
GET /v1/reports/check/expired/{report_id} 1 hora
GET /v1/reports/{report_type}/{report_id} ninguno
GET /v1/user 1 minuto
GET /v1/domains/checker/expiry/{domain} 1 hora
GET /v1/domains/checker/karma_metric/{domain} 1 hora

Los favoritos POST/DELETE cambian los datos del servidor inmediatamente, pero una repetición GET /favorites o POST /search con favorites: true puede devolver una lista obsoleta hasta que caduque el caché (5 min).

Solicitar ejemplos (curl)

Reemplace YOUR_API_KEY con su clave de perfil. URL base: https://api.karma.domains.

La búsqueda expiró con un filtro

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"]
  }'

Cuerpo del filtro: cualquier campo de ReportListFilterSchema en OpenAPI.

Informe completo

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

Búsqueda por dominio

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

Añadir a favoritos

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"
  }'

Verificación de disponibilidad de dominio

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

Métrica de karma

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

Casos de uso de integración

Canal de selección vencido cada noche

Cron diario: POST /search con un filtro JSON guardado (como saved filter en la interfaz de usuario), paginación con page_size=50, exporta report_id a tu base de datos. Análisis detallado: GET informe completo solo para la lista corta.

Seguimiento de una lista de nombres antes del registro

Cola de dominios → GET /domains/checker/expiry/{domain} → rama en available. No requiere informe en Karma.Domains.

Sincronización de favoritos con CRM interno

Periódico GET /favorites; sobre la acción del usuario en CRM: POST/DELETE favoritos. Cuenta para caché de lista de ~5 minutos.

Análisis de BI/embudo

Exporte páginas de búsqueda, agregue total_count y métricas de report_list sin abrir la interfaz de usuario. Esquema de fila de lista: ReportListResponseSchema en OpenAPI.

Scripts MCP + en una tecla

El equipo utiliza MCP en el cursor para búsquedas ad hoc y API pública para ETL estable. Total 60 solicitudes por minuto: planifique lotes y retrase en 429.

MCP y API pública

API pública (REST) MCP
Audiencia Desarrolladores, scripts, ETL Asistentes de IA (Cursor, Claude)
Interfaz HTTP+JSON Diálogo, herramientas
Documentos Esta página + OpenAPI /es/expired-domains-mcp/
Datos Mismos informes y bases de datos. Mismo
Clave y límite Compartido Compartido

Para integraciones de código nuevo, comience con REST. Para experimentos de chat: MCP.

Preguntas frecuentes

¿Dónde está la referencia completa del campo de filtro?

OpenAPI, esquema ReportListFilterSchema. Los significados de los campos coinciden con filter help en la interfaz de usuario.

¿Cuál es la diferencia entre available y is_expired?

Ambos en el contexto de API significan: el dominio probablemente esté disponible para registrarse. available — verificación en vivo por nombre (/domains/checker/expiry). is_expired: cheque vinculado a un informe de base de datos vencido (/reports/check/expired/{report_id}).

¿Por qué 403 con una clave correcta?

Sin plan Pro activo. Consulta suscripción en el perfil.

¿Por qué la respuesta de la API no coincide con la interfaz de usuario o con una acción recién realizada?

Caché HTTP de API pública: consulte la tabla en "Almacenamiento en caché". Cuenta para TTL al sincronizar con la interfaz de usuario.

¿Qué valores sort_by están permitidos?

Lista de enumeración en OpenAPI: nombres de las columnas de la tabla de informes en la aplicación web.

¿Necesito esta página si existe OpenAPI?

OpenAPI es la fuente de verdad para tipos y campos. Esta página agrega contexto: límites, caché, orden de llamadas, casos de uso y dificultades que no están en el esquema.

¿Hay una caja de arena?

Sin zona de pruebas separada; use una cuenta Pro y respete los límites de tarifas. Para la depuración, GET /user y un POST /search estrecho con un filtro estricto funcionan bien.

Códigos de error

Código Significado
200 Éxito
401 No autorizado (clave)
403 Ningún profesional
404 Informe o recurso no encontrado
422 Error de validación de cuerpo/consulta (filtro no válido, sort_by,…)
429 Límite de tarifa excedido
503 Limitador de tarifas no disponible temporalmente

El cuerpo del error suele tener detail (cadena o matriz de objetos de validación). Ejemplo:

{
  "detail": "Invalid API key"
}

Enlaces útiles

¡Pruebe gratis!

¡Use créditos de bonificación!

Abrir lista de dominios
+5