← Volver

Conecta tu app a la red

API REST para enviar datos (push), consultarlos (pull) o integrar esta herramienta en tu propia aplicación.

Enviar datos (push)
Consultar datos (pull)
Esquema IndexedRecord

Enviar datos con POST /api/ingest

Envía registros de personas, centros o recursos en un único lote autenticado. Necesitas una clave de ingestión (solicítala en /contribuir o directamente al responsable).

Autenticación

Incluye la clave en la cabecera x-ingest-key: TU_CLAVE de cada petición.

Cuerpo de la petición

{
  "source": {
    "id":          "mi-org-unica-id",
    "name":        "Cruz Roja Venezuela",
    "kind":        "ong",
    "description": "Voluntarios activos en el área afectada",
    "url":         "https://cruzroja.org.ve"
  },
  "disaster": "venezuela-2024",
  "records": [
    {
      "id":          "cr-001",
      "record_type": "persona_desaparecida",
      "person_name": "María González",
      "location_name": "Maracaibo, Zulia",
      "age":         "34",
      "summary":     "Vista por última vez el 15/11 en el mercado central.",
      "contact":     "familiar: +58 412 555 0001"
    },
    {
      "id":          "cr-acopio-01",
      "record_type": "centro_acopio",
      "title":       "Centro Comunal Las Mercedes",
      "location_name": "Calle Bolívar 44, Maracaibo"
    },
    {
      "id":          "cr-rec-01",
      "record_type": "recurso",
      "title":       "Agua potable disponible",
      "summary":     "2000 litros listos para distribución",
      "location_name": "Almacén Las Mercedes",
      "tags":        ["agua"]
    }
  ]
}

Tipos de registro (record_type)

Respuesta

{ "written": 3, "skipped": 0, "disaster": "venezuela-2024" }

Ejemplo con curl

curl -X POST "https://crisisglow.com/api/ingest" \
  -H "x-ingest-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d @lote.json
Upsert automático. Si ya existe un registro con el mismo source_name y nombre/id externo, se actualiza en lugar de duplicarse. Usa source_record_id para identificar de forma estable cada entrada en tu sistema.

Consultar datos

GET /api/records/search

Búsqueda unificada sobre personas, centros y recursos. Sin autenticación.

ParámetroTipoDescripción
qstringTexto libre (nombre, lugar…)
disasterstringSlug del desastre (p. ej. venezuela-2024)
record_typestringFiltro de tipo (ver lista en la pestaña Esquema). Omitir = todos.
pageintPágina (defecto: 1)
per_pageintResultados por página (máx. 100, defecto: 20)
curl "https://crisisglow.com/api/records/search?q=maria&disaster=venezuela-2024&record_type=persona_desaparecida"
GET /api/sources

Lista de fuentes externas conectadas con recuento de registros y frescura. Sin autenticación.

curl "https://crisisglow.com/api/sources"
{
  "results": [
    {
      "source_name": "Cruz Roja Venezuela",
      "record_count": 342,
      "last_seen_at": "2024-11-17T14:32:00Z",
      "freshness": "al día"
    }
  ],
  "total": 1
}
GET /api/export/pfif?disaster=SLUG

Exporta personas en formato estándar PFIF 1.4 (XML). Compatible con la Cruz Roja, CICR y otras instancias. Ver más en Interoperabilidad.

GET /api/search

Búsqueda de personas (sin centros ni recursos). Mismos parámetros q, disaster, page, per_page. Devuelve el esquema completo de Person.

Esquema IndexedRecord

Campos aceptados por POST /api/ingest y devueltos por GET /api/records/search.

Objeto source (obligatorio en /api/ingest)

CampoTipoDescripción
idstring REQIdentificador único y estable de tu sistema
namestring REQNombre de tu organización (aparece en la página /fuentes)
kindstringhospital | ong | gobierno | media | otro
descriptionstringDescripción corta de la fuente
urlstringURL principal de tu organización

Objeto records[]

CampoTipoDescripción
idstring REQID estable en tu sistema (se usa para upsert)
record_typestring REQVer lista de tipos más arriba
titlestringTítulo del registro (para centros y recursos)
person_namestringNombre completo (para personas)
summarystringDescripción breve
agestringEdad aproximada (texto libre: "35", "adulto"…)
location_namestringLugar donde fue visto / se encuentra
citystringCiudad
statestringEstado / provincia
countrystringPaís
contactstringInformación de contacto (se almacena, no se devuelve públicamente para personas)
statusstringEstado según PFIF (information_sought, is_note_author…)
source_record_idstringID alternativo para upsert (si difiere de id)
tagsstring[]Etiquetas (la primera se usa como kind en recursos)
observed_atstringFecha de observación (ISO 8601)
image_urlstringURL de foto (solo informativo, no se descarga)
Nota sobre privacidad. Los campos contact de personas NO se exponen en búsquedas públicas ni en PFIF. Para la comunicación entre familiares existe el proxy POST /api/person/{id}/contact-reporter que reenvía el mensaje sin revelar el contacto directo.

¿Tienes dudas o necesitas una clave de ingestión? Registra tu fuente aquí o contacta al responsable del tratamiento en /privacidad.