Femicide Media WatchTracking femicide in the mediaRastreando el femicidio en los mediosFemizide in den Medien verfolgen
API

REST API

Public, read-only JSON. Aggregate endpoints return full data; /api/articles returns a sample of up to 10 confirmed articles, enough to see the data shape. Article-level and bulk access is available on request:JSON público y de solo lectura. Los endpoints agregados devuelven datos completos; /api/articles devuelve una muestra de hasta 10 artículos confirmados, suficiente para ver la forma de los datos. El acceso a nivel de artículo y en volumen está disponible bajo pedido:Öffentliches, schreibgeschütztes JSON. Aggregierte Endpunkte liefern vollständige Daten; /api/articles liefert eine Stichprobe von bis zu 10 bestätigten Artikeln, genug, um die Datenstruktur zu sehen. Zugriff auf Artikelebene und in großem Umfang auf Anfrage: contact uscontáctanoskontaktieren Sie uns.

Base URL: https://femicide-watch.up.railway.app

ArticlesArtículosArtikel

GET/api/articles

A public sample of confirmed articles (up to 10). Filters apply inside that sample.Una muestra pública de artículos confirmados (hasta 10). Los filtros se aplican dentro de esa muestra.Eine öffentliche Stichprobe bestätigter Artikel (bis zu 10). Filter gelten innerhalb dieser Stichprobe.

ParameterParámetroParameterTypeTipoTypDescriptionDescripciónBeschreibung
countrystringCountry code: UK, CL, AR, MX, ES or DE.Código de país: UK, CL, AR, MX, ES o DE.Ländercode: UK, CL, AR, MX, ES oder DE.
yearintegerFilter by year, e.g. 2025.Filtrar por año, p. ej. 2025.Nach Jahr filtern, z. B. 2025.
monthintegerFilter by month, 1–12.Filtrar por mes, 1–12.Nach Monat filtern, 1–12.
typestringFemicide type, e.g. femicidio_intimo, femicidio_familiar.Tipo de femicidio, p. ej. femicidio_intimo, femicidio_familiar.Femizid-Typ, z. B. femicidio_intimo, femicidio_familiar.
relacionstringVictim–perpetrator relationship, e.g. intimo_actual, intimo_ex.Relación víctima–agresor, p. ej. intimo_actual, intimo_ex.Beziehung Opfer–Täter, z. B. intimo_actual, intimo_ex.
motivostringMotive, e.g. rechazo_separacion, violencia_habitual.Motivo, p. ej. rechazo_separacion, violencia_habitual.Motiv, z. B. rechazo_separacion, violencia_habitual.

Example requestEjemplo de solicitudBeispielanfrage

GET /api/articles?country=CL

Example responseEjemplo de respuestaBeispielantwort

{
  "total": 1,
  "page": 1,
  "per_page": 1,
  "items": [
    {
      "id": 1,
      "title": "Example headline",
      "web_url": "https://example.com/article",
      "thumbnail": null,
      "section": null,
      "published_date": "2025-03-14",
      "source": "Example Source",
      "country": "CL",
      "snippet": "Example snippet of the article…",
      "femicide_type": "femicidio_intimo",
      "femicide_relacion": "intimo_ex",
      "femicide_motivo": "rechazo_separacion"
    }
  ]
}

TimelineLínea de tiempoZeitverlauf

GET/api/timeline

Confirmed article counts per month, the date range and the total.Conteo mensual de artículos confirmados, el rango de fechas y el total.Bestätigte Artikel pro Monat, Zeitraum und Gesamtzahl.

ParameterParámetroParameterTypeTipoTypDescriptionDescripciónBeschreibung
countrystringCountry code: UK, CL, AR, MX, ES or DE.Código de país: UK, CL, AR, MX, ES o DE.Ländercode: UK, CL, AR, MX, ES oder DE.

Example requestEjemplo de solicitudBeispielanfrage

GET /api/timeline?country=MX

Example responseEjemplo de respuestaBeispielantwort

{
  "monthly_counts": [
    {
      "year": 2025,
      "month": 1,
      "count": 24
    },
    {
      "year": 2025,
      "month": 2,
      "count": 19
    }
  ],
  "total": 43,
  "date_range": {
    "first": "2025-01-03",
    "last": "2025-02-26"
  }
}

Femicide typesTipos de femicidioFemizid-Typen

GET/api/types

Article counts by femicide type, as an object {type: count}.Conteo de artículos por tipo de femicidio, como objeto {tipo: conteo}.Artikelzahlen nach Femizid-Typ, als Objekt {Typ: Anzahl}.

ParameterParámetroParameterTypeTipoTypDescriptionDescripciónBeschreibung
countrystringCountry code: UK, CL, AR, MX, ES or DE.Código de país: UK, CL, AR, MX, ES o DE.Ländercode: UK, CL, AR, MX, ES oder DE.

Example requestEjemplo de solicitudBeispielanfrage

GET /api/types?country=CL

Example responseEjemplo de respuestaBeispielantwort

{
  "femicidio_intimo": 142,
  "femicidio_familiar": 38
}

RelationshipsRelacionesBeziehungen

GET/api/relaciones

Article counts by victim–perpetrator relationship, as {relationship: count}.Conteo de artículos por relación víctima–agresor, como {relación: conteo}.Artikelzahlen nach Beziehung Opfer–Täter, als {Beziehung: Anzahl}.

