Terremoto·Venezuela

Referencia de la API v1 · solo lectura

Acceso programático a los hechos corroborados del terremoto de Venezuela del 24 de junio de 2026 —daños estructurales, puntos de acopio y necesidades— cada uno con su procedencia. Pública, sin autenticación, libre para usar y citar bajo CC-BY-4.0.

1 · Resumen

Esta API expone, de forma programática y de solo lectura, el conjunto de datos que alimenta el mapa de crisisvenezuela.org tras el terremoto del 24 de junio de 2026. Cada registro es un hecho corroborado de una de tres categorías:

  • daño — un reporte de daño o colapso estructural (un edificio, una estructura).
  • acopio — un punto o centro de recolección de ayuda.
  • necesidad — una solicitud de un recurso (agua, medicinas, rescate…).

¿Para quién? Periodistas, ONG, desarrolladores de mapas/dashboards, y —especialmente— los equipos de los propios sitios que originan los datos, que pueden consumir la API sin reingestar su propia información gracias a la procedencia por registro (ver excluir_fuente).

URL base:

GET https://crisisvenezuela.org/api/v1/facts

Sin autenticación · CORS abierto (Access-Control-Allow-Origin: *) · respuestas cacheadas en CDN · especificación legible por máquina en /api/v1/openapi.json (OpenAPI 3.1). Licencia de los datos: CC-BY-4.0.

Los nombres de parámetros y de campos están en español; se mantienen en inglés solo los términos técnicos universales: bbox, offset y los valores de formato (json | geojson | csv).

2 · Inicio rápido

Una sola petición que devuelve datos de inmediato (los 1000 hechos más recientes, JSON):

curl https://crisisvenezuela.org/api/v1/facts

La respuesta es un sobre con metadatos y un arreglo datos:

{
  "meta": {
    "cantidad": 1000,
    "total": 1342,
    "generado": "2026-06-27T18:00:00.000Z",
    "licencia": "CC-BY-4.0",
    "atribucion": "crisisvenezuela.org + fuentes originales",
    "consulta": { "limite": 1000, "offset": 0, "formato": "json" }
  },
  "datos": [
    {
      "id": "chacao-2879654398988377755",
      "categoria": "daño",
      "nivel": "colapso_total",
      "estructura": "Edificio San Judas Tadeo",
      "municipio": "Chacao",
      "estado": "Miranda",
      "zona": "El Rosal",
      "lat": 10.497, "lon": -66.853,
      "coord_origen": "explicita",
      "descripcion": "Colapso total del edificio, hay personas atrapadas bajo los escombros.",
      "tipo_necesidad": null,
      "atrapados": true,
      "n_fuentes": 3,
      "fuentes": [
        { "fuente": "terremotovenezuela.com", "url": "https://terremotovenezuela.com/edificio/..." },
        { "fuente": "elnacional.com", "url": "https://www.elnacional.com/..." }
      ],
      "fecha": "2026-06-26T14:02:00Z",
      "primera_vez": "2026-06-24T22:10:00Z"
    }
  ]
}

3 · Modelo de datos

Cada elemento de datos (y cada properties en GeoJSON, y cada fila en CSV) es un hecho con estos campos:

