diff --git a/doc/api/README.md b/doc/api/README.md
index ca58c184543e526a1a0841b529ab22c99170a03f..b474e0ea38902e2a24f597ae3213286570495c33 100644
--- a/doc/api/README.md
+++ b/doc/api/README.md
@@ -20,6 +20,7 @@
 - [System Hooks](system_hooks.md)
 - [Groups](groups.md)
 - [Namespaces](namespaces.md)
+- [Settings](settings.md)
 
 ## Clients
 
diff --git a/doc/api/settings.md b/doc/api/settings.md
new file mode 100644
index 0000000000000000000000000000000000000000..d1b93a09c02b40d927a8b158687f8826e677c89d
--- /dev/null
+++ b/doc/api/settings.md
@@ -0,0 +1,88 @@
+# Application settings
+
+This API allows you to read and modify GitLab instance application settings. 
+
+
+## Get current application settings: 
+
+```
+GET /application/settings
+```
+
+```json
+{
+  "id": 1,
+  "default_projects_limit": 10,
+  "signup_enabled": true,
+  "signin_enabled": true,
+  "gravatar_enabled": true,
+  "sign_in_text": "",
+  "created_at": "2015-06-12T15:51:55.432Z",
+  "updated_at": "2015-06-30T13:22:42.210Z",
+  "home_page_url": "",
+  "default_branch_protection": 2,
+  "twitter_sharing_enabled": true,
+  "restricted_visibility_levels": [],
+  "max_attachment_size": 10,
+  "session_expire_delay": 10080,
+  "default_project_visibility": 0,
+  "default_snippet_visibility": 0,
+  "restricted_signup_domains": [],
+  "user_oauth_applications": true,
+  "after_sign_out_path": ""
+}
+```
+
+## Change application settings: 
+
+
+
+```
+PUT /application/settings
+```
+
+Parameters:
+
+- `default_projects_limit` - project limit per user
+- `signup_enabled` - enable registration
+- `signin_enabled` - enable login via GitLab account
+- `gravatar_enabled` - enable gravatar
+- `sign_in_text` - text on login page
+- `home_page_url` - redirect to this URL when not logged in
+- `default_branch_protection` - determine if developers can push to master
+- `twitter_sharing_enabled` - allow users to share project creation in twitter
+- `restricted_visibility_levels` - restrict certain visibility levels
+- `max_attachment_size` - limit attachment size
+- `session_expire_delay` - session lifetime
+- `default_project_visibility` - what visibility level new project receives
+- `default_snippet_visibility` - what visibility level new snippet receives
+- `restricted_signup_domains` - force people to use only corporate emails for signup
+- `user_oauth_applications` - allow users to create oauth applicaitons
+- `after_sign_out_path` - where redirect user after logout
+
+All parameters are optional. You can send only one that you want to change.
+
+
+```json
+{
+  "id": 1,
+  "default_projects_limit": 10,
+  "signup_enabled": true,
+  "signin_enabled": true,
+  "gravatar_enabled": true,
+  "sign_in_text": "",
+  "created_at": "2015-06-12T15:51:55.432Z",
+  "updated_at": "2015-06-30T13:22:42.210Z",
+  "home_page_url": "",
+  "default_branch_protection": 2,
+  "twitter_sharing_enabled": true,
+  "restricted_visibility_levels": [],
+  "max_attachment_size": 10,
+  "session_expire_delay": 10080,
+  "default_project_visibility": 0,
+  "default_snippet_visibility": 0,
+  "restricted_signup_domains": [],
+  "user_oauth_applications": true,
+  "after_sign_out_path": ""
+}
+```
diff --git a/lib/api/settings.rb b/lib/api/settings.rb
index 28c7a05c629da287b49e4c293d7606b3ad5d253f..4aa81bf8bab04cce5105642f9b2816eff5877d6a 100644
--- a/lib/api/settings.rb
+++ b/lib/api/settings.rb
@@ -1,7 +1,6 @@
 module API
   class Settings < Grape::API
-    before { authenticate! }
-    before { authorize_admin_project }
+    before { authenticated_as_admin! }
 
     helpers do
       def current_settings
diff --git a/spec/requests/api/settings_spec.rb b/spec/requests/api/settings_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..2ab31c6a10a9fc3cc369bbb88eb6d2362d747e2b
--- /dev/null
+++ b/spec/requests/api/settings_spec.rb
@@ -0,0 +1,17 @@
+require 'spec_helper'
+
+describe API::API, 'Settings', api: true  do
+  include ApiHelpers
+
+  let(:user) { create(:user) }
+  let(:admin) { create(:admin) }
+
+
+  describe "GET /applicaiton/settings" do
+    # TODO: Implement
+  end
+
+  describe "PUT /applicaiton/settings" do
+    # TODO: Implement
+  end
+end