Cómo Funciona

Retio cataloga reportes dirigidos a cualquiera de las cuentas en ciudades, estados o provincias, así como a cuentas públicas de cada localidad, como las de sus ayuntamientos.

Hacemos uso de algoritmos de inteligencia artificial para clasificar de manera automática los reportes como válidos o no-válidos y los válidos en categorías según el tipo de incidente que se reporte. Estos algoritmos funcionan con ejemplos de reportes clasificados por usuarios.

Los reportes válidos son entonces publicados en el sitio web, app y las cuentas de Twitter correspondientes. Una vez publicados los reportes, los usuarios colaboran agregando datos adicionales de geo-referenciación o re-clasificación de ser necesario.

Las Reglas

  • No enviar reportes de algo que no hayas presenciado personalmente.
  • No utilizar lenguaje discriminatorio o de otra manera ofensivo.
  • No incluir información personal.
  • No romper el sitio o hacer algo que interfiera con su operación normal.
  • No promover violaciones a la ley.

Tips Para Reportar

Requisitos: Cualquier dispositivo móvil con Twitter y algún incidente a reportar

  • Tu reporte debe indicar un solo incidente. Si quieres reportar dos incidentes, aún en el mismo lugar, envía un reporte por cada uno.
  • Indica un lugar específico de la ciudad usando referencias que cualquier persona pueda entender. "Baches por toda la ciudad" no es un reporte válido aún siendo sincero.
  • No reportes cosas que no hayas presenciado personalmente. "Me comentan que paso tal cosa" no es un reporte válido.
  • No envíes preguntas. Si notas algo reportarlo, aunque no tengas todos los detalles. Si alguien tiene información adicional Retio es una invitación abierta para reportarla.
  • No envies links.
  • Asegúrate de enviar tus reportes a la cuenta correcta para tu localidad (@retioDF, @retioBA, @retioMID, etc).
  • Agrega una foto. La foto debe ser adicional al reporte. Una foto sin descripción del reporte no es válida.

Preguntas Frecuentes

¿Que es esto?

Una red de ciudadanos haciendo periodismo de calle con Twitter

¿Para qué?

La reciente ubicuidad de teléfonos con cámara, GPS y acceso a Internet nos ha dado la posibilidad de documentar y alertarnos de manera inmediata de cualquier peligro o problema que presenciemos. Esto no sólo implica la capacidad de estar mejor informados, en tiempo real, de lo que acontece en nuestra ciudad, sino de crear una base de datos pública con todos estos fenómenos que nos permita analizarlos en conjunto para entender mejor cómo afectan nuestro entorno.

Creemos también que es importante que las autoridades se sepan vigiladas por la ciudadanía en todo momento y se comporten en consecuencia. Estamos convencidos de que esto ayudará inhibir las extorsiones, detenciones arbitrarias, abusos de autoridad y actos de brutalidad policíaca de la misma forma que la transparencia ayuda inhibir la corrupción en otras autoridades.

¿Por qué informan sobre operativos policiales?

Las zonas en las que se realizan operativos son, en muchas ocasiones, zonas de alto riesgo para los ciudadanos. Proponemos construir una sociedad segura haciendo uso de la tecnología para coordinarnos y evitar situaciones de riesgo. Confiamos en que las fuerza públicas pueden combatir el crimen sin exponer a peligros innecesarios a los ciudadanos.

¿Por qué no publicaron mi reporte?

Utilizamos un sistema automatizado para decidir si las menciones que recibimos en twitter son reportes válidos o son, por ejemplo, un retweet, un #ff, spam, o cualquier otra cosa. Este sistema es, por lo tanto, susceptible a clasificaciones incorrectas. El sistema ira cometiendo menos errores conforme lo vayamos alimentando con más ejemplos de clasificados de manera correcta.

¿Por qué están mal clasificado algunos reportes?

Usamos un sistema automatizado. Este sistema es alimentado con ejemplos de clasificaciones correctas por los mismos usuarios. Si vez un reporte que creas está mal clasificado, indícalo dando click en ‘Sugerir Reclasificación’ en la página de detalles del reporte.

Licencia

El contenido de Twitter pertenece a Twitter y tiene su propia licencia y términos de uso. Nuestros datos, derivados del contenido de Twitter, así como la contribuida de manera adicional por nuestros usuarios (mapeos, clasificaciones), se hacen públicos bajo una Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional

Licencia Creative Commons

Datos

Documentación del RESTful API

Endpoint Descripción
Reportes Reportes de incidentes
Categorías Tipificación para reportes
Provincias Unidades territoriales sub-nacionales, como los "estados" en México, representadas en el sistema
Ciudades Unidades territoriales dentro de provincias, como los "municipios" en México, representadas en el sistema
Usuarios Perfil de los colaboradores

