diff --git a/src/api/torrent.js b/src/api/torrent.js
index bccf99c..cd66464 100644
--- a/src/api/torrent.js
+++ b/src/api/torrent.js
@@ -17,6 +17,35 @@
 }
 
 /**
+ * 搜索种子
+ * @param {Object} searchParams - 搜索参数
+ * @param {string} searchParams.keyword - 搜索关键词
+ * @param {string} searchParams.category - 分类
+ * @param {string} searchParams.sortBy - 排序字段
+ * @param {string} searchParams.sortOrder - 排序方向
+ * @param {number} searchParams.page - 页码
+ * @param {number} searchParams.entriesPerPage - 每页条数
+ * @returns {Promise}
+ */
+export function searchTorrents(searchParams) {
+  return request({
+    url: '/torrent/search',
+    method: 'post',
+    data: searchParams
+  }).catch(error => {
+    console.error('🚨 API请求失败:', {
+      url: '/torrent/search',
+      requestedURL: error.config?.url,
+      baseURL: error.config?.baseURL,
+      fullURL: error.config?.baseURL ? error.config.baseURL + error.config.url : error.config?.url,
+      status: error.response?.status,
+      statusText: error.response?.statusText
+    })
+    throw error
+  })
+}
+
+/**
  * 获取分类列表
  * @returns {Promise}
  */
@@ -34,7 +63,7 @@
  */
 export function getTags() {
     console.log('调用获取标签列表API...')
-    // 由于后端没有标签的Controller，返回模拟数据
+    // 后端没有标签的Controller，返回模拟数据
     return new Promise((resolve) => {
       setTimeout(() => {
         resolve({
@@ -58,17 +87,4 @@
     url: `/torrent/${infoHash}`,
     method: 'get'
   })
-}
-
-/**
- * 获取种子列表
- * @param {Object} params - 查询参数
- * @returns {Promise}
- */
-export function getTorrents(params) {
-  return request({
-    url: '/torrents',
-    method: 'get',
-    params
-  })
 }
\ No newline at end of file