CampoTipoSignificado, valores y advertencias
idstringIdentificador estable del hecho: slug del municipio + huella SimHash del texto. Se mantiene mientras el hecho no cambie; úsalo como clave para actualizar o deduplicar en tu lado.
categoriastringTipo de hecho: daño (daño/colapso estructural), acopio (punto de recolección de ayuda) o necesidad (solicitud de un recurso).
nivelstring · nullSolo para daño: colapso_total, severo, parcial o dano (genérico). Se infiere del texto con reglas. null en acopio/necesidad.
estructurastring · nullNombre específico del edificio/estructura cuando se identificó (p. ej. Edificio San Judas Tadeo). null si el reporte es a nivel de zona y no nombra una estructura.
municipiostringMunicipio (nombre legible). Puede venir vacío en hechos sin municipio asignado.
estadostringEstado / entidad federal. Si el hecho no lo trae, se completa con el estado del municipio según el gazetteer.
zonastringZona, sector o referencia local (barrio, urbanización, avenida). Texto libre; puede estar vacío.
lat, lonnumber · nullCoordenadas WGS84. null si el hecho no está geolocalizado. La precisión depende de coord_origen (ver §6).
coord_origenstringProcedencia de lat/lon: explicita (precisa), geocodificada (aproximada) o "" (desconocida/sin coords). Detalle en §6.
descripcionstringEl hecho resumido en una frase, normalizado por IA a partir del o los posts originales.
tipo_necesidadstring · nullSolo para necesidad: recurso solicitado — agua, comida, medicinas, insumos, voluntarios, sangre, rescate, refugio, ropa, otro. null en otras categorías.
atrapadosbooleantrue si el texto menciona personas atrapadas / bajo escombros. Indicio, no confirmación oficial — verifícalo antes de actuar.
n_fuentesintegerNúmero de fuentes distintas que confirman el hecho (deduplicadas por url; si no hay url, por autor). 1 = un solo reporte; mayor = más corroborado. Igual a la longitud de fuentes.
fuentesarrayProcedencia: lista de { fuente, url, kind } deduplicada. fuente = nombre/handle limpio; url = enlace al post original (puede ser ""); kind = tipo de fuente (official/news/...). Úsala para dar crédito y para deduplicar contra tus propios datos.
confianzaobjectModelo de confianza: 3 ejes + insignia Verificado / Reportado / Sin verificar. Contiene badge; reliability (fiabilidad de la fuente); credibility (corroboración, con independent_origins = orígenes independientes, descartando agregadores y reposts); damage (nivel de daño, solo daño). Metodología completa: /docs/trust.
fechastring ISO 8601Última vez que se vio/actualizó el hecho. Es el campo de orden (más reciente primero) y contra el que filtra desde.
primera_vezstring ISO 8601Primera vez que se detectó el hecho.

4 · Cómo se construyen los datos

Transparencia sobre la naturaleza y los límites del dato. El pipeline tiene cuatro etapas:

  1. Agregación de fuentes públicas. Leemos prensa, redes sociales y plataformas ciudadanas (p. ej. terremotovenezuela.com, acopiove, RedQuipu y reportes ciudadanos). Cada ítem conserva su URL de origen.
  2. Triaje y normalización por IA. Un modelo de lenguaje decide si el reporte es relevante, lo clasifica (daño / acopio / necesidad), extrae municipio, estado, zona, estructura y tipo de necesidad, y resume el hecho en una frase en español. Lo irrelevante o en otro idioma se descarta.
  3. Geolocalización. Si el reporte trae coordenadas (o la fuente las publica en su catálogo) se usan directamente (coord_origen=explicita). Si no, la IA extrae un nombre de lugar y un geocodificador OSM / Nominatim lo resuelve a un punto (coord_origen=geocodificada, aproximado).
  4. Corroboración y deduplicación. El mismo hecho contado por varias fuentes se fusiona en un solo registro con SimHash (huella del texto): «4 edificios colapsaron en Chacao» dicho de cinco maneras cuenta una vez, con n_fuentes=5. Se conserva la fuente más creíble como primaria y todas las fuentes en fuentes[].
Naturaleza del dato. Es un agregado de fuentes abiertas durante una emergencia: puede contener errores, duplicados residuales o reportes sin confirmar. No reemplaza a las autoridades oficiales. Trátalo como inteligencia de fuentes abiertas — cada hecho trae su procedencia precisamente para que puedas verificarlo.

5 · Fuentes (de dónde vienen los datos)

El conjunto agrega fuentes públicas de tres tipos —redes sociales y fediverso, prensa, y catálogos estructurados del ecosistema— y las corrobora entre sí. Esta es la vista general: cada registro lleva su lista exacta de orígenes en el campo fuentes, así que el detalle hecho por hecho vive en cada registro, no aquí.

Puedes filtrar por origen con fuente y excluir_fuente, y exigir corroboración —varias fuentes para un mismo hecho— con min_fuentes. Los conteos de abajo son aproximados (se mueven en vivo) y se solapan: un hecho reportado por una red social y por la prensa cuenta en ambas filas —eso es justamente la corroboración—, así que no suman el total de ~10.800 hechos.

