diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index a6a887fa939cca783b1781bbb00422d917e1fd26..dfc1fdcee8a2d45d078aec24ef6551a257321667 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -152,7 +152,7 @@ class ApplicationController < ActionController::Base
 
   def add_gon_variables
     gon.default_issues_tracker = Project.issues_tracker.default_value
-    gon.api_version = Gitlab::API.version
+    gon.api_version = API::API.version
     gon.api_token = current_user.private_token if current_user
     gon.gravatar_url = request.ssl? ? Gitlab.config.gravatar.ssl_url : Gitlab.config.gravatar.plain_url
     gon.relative_url_root = Gitlab.config.gitlab.relative_url_root
diff --git a/config/routes.rb b/config/routes.rb
index 0e60aeb99842c0b52f0d089474abefd60e19e780..0b0bd293da25d088a67d067d47aacc3f1dea421b 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,4 +1,5 @@
 require 'sidekiq/web'
+require 'api/api'
 
 Gitlab::Application.routes.draw do
   #
@@ -7,9 +8,8 @@ Gitlab::Application.routes.draw do
   get 'search' => "search#show"
 
   # API
-  require 'api'
-  Gitlab::API.logger Rails.logger
-  mount Gitlab::API => '/api'
+  API::API.logger Rails.logger
+  mount API::API => '/api'
 
   constraint = lambda { |request| request.env["warden"].authenticate? and request.env['warden'].user.admin? }
   constraints constraint do
diff --git a/lib/api.rb b/lib/api/api.rb
similarity index 98%
rename from lib/api.rb
rename to lib/api/api.rb
index 082769da6d372388f0b29d4e655b574c7a875943..28e6add73ed0c397d220bb3a2569c5def1e7f583 100644
--- a/lib/api.rb
+++ b/lib/api/api.rb
@@ -1,6 +1,6 @@
 Dir["#{Rails.root}/lib/api/*.rb"].each {|file| require file}
 
-module Gitlab
+module API
   class API < Grape::API
     version 'v3', using: :path
 
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index 3fe4abc3e2ab97a231cd0ae88f2d71c5a5bbc9cb..c3c351e1733b5edd0b2d75eae05dcec7357df0f0 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -1,4 +1,4 @@
-module Gitlab
+module API
   module Entities
     class User < Grape::Entity
       expose :id, :username, :email, :name, :bio, :skype, :linkedin, :twitter,
diff --git a/lib/api/groups.rb b/lib/api/groups.rb
index efdbeb176c65dd046e4ee2a8d162d345553ccd27..701f6777b77d6f0a06a088bf47be01105ce356f2 100644
--- a/lib/api/groups.rb
+++ b/lib/api/groups.rb
@@ -1,4 +1,4 @@
-module Gitlab
+module API
   # groups API
   class Groups < Grape::API
     before { authenticate! }
diff --git a/lib/api/helpers.rb b/lib/api/helpers.rb
index f12fb5fdbd0af6ca328aee63a973091cddc40289..94cf4f2e69f75b739495933fd6476000ef07a11d 100644
--- a/lib/api/helpers.rb
+++ b/lib/api/helpers.rb
@@ -1,4 +1,4 @@
-module Gitlab
+module API
   module APIHelpers
     def current_user
       @current_user ||= User.find_by_authentication_token(params[:private_token] || env["HTTP_PRIVATE_TOKEN"])
diff --git a/lib/api/internal.rb b/lib/api/internal.rb
index 3e1173bd0a3543c665535cc48d64a1fbee480886..a602dc054188bffaddc6be0d7dc81b282d0d65a2 100644
--- a/lib/api/internal.rb
+++ b/lib/api/internal.rb
@@ -1,4 +1,4 @@
-module Gitlab
+module API
   # Internal access API
   class Internal < Grape::API
     namespace 'internal' do
@@ -58,7 +58,7 @@ module Gitlab
 
       get "/check" do
         {
-          api_version: Gitlab::API.version,
+          api_version: API.version,
           gitlab_version: Gitlab::VERSION,
           gitlab_rev: Gitlab::REVISION,
         }
diff --git a/lib/api/issues.rb b/lib/api/issues.rb
index 500a8551f35ebfc36616229dec4745c10b7b90a5..53e2e8cfa3599ce4ea6e5ec66d1cc724225ec735 100644
--- a/lib/api/issues.rb
+++ b/lib/api/issues.rb
@@ -1,4 +1,4 @@
-module Gitlab
+module API
   # Issues API
   class Issues < Grape::API
     before { authenticate! }
diff --git a/lib/api/merge_requests.rb b/lib/api/merge_requests.rb
index d5595d5f16bf3dddd9c671fd88523c185db2dde1..23e2f82889fc668f5187d626cce3c40117c9bcdb 100644
--- a/lib/api/merge_requests.rb
+++ b/lib/api/merge_requests.rb
@@ -1,4 +1,4 @@
-module Gitlab
+module API
   # MergeRequest API
   class MergeRequests < Grape::API
     before { authenticate! }
