     callback null, session
 
 
-fetchSession = (Models, token, callback) ->
+fetchSession = (Models, options, callback) ->
+
+  { token } = options
+
+  unless token
+
+    Models.JSession.createSession options, (err, res) ->
+      if err or not res?.session
+        return callback apiErrors.unauthorizedRequest
+
+      callback null, res.session
+
+    return
 
   Models.JSession.one { clientId: token }, (err, session) ->
 


      context         = getContextFromSession session
      constructorName = getConstructorName model, Models

      unless constructorName
        sendApiError res, apiErrors.invalidInput

      return callback apiErrors.unauthorizedRequest

    if session

      if session.isGuestSession()
        session.remove()
        return callback apiErrors.unauthorizedRequest

      if session.getAt 'sessionData.apiSession'
        Models.JApiToken.fetchGroup (session.getAt 'groupName'), (err) ->
