Ovobrowser

ovoBrowser本地API完整使用教程

使用本地HTTP API管理環境、分組、標籤、代理、回收站和瀏覽器行程,包含完整欄位與cURL示例。

ovoBrowser本地API使用教程

ovoBrowser本地API用於在本機管理瀏覽器環境、分組、標籤、代理、回收站和瀏覽器行程。 介面只監聽127.0.0.1,不需要Token、Bearer Token或x-api-key

1.啟動管道

案頭端自動啟動

帳號登入成功後,本地API會自動啟動,並保存當前埠。 下次保存會話恢復成功後也會自動啟動。 默認地址:

http://127.0.0.1:50325

實際埠以用戶端「API & MCP」頁面為准。 Google、GitHub、 帳號密碼登入和邀請注册最終都會建立同一種登入會話,所以成功進入帳號後都會啟動本地API。

如果在用戶端中手動停止服務,當前埠會立即關閉; 下次登入或會話恢復成功時仍會自動啟動。

CLI模式

先在案頭端成功登入一次並保持登入狀態,然後執行:

& "C:\Program Files\ovoBrowser\ovoBrowser.exe" --cli --api-port 50325

程式路徑以實際安裝位置為准。--api-port可省略,省略時使用已保存埠。 CLI複用作業系統安全存儲中的帳號會話,不接收命令列帳號密碼或Token。

“保持登入狀態”表示沒有在案頭端點擊登出,而且保存會話仍然有效。 若已登出、會話過期或應用數據被清除,需要重新打開案頭端登入; Google/GitHub登入也在案頭端完成。

2.調用規則

  • 所有介面都使用POST,參數放在JSON Body中。

  • 請求頭使用Content-Type: application/json

  • 環境定位推薦使用id;多數介面也支持seq環境序號。

  • 分頁參數page0開始,pageSize範圍為1-100

  • 帳號、Cookie、2FA金鑰和代理密碼屬於敏感資訊,不要寫入公共日誌。

成功響應:

{"success":true,"data":{}}

失敗響應:

{"success":false,"msg":"失败原因"}

3.介面總覽

分類介面作用
服務/health檢查本地API是否運行
環境/browser/list環境清單,支持分組和標籤篩選
環境/browser/detail環境詳情
環境/browser/create創建環境,支持完整欄位
環境/browser/update更新環境,支持完整欄位
回收站/browser/recycle/list回收站清單
回收站/browser/delete删除環境到回收站
回收站/browser/restore恢復環境
回收站/browser/delete/permanent徹底删除回收站環境
分組/group/list/group/create/group/update/group/delete分組增删改查
標籤/tag/list/tag/create/tag/update/tag/delete標籤增删改查
代理/proxy/list/proxy/create/proxy/update可複用代理管理
運行/browser/open/browser/active/browser/running打開和査詢運行狀態
運行/browser/pids/browser/pids/all/browser/portsPID和CDP埠
運行/browser/close/browser/close/all關閉環境

4.健康檢查

curl --location 'http://127.0.0.1:50325/health' \
  --header 'Content-Type: application/json' \
  --data '{}'

返回data.running=true表示埠已經啟動。 再調用環境清單可確認帳號會話和工作區已經恢復。

5.分組API

分組用於單選歸類:一個環境最多屬於一個分組,通過groupId綁定。

分組清單

curl --location 'http://127.0.0.1:50325/group/list' \
  --header 'Content-Type: application/json' \
  --data '{}'

data.list是分組數組,_count.profiles是分組中的環境數量。

新增分組

欄位類型必填說明
namestring1-50個字元,同一帳號下不能重名
colorstring#RRGGBB,默認#3478F6
curl --location 'http://127.0.0.1:50325/group/create' \
  --header 'Content-Type: application/json' \
  --data '{"name":"电商账号","color":"#3478F6"}'

編輯分組

idgroupId都可以定位分組。 除定位欄位外,只傳需要變化的欄位。

curl --location 'http://127.0.0.1:50325/group/update' \
  --header 'Content-Type: application/json' \
  --data '{"id":"分组ID","name":"重要电商账号","color":"#16A34A"}'

删除分組

