diff --git a/CHANGELOG b/CHANGELOG
index 3ecc45cde07065fd04cadfe1b0840e6a2f8ab3b6..297a8ee3489a1f4f8861c9c4e0e03582327c2eb5 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -33,6 +33,7 @@ v 7.10.0 (unreleased)
   - Don't show commit comment button when user is not signed in.
   - Don't include system notes in issue/MR comment count.
   - Don't mark merge request as updated when merge status relative to target branch changes.
+  - API: Add pagination to project events
 
 v 7.9.0
   - Send EmailsOnPush email when branch or tag is created or deleted.
diff --git a/lib/api/projects.rb b/lib/api/projects.rb
index 83f65eec6cc78a32926990c2f519f906f726ccac..e3fff79d68f5e6115a7314cca2bdf3081bd16bdc 100644
--- a/lib/api/projects.rb
+++ b/lib/api/projects.rb
@@ -88,17 +88,14 @@ module API
         present user_project, with: Entities::ProjectWithAccess, user: current_user
       end
 
-      # Get a single project events
+      # Get events for a single project
       #
       # Parameters:
       #   id (required) - The ID of a project
       # Example Request:
       #   GET /projects/:id/events
       get ":id/events" do
-        limit = (params[:per_page] || 20).to_i
-        offset = (params[:page] || 0).to_i * limit
-        events = user_project.events.recent.limit(limit).offset(offset)
-
+        events = paginate user_project.events.recent
         present events, with: Entities::Event
       end