diff --git a/internal/localsend/localsend.go b/internal/localsend/localsend.go
index e30e6f5..c0c2b8e 100644
--- a/internal/localsend/localsend.go
+++ b/internal/localsend/localsend.go
@@ -2,6 +2,7 @@ package localsend
 
 import (
 	"encoding/json"
+	"fmt"
 	"net"
 
 	"github.com/0w0mewo/localsend-cli/internal/localsend/constants"
@@ -13,41 +14,53 @@ import (
 func GetDeviceInfo(ip string, https bool) (models.DeviceInfo, error) {
 	remoteAddr := net.JoinHostPort(ip, "53317")
 
-	agent := fiber.AcquireAgent()
-	defer fiber.ReleaseAgent(agent)
-
 	scheme := "http"
 	if https {
 		scheme = "https"
 	}
 
-	req := agent.Request()
-	req.URI().SetScheme(scheme)
-	req.URI().SetHost(remoteAddr)
-	req.URI().SetPath(constants.InfoPath)
-	req.Header.SetMethod(fiber.MethodGet)
-	err := agent.Parse()
-	if err != nil {
-		return models.DeviceInfo{}, err
-	}
+	paths := []string{constants.InfoPath, "/api/localsend/v2/info", constants.InfoPathLegacy}
+	var lastErr error
 
-	status, b, errs := agent.InsecureSkipVerify().Bytes()
-	if len(errs) != 0 {
-		return models.DeviceInfo{}, errs[0]
-	}
-	err = constants.ParseError(status)
-	if err != nil {
-		return models.DeviceInfo{}, err
-	}
+	for _, path := range paths {
+		agent := fiber.AcquireAgent()
+		req := agent.Request()
+		req.URI().SetScheme(scheme)
+		req.URI().SetHost(remoteAddr)
+		req.URI().SetPath(path)
+		req.Header.SetMethod(fiber.MethodGet)
+		err := agent.Parse()
+		if err != nil {
+			fiber.ReleaseAgent(agent)
+			return models.DeviceInfo{}, err
+		}
 
-	var res models.DeviceInfo
-	err = json.Unmarshal(b, &res)
-	if err != nil {
-		return models.DeviceInfo{}, err
+		status, b, errs := agent.InsecureSkipVerify().Bytes()
+		fiber.ReleaseAgent(agent)
+		if len(errs) != 0 {
+			lastErr = errs[0]
+			continue
+		}
+		err = constants.ParseError(status)
+		if err != nil {
+			lastErr = err
+			continue
+		}
+
+		var res models.DeviceInfo
+		err = json.Unmarshal(b, &res)
+		if err != nil {
+			lastErr = err
+			continue
+		}
+		res.IP = ip
+		return res, nil
 	}
-	res.IP = ip
 
-	return res, nil
+	if lastErr == nil {
+		lastErr = fmt.Errorf("device info not found on known endpoints")
+	}
+	return models.DeviceInfo{}, lastErr
 }
 
 func NewFileSender(useDownloadAPI ...bool) send.FileSender {
