diff --git a/cloud/shepherd/equinix/manager/fakequinix_test.go b/cloud/shepherd/equinix/manager/fakequinix_test.go
index d9e5683..1abe869 100644
--- a/cloud/shepherd/equinix/manager/fakequinix_test.go
+++ b/cloud/shepherd/equinix/manager/fakequinix_test.go
@@ -53,7 +53,7 @@
 	}
 }
 
-func (f *fakequinix) GetDevice(_ context.Context, pid, did string) (*packngo.Device, error) {
+func (f *fakequinix) GetDevice(_ context.Context, pid, did string, _ *packngo.ListOptions) (*packngo.Device, error) {
 	f.mu.Lock()
 	defer f.mu.Unlock()
 
diff --git a/cloud/shepherd/equinix/manager/initializer.go b/cloud/shepherd/equinix/manager/initializer.go
index bd1dbba..95f9d39 100644
--- a/cloud/shepherd/equinix/manager/initializer.go
+++ b/cloud/shepherd/equinix/manager/initializer.go
@@ -152,7 +152,7 @@
 }
 
 func (c *Initializer) processMachine(ctx context.Context, t *task) error {
-	dev, err := c.cl.GetDevice(ctx, c.sharedConfig.ProjectId, t.machine.ProviderID)
+	dev, err := c.cl.GetDevice(ctx, c.sharedConfig.ProjectId, t.machine.ProviderID, nil)
 	if err != nil {
 		return fmt.Errorf("while fetching device %q: %v", t.machine.ProviderID, err)
 	}
diff --git a/cloud/shepherd/equinix/wrapngo/wrapn.go b/cloud/shepherd/equinix/wrapngo/wrapn.go
index dc54340..4bdc314 100644
--- a/cloud/shepherd/equinix/wrapngo/wrapn.go
+++ b/cloud/shepherd/equinix/wrapngo/wrapn.go
@@ -86,7 +86,9 @@
 // is provided to allow for dependency injection of a fake equinix API for tests.
 type Client interface {
 	// GetDevice wraps packngo's cl.Devices.Get.
-	GetDevice(ctx context.Context, pid, did string) (*packngo.Device, error)
+	//
+	// TODO(q3k): remove unused pid parameter.
+	GetDevice(ctx context.Context, pid, did string, opts *packngo.ListOptions) (*packngo.Device, error)
 	// ListDevices wraps packngo's cl.Device.List.
 	ListDevices(ctx context.Context, pid string) ([]packngo.Device, error)
 	// CreateDevice attempts to create a new device according to the provided
@@ -220,9 +222,9 @@
 	})
 }
 
-func (e *client) GetDevice(ctx context.Context, pid, did string) (*packngo.Device, error) {
+func (e *client) GetDevice(ctx context.Context, pid, did string, opts *packngo.ListOptions) (*packngo.Device, error) {
 	return wrap(ctx, e, func(cl *packngo.Client) (*packngo.Device, error) {
-		d, _, err := cl.Devices.Get(did, nil)
+		d, _, err := cl.Devices.Get(did, opts)
 		return d, err
 	})
 }
diff --git a/cloud/shepherd/equinix/wrapngo/wrapngo_live_test.go b/cloud/shepherd/equinix/wrapngo/wrapngo_live_test.go
index 5a8d194..549071a 100644
--- a/cloud/shepherd/equinix/wrapngo/wrapngo_live_test.go
+++ b/cloud/shepherd/equinix/wrapngo/wrapngo_live_test.go
@@ -70,7 +70,7 @@
 	t.Helper()
 
 	for {
-		d, err := l.cl.GetDevice(l.ctx, l.apipid, id)
+		d, err := l.cl.GetDevice(l.ctx, l.apipid, id, nil)
 		if err != nil {
 			if errors.Is(err, os.ErrDeadlineExceeded) {
 				continue
@@ -277,7 +277,7 @@
 			t.Skip("the test device couldn't have been created - skipping...")
 		}
 
-		d, err := cl.GetDevice(ctx, ltc.apipid, testDevice.ID)
+		d, err := cl.GetDevice(ctx, ltc.apipid, testDevice.ID, nil)
 		if err != nil {
 			t.Fatalf("while fetching device info: %v", err)
 		}
@@ -315,7 +315,7 @@
 		if err := cl.deleteDevice(ctx, testDevice.ID); err != nil {
 			t.Fatalf("while deleting a device: %v", err)
 		}
-		d, err := cl.GetDevice(ctx, ltc.apipid, testDevice.ID)
+		d, err := cl.GetDevice(ctx, ltc.apipid, testDevice.ID, nil)
 		if err != nil && !IsNotFound(err) {
 			t.Fatalf("while fetching device info: %v", err)
 		}