curl --location 'http://127.0.0.1:50325/group/delete' \
  --header 'Content-Type: application/json' \
  --data '{"id":"分组ID"}'

删除分組不會删除環境,原分組下的環境會變成未分組。 系統默認分組不能删除。

6.標籤API

標籤用於多選標記:一個環境最多綁定20個標籤,通過tagIds數組綁定。

標籤清單

curl --location 'http://127.0.0.1:50325/tag/list' \
  --header 'Content-Type: application/json' \
  --data '{}'

新增標籤

欄位類型必填說明
namestring1-50個字元,同一帳號下不能重名
colorstring#RRGGBB,默認#3478F6
curl --location 'http://127.0.0.1:50325/tag/create' \
  --header 'Content-Type: application/json' \
  --data '{"name":"高优先级","color":"#F97316"}'

編輯標籤

curl --location 'http://127.0.0.1:50325/tag/update' \
  --header 'Content-Type: application/json' \
  --data '{"id":"标签ID","name":"VIP","color":"#A855F7"}'

删除標籤

curl --location 'http://127.0.0.1:50325/tag/delete' \
  --header 'Content-Type: application/json' \
  --data '{"id":"标签ID"}'

删除標籤會解除它與所有環境的關聯,但不會删除環境。

7.代理API

環境可以先創建可複用代理再傳proxyId,也可以在創建或更新環境時直接傳proxy。兩種方式不能同時使用。

代理清單

欄位類型必填說明
pageinteger從0開始
pageSizeinteger1-100
searchstring按名稱或主機蒐索;name是相容別名
statusstringUNCHECKEDAVAILABLEUNAVAILABLE
curl --location 'http://127.0.0.1:50325/proxy/list' \
  --header 'Content-Type: application/json' \
  --data '{"page":0,"pageSize":10,"search":""}'

響應返回當前代理密碼passwordhasPassword,不會返回服務端密文。

新增代理

欄位類型必填說明
namestring代理名稱,1-80個字元
protocolstringHTTPHTTPSSOCKS5
hoststring主機名或IP,不帶協定、路徑和埠
portinteger1-65535
usernamestring/null認證用戶名
passwordstring/null認證密碼
curl --location 'http://127.0.0.1:50325/proxy/create' \
  --header 'Content-Type: application/json' \
  --data '{
    "name":"Tokyo Proxy",
    "protocol":"SOCKS5",
    "host":"proxy.example.com",
    "port":1080,
    "username":"proxy-user",
    "password":"proxy-password"
  }'

編輯代理

idproxyId都可以定位代理。 省略password保留原密碼,傳null清除密碼。

curl --location 'http://127.0.0.1:50325/proxy/update' \
  --header 'Content-Type: application/json' \
  --data '{"id":"代理ID","host":"new-proxy.example.com","port":1080,"password":"new-password"}'

修改協定、主機、埠、用戶名或密碼後,檢測狀態會重置為UNCHECKED

8.創建環境

完整欄位說明

欄位類型必填說明
namestring環境名稱,最長80個字元
platformstringwindowsmacoslinuxandroidios;默認windows
remarkstring/null環境備註,最長500個字元
groupIdstring/null分組ID;null表示不分組
tagIdsstring[]標籤ID數組,最多20個
accountsarray帳號數組,最多20條
cookiesarray/object/string/null推薦寫法,可直接傳Cookie JSON
cookieDatastring/null原始Cookie文字; 與cookies二選一
startupUrlsstring[]啟動後打開的網址,最多50個
fingerprintobject部分或完整指紋配寘; 省略項自動補齊
proxyIdstring/null條件可選已有代理ID;與proxy二選一
proxyobject/null條件可選直接配寘環境私有代理

accounts每一項:

欄位類型必填說明
platformstring平臺,例如googleamazon
usernamestring登入帳號或郵箱
passwordstring/null登入密碼,最長512個字元
totpSecretstring/nullBase32格式2FA金鑰
openOnStartboolean啟動環境時是否打開該帳號頁面,默認false
remarkstring/null帳號備註,最長200個字元

內聯proxy

