diff --git a/midpoint-client-api/pom.xml b/midpoint-client-api/pom.xml
index f8aa824..51e3977 100644
--- a/midpoint-client-api/pom.xml
+++ b/midpoint-client-api/pom.xml
@@ -33,5 +33,9 @@
             <artifactId>schema-pure-jaxb</artifactId>
             <version>${midpoint.version}</version>
         </dependency>
+        <dependency>
+            <groupId>jakarta.ws.rs</groupId>
+            <artifactId>jakarta.ws.rs-api</artifactId>
+        </dependency>
     </dependencies>
 </project>
diff --git a/midpoint-client-api/src/main/java/com/evolveum/midpoint/client/api/SearchResult.java b/midpoint-client-api/src/main/java/com/evolveum/midpoint/client/api/SearchResult.java
index fc77e0c..911848f 100644
--- a/midpoint-client-api/src/main/java/com/evolveum/midpoint/client/api/SearchResult.java
+++ b/midpoint-client-api/src/main/java/com/evolveum/midpoint/client/api/SearchResult.java
@@ -19,10 +19,12 @@
 
 import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;
 
+import jakarta.ws.rs.core.MultivaluedMap;
+
 /**
  * @author semancik
  *
  */
 public interface SearchResult<O extends ObjectType> extends List<O> {
-
+    MultivaluedMap<String, Object> getHeaders();
 }
diff --git a/midpoint-client-impl-rest-jaxb/src/main/java/com/evolveum/midpoint/client/impl/restjaxb/JaxbSearchResult.java b/midpoint-client-impl-rest-jaxb/src/main/java/com/evolveum/midpoint/client/impl/restjaxb/JaxbSearchResult.java
index 9450202..9095355 100644
--- a/midpoint-client-impl-rest-jaxb/src/main/java/com/evolveum/midpoint/client/impl/restjaxb/JaxbSearchResult.java
+++ b/midpoint-client-impl-rest-jaxb/src/main/java/com/evolveum/midpoint/client/impl/restjaxb/JaxbSearchResult.java
@@ -21,6 +21,7 @@
 import java.util.List;
 import java.util.ListIterator;
 
+import jakarta.ws.rs.core.MultivaluedMap;
 import org.apache.cxf.common.util.CollectionUtils;
 
 import com.evolveum.midpoint.client.api.SearchResult;
