diff --git a/lib/api/helpers.rb b/lib/api/helpers.rb
index 14390545bd5eb1030a3c8a01f1f831e3b643f901..da1d2bd02f9e19f17947ad40c6da1300744aa82c 100644
--- a/lib/api/helpers.rb
+++ b/lib/api/helpers.rb
@@ -22,6 +22,10 @@ module Gitlab
       unauthorized! unless current_user
     end
 
+    def authenticated_as_admin!
+      forbidden! unless current_user.is_admin?
+    end
+
     def authorize! action, subject
       unless abilities.allowed?(current_user, action, subject)
         forbidden!
diff --git a/lib/api/users.rb b/lib/api/users.rb
index 0ca8fb2a1ae6d960adc9249ed7bddfb75c007c17..8ce7c300a7335d40d7c10b21313396512c2846d2 100644
--- a/lib/api/users.rb
+++ b/lib/api/users.rb
@@ -23,6 +23,30 @@ module Gitlab
         @user = User.find(params[:id])
         present @user, with: Entities::User
       end
+      
+      # Create user. Available only for admin
+      #
+      # Parameters:
+      #   email (required)                  - Email
+      #   name (required)                   - Name
+      #   password (required)               - Password
+      #   password_confirmation (required)  - Password confirmation
+      #   skype                             - Skype ID
+      #   linkedin (required)               - Linkedin
+      #   twitter                           - Twitter account
+      #   projects_limit                    - Limit projects wich user can create
+      # Example Request:
+      #   POST /users
+      post do
+        authenticated_as_admin!
+        attrs = attributes_for_keys [:email, :name, :password, :password_confirmation, :skype, :linkedin, :twitter, :projects_limit]
+        user = User.new attrs
+        if user.save
+          present user, with: Entities::User
+        else
+          not_found!
+        end
+      end
     end
 
     resource :user do
@@ -78,6 +102,8 @@ module Gitlab
         key = current_user.keys.find params[:id]
         key.delete
       end
+
+
     end
   end
 end