diff --git a/CHANGELOG b/CHANGELOG
index 20b6dce1764cd461f6ac46d1ff87c74de5a92f28..99e327472f4a5f1158085b3f950dbb2ea7d860fa 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -9,6 +9,7 @@ v 8.1.0 (unreleased)
   - Show CI status on commit page
   - Show CI status on Your projects page and Starred projects page
   - Remove "Continuous Integration" page from dashboard
+  - Add notes and SSL verification entries to hook APIs (Ben Boeckel)
 
 v 8.0.2 (unreleased)
   - Fix default avatar not rendering in network graph (Stan Hu)
diff --git a/doc/api/projects.md b/doc/api/projects.md
index 10533c73a312f1d2a3ffd27dbc822476aae58eb3..9648585703530f6be3923a651ec7ddd4a9b5912b 100644
--- a/doc/api/projects.md
+++ b/doc/api/projects.md
@@ -515,6 +515,8 @@ Parameters:
   "push_events": "true",
   "issues_events": "true",
   "merge_requests_events": "true",
+  "note_events": "true",
+  "enable_ssl_verification": "true",
   "created_at": "2012-10-12T17:04:47Z"
 }
 ```
@@ -535,6 +537,8 @@ Parameters:
 - `issues_events` - Trigger hook on issues events
 - `merge_requests_events` - Trigger hook on merge_requests events
 - `tag_push_events` - Trigger hook on push_tag events
+- `note_events` - Trigger hook on note events
+- `enable_ssl_verification` - Do SSL verification when triggering the hook
 
 ### Edit project hook
 
@@ -553,6 +557,8 @@ Parameters:
 - `issues_events` - Trigger hook on issues events
 - `merge_requests_events` - Trigger hook on merge_requests events
 - `tag_push_events` - Trigger hook on push_tag events
+- `note_events` - Trigger hook on note events
+- `enable_ssl_verification` - Do SSL verification when triggering the hook
 
 ### Delete project hook
 
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index 33b6224a810666f7928b6e50a952040d678b677b..9620d36ac4170e459e67ff4458741e1b9fce2fc4 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -45,7 +45,7 @@ module API
 
     class ProjectHook < Hook
       expose :project_id, :push_events
-      expose :issues_events, :merge_requests_events, :tag_push_events
+      expose :issues_events, :merge_requests_events, :tag_push_events, :note_events, :enable_ssl_verification
     end
 
     class ForkedFromProject < Grape::Entity
diff --git a/lib/api/project_hooks.rb b/lib/api/project_hooks.rb
index ad4d2e65dfd8c9310e4b4b8ba94bd1283293b651..882d1a083ad828d2ea6681b0ca2e112bc636aac4 100644
--- a/lib/api/project_hooks.rb
+++ b/lib/api/project_hooks.rb
@@ -44,7 +44,8 @@ module API
           :issues_events,
           :merge_requests_events,
           :tag_push_events,
-          :note_events
+          :note_events,
+          :enable_ssl_verification
         ]
         @hook = user_project.hooks.new(attrs)
 
@@ -75,7 +76,8 @@ module API
           :issues_events,
           :merge_requests_events,
           :tag_push_events,
-          :note_events
+          :note_events,
+          :enable_ssl_verification
         ]
 
         if @hook.update_attributes attrs
diff --git a/spec/requests/api/project_hooks_spec.rb b/spec/requests/api/project_hooks_spec.rb
index 5037575d3555e097e255d0282238551289d07182..606b226ad770f0f5de622b5fc8dedc1119d3745f 100644
--- a/spec/requests/api/project_hooks_spec.rb
+++ b/spec/requests/api/project_hooks_spec.rb
@@ -5,7 +5,7 @@ describe API::API, 'ProjectHooks', api: true  do
   let(:user) { create(:user) }
   let(:user3) { create(:user) }
   let!(:project) { create(:project, creator_id: user.id, namespace: user.namespace) }
-  let!(:hook) { create(:project_hook, project: project, url: "http://example.com") }
+  let!(:hook) { create(:project_hook, project: project, url: "http://example.com", push_events: true, merge_requests_events: true, tag_push_events: true, issues_events: true, note_events: true, enable_ssl_verification: true) }
 
   before do
     project.team << [user, :master]
@@ -21,6 +21,12 @@ describe API::API, 'ProjectHooks', api: true  do
         expect(json_response).to be_an Array
         expect(json_response.count).to eq(1)
         expect(json_response.first['url']).to eq("http://example.com")
+        expect(json_response.first['issues_events']).to eq(true)
+        expect(json_response.first['push_events']).to eq(true)
+        expect(json_response.first['merge_requests_events']).to eq(true)
+        expect(json_response.first['tag_push_events']).to eq(true)
+        expect(json_response.first['note_events']).to eq(true)
+        expect(json_response.first['enable_ssl_verification']).to eq(true)
       end
     end
 
@@ -38,6 +44,12 @@ describe API::API, 'ProjectHooks', api: true  do
         get api("/projects/#{project.id}/hooks/#{hook.id}", user)
         expect(response.status).to eq(200)
         expect(json_response['url']).to eq(hook.url)
+        expect(json_response['issues_events']).to eq(hook.issues_events)
+        expect(json_response['push_events']).to eq(hook.push_events)
+        expect(json_response['merge_requests_events']).to eq(hook.merge_requests_events)
+        expect(json_response['tag_push_events']).to eq(hook.tag_push_events)
+        expect(json_response['note_events']).to eq(hook.note_events)
+        expect(json_response['enable_ssl_verification']).to eq(hook.enable_ssl_verification)
       end
 
       it "should return a 404 error if hook id is not available" do
@@ -65,6 +77,13 @@ describe API::API, 'ProjectHooks', api: true  do
         post api("/projects/#{project.id}/hooks", user), url: "http://example.com", issues_events: true
       end.to change {project.hooks.count}.by(1)
       expect(response.status).to eq(201)
+      expect(json_response['url']).to eq('http://example.com')
+      expect(json_response['issues_events']).to eq(true)
+      expect(json_response['push_events']).to eq(true)
+      expect(json_response['merge_requests_events']).to eq(false)
+      expect(json_response['tag_push_events']).to eq(false)
+      expect(json_response['note_events']).to eq(false)
+      expect(json_response['enable_ssl_verification']).to eq(true)
     end
 
     it "should return a 400 error if url not given" do
@@ -84,6 +103,12 @@ describe API::API, 'ProjectHooks', api: true  do
         url: 'http://example.org', push_events: false
       expect(response.status).to eq(200)
       expect(json_response['url']).to eq('http://example.org')
+      expect(json_response['issues_events']).to eq(hook.issues_events)
+      expect(json_response['push_events']).to eq(false)
+      expect(json_response['merge_requests_events']).to eq(hook.merge_requests_events)
+      expect(json_response['tag_push_events']).to eq(hook.tag_push_events)
+      expect(json_response['note_events']).to eq(hook.note_events)
+      expect(json_response['enable_ssl_verification']).to eq(hook.enable_ssl_verification)
     end
 
     it "should return 404 error if hook id not found" do