API Pública
Todos los endpoints documentados aquí son de acceso libre, sin autenticación. Puedes integrarlos en tus proyectos, bots o aplicaciones.
/ Citas y textos
destacadoPoemas, hadices, citas y fragmentos de la biblioteca del agente IA. Úsalos para mostrar contenido inspirador en tu proyecto.
/api/citas Lista todas las citas publicadas Devuelve todas las citas publicadas, ordenadas por número de menciones del agente y fecha de creación.
Respuesta
[
{"{"}
"id": 1,
"title": "Sobre los olivos",
"author": "Mahmoud Darwish",
"excerpt": "En esta tierra lo que hace la vida digna de vivir...",
"text_type": "poem",
"tags": ["palestina", "tierra", "dignidad"],
"citation_count": 5
{"}"}
]} Ejemplo
curl //api/citas /api/citas/random Cita aleatoria Devuelve una cita aleatoria publicada. Ideal para widgets, pantallas de inicio o bots.
Respuesta
{
"id": 3,
"title": null,
"author": "Ghassan Kanafani",
"excerpt": "La resistencia es un acto de amor...",
"text_type": "quote",
"tags": ["resistencia", "amor"]
} Ejemplo
curl //api/citas/random text_type puede ser:
poem quote hadith prose other
Artículos
/api/articles Lista artículos publicados con paginación.
Parámetros
page | number | def: 1 | Página (base 1) |
per_page | number | def: 10 | Resultados por página (máx. 100) |
limit | number | def: 10 | Alternativo a per_page |
offset | number | def: 0 | Alternativo a page |
curl "//api/articles?page=1&per_page=5" /api/articles/search Búsqueda full-text en artículos publicados (PostgreSQL tsvector).
q | string | def: — | Texto a buscar (requerido) |
limit | number | def: 10 | Máximo resultados (1–20) |
curl "//api/articles/search?q=flotilla&limit=5" /api/articles/{slug} Artículo individual por slug. Devuelve 404 si no está publicado.
curl //api/articles/mi-articulo Material gráfico
/api/media Lista afiches, imágenes, videos y PDFs públicos. Acepta los mismos parámetros de paginación que /api/articles.
curl //api/media Recaudación
/api/fundraising/current Estado actual de la recaudación (yodono.cl). Cacheado cada 15 minutos.
{
"amount_clp": 4250000,
"goal_clp": 10000000,
"description": "Flotilla Sumud Chile",
"source_url": "https://yodono.cl/...",
"fetched_at": "2026-03-23T12:00:00Z"
} Equipo
/api/equipo Lista miembros del equipo con perfil público activo, incluyendo conteo de artículos.
curl //api/equipo /api/autor/{username} Perfil público de un autor con sus últimos 20 artículos publicados.
Hoja de ruta
/api/roadmap Hitos públicos del proyecto ordenados por fecha.
Colaboradores
/api/collaborators Lista colaboradores activos ordenados por sort_order.
/api/hero-banners Banners activos para el hero de la portada.
RSS
/rss/articulos.xml Feed RSS de los 50 artículos más recientes. Responde Content-Type: application/xml.
curl //rss/articulos.xml /rss/material.xml Feed RSS de los 50 materiales más recientes. Responde Content-Type: application/xml.
curl //rss/material.xml Analytics (eventos)
/api/analytics/event Registra un evento de conversión. La IP se anonimiza con SHA-256.
{
"event_type": "article_view", // requerido
"resource_id": 42, // opcional
"resource_slug": "mi-articulo", // opcional
"user_agent": "Mozilla/..." // opcional
}
Tipos válidos: article_view donation_click telegram_click media_download article_share media_share
Devuelve 204 No Content si es exitoso.
Valoraciones
/api/ratings/{type}/{id} Estadísticas de valoración de un recurso. type es article o media.
{ "average": 4.6, "total": 23 } /api/ratings Enviar valoración de 1 a 5 estrellas para un artículo o material.
{ "resource_type": "article", "resource_id": 42, "stars": 5 } /api/instagram/posts Publicaciones de Instagram sincronizadas.
channel_id | number | def: — | Filtrar por canal (opcional) |
limit | number | def: 20 | Máximo 100 |
sort | string | def: recent | "recent" o "popular" |
Health
/health Estado del sistema. Útil para monitoreo.
{
"status": "ok",
"db": "connected",
"redis": "connected"
}
Todos los endpoints devuelven Content-Type: application/json
y tienen CORS habilitado para cualquier origen. Los errores incluyen un campo error con descripción.
Para integraciones o preguntas escribe a contacto@sumud.cl.