diff --git a/sams_classes/sams_proxy.py b/sams_classes/sams_proxy.py
index b78c9d2cbf7324572b92077a0268ab79b4e7cfaa..009032742578668c155e2fd4327bb63874b245f0 100644
--- a/sams_classes/sams_proxy.py
+++ b/sams_classes/sams_proxy.py
@@ -38,6 +38,7 @@ class SAMSProxy:
   
   def _pass_param(self, method, paramType, paramDict = {}):
     paramDict.update(self._filter_session(method, paramType))
+    paramDict.update(self._filter_token(paramType))
     return paramDict
   
   def _filter_session(self, method, paramType):
@@ -50,7 +51,13 @@ class SAMSProxy:
         filteredSession[filteredParams[param]['name']] = str(session.get(param))
     return filteredSession
   
-  def _get_first_dict(self, *possibleDicts)->dict:
+  def _filter_token(self, paramType: str) -> dict:
+    if paramType == self._proxySpec.get('token', {}).get('param-type'):
+      return {
+        self._proxySpec['token']['name']: self._proxySpec['token']['value']}
+    return {}
+  
+  def _get_first_dict(self, *possibleDicts) -> dict:
     for possibleDict in possibleDicts:
       if isinstance(possibleDict, dict):
         return possibleDict
diff --git a/test/test_sams_proxy.py b/test/test_sams_proxy.py
index ed1099a2e59231b0865d7c413784cc5eb1ec175f..8390ccffea162947ec9496c376a8dc4dce70cd5b 100644
--- a/test/test_sams_proxy.py
+++ b/test/test_sams_proxy.py
@@ -26,30 +26,37 @@ class TestSAMSHub(unittest.TestCase):
 
   def test_mandatory_keys_in_spec(self):
     """ ProxySpecKeyMissing is raised if something is mising in spec"""
-    with self.assertRaises(ProxySpecKeyMssing):
-      SAMSProxy(proxySpec = {'out': 'http://baz.foo'})
-      SAMSProxy(proxySpec = {'in': '/foo/bar'})
-      SAMSProxy(proxySpec = {'in': '/foo/bar', 'out': 'http://baz.foo'
-        , 'token': {'name': 'user'}})
-      SAMSProxy(proxySpec = {'in': '/foo/bar', 'out': 'http://baz.foo'
-        , 'token': {'value': 'user'}})
-      SAMSProxy(proxySpec = {'in': '/foo/bar', 'out': 'http://baz.foo'
-        , 'session_passthrough': {}})
-      SAMSProxy(proxySpec = {'in': '/foo/bar', 'out': 'http://baz.foo'
-        , 'session_passthrough': {'default': {}}})
-      SAMSProxy(proxySpec = {'in': '/foo/bar', 'out': 'http://baz.foo'
-        , 'session_passthrough': {'default': {'user': {'name': 'u'}}}})
-      SAMSProxy(proxySpec = {'in': '/foo/bar', 'out': 'http://baz.foo'
-        , 'session_passthrough': {'default': {'user': {'param_type': 'body'}}}})
-      for method in ('get', 'post', 'delete', 'put', 'update'):
-        SAMSProxy(proxySpec = {'in': '/foo/bar', 'out': 'http://baz.foo'
-          , 'session_passthrough': {'default': {
-            'user': {'param_type': 'body', 'name': 'u'}
-          }, method: {'user': {'param_type': 'body'}}}})
-        SAMSProxy(proxySpec = {'in': '/foo/bar', 'out': 'http://baz.foo'
-          , 'session_passthrough': {'default': {
-            'user': {'param_type': 'body', 'name': 'u'}
-          }, method: {'user': {'name': 'u'}}}})
+    proxySpecs = [
+      {'out': 'http://baz.foo'},
+      {'in': '/foo/bar'},
+      {'in': '/foo/bar', 'out': 'http://baz.foo'
+        , 'token': {'name': 'user'}},
+      {'in': '/foo/bar', 'out': 'http://baz.foo'
+        , 'token': {'value': 'user'}},
+      {'in': '/foo/bar', 'out': 'http://baz.foo'
+        , 'token': {'name': 'user', 'value': 'user'}},
+      {'in': '/foo/bar', 'out': 'http://baz.foo'
+        , 'session-passthrough': {}},
+      {'in': '/foo/bar', 'out': 'http://baz.foo'
+        , 'session-passthrough': {'default': {}}},
+      {'in': '/foo/bar', 'out': 'http://baz.foo'
+        , 'session-passthrough': {'default': {'user': {'name': 'u'}}}},
+      {'in': '/foo/bar', 'out': 'http://baz.foo'
+        , 'session-passthrough': {'default': {'user': {'param_type': 'body'}}}}
+    ]
+    for method in ('get', 'post', 'delete', 'put', 'update'):
+      proxySpecs.append({'in': '/foo/bar', 'out': 'http://baz.foo',
+        'session-passthrough': {'default': {
+          'user': {'param_type': 'body', 'name': 'u'}
+        }, method: {'user': {'param_type': 'body'}}}})
+      proxySpecs.append({'in': '/foo/bar', 'out': 'http://baz.foo',
+        'session-passthrough': {'default': {
+          'user': {'param_type': 'body', 'name': 'u'}
+        }, method: {'user': {'name': 'u'}}}})
+    for proxySpec in proxySpecs:
+      with self.subTest(proxySpec):
+        with self.assertRaises(ProxySpecKeyMssing):
+          SAMSProxy(proxySpec = proxySpec)
 
 class TestSAMSHubWithThreadedAPI(unittest.TestCase):
 
@@ -187,4 +194,33 @@ class TestSAMSHubWithThreadedAPI(unittest.TestCase):
       resDict = json.loads(res.data.decode('utf-8'))
       self.assertEqual(resDict['url']['u'], 'foo')
       self.assertEqual(resDict['body']['g'], 'bar')
-      self.assertEqual(resDict['header']['Lang'], 'klingon')
\ No newline at end of file
+      self.assertEqual(resDict['header']['Lang'], 'klingon')
+  
+  def test_token_passthrough(self):
+    """The proxy passes the specified token and the other params"""
+    for param_type in ('header', 'url', 'body'):
+      proxyApp = Flask('test')
+      proxyApp.config['TESTING'] = True
+      proxy = SAMSProxy(
+        proxySpec = {
+          'in': '/proxy', 'out': 'http://localhost:4711',
+          'token': {
+            'name': 'Api-Token', 'value': '53CUR34P170K3N',
+            'param-type': param_type
+          }
+        }
+      )
+      with self.subTest(param_type):
+        proxyApp.add_url_rule(rule = proxy.urlRule, endpoint = 'proxy',
+          view_func = proxy.proxy, methods=['GET', 'POST', 'PUT', 'UPDATE',
+            'PATCH', 'DELETE', 'OPTIONS'])
+        with proxyApp.test_client(self) as client:
+          res = client.get(path='/proxy/passthrough',
+            query_string={'u':'foo'}, data={'g':'bar'},
+            headers={'lang': 'klingon'})
+          resDict = json.loads(res.data.decode('utf-8'))
+          self.assertEqual(resDict['url']['u'], 'foo')
+          self.assertEqual(resDict['body']['g'], 'bar')
+          self.assertEqual(resDict['header']['Lang'], 'klingon')
+          eprint(resDict[param_type]) 
+          self.assertEquals(resDict[param_type]['Api-Token'], '53CUR34P170K3N')
\ No newline at end of file