diff --git a/src/libs/routes/city.js b/src/libs/routes/city.js
index ef28500f275b237c9be2d4ec3a860da7d9e960cf..2ebc44d28c80fba86042b5ee0aafcd074c3b25a5 100644
--- a/src/libs/routes/city.js
+++ b/src/libs/routes/city.js
@@ -82,7 +82,25 @@ rqf.addField({
         type: 'string',
         field: 'nome'
     }
-}, 'search');;
+}, 'search').addValue({
+    name: 'mesoregion',
+    table: 'municipio',
+    tableField: 'mesorregiao_id',
+    where: {
+        relation: '=',
+        type: 'integer',
+        field: 'mesorregiao_id'
+    }
+}).addValue({
+    name: 'microregion',
+    table: 'municipio',
+    tableField: 'microrregiao_id',
+    where: {
+        relation: '=',
+        type: 'integer',
+        field: 'microrregiao_id'
+    }
+});
 
 // Return all cities
 cityApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
@@ -97,4 +115,27 @@ cityApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
     next();
 }, query, response('city'));
 
+cityApp.get('/microregion', rqf.parse(), rqf.build(), (req, res, next) => {
+    req.sql.from('municipio')
+    .field('municipio.estado_id', 'state_id')
+    .field('municipio.microrregiao_id', 'microregion_id')
+    .field('municipio.nome_microrregiao', 'microregion_name')
+    .group('municipio.estado_id')
+    .group('municipio.microrregiao_id')
+    .group('municipio.nome_microrregiao')
+    next();
+}, query, response('city/microregion'));
+
+cityApp.get('/mesoregion', rqf.parse(), rqf.build(), (req, res, next) => {
+    req.sql.from('municipio')
+    .field('municipio.estado_id', 'state_id')
+    .field('municipio.mesorregiao_id', 'mesoregion_id')
+    .field('municipio.nome_mesorregiao', 'mesoregion_name')
+    .group('municipio.nome_mesorregiao')
+    .group('municipio.mesorregiao_id')
+    .group('municipio.estado_id')
+    next();
+}, query, response('city/mesoregion'));
+
+
 module.exports = cityApp;