diff --git a/src/libs/routes/class.js b/src/libs/routes/class.js
index 92f99a2ae24afaab46a0b3ca7736b9d024f518dd..0e3da74472112b76a51f20ae85edda95169c44d1 100644
--- a/src/libs/routes/class.js
+++ b/src/libs/routes/class.js
@@ -15,6 +15,54 @@ const response = require(`${libs}/middlewares/response`);
 const ReqQueryFields = require(`${libs}/middlewares/reqQueryFields`);
 
 let rqfCount = new ReqQueryFields();
+// Complete range of the enrollments dataset.
+// Returns a tuple of start and ending years of the complete enrollments dataset.
+classApp.get('/year_range', (req, res, next) => {
+    req.sql.from('matricula')
+    .field('MIN(matricula.ano_censo)', 'start_year')
+    .field('MAX(matricula.ano_censo)', 'end_year');
+    next();
+}, query, response('range'));
+
+classApp.get('/location', (req, res, next) => {
+    req.sql = squel.select()
+    .field('id')
+    .field('descricao', 'name')
+    .from('localizacao');
+    next();
+}, query, response('location'));
+
+// Returns all adm dependencies
+classApp.get('/adm_dependency', (req, res, next) => {
+    req.sql.from('dependencia_adm')
+    .field('id')
+    .field('nome', 'name')
+    .where('id <= 4');
+    next();
+}, query, response('adm_dependency'));
+
+classApp.get('/adm_dependency_detailed', (req, res, next) => {
+    req.sql.from('dependencia_adm')
+    .field('id', 'id')
+    .field('nome', 'name');
+    next();
+}, query, response('adm_dependency_detailed'));
+
+// Returns all periods avaible
+classApp.get('/period', (req, res, next) => {
+    req.sql.from('turma_turno')
+    .field('id')
+    .field('nome', 'name');
+    next();
+}, query, response('period'));
+
+// Returns all educational levels avaible
+classApp.get('/education_level', (req, res, next) => {
+    req.sql.from('etapas_mod_ensino_segmento')
+    .field('id')
+    .field('nome', 'name');
+    next();
+}, query, response('education_level'));
 
 rqfCount.addField({
     name: 'filter',
@@ -86,6 +134,21 @@ rqfCount.addField({
     foreign: 'dependencia_adm_id',
     foreignTable: 'turma'
   }
+}).addValue({
+    name: 'location',
+    table: 'localizacao',
+    tableField: 'descricao',
+    resultField: 'location_name',
+    where: {
+        relation: '=',
+        type: 'integer',
+        field: 'id'
+    },
+    join: {
+        primary: 'id',
+        foreign: 'localizacao_id',
+        foreignTable: 'turma'
+    }
 }).addValue({
   name:'school_level',
   table: 'etapas_mod_ensino_segmento ',
@@ -102,20 +165,20 @@ rqfCount.addField({
     foreignTable: 'turma'
   }
 }).addValue({
-  name:'dependencia_priv',
-  table: 'escola',
-  tableField: 'dependencia_adm_priv',
-  resultField: 'dependencia_adm_priv',
-  where: {
-    relation: '=',
-    type: 'integer',
-    field: 'id'
-  },
-  join: {
-    primary: 'id',
-    foreign: 'escola_id',
-    foreignTable: 'turma'
-  }
+    name: 'adm_dependency_detailed',
+    table: 'dependencia_adm',
+    tableField: 'nome',
+    resultField: 'adm_dependency_detailed_name',
+    where: {
+        relation: '=',
+        type: 'integer',
+        field: 'id'
+    },
+    join: {
+        primary: 'id',
+        foreign: 'dependencia_adm_priv',
+        foreignTable: 'turma'
+    }
 }).addValue({
   name:'period',
   table: 'turma_turno',