@@ -34,6 +35,7 @@
 public class JaxbSearchResult<O extends ObjectType> implements SearchResult<O> {
 
 	private List<O> list = null;
+    private MultivaluedMap<String, Object> headers;
 
 	public JaxbSearchResult() {
 	}
@@ -43,6 +45,16 @@ public JaxbSearchResult(List<O> list) {
 		this.list = list;
 	}
 
+    public JaxbSearchResult(List<O> list, MultivaluedMap<String, Object> headers) {
+        this.list = list;
+        this.headers = headers;
+    }
+
+    @Override
+    public MultivaluedMap<String, Object> getHeaders() {
+        return headers;
+    }
+
 	@Override
 	public int size() {
 		if (list == null) {
diff --git a/midpoint-client-impl-rest-jaxb/src/main/java/com/evolveum/midpoint/client/impl/restjaxb/RestJaxbSearchService.java b/midpoint-client-impl-rest-jaxb/src/main/java/com/evolveum/midpoint/client/impl/restjaxb/RestJaxbSearchService.java
index a5e6f2c..b605895 100644
--- a/midpoint-client-impl-rest-jaxb/src/main/java/com/evolveum/midpoint/client/impl/restjaxb/RestJaxbSearchService.java
+++ b/midpoint-client-impl-rest-jaxb/src/main/java/com/evolveum/midpoint/client/impl/restjaxb/RestJaxbSearchService.java
@@ -84,7 +84,7 @@ public SearchResult<O> get() throws ObjectNotFoundException {
         Response response = getService().post(path, query, queryParams);
 
         if (Status.OK.getStatusCode() == response.getStatus()) {
-            return new JaxbSearchResult<>(getSearchResultList(response));
+            return new JaxbSearchResult<>(getSearchResultList(response), response.getHeaders());
         }
 
         if (Status.NOT_FOUND.getStatusCode() == response.getStatus()) {
diff --git a/midpoint-client-impl-rest-jaxb/src/test/java/com/evolveum/midpoint/client/impl/restjaxb/TestBasic.java b/midpoint-client-impl-rest-jaxb/src/test/java/com/evolveum/midpoint/client/impl/restjaxb/TestBasic.java
index 1fb8957..5af3f9f 100644
--- a/midpoint-client-impl-rest-jaxb/src/test/java/com/evolveum/midpoint/client/impl/restjaxb/TestBasic.java
+++ b/midpoint-client-impl-rest-jaxb/src/test/java/com/evolveum/midpoint/client/impl/restjaxb/TestBasic.java
@@ -25,6 +25,7 @@
 import com.evolveum.prism.xml.ns._public.query_3.SearchFilterType;
 import com.evolveum.prism.xml.ns._public.types_3.ItemPathType;
 
+import jakarta.ws.rs.core.MultivaluedMap;
 import org.apache.cxf.endpoint.Server;
 import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeClass;
@@ -227,6 +228,15 @@ public void test014UserFilterQuerySearchMock() throws Exception {
         assertEquals(result.size(), 0);
     }
 
+    @Test
+    public void test015SearchResultResponseHeaders() throws Exception {
+        Service service = getService();
+
+        SearchResult<? extends ObjectType> searchResult = service.users().search().get();
+
+        MultivaluedMap<String, Object> responseHeaders = searchResult.getHeaders();
+        assertNotNull(responseHeaders);
+    }
 
     @Test
     public void test011ValuePolicyGet() throws Exception {
diff --git a/midpoint-client-impl-rest-jaxb/src/test/java/com/evolveum/midpoint/client/impl/restjaxb/TestIntegrationBasic.java b/midpoint-client-impl-rest-jaxb/src/test/java/com/evolveum/midpoint/client/impl/restjaxb/TestIntegrationBasic.java
index 902e94b..b231d47 100644
--- a/midpoint-client-impl-rest-jaxb/src/test/java/com/evolveum/midpoint/client/impl/restjaxb/TestIntegrationBasic.java
+++ b/midpoint-client-impl-rest-jaxb/src/test/java/com/evolveum/midpoint/client/impl/restjaxb/TestIntegrationBasic.java
@@ -25,6 +25,7 @@
 import com.evolveum.prism.xml.ns._public.query_3.SearchFilterType;
 import com.evolveum.prism.xml.ns._public.types_3.ItemPathType;
 
+import jakarta.ws.rs.core.MultivaluedMap;
 import org.apache.commons.lang3.StringUtils;
 import org.testng.AssertJUnit;
 import org.testng.annotations.BeforeClass;
@@ -414,6 +415,13 @@ public void test610searchUserFilterQuery() throws Exception {
         assertEquals(users.size(), 1);
     }
 
+    @Test
+    public void test615SearchResultResponseHeaders() throws Exception {
+        SearchResult<? extends ObjectType> searchResult = service.users().search().queryFor(UserType.class).get();
+
+        MultivaluedMap<String, Object> responseHeaders = searchResult.getHeaders();
+        assertNotNull(responseHeaders);
+    }
 
     @Test
     public void test700addSecurityPolicy() throws Exception {
diff --git a/pom.xml b/pom.xml
index 97dbcfb..317469d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -48,6 +48,7 @@
         <surefire.version>3.5.2</surefire.version>
         <jakarta.annotation.version>3.0.0</jakarta.annotation.version>
         <commons-lang3.version>3.17.0</commons-lang3.version>
+        <jakarta.ws.rs-api.version>4.0.0</jakarta.ws.rs-api.version>
     </properties>
 
     <scm>
@@ -137,6 +138,11 @@
                 <artifactId>jakarta.xml.bind-impl</artifactId>
                 <version>${jaxb.version}</version>
             </dependency>
+            <dependency>
+                <groupId>jakarta.ws.rs</groupId>
+                <artifactId>jakarta.ws.rs-api</artifactId>
+                <version>${jakarta.ws.rs-api.version}</version>
+            </dependency>
             <dependency>
                 <groupId>com.sun.xml.bind</groupId>
                 <artifactId>jaxb-core</artifactId>