Endpoint: señales de riesgo y antigüedad de un correo

Con un correo devuelve lo que las fuentes públicas conocen de él: los servicios donde está registrado, las filtraciones donde figura con su fecha, si aparece en listas de credenciales filtradas y las exposiciones en equipos infectados. La fecha más antigua conocida es una cota inferior, no la fecha de creación —esa no existe en fuente pública— y la respuesta lo declara.

POST/api/correo1 crédito

Lo que las fuentes públicas conocen de un correo: los servicios donde está registrado (redes, e-commerce, nube, bolsa de empleo y más), las filtraciones conocidas donde figura —con su fecha cuando la conocemos—, si aparece en listas de credenciales filtradas y las exposiciones en equipos infectados por infostealers, con fecha. La respuesta más útil es fechaMasAntiguaConocida: la fecha más antigua que estas fuentes registran para el correo. ⚠️ Es una COTA INFERIOR, no la fecha de creación (que no existe en fuente pública): el correo puede ser más viejo, y antiguedadEsMinima lo declara. La lista de servicios es mejor esfuerzo: la cobertura es parcial. ⚠️ Si una fuente rechaza la consulta (límites de la propia fuente), su campo llega en null y su nombre aparece en senalesBloqueadas: null ahí significa «no sabemos», NUNCA «el correo está limpio». Un correo sin señales responde igual y cobra: es una respuesta válida. Cuesta 1 crédito.

Cuerpo de la solicitud

body (JSON)
{
  "email": "persona@ejemplo.com"
}
Parámetros del cuerpo de la solicitud
CampoTipoQué es
emailobligatoriostringCorreo a consultar. Se normaliza a minúsculas. Alias aceptado: `correo`.
refreshbooleanIgnora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no).

Ejemplos por lenguaje

cURL
curl -X POST 'https://placapi.com/api/correo' \
  -H 'x-api-key: pk_live_TU_CLAVE' \
  -H 'content-type: application/json' \
  -d '{"email":"persona@ejemplo.com"}'
JavaScript (fetch)
const res = await fetch("https://placapi.com/api/correo", {
  method: "POST",
  headers: {
    "x-api-key": "pk_live_TU_CLAVE",
    "content-type": "application/json",
  },
  body: JSON.stringify({"email":"persona@ejemplo.com"}),
});
const data = await res.json();
Python (requests)
import requests

res = requests.post(
    "https://placapi.com/api/correo",
    headers={"x-api-key": "pk_live_TU_CLAVE"},
    json={"email":"persona@ejemplo.com"},
)
data = res.json()

Respuesta exitosa

200 OK — ejemplo (placas y documentos ficticios)
{
  "source": "correo-osint",
  "status": "info",
  "data": {
    "email": "persona@ejemplo.com",
    "servicios": [
      "amazon.com",
      "github.com",
      "spotify.com"
    ],
    "serviciosProbados": 62,
    "serviciosErrores": 41,
    "enCombolists": true,
    "combolistsCount": 3,
    "filtraciones": [
      {
        "nombre": "Adobe",
        "fecha": "2013-12-04"
      },
      {
        "nombre": "Collection-1",
        "fecha": null
      }
    ],
    "fechaPrimeraFiltracion": "2013-12-04",
    "exposicionesInfostealer": [
      "2021-05-25"
    ],
    "fechaPrimeraExposicionInfostealer": "2021-05-25",
    "fechaMasAntiguaConocida": "2013-12-04",
    "senalesBloqueadas": [],
    "antiguedadEsMinima": true
  },
  "mode": "live",
  "fetchedAt": "2026-07-24T15:04:05.000Z",
  "cost": 1
}

Errores y cobro

Cuesta 1 crédito cuando devuelve datos. Códigos posibles: 400 401 402 404 429 500 502 — qué significa cada uno, cuál reintentar y cuál cobra, en errores y rate limits. Autenticación por x-api-key: cómo generar la clave.

Última revisión: 8 de septiembre de 2026 · PlacApi opera desde Colombia. PlacApi no es una entidad oficial del Gobierno.

Contacto