Tipo de fuenteFuenteRegistrosDetalle
Redes sociales / Fediverso (~7.900)X / Twitter (x.com)~6.900La corriente más grande; búsquedas en vivo más cuentas curadas.
Instagram (instagram.com)~200Cuentas y reels.
Mastodon / Fediverso~600Repartido entre mastodon.social, mstdn.social, mastodon.world, masto.ai, mas.to, vzla.masto.host y otras instancias; incluye fed.brid.gy, que puentea publicaciones de Bluesky.
Prensa / noticias (~3.650)Google News RSS (news.google.com)~3.600A su vez agrega medios como Reuters, AP, BBC, El Nacional, La Patilla, Efecto Cocuyo, etc.
GDELTMonitoreo global de noticias.
Otros medios sueltosCabeceras individuales fuera de los agregadores.
Catálogos estructurados (plataformas aliadas)terremotovenezuela.app~814Edificios y estructuras con daños.
acopiove.orgCatálogo de centros de acopio y refugios (Venezuela y diáspora). A su vez agrega sub-fuentes que acreditamos por nombre: acopiovzla.com, RefugioVE, @JulietaOsorior, Venezuela Conecta, La Mega, ayudavenezuela.help, entre otras.
RedQuipu (redquipu.com)Red de iniciativas.
Reporta Venezuela (zonasafectadasvenezuela.app)Zonas afectadas, refugios y acopios.
Gracias a todas estas plataformas y a quienes reportan. Este proyecto agrega y corrobora; no reemplaza ni re-aloja. El desglose en vivo, registro por registro, está en el panel «Fuentes» de crisisvenezuela.org y en el campo fuentes de cada hecho.

6 · Procedencia de coordenadas (coord_origen)

No todas las coordenadas son iguales. El campo coord_origen te dice de dónde salieron lat/lon, para que sepas cuánto confiar en su precisión y puedas filtrar:

explicita
Las coordenadas vinieron con el dato: del catálogo de la fuente original (p. ej. terremotovenezuela.com o acopiove) o indicadas explícitamente en el post. Alta precisión — apuntan al lugar real del hecho.
geocodificada
No venían con el dato: el pipeline las derivó. La IA extrajo un nombre de lugar (barrio, urbanización, municipio) y un geocodificador OSM / Nominatim lo resolvió a un punto. Son aproximadas: pueden caer en el centroide del área o estar desplazadas algunos cientos de metros. Corregimos manualmente los errores conocidos cuando los detectamos.
"" (vacío)
Sin procedencia conocida o sin coordenadas (lat/lon en null).
Recomendación. Para máxima precisión (mapas operativos, despacho de ayuda) filtra coord_origen=explicita. Para cobertura amplia (panorama general) usa ambas. Nunca trates una coordenada geocodificada como una dirección exacta.
# Solo hechos con coordenadas precisas, en GeoJSON listo para un mapa
curl "https://crisisvenezuela.org/api/v1/facts?coord_origen=explicita&formato=geojson"

7 · Filtros

Todos los parámetros son opcionales y combinables (se aplican en conjunto, tipo AND). Las listas van separadas por comas. Un valor inválido en categoria, bbox, desde, formato o en los enteros devuelve 400 con {"error": "…"}; los parámetros desconocidos se ignoran. Recuerda codificar la URL (espacios → %20, ñ%C3%B1).

ParámetroTipoValores / descripciónEjemplo
categorialistadaño · acopio · necesidad. Valor fuera de esa lista → 400.?categoria=acopio,necesidad
estadolistaEstado/entidad federal. Sin distinción de mayúsculas; coincidencia exacta.?estado=Miranda
municipiolistaMunicipio. Sin distinción de mayúsculas; coincidencia exacta.?municipio=Chacao
nivellistaSolo daño: colapso_total · severo · parcial · dano.?nivel=colapso_total,severo
tipo_necesidadlistaSolo necesidad: agua, comida, medicinas, insumos, voluntarios, sangre, rescate, refugio, ropa, otro.?tipo_necesidad=agua,medicinas
coord_origenlistaexplicita (precisas) · geocodificada (aproximadas). Ver §6.?coord_origen=explicita
fuentelistaConserva solo registros con al menos una fuente coincidente. Coincide por nombre y por subcadena del dominio (p. ej. terremotovenezuela.com).?fuente=elnacional.com
excluir_fuentelistaAnti-circular. Descarta registros cuyas fuentes estén todas en la lista; el registro sigue apareciendo si además tiene otra fuente. Ver nota abajo.?excluir_fuente=terremotovenezuela.com
bbox4 númerosCaja geográfica minLon,minLat,maxLon,maxLat. Solo registros con coordenadas dentro. Inválido → 400.?bbox=-67.5,10.0,-66.5,10.7
desdeISO 8601Solo registros con fecha ≥ este instante. Inválido → 400. Ideal para sondeo incremental.?desde=2026-06-25T00:00:00Z
min_fuentesenteroNúmero mínimo de fuentes distintas (n_fuentes). Útil para quedarte solo con hechos muy corroborados.?min_fuentes=2
limiteenteroMáximo de registros. Por defecto 1000; tope 5000 (se recorta).?limite=100
offsetenteroRegistros a saltar (paginación). Por defecto 0.?limite=100&offset=100
formatotextojson (por defecto) · geojson · csv. Ver §8.?formato=geojson