diff --git a/lib/api/milestones.rb b/lib/api/milestones.rb
index 1adeefece1f2202b5491f471df0ee2b4c73a17da..a25bbad130228fc61c1ccd261738690c7c1699fa 100644
--- a/lib/api/milestones.rb
+++ b/lib/api/milestones.rb
@@ -1,4 +1,4 @@
-module Gitlab
+module API
   # Milestones API
   class Milestones < Grape::API
     before { authenticate! }
diff --git a/lib/api/notes.rb b/lib/api/notes.rb
index 450faae535a8f351dff30616d5083a0e29cc9388..cb2bc764476274fef42561b9e67501ae7aa1a732 100644
--- a/lib/api/notes.rb
+++ b/lib/api/notes.rb
@@ -1,4 +1,4 @@
-module Gitlab
+module API
   # Notes API
   class Notes < Grape::API
     before { authenticate! }
diff --git a/lib/api/projects.rb b/lib/api/projects.rb
index 18e912ff48e8acf0987fa82594342b1043f8ad54..d9743b4539ac6f57564d01103aee952c619eb929 100644
--- a/lib/api/projects.rb
+++ b/lib/api/projects.rb
@@ -1,4 +1,4 @@
-module Gitlab
+module API
   # Projects API
   class Projects < Grape::API
     before { authenticate! }
diff --git a/lib/api/session.rb b/lib/api/session.rb
index b4050160ae42facebe03ae10f0af4c7f631454cc..509acded51efae8326423dcab4e6c18a5e292ebe 100644
--- a/lib/api/session.rb
+++ b/lib/api/session.rb
@@ -1,4 +1,4 @@
-module Gitlab
+module API
   # Users API
   class Session < Grape::API
     # Login to get token
