diff --git a/celerymon/handlers/api.py b/celerymon/handlers/api.py
index <HASH>..<HASH> 100644
--- a/celerymon/handlers/api.py
+++ b/celerymon/handlers/api.py
@@ -1,6 +1,7 @@
 from __future__ import absolute_import
 
 from functools import wraps
+import types
 
 import anyjson
 from tornado.web import RequestHandler, HTTPError
@@ -16,6 +17,8 @@ def JSON(fun):
     @wraps(fun)
     def _write_json(self, *args, **kwargs):
         content = fun(self, *args, **kwargs)
+        if isinstance(content, types.GeneratorType):
+            content = list(content)
         self.write(anyjson.serialize(content))
 
     return _write_json
unrolling generators before json encoding