Endpoint: Reportes

GET /reports
GET /reports/{id}

Argumentos

id: int Optional ID numérico único del reporte

Opciones

country: string Clave ISO de dos letras para países. (Ver ISO 3166)
province: string ID para provincia correspondiente. (Ver Provincias)
city: string ID para ciudad correspondiente. (Ver Ciudades)
category: string ID para la categoría del reporte que corresponda. (Ver Categorías)
screen_name: string Screen_name del reportero.
latitude: float Latitud de coordenadas en WGS 84.
longitude: float Longitud de coordenadas en WGS 84.
since_id: int Filtra para reportes con ID menor a.

Objeto Reporte

id: int ID numérico único del reporte.
category: string ID para la categoría del reporte que corresponda. (Ver Categorías)
country: string Clave ISO de dos letras para países. (Ver ISO 3166)
province: string ID para provincia correspondiente. (Ver Provincias)
city: string Nullable ID para ciudad correspondiente. (Ver Ciudades)
latitude: float Nullable Latitud de coordenadas en WGS 84.
longitude: float Nullable Longitud de coordenadas en WGS 84.
created_at: string Fecha/Hora (UTC) en la que el reporte fue creado
screen_name: string Screen_name del reportero.
t_status_id: int64 ID numérico único del Tweet que da origen al reporte.

Ejemplo

Reportes en México DF

curl "https://api.ret.io/reports?country=MX&province=DF"

Respuesta

		
{
  "reports": [
    {
      "report_id": 26684826,
      "category": "bloqueo",
      "country": "MX",
      "province": "DF",
      "city": null,
      "latitude": null,
      "longitude": null,
      "created_at": "2015-02-05 03:09:39",
      "screen_name": "MonicaChast",
      "t_status_id": 563248072755392513,
    },
    {
      "report_id": 26684811,
      "category": "fallopolicial",
      "country": "MX",
      "province": "DF",
      "city": null,
      "latitude": null,
      "longitude": null,
      "created_at": "2015-02-05 02:57:17",
      "screen_name": "CarlosMerlo_",
      "t_status_id": 563244958262374400
    },
    {
      "report_id": 26684572,
      "category": "bloqueo",
      "country": "MX",
      "province": "DF",
      "city": null,
      "latitude": null,
      "longitude": null,
      "created_at": "2015-02-05 01:42:23",
      "screen_name": "LeticiaSG1",
      "t_status_id": 563226111446749185      
    },...
  ]
}
	      

Ejemplo

Reportes de asaltos 200m a la redonda del Angel de la Independencia (México DF)

curl "https://api.ret.io/reports?latitude=19.42703016624637&longitude=-99.16768240443804&category=asalto"

Respuesta

		
{
  "reports": [
    {
      "t_status_id": 322192938828443648,
      "province": "DF",
      "city": "CD DE M\u00c9XICO",
      "latitude": "19.42634214086388",
      "country": "MX",
      "screen_name": "miry1911",
      "category": "asalto",
      "created_at": "2013-04-11 03:42:37",
      "longitude": "-99.1673873614464",
      "report_id": 5720540
    }
  ]
}

		
	      

Endpoint: Categorías

GET /cats

Objeto Categoría

name: string ID único de la categoría usado en otros endpoints y objetos.
display_name: string Nombre de la categoría para desplegar al usuario.
icon_url: string URL del ícono asignado a la categoría.

Ejemplo

curl "https://api.ret.io/cats"

Respuesta

		
{
  "cats": [
  {      
      "display_name": "abuso policial",
      "name": "abusopolicial",
      "icon_url": "https://ret.io/static/markers/abusopolicialmarker.png",
    },
    {
      "display_name": "retenes",
      "name": "retenes",
      "icon_url": "https://ret.io/static/markers/retenmarker.png",

    },
    {
      "display_name": "radares",
      "name": "radares",
      "icon_url": "https://ret.io/static/markers/radarmarker.png"
    },
    {
      "display_name": "accidentes",
      "name": "accidentes",
      "icon_url": "https://ret.io/static/markers/accidentemarker.png"
    },
    {
      "display_name": "baches",
      "name": "baches",
      "icon_url": "https://ret.io/static/markers/bachemarker.png"
    },
    {
      "display_name": "robos",
      "name": "robos",
      "icon_url": "https://ret.io/static/markers/robomarker.png"
    },
    {
      "display_name": "asaltos",
      "name": "asaltos",
      "icon_url": "https://ret.io/static/markers/asaltomarker.png"
    },
    {
      "display_name": "balaceras",
      "name": "balaceras",
      "icon_url": "https://ret.io/static/markers/balazomarker.png"
    },...
  ]
}
		
	      

