diff --git a/CHANGELOG.md b/CHANGELOG.md
index bb2b750ddde0f39ec3d8d8bb9914ae1e133c530b..fee1cf9d7881ba326456c32712f0d4d64f9d9c6e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,6 +23,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
 ### Fixed
 
 - Show checkmarks when tag is applied
+- Reports update (also, now it's optimistic)
 
 ## [1.2.0] - 2019-09-27
 
diff --git a/src/api/__mocks__/reports.js b/src/api/__mocks__/reports.js
index a337df9a091bcc738ed972f614847e08d0c8c542..e277d8df9be863e97e99087c20228c841a379f7e 100644
--- a/src/api/__mocks__/reports.js
+++ b/src/api/__mocks__/reports.js
@@ -23,8 +23,7 @@ export async function filterReports(filter, limit, max_id, authHost, token) {
 }
 
 export async function changeState(state, id, authHost, token) {
-  const report = reports.find(report => report.id === id)
-  return Promise.resolve({ data: { ...report, state }})
+  return Promise.resolve({ data: '' })
 }
 
 export async function changeStatusScope(id, sensitive, visibility, authHost, token) {
diff --git a/src/api/reports.js b/src/api/reports.js
index c84a5bfd94c17f3e6bf24e26c0525aaf95b5c767..79833e40f71952bcf9633fe8157844d28b358c27 100644
--- a/src/api/reports.js
+++ b/src/api/reports.js
@@ -5,10 +5,10 @@ import { baseName } from './utils'
 export async function changeState(state, id, authHost, token) {
   return await request({
     baseURL: baseName(authHost),
-    url: `/api/pleroma/admin/reports/${id}`,
-    method: 'put',
+    url: `/api/pleroma/admin/reports`,
+    method: 'patch',
     headers: authHeaders(token),
-    data: { state }
+    data: { reports: [{ id, state }] }
   })
 }
 
diff --git a/src/store/modules/reports.js b/src/store/modules/reports.js
index a699a22a6ff52e7204cb1164db5a76bcad69e0e9..e44664f437ac467ecaef7985e84fc66d7828c108 100644
--- a/src/store/modules/reports.js
+++ b/src/store/modules/reports.js
@@ -24,8 +24,12 @@ const reports = {
   },
   actions: {
     async ChangeReportState({ commit, getters, state }, { reportState, reportId }) {
-      const { data } = await changeState(reportState, reportId, getters.authHost, getters.token)
-      const updatedReports = state.fetchedReports.map(report => report.id === reportId ? data : report)
+      changeState(reportState, reportId, getters.authHost, getters.token)
+
+      const updatedReports = state.fetchedReports.map(report => {
+        return report.id === reportId ? { ...report, state: reportState } : report
+      })
+
       commit('SET_REPORTS', updatedReports)
     },
     async ChangeStatusScope({ commit, getters, state }, { statusId, isSensitive, visibility, reportId }) {