diff --git a/src/libs/models/simulation.js b/src/libs/models/simulation.js
index dfefc8bc04696cea42bde87cfc7709ad2bfae23a..7d9afbb0014705e421a9b6cdeb51b9f9681ca184 100644
--- a/src/libs/models/simulation.js
+++ b/src/libs/models/simulation.js
@@ -1,6 +1,7 @@
 const mongoose = require('mongoose')
 
 const libs = `${process.cwd()}/libs`;
+const config = require(`${libs}/config`);
 const log = require(`${libs}/log`)(module);
 
 const locations = require(`${libs}/models/locations`);
diff --git a/src/libs/routes/api.js b/src/libs/routes/api.js
index 06953296641bdfa2cf76154bca9e593f17fcc540..61c7121d073f28fa7e5ca7e44d9a05f326850eac 100644
--- a/src/libs/routes/api.js
+++ b/src/libs/routes/api.js
@@ -12,6 +12,8 @@ const city = require('./city');
 
 const school = require('./school');
 
+const simulation = require('./simulation');
+
 api.get('/api/v1', (req, res) => {
     res.json({ msg: 'SimCAQ API is running' });
 });
@@ -22,5 +24,6 @@ api.use('/api/v1/state', state);
 api.use('/api/v1/region', region);
 api.use('/api/v1/city', city);
 api.use('/api/v1/school', school);
+api.use('/api/v1/simulation', simulation);
 
 module.exports = api;
diff --git a/src/libs/routes/simulation.js b/src/libs/routes/simulation.js
new file mode 100644
index 0000000000000000000000000000000000000000..a776795f24972d59110208e11200d37d3bbf094f
--- /dev/null
+++ b/src/libs/routes/simulation.js
@@ -0,0 +1,105 @@
+const express = require('express');
+
+const simulationApp = express();
+
+const libs = `${process.cwd()}/libs`;
+
+
+const log = require(`${libs}/log`)(module);
+const config = require(`${libs}/config`);
+
+const squel = require('squel');
+
+const query = require(`${libs}/middlewares/query`);
+
+const response = require(`${libs}/middlewares/response`);
+
+const Simulation = require(`${libs}/models/simulation`);
+
+simulationApp.get('/', (req, res) => {
+    res.send({ success: true, msg: 'controller working' });
+});
+
+
+
+simulationApp.post('/', (req, res, next) => {
+    // This method must associate new entry with user.
+    /* Creates a new simulation. Requires a name. */
+    if (!req.body.name) {
+        res.send({ success: false, msg: 'Must send a name for new entry' });
+    } else {
+        next();
+    }
+}, (req, res) => {
+    let newSimulation = new Simulation({
+        name: req.body.name,
+    });
+    newSimulation.save((err) => {
+        if (err) {
+            res.send({ success: false, msg: err });
+        } else {
+            res.send({
+                success: true,
+                msg: 'new sim created',
+                id: newSimulation._id,
+            });
+        }
+    });
+});
+
+simulationApp.get('/:id', (req, res) => {
+    /* Can be used to check simulation construction status */
+    Simulation.findById(req.params.id, (err, simulation) => {
+        log.debug(req.params.id);
+        if (err) {
+            res.send({ success: false, msg: err });
+            return;
+        }
+
+        if (!simulation) {
+            res.send({ success: false, msg: 'Entry not found' });
+        } else {
+            res.send(JSON.stringify(simulation));
+        }
+    });
+});
+
+simulationApp.post('/:id', (req, res, next) => {
+    if (!req.body) {
+        res.send({ success: false, msg: 'No field informed to update' });
+    } else {
+        next();
+    }
+}, (req, res, next) => {
+    let simulation = Simulation.findById(req.params.id, (err, simulation) => {
+        if (err) {
+            res.send({ success: false, msg: err });
+        } else {
+            if (!simulation) {
+                res.send({ success: false, msg: 'Entry not found' });
+            } else {
+                req.simulation = simulation;
+                next();
+            }
+        }
+    });
+}, (req, res) => {
+    for (let property in req.body) {
+        if(Simulation.schema.tree.hasOwnProperty(property)) {
+            req.simulation[property] = req.body[property];
+        }
+    }
+    req.simulation.save((err) => {
+        if (err) {
+            res.send({ success: false, msg: err });
+        } else {
+            res.send({
+                success: true,
+                msg: 'sim updated',
+                id: req.simulation._id,
+            });
+        }
+    });
+});
+
+module.exports = simulationApp;