Endpoint: Provincias

GET /provinces
GET /provinces/{province_id}

Argumentos

province_id: string Optional ID único de la provincia correspondiente.

Objeto Provincia

id: string ID único de la provincia usado en otros endpoints y objetos.
country: string Clave ISO de dos letras para países. (Ver ISO 3166)
name: string Nombre de la provincia para desplegar al usuario.
latitude: float Latitud en WGS 84.
longitude: float Longitud en WGS 84.
screen_name: string Twitter screen_name de la cuenta Retio correspondiente a la provincia.

Ejemplo

curl "https://api.ret.io/provinces"

Respuesta

		
{
  "provinces": [
    {
      "id": "YUC",
      "country": "MX",
      "name": "Yucat\u00e1n",
      "latitude": 20.7098786,	   
      "longitude": -89.0943377,
      "screen_name": "retioYUC"
    },
    {
      "id": "NL",
      "country": "MX",
      "name": "Nuevo Le\u00f3n",
      "latitude": 25.7053915556378,
      "longitude": -100.27019505625,
      "screen_name": "retioNL"
    },
    {
      "id": "JAL",
      "country": "MX",
      "name": "Jalisco",
      "latitude": 20.6760880546957,
      "longitude": -103.358971949004,
      "screen_name": "retioJAL"
    },
    {
      "id": "PUE",
      "country": "MX",
      "name": "Puebla",
      "latitude": 18.9539995187791,
      "longitude": -98.2377551750171,
      "screen_name": "retioPUE"
    },
    {
      "id": "DF",
      "country": "MX",
      "name": "Distrito Federal",
      "latitude": 19.4325342644087,
      "longitude": -99.1330980014125,
      "screen_name": "retioDF"
    },...
  ]
}
		
	      

Endpoint: Ciudades

GET /provinces/{province_id}/cities

Argumentos

province_id: string ID único de la provincia correspondiente.

Objeto Ciudad

id: string ID único de la ciudad usado en otros endpoints y objetos.
name: string Nombre de la ciudad para desplegar al usuario.
country: string Clave ISO de dos letras para países. (Ver ISO 3166)
province: string ID para provincia correspondiente. (Ver Provincias)
latitude: float Latitud en WGS 84.
longitude: float Longitud en WGS 84.
screen_name: string Twitter screen_name de la cuenta Retio correspondiente a la ciudad.

Ejemplo

curl "https://api.ret.io/provinces/nl/cities"

Respuesta

		
{
  "cities": [
    {
      "province": "NL",
      "id": "MTY",
      "name": "Monterrey",
      "country": "MX",
      "screen_name": "retioMTY",
      "longitude": -100.309201,
      "latitude": 25.673211
    },
    {
      "province": "NL",
      "id": "SCT",
      "name": "Santa Catarina",
      "country": "MX",
      "screen_name": "retioNLSCT",
      "longitude": -100.4605976,
      "latitude": 25.6737633
    },
    {
      "province": "NL",
      "id": "APD",
      "name": "Apodaca",
      "country": "MX",
      "screen_name": "retioNLAPD",
      "longitude": -100.1875974,
      "latitude": 25.7815621
    },
    {
      "province": "NL",
      "id": "GES",
      "name": "General Escobedo",
      "country": "MX",
      "screen_name": "retioNLGES",
      "longitude": -100.3161126,
      "latitude": 25.7802165
    },
    {
      "province": "NL",
      "id": "GLP",
      "name": "Guadalupe",
      "country": "MX",
      "screen_name": "retioNLGPE",
      "longitude": -100.250999,
      "latitude": 25.684139
    },...
  ]
}
		
	      

Endpoint: Perfil de Usuario

GET /users/{screen_name}

Argumentos

screen_name: string Screen name del usuario correspondiente.

Objeto Usuario

screen_name: string Screen name del usuario correspondiente.
level: string Nivel alcanzado en el sistema entre los posibles: NewBee, Amateur, PRO, Expert, Master, GrandMaster, Guru
points: int Puntos acumulados por el usuario en reportes y mapeos.
mappings: int Número de mapeos creados por este usuario.
report_count: int Número de reportes creados por este usuario.

Ejemplo

curl "https://api.ret.io/users/mariorz"

Respuesta

		
{
  "screen_name": "mariorz",
  "points": 161841,
  "level": "Expert",
  "mappings": 1904,
  "points_to_levelup": 338159,
  "report_count": 111
}		
	      

Contacto

email: hello@ret.io
twitter: @retiobase