diff --git a/src/services/bt/index.tsx b/src/services/bt/index.tsx
index 4a97406..5d9a25c 100644
--- a/src/services/bt/index.tsx
+++ b/src/services/bt/index.tsx
@@ -145,8 +145,6 @@
     return request('/api/torrent/upload', {
         method: 'POST',
         data: formData,
-        requestType: 'form',
-        responseType: 'blob',
     });
 }
 
@@ -171,4 +169,96 @@
     return request('/api/torrent/tracker', {
         method: 'POST',
     });
+}
+
+export interface TorrentSearchRequest {
+    infoHash?: string;
+    category?: number;
+    status?: number;
+    fileStatus?: number;
+    owner?: number;
+    type?: number;
+    nameKeyword?: string;
+    titleKeyword?: string;
+    descriptionKeyword?: string;
+    minSize?: number;
+    maxSize?: number;
+    createTimeStart?: string; // ISO string
+    createTimeEnd?: string;   // ISO string
+    sortField?: string;
+    sortDirection?: string;
+    pageNum?: number;
+    pageSize?: number;
+}
+
+export interface UserEntity {
+    user_id: number;
+    user_name: string;
+    nick_name: string;
+    user_type: string;
+    email: string;
+    phonenumber: string;
+    gender: string;
+    avatar: string;
+    password: string;
+    status: number;
+    login_ip: string;
+    login_date: string;
+    create_by: string;
+    create_time: string;
+    update_by: string;
+    update_time: string;
+    remark: string;
+    full_name: string;
+    state: number;
+    added: string;
+    last_login: string;
+    last_access: string;
+    last_home: string;
+    last_offer: string;
+    forum_access: string;
+    last_staffmsg: string;
+    last_pm: string;
+    last_comment: string;
+    last_post: string;
+    last_active: string;
+    privacy: number;
+    reg_ip: string;
+    level: number;
+    seedtime: number;
+    leechtime: number;
+    real_uploaded: number;
+    real_downloaded: number;
+    modcomment: string;
+    warning_by: number;
+    warning_times: number;
+    warning: boolean;
+    warning_until: string;
+    download: number;
+    upload: number;
+    invited_by: number;
+    bonus: number;
+    exp: number;
+    check_code: string;
+    reg_type: number;
+}
+
+export interface TorrentSearchResult {
+    torrent: TorrentEntity;
+    ownerInfo: UserEntity;
+}
+
+export interface TorrentSearchResponse {
+    records: TorrentSearchResult[];
+    total: number;
+    size: number;
+    current: number;
+    pages: number;
+}
+
+export async function searchTorrents(params: TorrentSearchRequest) {
+    return request<TorrentSearchResponse>('/api/torrent/search', {
+        method: 'POST',
+        data: params,
+    });
 }
\ No newline at end of file
