Endpoints REST sobre los mismos datos que ves en el dashboard. Sin autenticación, rate-limit razonable, todo JSON. Usalo para investigación, dashboards externos, integraciones de prensa.
https://antisemitismo.kavnes.com. Todas las respuestas tienen Content-Type: application/json; charset=utf-8 y un campo ok: true|false al inicio. Errores: { "ok": false, "error": "..." }. Timestamps en milisegundos (UNIX epoch).
Feed paginado de incidentes clasificados, ordenados por timestamp descendente.
| Param | Tipo | Descripción |
|---|---|---|
| country | ISO-2 | Filtrar por país (ej. AR, FR). |
| continent | string | Filtrar por continente: EU, NA, LATAM, MENA, AS, OC, SSA. |
| type | enum | attack, vandalism, hate_speech, legislation, boycott, denial, threat. |
| severity | enum | low, medium, high, critical. |
| before | ts (ms) | Solo incidentes con ts < before (paginación). |
| since | ts (ms) | Solo incidentes con ts >= since. |
| limit | int | 1-100, default 20. |
| verified | bool | 1 para solo incidentes con ≥ 2 fuentes corroborantes. |
curl 'https://antisemitismo.kavnes.com/api/incidents?country=AR&limit=5'
{
"ok": true,
"count": 5,
"data": [
{
"id": 2655, "ts": 1777350933399, "source_ts": 1776268920000,
"country": "AR", "type": "attack", "severity": "medium",
"description": "...",
"description_es": "...",
"description_en": "...",
"original_language": "es",
"source_label": "CLARIN", "source_url": "https://...",
"source_count": 2, "credibility_score": 12,
"additional_sources": [{ "label": "INFOBAE", "url": "..." }],
"method": "ai"
}
]
}
Devuelve un incidente puntual por ID. 404 si no existe.
curl https://antisemitismo.kavnes.com/api/incidents/2655
Top países por conteo de incidentes en una ventana.
| days | int | Ventana en días (1-365, default 30). |
| limit | int | 1-50, default 20. |
curl 'https://antisemitismo.kavnes.com/api/countries?days=7&limit=10'
Comparación período actual vs anterior (mismo número de días).
| days | int | Ventana en días (1-180, default 30). |
Score por continente: severidad × frescura, banda categórica fija. Usado por la home y el widget de embed.
| days | int | Ventana (1-180, default 30). |
curl 'https://antisemitismo.kavnes.com/api/index/continent?days=30'
{
"ok": true, "days": 30, "ts": 1777350933399,
"data": [
{ "code": "EU", "label": { "es": "Europa", "en": "Europe" },
"score": 431.2, "band": "critical", "count": 200,
"critical": 0, "high": 62 },
...
]
}
Items recolectados en el último ciclo (con un flag matched indicando si hicieron match con el lexicon de antisemitismo). Es el feed que alimenta el LIVE del dashboard. Se actualiza cada 10 minutos.
Items que hicieron match con keywords de antisemitismo, persistidos a través de ciclos. Subset del stream que no necesariamente pasó la clasificación a incidente.
| lang | string | Idioma detectado. |
| source | string | newswires, reddit, telegram, adl, bellingcat. |
| country | ISO-2 | Filtro por país. |
| before | ts | Paginación. |
| since | ts | Cota inferior. |
| limit | int | Default 50. |
Stats agregadas: matches por idioma, por fuente, por país.
| days | int | Ventana (1-180, default 30). |
Alertas activas de anomalía (spike vs baseline). El endpoint funciona pero el strip está oculto en la UI hasta tener ≥ 8 semanas de baseline real (~ junio 2026).
Búsqueda full-text (FTS5) sobre todo el archivo histórico. Misma capa que potencia /archivo.
| q | string | Query (ej. "synagogue Berlin", "Milei"). |
| country | ISO-2 | Filtro por país. |
| type | enum | Tipo de incidente. |
| severity | enum | Severidad. |
| since | ts | Desde (ms). |
| until | ts | Hasta (ms). |
| verified | bool | Solo verificados (≥ 2 fuentes). |
| limit | int | Default 50, max 200. |
| offset | int | Paginación. |
Mismos filtros que /api/search pero devuelve CSV (hasta 5000 filas). Headers Content-Disposition: attachment — descarga directa.
curl 'https://antisemitismo.kavnes.com/api/search.csv?country=AR&since=1777000000000' -o ar.csv
Healthcheck mínimo. Devuelve { "ok": true, "ts": ... }. Sirve para uptime monitors.
Además de los endpoints JSON, el monitor expone formatos pensados para consumo directo (no requieren parsing en el cliente):
/incidents.rss — RSS 2.0 feed de incidentes verificados. Soporta query params country, type, severity, lang=es|en, verified=0. [cómo suscribirse]/embed — Widget embebible (iframe) con el índice continental en vivo. CSP frame-ancestors *./sitemap.xml — Sitemap dinámico con páginas estáticas + permalinks de los últimos 200 incidentes.Sin autenticación. Rate limit suave a través de express-rate-limit — uso razonable (un cycle cada minuto, batches de queries) está dentro del presupuesto. Crawlers que martillan reciben 429.
Los datos generados por el monitor (clasificación, traducciones, scores) están licenciados CC BY 4.0. Citá Monitor Global de Antisemitismo (2026), antisemitismo.kavnes.com. El texto original de las noticias pertenece a sus medios — respetá su licencia. Detalles en /legal.