diff --git a/lib/api/system_hooks.rb b/lib/api/system_hooks.rb
index 9e3574e3b9935b3ca64a9ce18de06ae622d878df..3e239c5afe773502151d31ae109f31fd6934abc6 100644
--- a/lib/api/system_hooks.rb
+++ b/lib/api/system_hooks.rb
@@ -1,4 +1,4 @@
-module Gitlab
+module API
   # Hooks API
   class SystemHooks < Grape::API
     before {
diff --git a/lib/api/users.rb b/lib/api/users.rb
index cda543495a08fb9618889abb05edd909e4677d1e..84256b51124ea8c58ed2f810dff47dd8476a28d2 100644
--- a/lib/api/users.rb
+++ b/lib/api/users.rb
@@ -1,4 +1,4 @@
-module Gitlab
+module API
   # Users API
   class Users < Grape::API
     before { authenticate! }
diff --git a/spec/requests/api/groups_spec.rb b/spec/requests/api/groups_spec.rb
index cf284b607a54b2f156766a2c23e54b4426e401e5..d2e25fb9e23782dbf1f53f91696a5c30954a0b30 100644
--- a/spec/requests/api/groups_spec.rb
+++ b/spec/requests/api/groups_spec.rb
@@ -1,6 +1,6 @@
 require 'spec_helper'
 
-describe Gitlab::API do
+describe API::API do
   include ApiHelpers
 
   let(:user1)  { create(:user) }
diff --git a/spec/requests/api/internal_spec.rb b/spec/requests/api/internal_spec.rb
index ba11a41da2982bba98eb4cabbb557e4fd754bb7c..5a43953d15c630011a7aecd78ca668eb9b59e1e4 100644
--- a/spec/requests/api/internal_spec.rb
+++ b/spec/requests/api/internal_spec.rb
@@ -1,6 +1,6 @@
 require 'spec_helper'
 
-describe Gitlab::API do
+describe API::API do
   include ApiHelpers
 
   let(:user) { create(:user) }
@@ -12,7 +12,7 @@ describe Gitlab::API do
       get api("/internal/check")
 
       response.status.should == 200
-      json_response['api_version'].should == Gitlab::API.version
+      json_response['api_version'].should == API::API.version
     end
   end
 
diff --git a/spec/requests/api/issues_spec.rb b/spec/requests/api/issues_spec.rb
index ecf0bdb70844ceb17513f913769807b7f5d107e6..d5f75367e4ad905967c780b8e4ae1b876033005d 100644
--- a/spec/requests/api/issues_spec.rb
+++ b/spec/requests/api/issues_spec.rb
@@ -1,6 +1,6 @@
 require 'spec_helper'
 
-describe Gitlab::API do
+describe API::API do
   include ApiHelpers
 
   let(:user) { create(:user) }
diff --git a/spec/requests/api/merge_requests_spec.rb b/spec/requests/api/merge_requests_spec.rb
index 25bbd9860bd6cee0c7a59eb46b152006345417f8..5bf228a74486c31f503290e0714c4c3fce4056b3 100644
--- a/spec/requests/api/merge_requests_spec.rb
+++ b/spec/requests/api/merge_requests_spec.rb
@@ -1,6 +1,6 @@
 require "spec_helper"
 
-describe Gitlab::API do
+describe API::API do
   include ApiHelpers
 
   let(:user) { create(:user ) }
diff --git a/spec/requests/api/milestones_spec.rb b/spec/requests/api/milestones_spec.rb
index c9a10417fff8a54dbc27937379ba03892c235563..af12c088c8f807efdf139305e60143b993a7d50f 100644
--- a/spec/requests/api/milestones_spec.rb
+++ b/spec/requests/api/milestones_spec.rb
@@ -1,6 +1,6 @@
 require 'spec_helper'
 
-describe Gitlab::API do
+describe API::API do
   include ApiHelpers
   before(:each) { enable_observers }
 
diff --git a/spec/requests/api/notes_spec.rb b/spec/requests/api/notes_spec.rb
index 901640834f212f04e558bd7833f549ec61a32e6e..78d55a7b4ed341da50f6dc98ddc69aa0daeb3376 100644
--- a/spec/requests/api/notes_spec.rb
+++ b/spec/requests/api/notes_spec.rb
@@ -1,6 +1,6 @@
 require 'spec_helper'
 
-describe Gitlab::API do
+describe API::API do
   include ApiHelpers
 
   let(:user) { create(:user) }
diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb
index 7aeee354ba1ef0d3bdc0e312b2c1110432a3b63d..4346bfe8f2e3fe81603f3afcb10d4be64ed9e2ae 100644
--- a/spec/requests/api/projects_spec.rb
+++ b/spec/requests/api/projects_spec.rb
@@ -1,6 +1,6 @@
 require 'spec_helper'
 
-describe Gitlab::API do
+describe API::API do
   include ApiHelpers
   before(:each) { enable_observers }
 
diff --git a/spec/requests/api/session_spec.rb b/spec/requests/api/session_spec.rb
index 4a37312bffde71ce65d36936e38260bc5cc684cd..88c17f26a69d1373e3f172904b92e8c7f54d8524 100644
--- a/spec/requests/api/session_spec.rb
+++ b/spec/requests/api/session_spec.rb
@@ -1,6 +1,6 @@
 require 'spec_helper'
 
-describe Gitlab::API do
+describe API::API do
   include ApiHelpers
 
   let(:user) { create(:user) }
diff --git a/spec/requests/api/system_hooks_spec.rb b/spec/requests/api/system_hooks_spec.rb
index 647e31ce034eb587bd022b62e795e0561a831585..b1df3cb7886d316c70b5f7237d0841e25e694aa1 100644
--- a/spec/requests/api/system_hooks_spec.rb
+++ b/spec/requests/api/system_hooks_spec.rb
@@ -1,6 +1,6 @@
 require 'spec_helper'
 
-describe Gitlab::API do
+describe API::API do
   include ApiHelpers
 
   let(:user) { create(:user) }
diff --git a/spec/requests/api/users_spec.rb b/spec/requests/api/users_spec.rb
index b4688dd29f7783c4b755d39ff7b7f4085dc6f9bd..33df9f7ece5da6cb153b4b8d6e0764ea079bf4e6 100644
--- a/spec/requests/api/users_spec.rb
+++ b/spec/requests/api/users_spec.rb
@@ -1,6 +1,6 @@
 require 'spec_helper'
 
-describe Gitlab::API do
+describe API::API do
   include ApiHelpers
 
   let(:user)  { create(:user) }
diff --git a/spec/routing/routing_spec.rb b/spec/routing/routing_spec.rb
index 5ad8165ecce1de76442b5f4c19394f13a7136634..049cfeaab0192b3cd6897fd59badac052079b254 100644
--- a/spec/routing/routing_spec.rb
+++ b/spec/routing/routing_spec.rb
@@ -7,7 +7,7 @@ describe SearchController, "routing" do
   end
 end
 
-# gitlab_api /api         Gitlab::API
+# gitlab_api /api         API::API
 #     resque /info/resque Resque::Server
 #            /:path       Grack
 describe "Mounted Apps", "routing" do
diff --git a/spec/support/api_helpers.rb b/spec/support/api_helpers.rb
index c4514bf38be20c5b7921a04d8feb79b1b4d7341e..ec9a326a1ea0252d8afbb21b3f89312c8038d86b 100644
--- a/spec/support/api_helpers.rb
+++ b/spec/support/api_helpers.rb
@@ -18,7 +18,7 @@ module ApiHelpers
   #
   # Returns the relative path to the requested API resource
   def api(path, user = nil)
-    "/api/#{Gitlab::API.version}#{path}" +
+    "/api/#{API::API.version}#{path}" +
 
       # Normalize query string
       (path.index('?') ? '' : '?') +