diff --git a/CHANGELOG b/CHANGELOG
index f4567fc5bbd8e32747f264023d4536f8fe1c9beb..d95dd0ec54f91776a40dbbfdbe6eb2e1c458b499 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -22,6 +22,7 @@ v 8.11.0 (unreleased)
   - Add the `sprockets-es6` gem
   - Multiple trigger variables show in separate lines (Katarzyna Kobierska Ula Budziszewska)
   - Profile requests when a header is passed
+  - Add commit stats in commit api. !5517 (dixpac)
   - Make error pages responsive (Takuya Noguchi)
   - Change requests_profiles resource constraint to catch virtually any file
 
diff --git a/doc/api/commits.md b/doc/api/commits.md
index 57c2e1d9b8710de15587cea2921a5b01a8a1bec4..2960c2ae428db0dd2514de264147697d930a52bb 100644
--- a/doc/api/commits.md
+++ b/doc/api/commits.md
@@ -81,6 +81,11 @@ Example response:
   "parent_ids": [
     "ae1d9fb46aa2b07ee9836d49862ec4e2c46fbbba"
   ],
+  "stats": {
+    "additions": 15,
+    "deletions": 10,
+    "total": 25
+  },
   "status": "running"
 }
 ```
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index fbf0d74663f343400da800c457685e24a2177c64..e76e7304674da0edaaa69e41513f0c8a1cb17659 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -149,8 +149,13 @@ module API
       expose :safe_message, as: :message
     end
 
+    class RepoCommitStats < Grape::Entity
+      expose :additions, :deletions, :total
+    end
+
     class RepoCommitDetail < RepoCommit
       expose :parent_ids, :committed_date, :authored_date
+      expose :stats, using: Entities::RepoCommitStats
       expose :status
     end
 
diff --git a/spec/requests/api/commits_spec.rb b/spec/requests/api/commits_spec.rb
index 5219c8087915f787b1c95a86a6d8a0c17c3b8e21..e4ea850659899364107030693a126a1321bfb96f 100644
--- a/spec/requests/api/commits_spec.rb
+++ b/spec/requests/api/commits_spec.rb
@@ -73,9 +73,13 @@ describe API::API, api: true  do
     context "authorized user" do
       it "should return a commit by sha" do
         get api("/projects/#{project.id}/repository/commits/#{project.repository.commit.id}", user)
+
         expect(response).to have_http_status(200)
         expect(json_response['id']).to eq(project.repository.commit.id)
         expect(json_response['title']).to eq(project.repository.commit.title)
+        expect(json_response['stats']['additions']).to eq(project.repository.commit.stats.additions)
+        expect(json_response['stats']['deletions']).to eq(project.repository.commit.stats.deletions)
+        expect(json_response['stats']['total']).to eq(project.repository.commit.stats.total)
       end
 
       it "should return a 404 error if not found" do