Open data guide
Todo lo que necesitas para usar los 3,266 registros públicos en tu investigación, reportaje o proyecto: qué significa cada campo, cómo citarnos y cómo consultar la API.
Principles
Nuestro modelo de datos se basa en el Protocolo de la SCJN para juzgar con perspectiva de orientación sexual, identidad y expresión de género, en los Principios de Yogyakarta y en un enfoque de interseccionalidad. Registramos la identidad de cada persona como ella se nombraba, sin patologizar. Cómo documentamos, verificamos y contamos cada caso está en la methodology of the map and the memorial.
We separate the information into two levels:
- Public: what appears on the map, the memorial, the API and the downloads.
- Private: nombre legal, expedientes y carpetas de investigación, datos de salud, contactos de familiares y causas de muerte detalladas. Nunca se publica ni se entrega por la API.
Detrás de cada fila hay una persona y una familia. Te pedimos usar estos datos con respeto: evita el lenguaje sensacionalista, nombra a cada persona según su identidad y no difundas imágenes o detalles de la violencia sufrida.
Data dictionary
Fields available in the CSV and in /api/casos. Empty values mean the data is unknown.
Person
| Field | Description |
|---|---|
| id | Unique record number. It stays stable. |
| nombre | Nombre social o con el que la persona era conocida. Nunca publicamos el nombre legal si es distinto. |
| pronombres | The person's pronouns, if known (she, he, they). |
| edad | Edad al momento de los hechos. Puede ser un texto aproximado (por ejemplo, «30 a 35»). |
| identidad_genero | Identidad de género: Mujer Transgénero, Hombre Transgénero, Mujer Cisgénero, Hombre Cisgénero, No Binario, Muxe, Travesti, Otra, Se desconoce. |
| orientacion_sexual | Orientación sexual: Lesbiana, Gay, Bisexual, Pansexual, Asexual, Heterosexual, Diversidad sexual (sin especificar), Otra, Se desconoce. |
| expresion_genero | Expresión de género: Femenina, Masculina, Andrógina, No conformista, Genderqueer, Otra, Se desconoce. |
| ocupacion | Occupation or activity, if known. |
| pertenencia_etnica | Pertenencia étnica: Ninguna, Indígena, Afromexicana, Otra, Se desconoce. |
| es_migrante, habla_lengua_indigena, tiene_discapacidad, situacion_calle, es_defensora_dh | Intersectionality indicators: 1 = yes, 0 = no or no data. |
Record
| Field | Description |
|---|---|
| tipo_registro | Tipo de registro: legal (Crimen o delito), desaparecido (Desaparición), obituario (Obituario), otro (Otro). En el CSV aparece la etiqueta legible. |
| estado_victima / situacion | Situación de la persona: fallecido (Falleció), fallecido_post_agresion (Falleció tras una agresión), desaparecido (Desaparecida / no localizada), sobreviviente (Con vida / sobreviviente). |
| delitos | Delitos registrados para el caso (CSV), separados por « | ». Es la clasificación documentada, no una sentencia. |
| sintesis | Brief summary of the case. |
| descripcion_hechos, remembranza | Long texts. Only in the CSV with ?textos=1. |
| url | Link to the public memory record. |
Date and place
| Field | Description |
|---|---|
| fecha_hechos | Date of the events or of the disappearance (YYYY-MM-DD). |
| fecha_deceso | Date of death or of being located. |
| fecha_hallazgo | Date of the finding, if different. |
| date (API) | Main date: death; if not available, the date of the events or of the finding. |
| estado, municipio, localidad | Place of the events according to INEGI's Geostatistical Framework. |
| lat, lng | Approximate coordinates (WGS84) of the place of the events or the finding. |
Search
| Field | Description |
|---|---|
| folio_busqueda | Search notice number, if it exists. |
| boletin_busqueda, alerta_amber, protocolo_alba | Alerts issued: 1 = yes, 0 = no. |
License and how to cite
The data is published under the license Creative Commons Attribution 4.0 International (CC BY 4.0). Puedes copiarlos, analizarlos y redistribuirlos, incluso con fines comerciales, siempre que nos des el crédito correspondiente e indiques si hiciste cambios.
We suggest citing it like this:
Memoria y Resistencia (2026). Record of violence against LGBTTTIQANB+ people in Mexico [conjunto de datos]. Consultado el 3 de noviembre de 2026 en https://memoriayresistencia.org/datos
API
Two read-only endpoints, in JSON. /api/casos is open because it feeds the map. The figures in /api/estadisticas require an account with the starting questionnaire answered: in the browser your session is enough and, from code, use your personal key.
GET /api/casos
Returns the public cases with the fields needed for a map: id, nombre, lat, lng, tipo_registro, estado_victima, situacion, fecha, edad, lugar, estado, municipio, identidad_genero, foto_url y url.
Optional filters (lists are separated by commas):
| Parameter | Values |
|---|---|
| q | Text in the name. |
| anio · desde · hasta | Exact year or range of years (for example, desde=2020&hasta=2024). |
| estado · municipio | Numeric identifier (see /api/municipios?estado=ID). |
| tipo | legal, desaparecido, obituario, otro |
| situacion | fallecido, fallecido_post_agresion, desaparecido, sobreviviente |
| identidad · orientacion · expresion | Exact values from the dictionary. |
| inter | es_migrante, habla_lengua_indigena, tiene_discapacidad, situacion_calle, es_defensora_dh |
| crime | Identifier from the crimes catalog. |
| alerta | boletin_busqueda, alerta_amber, protocolo_alba |
| limite | Maximum results, from 1 to 5000. |
Example with the terminal:
curl "https://memoriayresistencia.org/api/casos?tipo=desaparecido&desde=2023"
Example in JavaScript:
const r = await fetch('https://memoriayresistencia.org/api/casos?estado=21');
const { total, datos } = await r.json();
console.log(`${total} personas documentadas`);
GET /api/estadisticas
Cifras agregadas con los mismos filtros: totales, y conteos por año, Estado, identidad, orientación, expresión, rango de edad, tipo de registro, situación, delito, interseccionalidad, contexto, medio, ocupación, mes, día de la semana, municipio, tipo de fuente, la tasa por millón de habitantes y qué tanto se conoce cada dato. Es la fuente de la página Open data.
Create your key in My account › My open data and send it in the header X-Clave-Datos. Each key allows 600 requests per hour.
curl -H "X-Clave-Datos: TU_CLAVE" "https://memoriayresistencia.org/api/estadisticas?anio=2025"
GET /api/estadisticas?bloque=medios
Figures for Media Observatory: totales, notas por nivel de calificación, rasgos, tipos de problema, notas por mes y por año, prensa frente a redes, expresiones más frecuentes y la clasificación de cada medio y cuenta. Solo cifras agregadas: no incluye el texto de las notas. Usa la misma clave y el mismo límite.
curl -H "X-Clave-Datos: TU_CLAVE" "https://memoriayresistencia.org/api/estadisticas?bloque=medios"
/api/casos también tiene un límite de consultas por hora para cada conexión. Si necesitas la base completa, solicita el CSV en Open data.
Downloads
El CSV con los casos se entrega con una solicitud: detrás de cada registro hay una persona con nombre, y queremos saber quién usará los datos, para qué y cómo conocer su trabajo.
- Create your account and answer the starting questionnaire.
- Send the data request: si vienen de una institución, qué harás con ellos y cómo darle seguimiento a tu trabajo.
- When the team authorizes it, the download link appears in My account for 90 days.
El CSV usa codificación UTF-8 con BOM y comas como separador, así que abre bien en Excel, LibreOffice y Google Sheets. Acepta los mismos filtros que la API. Los relatos completos (textos=1) are included only if the request authorizes them.
Once downloaded, to read it in Python:
import pandas as pd
casos = pd.read_csv('memoria-y-resistencia-casos-2026-11-03.csv')
casos.groupby('estado').size().sort_values(ascending=False)
Did you find an error in the data or want to collaborate with your organization? Write to us.