diff --git a/Cargo.lock b/Cargo.lock
index 7cefca43c9c74dcf737c7edd8e8ddab194eb6de1..c7466bbccd8d68a159e491ca620c7c9cc3d9e842 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -617,9 +617,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.6.4"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "mime"
@@ -842,9 +842,9 @@ dependencies = [
 
 [[package]]
 name = "prometheus-http-query"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7849dd7319357e220886589ea0a0760ff138cde2eedfbbfd2708caee0b15dfc"
+checksum = "5064f9bd466079eb96e7e8a920506c26053a040ee0a388c8f8e9280a50f5599a"
 dependencies = [
  "enum-as-inner",
  "mime",
diff --git a/Cargo.toml b/Cargo.toml
index 6a75abc4c3a3184eb79ac61b40f896a4d65e62e7..a9e44221fd1a12008d166d611c74ce411ad38e8c 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -7,7 +7,7 @@ edition = "2021"
 
 [dependencies]
 enum-as-inner = "0.6.0"
-prometheus-http-query = "0.8.0"
+prometheus-http-query = "0.8.1"
 reqwest = "0.11.22"
 url = "2.5.0"
 serde = { version = "1.0.193", optional = true }
diff --git a/src/lib.rs b/src/lib.rs
index 131832986d10d52c667a3bc012f17acb3d7f9b71..0be306eaddc6fb5c4652e2c486b84b3b5d8deeb0 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -12,7 +12,7 @@ use std::fmt::Display;
 use prometheus_http_query::Client;
 use query::{ops::Operable, IntoQuery};
 use reqwest::header::HeaderValue;
-use result::{IntoQryResult, QryResult};
+use result::{IntoResult, QryResult, RawResult};
 use seal::Sealed;
 use url::Url;
 
@@ -86,8 +86,28 @@ impl QueryManager {
             builder = builder.timeout(*timeout);
         }
         match self.method {
-            Method::Get => builder.get().await.into_qry_result(),
-            Method::Post => builder.post().await.into_qry_result(),
+            Method::Get => builder.get().await.into_result(),
+            Method::Post => builder.post().await.into_result(),
+        }
+    }
+
+    /// Send a query to the Prometheus server and retreive raw response ([`reqwest::Response`])
+    ///
+    /// This method accepts any type that implements the `IntoQuery` trait.
+    /// The trait is implemented for `&str`, `String`, `&String`, and __mquery's__
+    /// internal types such as [`query::Metric`], [`query::Scalar`] and others that result
+    /// from the query builder API.
+    pub async fn query_raw<Q: IntoQuery>(&self, query: Q) -> RawResult {
+        let mut builder = self.client.query(query.into_query().as_ref());
+        if let Some((name, val)) = self.auth.get_header() {
+            builder = builder.header(name, val);
+        }
+        if let Some(timeout) = self.timeout.as_ref() {
+            builder = builder.timeout(*timeout);
+        }
+        match self.method {
+            Method::Get => builder.get_raw().await.into_result(),
+            Method::Post => builder.post_raw().await.into_result(),
         }
     }
 
@@ -146,8 +166,8 @@ impl QueryManager {
             builder = builder.timeout(*timeout);
         }
         match self.method {
-            Method::Get => builder.get().await.into_qry_result(),
-            Method::Post => builder.post().await.into_qry_result(),
+            Method::Get => builder.get().await.into_result(),
+            Method::Post => builder.post().await.into_result(),
         }
     }
 }
diff --git a/src/result.rs b/src/result.rs
index 56b25ea21c9f0c3e27267662f479d57723760e26..684933342a7d35c4dc7e53d1a9fe1e5ce5a7c69f 100644
--- a/src/result.rs
+++ b/src/result.rs
@@ -11,14 +11,24 @@ use prometheus_http_query::{error, response};
 use std::fmt::{self, Display};
 
 pub type QryResult = std::result::Result<Data, Error>;
+pub type RawResult = std::result::Result<reqwest::Response, Error>;
 
 /// Internal trait used for converting the `prometheus-http-query` crate's query result into the internal result type
-pub(crate) trait IntoQryResult {
-    fn into_qry_result(self) -> QryResult;
+pub(crate) trait IntoResult {
+    type Result;
+    fn into_result(self) -> Self::Result;
 }
 
-impl IntoQryResult for Result<response::PromqlResult, error::Error> {
-    fn into_qry_result(self) -> QryResult {
+impl IntoResult for Result<response::PromqlResult, error::Error> {
+    type Result = QryResult;
+    fn into_result(self) -> Self::Result {
+        self.map(|r| r.into()).map_err(|e| e.into())
+    }
+}
+
+impl IntoResult for Result<reqwest::Response, error::Error> {
+    type Result = RawResult;
+    fn into_result(self) -> Self::Result {
         self.map(|r| r.into()).map_err(|e| e.into())
     }
 }
diff --git a/tests/api.rs b/tests/api.rs
index da2fe672114b890ae10ce6ca84c607be4f4473bc..a11d85360b4433952fc62e643779796773a7e066 100644
--- a/tests/api.rs
+++ b/tests/api.rs
@@ -41,6 +41,14 @@ async fn multi_queries() {
     assert!(res.len() == 2);
 }
 
+#[tokio::test]
+async fn raw_response() {
+    QueryManager::new(utils::URL.parse().unwrap())
+        .query_raw("metric")
+        .await
+        .unwrap();
+}
+
 fn get_url_token() -> (String, String) {
     dotenv::dotenv().expect("No .env file found in working dir");
     (