diff --git a/libs/app.js b/libs/app.js
index 79e6db8b244493c5e91d9e3d8c72a856fd676eb8..5d6a1539e3a40f7ef5d5b02ee3aa9eb772af4a29 100644
--- a/libs/app.js
+++ b/libs/app.js
@@ -13,6 +13,9 @@ var config = require('./config')
 var log = require('./log')(module)
 
 var api = require('./routes/api')
+var states = require('./routes/states')
+var regions = require('./routes/regions')
+var cities = require('./routes/cities')
 
 var app = express()
 
@@ -23,6 +26,9 @@ app.use(cors())
 app.use(methodOverride())
 
 app.use('/api/v1/', api)
+app.use('/api/v1/states', states)
+app.use('/api/v1/regions', regions)
+app.use('/api/v1/cities', cities)
 
 // catch 404 and forward to error handler
 app.use(function(req, res, next){
diff --git a/libs/routes/api.js b/libs/routes/api.js
index d5dadcd3d622a4c4574f1286c5f89f9bf4f1dc42..0bde814c2ba0295079f3b046656839230beb3650 100644
--- a/libs/routes/api.js
+++ b/libs/routes/api.js
@@ -1,6 +1,6 @@
 var express = require('express')
 var router = express.Router()
-var xml = require('xml')
+
 var libs = process.cwd() + '/libs/'
 
 var log = require(libs + 'log')(module)
@@ -15,9 +15,9 @@ router.get('/', function (req, res) {
 })
 
 router.get('/data', function(req, res) {
-    log.debug(req.query)
-    log.debug(req.query.met)
-    log.debug(req.query.dim)
+    console.log(req.query)
+    console.log(req.query.met)
+    console.log(req.query.dim)
     conn.query(
         'SELECT * FROM turmas'
     ).then(function(result) {
@@ -27,8 +27,8 @@ router.get('/data', function(req, res) {
     })
 })
 
-router.get('/matriculas.:format?', function(req, res) {
-    log.debug(req.query);
+router.get('/matriculas', function(req, res) {
+    console.log(req.query);
 
     tbl_name = "matriculas";
     switch(req.query.agregar)
@@ -41,27 +41,17 @@ router.get('/matriculas.:format?', function(req, res) {
         break;
     }
 
-    log.info("Querying table '" + tbl_name + "'");
+    console.log("Querying table '" + tbl_name + "'");
 
     /* FIXME: Replace parameter substitution
        - Might not be needed since the parameter tbl_name is not supplied by the user */
     conn.query(
         'SELECT * FROM ' + tbl_name, true
     ).then(function(result) {
-        log.debug(result);
-        if (req.params.format === 'csv') {
-          res.csv(result.data)
-        } else if (req.params.format === 'xml') {
-          res.set('Content-Type', 'text/xml')
-          res.send(xml({
-            'result': result.data
-          }))
-        }
-        else {
-          res.json({
-              result: result.data
-          })
-        }
+        console.log(result);
+        res.json({
+            result: result.data
+        })
     });
 })
 
diff --git a/libs/routes/cities.js b/libs/routes/cities.js
new file mode 100644
index 0000000000000000000000000000000000000000..d605c4dfbdc2662d0fefb0eac273d4fbca4d2955
--- /dev/null
+++ b/libs/routes/cities.js
@@ -0,0 +1,56 @@
+var express = require('express')
+var router = express.Router()
+
+var libs = process.cwd() + '/libs/'
+
+var log = require(libs + 'log')(module)
+var config = require(libs + 'config')
+
+var conn = require(libs + 'db/monet')
+
+router.get('/', function(req, res) {
+  conn.query(
+    'SELECT * FROM municipios', true
+  ).then(function(result) {
+    log.debug(result)
+    res.json({
+      result: result.data
+    })
+  })
+
+})
+
+router.get('/:id', function(req, res) {
+  conn.query(
+    'SELECT * FROM regioes WHERE pk_municipio_id='+req.params.id, true
+  ).then(function(result) {
+    log.debug(result)
+    res.json({
+      result: result.data
+    })
+  })
+})
+
+router.get('/ibge/:id', function(req, res) {
+  conn.query(
+    'SELECT * FROM regioes WHERE codigo_ibge='+req.params.id, true
+  ).then(function(result) {
+    log.debug(result)
+    res.json({
+      result: result.data
+    })
+  })
+})
+
+router.get('/state/:id', function(req, res) {
+  conn.query(
+    'SELECT * FROM regioes WHERE fk_estado_id='+req.params.id, true
+  ).then(function(result) {
+    log.debug(result)
+    res.json({
+      result: result.data
+    })
+  })
+})
+
+module.exports = router
diff --git a/libs/routes/regions.js b/libs/routes/regions.js
new file mode 100644
index 0000000000000000000000000000000000000000..60352efb83484ac72037a9277a2d62c3b596fc08
--- /dev/null
+++ b/libs/routes/regions.js
@@ -0,0 +1,34 @@
+var express = require('express')
+var router = express.Router()
+
+var libs = process.cwd() + '/libs/'
+
+var log = require(libs + 'log')(module)
+var config = require(libs + 'config')
+
+var conn = require(libs + 'db/monet')
+
+router.get('/', function(req, res) {
+  conn.query(
+    'SELECT * FROM regioes', true
+  ).then(function(result) {
+    log.debug(result)
+    res.json({
+      result: result.data
+    })
+  })
+
+})
+
+router.get('/:id', function(req, res) {
+  conn.query(
+    'SELECT * FROM regioes WHERE pk_regiao_id='+req.params.id, true
+  ).then(function(result) {
+    log.debug(result)
+    res.json({
+      result: result.data
+    })
+  })
+})
+
+module.exports = router
diff --git a/libs/routes/states.js b/libs/routes/states.js
new file mode 100644
index 0000000000000000000000000000000000000000..3c3be7b52a3dbe1405ff66372a198da3d987d32a
--- /dev/null
+++ b/libs/routes/states.js
@@ -0,0 +1,45 @@
+var express = require('express')
+var router = express.Router()
+
+var libs = process.cwd() + '/libs/'
+
+var log = require(libs + 'log')(module)
+var config = require(libs + 'config')
+
+var conn = require(libs + 'db/monet')
+
+router.get('/', function(req, res) {
+  conn.query(
+    'SELECT * FROM estados', true
+  ).then(function(result) {
+    log.debug(result)
+    res.json({
+      result: result.data
+    })
+  })
+
+})
+
+router.get('/:id', function(req, res) {
+  conn.query(
+    'SELECT * FROM estados WHERE pk_estado_id='+req.params.id, true
+  ).then(function(result) {
+    log.debug(result)
+    res.json({
+      result: result.data
+    })
+  })
+})
+
+router.get('/region/:id', function(req, res) {
+  conn.query(
+    'SELECT * FROM estados WHERE fk_regiao_id='+req.params.id, true
+  ).then(function(result) {
+    log.debug(result)
+    res.json({
+      result: result.data
+    })
+  })
+})
+
+module.exports = router