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.
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
{
"email": "persona@ejemplo.com"
}| Campo | Tipo | Qué es |
|---|---|---|
| emailobligatorio | string | Correo a consultar. Se normaliza a minúsculas. Alias aceptado: `correo`. |
| refresh | boolean | Ignora 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 -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"}'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();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
{
"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.