anti-circular excluir_fuente en detalle

Si mantienes uno de los sitios fuente, excluye tus propios datos para no reingestar lo tuyo y evitar bucles de retroalimentación. La regla es deliberada: un hecho solo se descarta si todas sus fuentes están en la lista de exclusión; si además lo confirma una fuente independiente, el hecho permanece (no pierdes corroboración externa).

# "Soy terremotovenezuela.com: dame todo MENOS lo que solo provengo yo"
curl "https://crisisvenezuela.org/api/v1/facts?excluir_fuente=terremotovenezuela.com"

Más ejemplos

filtros Acopios en el Distrito Capital, máximo 50:

curl "https://crisisvenezuela.org/api/v1/facts?categoria=acopio&estado=Distrito%20Capital&limite=50"

necesidades Solicitudes de agua o medicinas, muy corroboradas (≥2 fuentes), desde una fecha:

curl "https://crisisvenezuela.org/api/v1/facts?categoria=necesidad&tipo_necesidad=agua,medicinas&min_fuentes=2&desde=2026-06-25T00:00:00Z"

8 · Formatos de salida

Elige con formato:

json (por defecto)
Sobre { "meta": {…}, "datos": [ Hecho, … ] }. meta incluye cantidad (en esta página), total (tras filtros, antes de paginar), generado, licencia, atribucion y consulta (eco de los parámetros aplicados). Content-Type: application/json.
geojson
FeatureCollection (RFC 7946) con solo los registros geolocalizados. Cada feature tiene geometry.coordinates = [lon, lat] y el hecho completo (sin lat/lon) en properties. meta va como miembro extranjero informativo. Content-Type: application/geo+json. Ideal para Leaflet, Mapbox, QGIS, etc.
csv
Tabla con cabecera; una fila por hecho. Las fuentes se aplanan a una columna fuentes con el formato nombre(url);nombre(url). Incluye BOM UTF-8 para abrir limpio en Excel. Content-Type: text/csv.
# GeoJSON de una zona, listo para pintar en un mapa
curl "https://crisisvenezuela.org/api/v1/facts?formato=geojson&bbox=-67.5,10.0,-66.5,10.7"

# CSV de daños desde una fecha (da%C3%B1o = "daño" codificado para URL)
curl "https://crisisvenezuela.org/api/v1/facts?categoria=da%C3%B1o&desde=2026-06-25T00:00:00Z&formato=csv"

9 · Procedencia y atribución

Cada hecho conserva en fuentes[] todas sus fuentes distintas (nombre + URL). Esto cumple dos funciones:

  • Deduplicar contra tus datos. Antes de ingerir un hecho, revisa sus fuentes / url: si ya lo tienes (o es tuyo), omítelo. Combínalo con excluir_fuente para filtrarlo del lado del servidor.
  • Dar crédito. Al reutilizar, cita la fuente original cuando corresponda, además de crisisvenezuela.org.
Cómo citar. Datos bajo CC-BY-4.0. Atribución: «crisisvenezuela.org + las fuentes originales». No reemplaza a las autoridades oficiales.

10 · Límites y uso justo

  • Caché. Cada respuesta trae Cache-Control: public, max-age=60, s-maxage=120; el CDN absorbe consultas repetidas. Los datos se refrescan en vivo, con un retraso de hasta ~1–2 min.
  • Paginación. limite tope 5000 por petición; usa offset para recorrer, o desde para traer solo lo nuevo.
  • Descargas masivas → usa los volcados estáticos. No martilles el endpoint de consulta. Para el conjunto completo o cargas frecuentes, sirve el CDN directamente:
  • Solo lectura. La API únicamente sirve GET (y OPTIONS para CORS). Otros métodos devuelven 405.

11 · Versionado

La ruta lleva la versión mayor: /api/v1/…. Política de estabilidad de v1:

  • Cambios aditivos no rompen. Podemos agregar campos nuevos a los registros o nuevos parámetros opcionales sin cambiar de versión; tu cliente debe ignorar lo que no conozca.
  • Cambios incompatibles → nueva versión. Renombrar/eliminar campos o cambiar el significado de uno existente se publicaría como /api/v2; v1 seguiría disponible durante una transición.
  • Contrato legible por máquina: /api/v1/openapi.json (OpenAPI 3.1) — genera clientes o valida contra él.