diff --git a/feedbackloop/model.py b/feedbackloop/model.py
index 3db965fc5ccc0cdbe78bdbd06322b6a891e9f585..00cbbe0fffa5ca3f0e4e9cafbb089e1b8eabefce 100644
--- a/feedbackloop/model.py
+++ b/feedbackloop/model.py
@@ -9,3 +9,12 @@ class FeedbackEntry(db.Model):
     is_list = db.Column(db.Boolean, index=True)
     message = db.Column(db.Text)
     timestamp = db.Column(db.DateTime)
+
+    def to_api_dict(self):
+        return {
+            'id': self.id,
+            'sender': self.sender,
+            'reporter': self.reporter,
+            'is_list': self.is_list,
+            'timestamp': self.timestamp.strftime('%Y-%m-%dT%H:%M:%SZ'),
+        }
diff --git a/feedbackloop/views.py b/feedbackloop/views.py
index d4a9f7bc2b2ca8b200cc0a6e60808822192a1ba1..98dcd5be2db1879ae5cb387f499c55f49edb5e16 100644
--- a/feedbackloop/views.py
+++ b/feedbackloop/views.py
@@ -1,4 +1,4 @@
-from flask import request, render_template, abort
+from flask import request, render_template, abort, jsonify
 from sqlalchemy import func, text
 from .app import app, db
 from .model import FeedbackEntry
@@ -24,6 +24,16 @@ def by_sender(sender):
                            reports=reports)
 
 
+@app.route('/api/by_sender/<sender>')
+def api_by_sender(sender):
+    reports = FeedbackEntry.query.filter(
+        FeedbackEntry.sender == sender).order_by(
+            FeedbackEntry.timestamp.desc())
+    return jsonify({
+        'reports': [x.to_api_dict() for x in reports],
+    })
+
+
 @app.route('/')
 def index():
     n = int(request.args.get('n', '20'))