欄位類型必填說明
typestringHTTPHTTPSSOCKS5protocol是相容別名
hoststring主機或host:port;IPv6建議[IPv6]:port
portinteger條件必填host未包含埠時必填
usernamestring/null認證用戶名
passwordstring/null認證密碼

完整創建示例

curl --location 'http://127.0.0.1:50325/browser/create' \
  --header 'Content-Type: application/json' \
  --data '{
    "name":"完整环境示例",
    "platform":"windows",
    "remark":"通过本地 API 创建",
    "groupId":"分组ID",
    "tagIds":["标签ID1","标签ID2"],
    "accounts":[
      {
        "platform":"google",
        "username":"[email protected]",
        "password":"account-password",
        "totpSecret":null,
        "openOnStart":true,
        "remark":"主账号"
      }
    ],
    "cookies":[
      {
        "name":"session_id",
        "value":"cookie-value",
        "domain":".example.com",
        "path":"/",
        "secure":true,
        "httpOnly":true,
        "sameSite":"Lax"
      }
    ],
    "startupUrls":[
      "https://example.com/login",
      "https://example.com/dashboard"
    ],
    "fingerprint":{
      "timezone":"Asia/Shanghai",
      "acceptLanguage":"zh-CN,zh,en"
    },
    "proxy":{
      "type":"HTTP",
      "host":"proxy.example.com",
      "port":8080,
      "username":"proxy-user",
      "password":"proxy-password"
    }
  }'

使用已有代理時,删除proxy整段,改傳“proxyId”:“已有代理ID”。不使用代理時,proxyproxyId都不要傳。

Cookie格式

推薦使用cookies直接傳JSON數組。 Cookie常用欄位:namevaluedomainpathsecurehttpOnlyexpirationDatesameSite

如果使用cookieData,它必須是字串,可放瀏覽器擴展匯出的JSON文字、 Netscapecookies.txt,或請求頭文字a=1; b=2

沒有domain的Cookie啟動時只能根據首個啟動網址推斷功能變數名稱,建議顯式填寫domain

9.更新環境

更新介面只修改發送的欄位; 省略欄位保持不變。 定位支持idprofileIdseqserialNumberserial_number

覆蓋規則:

  • accounts整組覆蓋,[]清空全部帳號;

  • tagIds整組覆蓋,[]清空全部標籤;

  • cookiescookieData替換Cookie,null清空;

  • startupUrls替換全部啟動網址,[]清空;

  • groupId:null解除分組;

  • proxy:nullproxyId:null解除代理。

curl --location 'http://127.0.0.1:50325/browser/update' \
  --header 'Content-Type: application/json' \
  --data '{
    "id":"环境ID",
    "name":"更新后的环境",
    "remark":"完整更新示例",
    "groupId":"分组ID",
    "tagIds":["标签ID"],
    "accounts":[
      {
        "platform":"google",
        "username":"[email protected]",
        "password":"new-password",
        "openOnStart":false
      }
    ],
    "cookies":[
      {
        "name":"session_id",
        "value":"new-cookie-value",
        "domain":".example.com",
        "path":"/"
      }
    ],
    "startupUrls":["https://example.com/dashboard"],
    "proxyId":"已有代理ID"
  }'

修改運行中環境的代理、 Cookie、 啟動網址或指紋後,先關閉環境,再重新打開。

10.査詢環境

環境清單

curl --location 'http://127.0.0.1:50325/browser/list' \
  --header 'Content-Type: application/json' \
  --data '{"page":0,"pageSize":10,"name":"","groupId":"分组ID","tagId":"标签ID"}'

不需要的篩選欄位直接删除。data.list是環境數組,data.totalNum是總數; 環境對象包含grouptags

環境詳情

curl --location 'http://127.0.0.1:50325/browser/detail' \
  --header 'Content-Type: application/json' \
  --data '{"id":"环境ID"}'

詳情返回grouptagsfingerprintproxyaccountCounthasCookieData。環境所有者還會收到cookieData

11.删除、回收站和徹底删除

删除環境到回收站

curl --location 'http://127.0.0.1:50325/browser/delete' \
  --header 'Content-Type: application/json' \
  --data '{"id":"环境ID"}'

如果環境正在運行,會先關閉瀏覽器,再移入回收站。 此操作可恢復。