ParameterParámetroParameterTypeTipoTypDescriptionDescripciónBeschreibung
countrystringCountry code: UK, CL, AR, MX, ES or DE.Código de país: UK, CL, AR, MX, ES o DE.Ländercode: UK, CL, AR, MX, ES oder DE.

Example requestEjemplo de solicitudBeispielanfrage

GET /api/relaciones

Example responseEjemplo de respuestaBeispielantwort

{
  "intimo_actual": 98,
  "intimo_ex": 67
}

MotivesMotivosMotive

GET/api/motivos

Article counts by motive, as {motive: count}.Conteo de artículos por motivo, como {motivo: conteo}.Artikelzahlen nach Motiv, als {Motiv: Anzahl}.

ParameterParámetroParameterTypeTipoTypDescriptionDescripciónBeschreibung
countrystringCountry code: UK, CL, AR, MX, ES or DE.Código de país: UK, CL, AR, MX, ES o DE.Ländercode: UK, CL, AR, MX, ES oder DE.

Example requestEjemplo de solicitudBeispielanfrage

GET /api/motivos?country=UK

Example responseEjemplo de respuestaBeispielantwort

{
  "rechazo_separacion": 45,
  "violencia_habitual": 32
}

Types by monthTipos por mesTypen pro Monat

GET/api/types-by-month

Femicide type counts per month — useful for stacked charts.Conteo de tipos de femicidio por mes — útil para gráficos apilados.Femizid-Typen pro Monat — nützlich für gestapelte Diagramme.

ParameterParámetroParameterTypeTipoTypDescriptionDescripciónBeschreibung
countrystringCountry code: UK, CL, AR, MX, ES or DE.Código de país: UK, CL, AR, MX, ES o DE.Ländercode: UK, CL, AR, MX, ES oder DE.

Example requestEjemplo de solicitudBeispielanfrage

GET /api/types-by-month

Example responseEjemplo de respuestaBeispielantwort

[
  {
    "year": 2025,
    "month": 1,
    "type": "femicidio_intimo",
    "count": 8
  }
]

Country → type → relationshipPaís → tipo → relaciónLand → Typ → Beziehung

GET/api/sankey

Cross-tabulation behind the Sankey chart on the statistics page.Tabulación cruzada detrás del diagrama Sankey de la página de estadísticas.Kreuztabelle hinter dem Sankey-Diagramm auf der Statistikseite.

ParameterParámetroParameterTypeTipoTypDescriptionDescripciónBeschreibung
countrystringCountry code: UK, CL, AR, MX, ES or DE.Código de país: UK, CL, AR, MX, ES o DE.Ländercode: UK, CL, AR, MX, ES oder DE.

Example requestEjemplo de solicitudBeispielanfrage

GET /api/sankey

Example responseEjemplo de respuestaBeispielantwort

[
  {
    "country": "CL",
    "type": "femicidio_intimo",
    "relacion": "intimo_ex",
    "count": 31
  }
]

SourcesFuentesQuellen

GET/api/sources-summary

Confirmed articles per news source and country. Aggregate only.Artículos confirmados por fuente y país. Solo agregados.Bestätigte Artikel pro Nachrichtenquelle und Land. Nur Aggregate.

ParameterParámetroParameterTypeTipoTypDescriptionDescripciónBeschreibung
countrystringCountry code: UK, CL, AR, MX, ES or DE.Código de país: UK, CL, AR, MX, ES o DE.Ländercode: UK, CL, AR, MX, ES oder DE.

Example requestEjemplo de solicitudBeispielanfrage

GET /api/sources-summary

Example responseEjemplo de respuestaBeispielantwort

{
  "CL": {
    "Example Source": 120
  },
  "MX": {
    "Another Source": 87
  }
}

Use casesCasos de usoAnwendungsfälle

Data visualizationVisualización de datosDatenvisualisierung

Use the timeline endpoint to chart monthly counts.Usa el endpoint de línea de tiempo para graficar los conteos mensuales.Mit dem Timeline-Endpunkt lassen sich monatliche Zahlen darstellen.

// JavaScript: monthly counts for a chart
const data = await fetch("https://femicide-watch.up.railway.app/api/timeline").then((r) => r.json());
const labels = data.monthly_counts.map((m) => `${m.year}-${m.month}`);
const counts = data.monthly_counts.map((m) => m.count);
// → plug into Chart.js, D3, Plotly, etc.

Research and comparisonInvestigación y comparaciónForschung und Vergleich

Aggregates are complete, so they work for comparative studies across countries.Los agregados están completos, así que sirven para estudios comparativos entre países.Die Aggregate sind vollständig und eignen sich für Vergleichsstudien zwischen Ländern.

# Python: one row per country and month
import requests, pandas as pd

rows = []
for cc in ["UK", "CL", "AR", "MX", "ES", "DE"]:
    data = requests.get("https://femicide-watch.up.railway.app/api/timeline", params={"country": cc}).json()
    rows += [{"country": cc, **m} for m in data["monthly_counts"]]
df = pd.DataFrame(rows)

Daily alertsAlertas diariasTägliche Hinweise

Subscribe to the RSS feed to get each day's confirmed articles:Suscríbete al feed RSS para recibir los artículos confirmados de cada día:Abonnieren Sie den RSS-Feed, um täglich die bestätigten Artikel zu erhalten: /feed.xml