diff --git a/acceptance/10-reboot-server.go b/acceptance/10-reboot-server.go
new file mode 100644
index 0000000..78ab357
--- /dev/null
+++ b/acceptance/10-reboot-server.go
@@ -0,0 +1,43 @@
+package main
+
+import (
+	"fmt"
+	"flag"
+	"github.com/rackspace/gophercloud"
+)
+
+var quiet = flag.Bool("quiet", false, "Quiet mode, for acceptance testing.  $? still indicates errors though.")
+
+func main() {
+	flag.Parse()
+
+	withIdentity(false, func(acc gophercloud.AccessProvider) {
+		withServerApi(acc, func(servers gophercloud.CloudServersProvider) {
+			log("Creating server")
+			serverId, err := createServer(servers, "", "", "", "")
+			if err != nil {
+				panic(err)
+			}
+			waitForServerState(servers, serverId, "ACTIVE")
+
+			log("Soft-rebooting server")
+			servers.RebootServer(serverId, false)
+			waitForServerState(servers, serverId, "REBOOT")
+			waitForServerState(servers, serverId, "ACTIVE")
+
+			log("Hard-rebooting server")
+			servers.RebootServer(serverId, true)
+			waitForServerState(servers, serverId, "HARD_REBOOT")
+			waitForServerState(servers, serverId, "ACTIVE")
+
+			log("Done")
+			servers.DeleteServerById(serverId)
+		})
+	})
+}
+
+func log(s string) {
+	if !*quiet {
+		fmt.Println(s)
+	}
+}
diff --git a/interfaces.go b/interfaces.go
index de1f7c8..e05bdc4 100644
--- a/interfaces.go
+++ b/interfaces.go
@@ -35,6 +35,7 @@
 	ResizeServer(id, newName, newFlavor, newDiskConfig string) error
 	RevertResize(id string) error
 	ConfirmResize(id string) error
+	RebootServer(id string, hard bool) error
 
   // Images
 
diff --git a/servers.go b/servers.go
index 78ad350..c1026b4 100644
--- a/servers.go
+++ b/servers.go
@@ -187,6 +187,29 @@
 	return err
 }
 
+// See the CloudServersProvider interface for details
+func (gsp *genericServersProvider) RebootServer(id string, hard bool) error {
+	return gsp.context.WithReauth(gsp.access, func() error {
+		url := fmt.Sprintf("%s/servers/%s/action", gsp.endpoint, id)
+		types := map[bool]string{false: "SOFT", true: "HARD"}
+		return perigee.Post(url, perigee.Options{
+			ReqBody: &struct{
+				Reboot struct {
+					Type string `json:"type"`
+				} `json:"reboot"`
+			}{
+				struct {
+					Type string `json:"type"`
+				}{types[hard]},
+			},
+			OkCodes: []int{202},
+			MoreHeaders: map[string]string{
+				"X-Auth-Token": gsp.access.AuthToken(),
+			},
+		})
+	})
+}
+
 // RaxBandwidth provides measurement of server bandwidth consumed over a given audit interval.
 type RaxBandwidth struct {
 	AuditPeriodEnd    string `json:"audit_period_end"`
