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 variable KEY.
  • 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-urlencode lo hace por ti). Por ejemplo, el comodín % se escribe %25 en la URL: ?kw=%25banco%25.
  • Fechas: yyyymmdd en las peticiones (por ejemplo 20260115) y yyyy-mm-dd en 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ámetroTipoPor defectoValores y notas
listallbooleanofalse

Con true incluye también los TLD que todavía no tienen datos (con todos los conteos en 0).

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.
  • records es el número de TLD devueltos. domaincount es el neto acumulado (altas menos bajas); total_added_count y total_deleted_count son los brutos acumulados; latest_add_count y latest_delete_count corresponden 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ámetroTipoPor defectoValores y notas
date

texto yyyymmdd

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

kwtextoninguno

Filtro por palabra clave sobre el nombre del dominio, sin el TLD. Separa alternativas con | (OR) y usa % como comodín: %banco% contiene «banco», banco% empieza por «banco». Sin comodín, el nombre debe ser exactamente igual. _ coincide con cualquier carácter suelto.

tldstextotodos los de tu plan

TLD separados por coma, sin punto y sin distinguir mayúsculas, por ejemplo com,net,org. Si pides uno que tu plan no incluye, la API responde 403.

dcmtextoeq

Modo de comparación de la fecha: eq (ese día), lte (hasta ese día), lt (antes), gte (desde ese día) o gt (después). Los rangos llegan hasta 45 días antes de la fecha (lt, lte) o 45 días después (gt, gte); lte y gte incluyen además la fecha misma.

idnentero2

0: solo dominios no IDN. 1: solo IDN. 2: todos.

sortontextodate

Campo por el que se ordenan los resultados, de mayor a menor: date, domain, length, idn o tld.

dmtextodata

data devuelve el conteo y la lista de dominios; stats devuelve solo el conteo (records), sin la lista.

limitentero50000

Cuántos dominios devolver como máximo. El tope es 250000; un valor mayor da 422.

offsetentero0

Cuántos dominios saltar, para paginar. Mínimo 0.

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

  • records es el total de dominios que cumplen los filtros, sin importar limit ni offset. Para recorrer un resultado grande, repite la petición sumando limit a offset hasta llegar a records, y usa sorton=domain: con el orden por defecto hay empates y las páginas pueden repetir o saltarse dominios.
  • date de la respuesta es la fecha de referencia; cada dominio trae su propia date, que importa cuando pides un rango.
  • domain es el nombre completo (example.com) y name el nombre sin el TLD. idn vale 0 o 1. ipv4 es opcional y es null cuando 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ámetroTipoPor defectoValores y notas
date

texto yyyymmdd

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

kwtextoninguno

Filtro por palabra clave sobre el nombre del dominio, sin el TLD. Separa alternativas con | (OR) y usa % como comodín: %banco% contiene «banco», banco% empieza por «banco». Sin comodín, el nombre debe ser exactamente igual. _ coincide con cualquier carácter suelto.

tldstextotodos los de tu plan

TLD separados por coma, sin punto y sin distinguir mayúsculas, por ejemplo com,net,org. Si pides uno que tu plan no incluye, la API responde 403.

dcmtextoeq

Modo de comparación de la fecha: eq (ese día), lte (hasta ese día), lt (antes), gte (desde ese día) o gt (después). Los rangos llegan hasta 45 días antes de la fecha (lt, lte) o 45 días después (gt, gte); lte y gte incluyen además la fecha misma.

idnentero2

0: solo dominios no IDN. 1: solo IDN. 2: todos.

sortontextodate

Campo por el que se ordenan los resultados, de mayor a menor: date, domain, length, idn o tld.

dmtextodata

data devuelve el conteo y la lista de dominios; stats devuelve solo el conteo (records), sin la lista.

limitentero50000

Cuántos dominios devolver como máximo. El tope es 250000; un valor mayor da 422.

offsetentero0

Cuántos dominios saltar, para paginar. Mínimo 0.

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

  • records es el total de dominios que cumplen los filtros, sin importar limit ni offset. Para recorrer un resultado grande, repite la petición sumando limit a offset hasta llegar a records, y usa sorton=domain: con el orden por defecto hay empates y las páginas pueden repetir o saltarse dominios.
  • date de la respuesta es la fecha de referencia; cada dominio trae su propia date, que importa cuando pides un rango.
  • domain es el nombre completo (example.com) y name el nombre sin el TLD. idn vale 0 o 1. ipv4 es opcional y es null cuando 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ámetroTipoPor defectoValores y notas
domaintextoobligatorio

Nombre completo del dominio, por ejemplo example.com. Se compara sin distinguir mayúsculas. Sin punto (sin TLD) la API responde 400.

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_type es added o deleted.
  • 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: 0 y data vací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ámetroTipoPor defectoValores y notas
sourcetextoadded

added (altas) o deleted (bajas).

dmtextodata

Qué devolver: data (una fila por palabra clave y TLD), stats (solo el número de filas, en records), topkw (las palabras clave más frecuentes, sumando todos los TLD) o aggregate (una sola fila para una palabra clave; exige kw).

kwtextolas palabras clave que sigue Cifradia

Una o varias palabras separadas por |, de 4 o más caracteres cada una; con menos, la API responde 400. Con dm=aggregate solo se usa la primera. Aquí % no es comodín: la palabra se busca dentro del nombre.

tldstextotodos los de tu plan

TLD separados por coma. Solo filtra con dm=aggregate; con los demás modos se ignora (se usan todos los TLD de tu plan), pero un TLD fuera de tu plan sigue dando 403.

date

texto yyyymmdd

último día con datosFecha de referencia.
dcmtextoeq

Modo de comparación de la fecha: eq, lt, gt, lte o gte, con el mismo tope de 45 días que en /v1/added.

limitentero100

Máximo de filas para dm=topkw; el tope es 1000. Los demás modos lo ignoran.

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=stats la respuesta trae status, date y records, sin data. Con dm=aggregate, data tiene una sola fila y sin tld.
  • domains_containing_word_anywhere cuenta 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ámetroTipoPor defectoValores y notas
date

texto yyyymmdd

el día anterior (UTC)Día del que bajar la lista.
sourcetextoadded

added (altas) o deleted (bajas).

latestbooleanofalse

Con true baja lo procesado hasta ahora del día de hoy (UTC). No se puede combinar con date: la API responde 400.

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.