diff --git a/changelogs/unreleased/26261-post-api-v3-projects-idorproject-commits-commits-does-not-work-with-project-path.yml b/changelogs/unreleased/26261-post-api-v3-projects-idorproject-commits-commits-does-not-work-with-project-path.yml
new file mode 100644
index 0000000000000000000000000000000000000000..37bd7e46b4950e589831375b859186494abf2b2b
--- /dev/null
+++ b/changelogs/unreleased/26261-post-api-v3-projects-idorproject-commits-commits-does-not-work-with-project-path.yml
@@ -0,0 +1,4 @@
+---
+title: Fix Commits API to accept a Project path upon POST
+merge_request:
+author:
diff --git a/lib/api/commits.rb b/lib/api/commits.rb
index cf2489dbb6798aac4e79749f4221807341c5e093..e6d707f3c3d7cd1217a150db40b33b4060196a07 100644
--- a/lib/api/commits.rb
+++ b/lib/api/commits.rb
@@ -44,7 +44,6 @@ module API
         detail 'This feature was introduced in GitLab 8.13'
       end
       params do
-        requires :id, type: Integer, desc: 'The project ID'
         requires :branch_name, type: String, desc: 'The name of branch'
         requires :commit_message, type: String, desc: 'Commit message'
         requires :actions, type: Array[Hash], desc: 'Actions to perform in commit'
diff --git a/spec/requests/api/commits_spec.rb b/spec/requests/api/commits_spec.rb
index 964cded917cbf505b08b1b5bd5e17e956441039a..7f8ea5251f0dabbc8bb48993d3e1eff2c937345b 100644
--- a/spec/requests/api/commits_spec.rb
+++ b/spec/requests/api/commits_spec.rb
@@ -146,6 +146,16 @@ describe API::Commits, api: true  do
 
         expect(response).to have_http_status(400)
       end
+
+      context 'with project path in URL' do
+        let(:url) { "/projects/#{project.namespace.path}%2F#{project.path}/repository/commits" }
+
+        it 'a new file in project repo' do
+          post api(url, user), valid_c_params
+
+          expect(response).to have_http_status(201)
+        end
+      end
     end
 
     context :delete do