diff --git a/openstack/blockstorage/v1/snapshots/requests.go b/openstack/blockstorage/v1/snapshots/requests.go
index 97d0521..cdf5d40 100644
--- a/openstack/blockstorage/v1/snapshots/requests.go
+++ b/openstack/blockstorage/v1/snapshots/requests.go
@@ -56,11 +56,12 @@
 	return &respBody.Snapshot, nil
 }
 
-func Get(client *gophercloud.ServiceClient, id string) (GetResult, error) {
+func Get(client *gophercloud.ServiceClient, id string) GetResult {
 	var gr GetResult
 	_, err := perigee.Request("GET", snapshotURL(client, id), perigee.Options{
-		Results:     &gr,
+		Results:     &gr.r,
 		MoreHeaders: client.Provider.AuthenticatedHeaders(),
 	})
-	return gr, err
+	gr.err = err
+	return gr
 }
diff --git a/openstack/blockstorage/v1/snapshots/results.go b/openstack/blockstorage/v1/snapshots/results.go
index 440b3f8..d8178c1 100644
--- a/openstack/blockstorage/v1/snapshots/results.go
+++ b/openstack/blockstorage/v1/snapshots/results.go
@@ -1,5 +1,11 @@
 package snapshots
 
+import (
+	"fmt"
+
+	"github.com/mitchellh/mapstructure"
+)
+
 type Snapshot struct {
 	CreatedAt   string
 	Description string
@@ -11,4 +17,23 @@
 	VolumeID    string
 }
 
-type GetResult map[string]interface{}
+type GetResult struct {
+	err error
+	r   map[string]interface{}
+}
+
+func (gr GetResult) ExtractSnapshot() (*Snapshot, error) {
+	if gr.err != nil {
+		return nil, gr.err
+	}
+
+	var response struct {
+		Snapshot *Snapshot `json:"snapshot"`
+	}
+
+	err := mapstructure.Decode(gr.r, &response)
+	if err != nil {
+		return nil, fmt.Errorf("snapshots: Error decoding snapshot.GetResult: %v", err)
+	}
+	return response.Snapshot, nil
+}
