diff --git a/link.go b/link.go
index 5025320..35b4d23 100644
--- a/link.go
+++ b/link.go
@@ -47,3 +47,21 @@ func (c *Client) CreateFolder(ctx context.Context, shareID string, req CreateFol
 
 	return res.Folder, nil
 }
+
+func (c *Client) CheckAvailableHashes(ctx context.Context, shareID, linkID string, req CheckAvailableHashesReq) (CheckAvailableHashesRes, error) {
+	var res struct {
+		AvailableHashes   []string
+		PendingHashesData []PendingHashData
+	}
+
+	if err := c.do(ctx, func(r *resty.Request) (*resty.Response, error) {
+		return r.SetResult(&res).SetBody(req).Post("/drive/shares/" + shareID + "/links/" + linkID + "/checkAvailableHashes")
+	}); err != nil {
+		return CheckAvailableHashesRes{}, err
+	}
+
+	return CheckAvailableHashesRes{
+		AvailableHashes:   res.AvailableHashes,
+		PendingHashesData: res.PendingHashesData,
+	}, nil
+}
diff --git a/link_types.go b/link_types.go
index 387f240..a161bf3 100644
--- a/link_types.go
+++ b/link_types.go
@@ -182,3 +182,17 @@ const (
 	RevisionStateObsolete
 	RevisionStateDeleted
 )
+
+type CheckAvailableHashesReq struct {
+	Hashes []string
+}
+
+type PendingHashData struct {
+	Hash       []string
+	RevisionID []string
+	LinkID     []string
+}
+type CheckAvailableHashesRes struct {
+	AvailableHashes   []string
+	PendingHashesData []PendingHashData
+}