diff --git a/reviewboard/webapi/json.py b/reviewboard/webapi/json.py
--- a/reviewboard/webapi/json.py
+++ b/reviewboard/webapi/json.py
@@ -684,6 +684,24 @@ def count_review_requests(request, func, **kwargs):
     })
 
 
+@webapi_check_login_required
+def review_request_diffsets(request, review_request_id):
+    """
+    Returns a list of review request diffsets.
+    """
+    try:
+        review_request = ReviewRequest.objects.get(pk=review_request_id)
+    except ReviewRequest.DoesNotExist:
+        return WebAPIResponseError(request, DOES_NOT_EXIST)
+
+    if not review_request.is_accessible_by(request.user):
+        return WebAPIResponseError(request, PERMISSION_DENIED)
+
+    return WebAPIResponse(request, {
+        'diffsets': review_request.diffset_history.diffsets.all(),
+    })
+
+
 def _get_and_validate_review(request, review_request_id, review_id):
     review_request = get_object_or_404(ReviewRequest, pk=review_request_id)
     review = get_object_or_404(Review, pk=review_id)
diff --git a/reviewboard/webapi/tests.py b/reviewboard/webapi/tests.py
--- a/reviewboard/webapi/tests.py
+++ b/reviewboard/webapi/tests.py
@@ -926,6 +926,13 @@ class WebAPITests(TestCase, EmailTestHelper):
 
         return rsp
 
+    def testReviewRequestDiffsets(self):
+        """Testing the reviewrequests/diffsets API"""
+        rsp = self.apiGet("reviewrequests/2/diffs")
+
+        self.assertEqual(rsp['diffsets'][0]["id"], 2)
+        self.assertEqual(rsp['diffsets'][0]["name"], 'cleaned_data.diff')
+
     def testDiffCommentsSet(self):
         """Testing the reviewrequests/diff/file/line/comments set API"""
         comment_text = "This is a test comment."
diff --git a/reviewboard/webapi/urls.py b/reviewboard/webapi/urls.py
--- a/reviewboard/webapi/urls.py
+++ b/reviewboard/webapi/urls.py
@@ -157,6 +157,8 @@ urlpatterns += never_cache_patterns('reviewboard.webapi.json',
     # Diffs
     (r'^reviewrequests/(?P<review_request_id>[0-9]+)/diff/new/$',
      'new_diff'),
+    (r'^reviewrequests/(?P<review_request_id>[0-9]+)/diff/$',
+     'review_request_diffsets'),
 
     # Screenshots
     (r'^reviewrequests/(?P<review_request_id>[0-9]+)/screenshot/new/$',
-- 
1.6.0.4

