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
- Autenticación
- Rate limiting
- Daily row quota
- Resumen de endpoints
- Referencia de parámetros de modelos
ReportListFilterSchema(request body paraPOST /v1/reports/search)ReportListResponseSchema(response paraPOST /searchyGET /favorites)ReportFullResponseSchema(response paraGET /v1/reports/{report_type}/{report_id})- Parámetro
report_type - Paginación y ordenación (list endpoints)
- Dominios en URLs
- Flujos típicos
- Caching
- Ejemplos de solicitud (curl)
- Casos de uso de integración
- MCP y Public API
- FAQ
- ¿Dónde está la referencia completa de campos de filtros?
- ¿Cuál es la diferencia entre
availableeis_expired? - ¿Por qué 403 con una clave correcta?
- ¿Por qué la respuesta de API no coincide con la UI o con una acción recién hecha?
- ¿Qué valores
sort_byestán permitidos? - ¿Necesito esta página si existe OpenAPI?
- Can I export the entire database via the API?
- ¿Hay sandbox?
- Códigos de error
- 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' - Introducción
- Autenticación
- Limitación de velocidad
- Descripción general del punto final
- Referencia de parámetros del modelo
ReportListFilterSchema(cuerpo de solicitud paraPOST /v1/reports/search)ReportListResponseSchema(respuesta paraPOST /searchyGET /favorites)ReportFullResponseSchema(respuesta paraGET /v1/reports/{report_type}/{report_id})- Parámetro
report_type - Paginación y clasificación (lista de puntos finales)
- Dominios en URL
- Flujos de trabajo típicos
- Almacenamiento en caché
- Solicitar ejemplos (curl)
- Casos de uso de integración
- MCP y API pública
- Preguntas frecuentes
- ¿Dónde está la referencia completa del campo de filtro?
- ¿Cuál es la diferencia entre
availableyis_expired? - ¿Por qué 403 con una clave correcta?
- ¿Por qué la respuesta de la API no coincide con la interfaz de usuario o con una acción recién realizada?
- ¿Qué valores
sort_byestán permitidos? - ¿Necesito esta página si existe OpenAPI?
- ¿Hay una caja de arena?
- Códigos de error
- Enlaces útiles
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
- Plan Pro (sin Pro, la API no está disponible).
- 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:
nullo 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/*_maxinclusivos.
| 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. |
metrics → DomainMetrics
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. |
h1 … h6 | 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
POST https://api.karma.domains/v1/reports/searchcon body de filtro (ver OpenAPI →ReportListFilterSchema).- De
report_list[], tomareport_idyreport_type. 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
GET /v1/reports/by-domain/example.com- En la respuesta,
matches[]— hasta una entrada por base donde existe el dominio. - Elige el
report_typenecesario →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/searchcon"favorites": trueen el body - Añadir:
POST /v1/reports/favoritescon{"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 registrableavailable: 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
- OpenAPI (Swagger): https://api.karma.domains/docs
- ReDoc: https://api.karma.domains/redoc
- MCP para IA
- API key: Profile → Settings
- Ayuda de filtros de UI
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
- Autenticación
- Rate limiting
- Daily row quota
- Resumen de endpoints
- Referencia de parámetros de modelos
ReportListFilterSchema(request body paraPOST /v1/reports/search)ReportListResponseSchema(response paraPOST /searchyGET /favorites)ReportFullResponseSchema(response paraGET /v1/reports/{report_type}/{report_id})- Parámetro
report_type - Paginación y ordenación (list endpoints)
- Dominios en URLs
- Flujos típicos
- Caching
- Ejemplos de solicitud (curl)
- Casos de uso de integración
- MCP y Public API
- FAQ
- ¿Dónde está la referencia completa de campos de filtros?
- ¿Cuál es la diferencia entre
availableeis_expired? - ¿Por qué 403 con una clave correcta?
- ¿Por qué la respuesta de API no coincide con la UI o con una acción recién hecha?
- ¿Qué valores
sort_byestán permitidos? - ¿Necesito esta página si existe OpenAPI?
- Can I export the entire database via the API?
- ¿Hay sandbox?
- Códigos de error
- 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' - Introducción
- Autenticación
- Limitación de velocidad
- Descripción general del punto final
- Referencia de parámetros del modelo
ReportListFilterSchema(cuerpo de solicitud paraPOST /v1/reports/search)ReportListResponseSchema(respuesta paraPOST /searchyGET /favorites)ReportFullResponseSchema(respuesta paraGET /v1/reports/{report_type}/{report_id})- Parámetro
report_type - Paginación y clasificación (lista de puntos finales)
- Dominios en URL
- Flujos de trabajo típicos
- Almacenamiento en caché
- Solicitar ejemplos (curl)
- Casos de uso de integración
- MCP y API pública
- Preguntas frecuentes
- ¿Dónde está la referencia completa del campo de filtro?
- ¿Cuál es la diferencia entre
availableyis_expired? - ¿Por qué 403 con una clave correcta?
- ¿Por qué la respuesta de la API no coincide con la interfaz de usuario o con una acción recién realizada?
- ¿Qué valores
sort_byestán permitidos? - ¿Necesito esta página si existe OpenAPI?
- ¿Hay una caja de arena?
- Códigos de error
- Enlaces útiles
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
- Plan Pro (sin Pro, la API no está disponible).
- 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:
nullo 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/*_maxinclusive.
| 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. |
metrics → DomainMetrics
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. |
h1 … h6 | 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
POST https://api.karma.domains/v1/reports/searchcon cuerpo de filtro (ver OpenAPI →ReportListFilterSchema).- De
report_list[], tomereport_idyreport_type. 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
GET /v1/reports/by-domain/example.com- En la respuesta,
matches[]: hasta una entrada por base de datos donde existe el dominio. - Elija el
report_type→GET /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/searchcon"favorites": trueen el cuerpo - Agregar:
POST /v1/reports/favoritescon{"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 registrableavailable: 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
- OpenAPI (arrogancia): https://api.karma.domains/docs
- ReDoc: https://api.karma.domains/redoc
- MCP for AI
- Clave API: Profile → Settings
- UI filter help