diff --git a/Gemfile b/Gemfile
index 0eba7eb2f654cbe61af629582699d1c854428d43..6652d1e35b2396ef01f0475feaa422b4ec36e275 100644
--- a/Gemfile
+++ b/Gemfile
@@ -39,7 +39,8 @@ gem "pygments.rb",  git: "https://github.com/gitlabhq/pygments.rb.git", branch:
 gem "github-linguist", "~> 2.3.4" , require: "linguist"
 
 # API
-gem "grape", "~> 0.2.1"
+gem "grape", "~> 0.3.1"
+gem "grape-entity", "~> 0.2.0"
 
 # Format dates and times
 # based on human-friendly examples
diff --git a/Gemfile.lock b/Gemfile.lock
index 3ca39aeae28b6afe11e03470519768945a0b1cf1..93abf857cb83437558e3c2674ada494d96f83754 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -182,8 +182,9 @@ GEM
       pyu-ruby-sasl (~> 0.0.3.1)
       rubyntlm (~> 0.1.1)
     gitlab_yaml_db (1.0.0)
-    grape (0.2.2)
+    grape (0.3.1)
       activesupport
+      grape-entity (~> 0.2.0)
       hashie (~> 1.2)
       multi_json (>= 1.3.2)
       multi_xml
@@ -191,6 +192,7 @@ GEM
       rack-accept
       rack-mount
       virtus
+    grape-entity (0.2.0)
     growl (1.0.3)
     guard (1.5.4)
       listen (>= 0.4.2)
@@ -481,7 +483,8 @@ DEPENDENCIES
   gitlab_omniauth-ldap (= 1.0.2)
   gitlab_yaml_db (= 1.0.0)
   grack!
-  grape (~> 0.2.1)
+  grape (~> 0.3.1)
+  grape-entity (~> 0.2.0)
   grit!
   grit_ext!
   growl
diff --git a/lib/api.rb b/lib/api.rb
index ffd980ca7e007d09e322535cf55960dcc02a5391..3264f6a8fa6a56a2cb91ed93af538b3df0d67b48 100644
--- a/lib/api.rb
+++ b/lib/api.rb
@@ -22,7 +22,6 @@ module Gitlab
     end
 
     format :json
-    error_format :json
     helpers APIHelpers
     
     mount Groups
diff --git a/lib/api/projects.rb b/lib/api/projects.rb
index c749c24f228ffcf2e92531e70713b5fbd88796af..a1a7cee40327b3265eb50146e3a200273c88ee7e 100644
--- a/lib/api/projects.rb
+++ b/lib/api/projects.rb
@@ -340,7 +340,7 @@ module Gitlab
         authorize! :download_code, user_project
 
         page = params[:page] || 0
-        per_page = params[:per_page] || 20
+        per_page = params[:per_page].to_i || 20
         ref = params[:ref_name] || user_project.try(:default_branch) || 'master'
 
         commits = user_project.repository.commits(ref, nil, per_page, page * per_page)