回收站清單

curl --location 'http://127.0.0.1:50325/browser/recycle/list' \
  --header 'Content-Type: application/json' \
  --data '{"page":0,"pageSize":10,"search":"","sort":"desc"}'

清單中的環境id可用於恢復或徹底删除。

恢復環境

curl --location 'http://127.0.0.1:50325/browser/restore' \
  --header 'Content-Type: application/json' \
  --data '{"id":"回收站环境ID"}'

恢復必須使用環境ID,不能只傳環境序號。

徹底删除環境

單個:

curl --location 'http://127.0.0.1:50325/browser/delete/permanent' \
  --header 'Content-Type: application/json' \
  --data '{"id":"回收站环境ID"}'

批量:

curl --location 'http://127.0.0.1:50325/browser/delete/permanent' \
  --header 'Content-Type: application/json' \
  --data '{"ids":["环境ID1","环境ID2"]}'

ids最多500個。 只會删除已經在回收站中的環境,data.purged是實際删除數量。

徹底删除不可恢復,環境配寘、帳號和Cookie都會永久删除。

12.打開、査詢和關閉環境

打開環境

curl --location 'http://127.0.0.1:50325/browser/open' \
  --header 'Content-Type: application/json' \
  --data '{"id":"环境ID","headless":false}'

headless必須是JSON布林值。 響應返回pidwshttpheadlessws可交給Playwright或Puppeteer。

運行狀態

curl --location 'http://127.0.0.1:50325/browser/active' \
  --header 'Content-Type: application/json' \
  --data '{"id":"环境ID"}'

無參數調用/browser/active時返回全部運行環境。 運行清單:

curl --location 'http://127.0.0.1:50325/browser/running' \
  --header 'Content-Type: application/json' \
  --data '{}'

PID和CDP埠

curl --location 'http://127.0.0.1:50325/browser/pids' \
  --header 'Content-Type: application/json' \
  --data '{"ids":["环境ID1","环境ID2"]}'
curl --location 'http://127.0.0.1:50325/browser/pids/all' \
  --header 'Content-Type: application/json' \
  --data '{}'
curl --location 'http://127.0.0.1:50325/browser/ports' \
  --header 'Content-Type: application/json' \
  --data '{}'

關閉環境

curl --location 'http://127.0.0.1:50325/browser/close' \
  --header 'Content-Type: application/json' \
  --data '{"id":"环境ID"}'

關閉全部:

curl --location 'http://127.0.0.1:50325/browser/close/all' \
  --header 'Content-Type: application/json' \
  --data '{}'

關閉全部會影響當前所有工作視窗,執行前請保存頁面內容。

13. Postman使用

導入幫助中心提供的https://www.postman.com/ovo-desktop-api/workspace/ovodesktop-api-example/collection/57777046-8485fa5f-3e60-4da9-8b59-538ae4703339?action=share&source=copy-link&creator=57777046https://www.postman.com/ovo-desktop-api/workspace/ovodesktop-api-example/collection/57777046-8485fa5f-3e60-4da9-8b59-538ae4703339?action=share&source=copy-link&creator=57777046

  1. 在集合Variables中確認baseUrl

  2. 運行「健康檢查」;

  3. 運行「環境清單」確認會話已恢復;

  4. 每個請求都帶用途、欄位說明、完整JSON Body和cURL示例;

  5. 如需完整演示,按資料夾順序運行即可,無需理解環境序號或手工維護複雜變數;

  6. 執行「徹底删除環境」前,確認目標是允許永久删除的測試環境。

14.常見錯誤

現象原因與處理
ECONNREFUSED用戶端未運行、本地API未啟動或埠錯誤
健康檢查成功,環境介面失敗等待帳號會話和工作區恢復後重試
id或seq必填請求沒有環境定位欄位,推薦傳id
分組或標籤不存在先調用清單介面確認ID屬於當前帳號
proxy參數無效檢查協定、主機、埠,並確認沒有同時傳proxyproxyId
已運行環境無法切換headless先關閉環境,再按新模式打開
徹底删除返回purged: 0環境不在回收站、ID不屬於當前帳號或已經刪除