diff --git a/lib/travis/api/app/endpoint/builds.rb b/lib/travis/api/app/endpoint/builds.rb
index 64e4e684..2f1e5837 100644
--- a/lib/travis/api/app/endpoint/builds.rb
+++ b/lib/travis/api/app/endpoint/builds.rb
@@ -43,6 +43,11 @@ class Travis::Api::App
           status 204
         end
       end
+
+      post '/:id/restart' do
+        Metriks.meter("api.request.restart_build").mark
+        respond_with service(:reset_model, build_id: params[:id])
+      end
     end
   end
 end
diff --git a/lib/travis/api/app/endpoint/jobs.rb b/lib/travis/api/app/endpoint/jobs.rb
index 9d6af422..e6722563 100644
--- a/lib/travis/api/app/endpoint/jobs.rb
+++ b/lib/travis/api/app/endpoint/jobs.rb
@@ -59,6 +59,11 @@ class Travis::Api::App
         end
       end
 
+      post '/:id/restart' do
+        Metriks.meter("api.request.restart_job").mark
+        respond_with service(:reset_model, job_id: params[:id])
+      end
+
       def archive_url(path)
         "https://s3.amazonaws.com/#{hostname('archive')}#{path}"
       end