Esta página describe cada endpoint de la API Feed de dominios. Para empezar, autenticarte, conocer los límites de tu plan o entender los errores, ve a los primeros pasos. Los valores de los ejemplos son inventados.
Convenciones
- URL base:
https://api.cifradia.com. Todos los endpoints de datos cuelgan de/v1. - Autenticación: la llave va en la cabecera
Authorization: Bearer <tu llave>, nunca en la URL. En los ejemplos se lee de la variableKEY. - Formato: las respuestas son JSON (
/v1/dailyzip/devuelve un ZIP). Los parámetros van en la query string; si un valor lleva caracteres especiales, como%o|, codifícalo (curl --data-urlencodelo hace por ti). Por ejemplo, el comodín%se escribe%25en la URL:?kw=%25banco%25. - Fechas:
yyyymmdden las peticiones (por ejemplo20260115) yyyyy-mm-dden las respuestas. Todas son UTC. - Plan: tu plan limita el historial al que puedes llegar, los TLD que puedes consultar y si puedes bajar el ZIP diario. Fuera del plan, la API responde
403. - Especificación: el documento OpenAPI está en api.cifradia.com/openapi.json.
export KEY="<tu llave>"
GET /v1/tlds
Lista los TLD con los que trabaja el feed, con sus totales acumulados y los conteos de la última actualización de cada uno.
Parámetros
| Parámetro | Tipo | Por defecto | Valores y notas |
|---|---|---|---|
listall | booleano | false | Con |
Ejemplo
curl -H "Authorization: Bearer $KEY" "https://api.cifradia.com/v1/tlds"
Respuesta
{
"status": true,
"records": 2,
"data": [
{
"tld": "com",
"domaincount": 1000,
"total_added_count": 1200,
"total_deleted_count": 200,
"latest_add_count": 30,
"latest_delete_count": 10,
"last_processed": "2026-01-15"
},
{
"tld": "net",
"domaincount": 400,
"total_added_count": 450,
"total_deleted_count": 50,
"latest_add_count": 12,
"latest_delete_count": 4,
"last_processed": "2026-01-15"
}
]
}
Notas
- Con un plan limitado a ciertos TLD, la lista solo trae esos TLD.
recordses el número de TLD devueltos.domaincountes el neto acumulado (altas menos bajas);total_added_countytotal_deleted_countson los brutos acumulados;latest_add_countylatest_delete_countcorresponden solo a la última actualización procesada (last_processed).
GET /v1/added
Devuelve los dominios registrados en una fecha o en un rango de fechas, con filtros por palabra clave, TLD e IDN.
Parámetros
| Parámetro | Tipo | Por defecto | Valores y notas |
|---|---|---|---|
date | texto | último día con datos | Fecha de referencia. Si la omites, se usa el último día con datos entre los TLD que pidas o, si no pides ninguno, entre los de tu plan. |
kw | texto | ninguno | Filtro por palabra clave sobre el nombre del dominio, sin el TLD. Separa
alternativas con |
tlds | texto | todos los de tu plan | TLD separados por coma, sin punto y sin distinguir mayúsculas, por ejemplo
|
dcm | texto | eq | Modo de comparación de la fecha: |
idn | entero | 2 |
|
sorton | texto | date | Campo por el que se ordenan los resultados, de mayor a menor: |
dm | texto | data |
|
limit | entero | 50000 | Cuántos dominios devolver como máximo. El tope es |
offset | entero | 0 | Cuántos dominios saltar, para paginar. Mínimo |
Ejemplo
curl -G -H "Authorization: Bearer $KEY" \
--data-urlencode "kw=%banco%" \
--data-urlencode "tlds=com,net" \
--data-urlencode "date=20260115" \
"https://api.cifradia.com/v1/added"
Respuesta
{
"status": true,
"date": "2026-01-15",
"records": 2,
"source": "added domains",
"data": [
{
"domain": "example.com",
"name": "example",
"tld": "com",
"length": 7,
"idn": 0,
"ipv4": null,
"date": "2026-01-15"
},
{
"domain": "example.net",
"name": "example",
"tld": "net",
"length": 7,
"idn": 0,
"ipv4": null,
"date": "2026-01-15"
}
]
}
Notas
recordses el total de dominios que cumplen los filtros, sin importarlimitnioffset. Para recorrer un resultado grande, repite la petición sumandolimitaoffsethasta llegar arecords, y usasorton=domain: con el orden por defecto hay empates y las páginas pueden repetir o saltarse dominios.datede la respuesta es la fecha de referencia; cada dominio trae su propiadate, que importa cuando pides un rango.domaines el nombre completo (example.com) ynameel nombre sin el TLD.idnvale0o1.ipv4es opcional y esnullcuando no hay valor.- Dominios dados de alta: un dominio cuenta el día en que lo detectamos por primera vez. Los cambios del día anterior suelen estar disponibles hacia las 07:30 UTC; es una referencia, no una garantía.
- Tu plan limita el historial: una fecha anterior a ese límite da
403, y un rango que lo cruza se recorta al límite.
GET /v1/deleted
Devuelve los dominios dados de baja en una fecha o en un rango de fechas, con filtros por palabra clave, TLD e IDN.
Parámetros
| Parámetro | Tipo | Por defecto | Valores y notas |
|---|---|---|---|
date | texto | último día con datos | Fecha de referencia. Si la omites, se usa el último día con datos entre los TLD que pidas o, si no pides ninguno, entre los de tu plan. |
kw | texto | ninguno | Filtro por palabra clave sobre el nombre del dominio, sin el TLD. Separa
alternativas con |
tlds | texto | todos los de tu plan | TLD separados por coma, sin punto y sin distinguir mayúsculas, por ejemplo
|
dcm | texto | eq | Modo de comparación de la fecha: |
idn | entero | 2 |
|
sorton | texto | date | Campo por el que se ordenan los resultados, de mayor a menor: |
dm | texto | data |
|
limit | entero | 50000 | Cuántos dominios devolver como máximo. El tope es |
offset | entero | 0 | Cuántos dominios saltar, para paginar. Mínimo |
Ejemplo
curl -G -H "Authorization: Bearer $KEY" \
--data-urlencode "kw=%banco%" \
--data-urlencode "tlds=com,net" \
--data-urlencode "date=20260115" \
"https://api.cifradia.com/v1/deleted"
Respuesta
{
"status": true,
"date": "2026-01-15",
"records": 2,
"source": "deleted domains",
"data": [
{
"domain": "example.com",
"name": "example",
"tld": "com",
"length": 7,
"idn": 0,
"ipv4": null,
"date": "2026-01-15"
},
{
"domain": "example.net",
"name": "example",
"tld": "net",
"length": 7,
"idn": 0,
"ipv4": null,
"date": "2026-01-15"
}
]
}
Notas
recordses el total de dominios que cumplen los filtros, sin importarlimitnioffset. Para recorrer un resultado grande, repite la petición sumandolimitaoffsethasta llegar arecords, y usasorton=domain: con el orden por defecto hay empates y las páginas pueden repetir o saltarse dominios.datede la respuesta es la fecha de referencia; cada dominio trae su propiadate, que importa cuando pides un rango.domaines el nombre completo (example.com) ynameel nombre sin el TLD.idnvale0o1.ipv4es opcional y esnullcuando no hay valor.- Dominios dados de baja: un dominio cuenta el día en que lo detectamos por primera vez o deja de aparecer. Los cambios del día anterior suelen estar disponibles hacia las 07:30 UTC; es una referencia, no una garantía.
- Tu plan limita el historial: una fecha anterior a ese límite da
403, y un rango que lo cruza se recorta al límite.
GET /v1/history
Devuelve todos los eventos de alta y baja de un dominio, del más antiguo al más reciente. Si el dominio se registró y se eliminó varias veces, aparecen todas.
Parámetros
| Parámetro | Tipo | Por defecto | Valores y notas |
|---|---|---|---|
domain | texto | obligatorio | Nombre completo del dominio, por ejemplo |
Ejemplo
curl -G -H "Authorization: Bearer $KEY" \
--data-urlencode "domain=example.com" \
"https://api.cifradia.com/v1/history"
Respuesta
{
"status": true,
"domain": "example.com",
"records": 2,
"data": [
{ "event_type": "added", "date": "2024-03-02" },
{ "event_type": "deleted", "date": "2025-03-05" }
]
}
Notas
event_typeesaddedodeleted.- Solo se devuelven los eventos dentro del historial de tu plan. Si el TLD del dominio no está en tu plan, la API responde
403. - Un dominio sin eventos devuelve
records: 0ydatavacío.
GET /v1/keywords
Cuenta en cuántos dominios altas o bajas aparece cada palabra clave: al principio del nombre, al final, en medio o en cualquier parte. Solo cuenta dominios no IDN.
Parámetros
| Parámetro | Tipo | Por defecto | Valores y notas |
|---|---|---|---|
source | texto | added |
|
dm | texto | data | Qué devolver: |
kw | texto | las palabras clave que sigue Cifradia | Una o varias palabras separadas por |
tlds | texto | todos los de tu plan | TLD separados por coma. Solo filtra con |
date | texto | último día con datos | Fecha de referencia. |
dcm | texto | eq | Modo de comparación de la fecha: |
limit | entero | 100 | Máximo de filas para |
Ejemplo
curl -G -H "Authorization: Bearer $KEY" \
--data-urlencode "kw=banco|seguro" \
--data-urlencode "dm=data" \
--data-urlencode "source=added" \
"https://api.cifradia.com/v1/keywords"
Respuesta
{
"status": true,
"date": "2026-01-15",
"records": 2,
"data": [
{
"keyword": "banco",
"tld": "com",
"domains_starting_with_word": 12,
"domains_ending_with_word": 5,
"domains_with_word_in_middle": 3,
"domains_containing_word_anywhere": 20
},
{
"keyword": "seguro",
"tld": "com",
"domains_starting_with_word": 8,
"domains_ending_with_word": 2,
"domains_with_word_in_middle": 1,
"domains_containing_word_anywhere": 11
}
]
}
Notas
- Las filas van ordenadas de más a menos dominios que contienen la palabra (
domains_containing_word_anywhere). - Con
dm=statsla respuesta traestatus,dateyrecords, sindata. Condm=aggregate,datatiene una sola fila y sintld. domains_containing_word_anywherecuenta todos los dominios que contienen la palabra, esté donde esté. Un nombre que empieza y termina con ella cuenta en ambos contadores de posición.
GET /v1/dailyzip/
Descarga un ZIP con todos los dominios dados de alta o de baja en un día, un nombre completo por línea, en un archivo de texto. Está pensado para quien necesita el día completo sin paginar.
Parámetros
| Parámetro | Tipo | Por defecto | Valores y notas |
|---|---|---|---|
date | texto | el día anterior (UTC) | Día del que bajar la lista. |
source | texto | added |
|
latest | booleano | false | Con |
Ejemplo
curl -H "Authorization: Bearer $KEY" \
-o added_20260115.zip \
"https://api.cifradia.com/v1/dailyzip/?date=20260115&source=added"
Respuesta
added_20260115.zip
└── added_2026-01-15.txt # un dominio por línea, por ejemplo:
# example.com
# example.net
Notas
- La ruta lleva barra final:
/v1/dailyzip/. - Solo está en los planes que lo incluyen (Pro y Business). En Starter la API responde
403. - El archivo se genera mientras se descarga, así que su tamaño no se conoce de antemano. Respeta el historial de tu plan y solo incluye los TLD que tu plan permite.