跳到正文
工具与平台

自动化 Dolphin{anty}:API 能做什么,又够不到什么

10 分钟阅读
MK

Marta Kowalczyk

代理商运营负责人

关于 Dolphin Anty API 有两件事同时为真,而它们把你往相反的方向拉。

它是市面上文档做得比较好的指纹浏览器 API 之一——真实的端点、真实的请求体、四种语言的可运行代码示例,还公开了速率限制。他们自己的用户也这么说;官网上有一条评价称赞他们的支持在有人卡住时直接发来"一段能跑的代码",并指出很多同类产品根本没有像样的 API 文档。

而它是一套关于浏览器的 API。它能寻址的一切都是浏览器对象。这不是什么该被抱怨的局限——这就是这个产品的定义。但它划出了一条非常干净的线,而这条线是这篇文章里最有用的东西。

**快速答案:**Dolphin Anty API 创建浏览器环境、描述它们的指纹、挂上代理 IP、启动和停止它们,并把一个 DevTools 端口交给你,让你把 Puppeteer 或 Playwright 挂上去。它没有广告系列、预算或花费这样的对象,因为这些不是浏览器层面的概念。广告系列的自动化发生在各广告平台自己的 API 上,那是另一层。(如果这两个 Dolphin 产品你还分不清,先看 Dolphin{anty} 对比 Dolphin{cloud}。)

下面所有内容都是 2026 年 8 月 29 日docs.dolphin-anty.com 读到的。他们的文档会变;写脚本那天自己打开看一遍。


有两套 API,人卡住的地方就在这里

最常见的一个混淆:Dolphin{anty} 暴露的是一套远程 API 和一套本地 API,它们回答的是不同的问题。

远程 API本地 API
基础地址https://dolphin-anty-api.comhttp://localhost:3001(默认)
认证Authorization: Bearer API_TOKENPOST /v1.0/auth/login-with-token
干什么创建和描述环境,提供指纹数据启动和停止环境,交给你一个 DevTools 端口
前提本地不需要跑任何东西应用在运行且已授权,且在同一台机器上

记忆模型:远程 API 决定一个环境是什么,本地 API 把它打开。

对着 dolphin-anty-api.com 去启动一个环境,什么也不会发生。对着 localhost:3001 去创建一个环境,什么也不会发生。两边都写在文档里,两边都猜不出来。


远程 API:创建一个环境

创建环境是往 https://dolphin-anty-api.com/browser_profiles 发一个 POST,带 Bearer token 和一个 JSON 请求体。

在写请求体之前,有两个辅助端点值得先知道,因为它们能让你不必去编那些现实中根本不存在的指纹值:

User agent —— GET https://dolphin-anty-api.com/fingerprints/useragent?browser_type=anty&browser_version=140&platform=windows,其中 platform 可取 MacOSWindowsLinux。需要 Authorization: Bearer API_TOKEN 请求头。

WebGL —— GET https://dolphin-anty-api.com/fingerprints/webgl?browser_type=anty&platform=windows,同样的请求头,同样的 platform 选项。

然后是创建用的请求体。下面是它的形状,取自他们公开的 Python 示例:

name          platform      browserType   mainWebsite
useragent     webrtc        canvas        webgl
webglInfo     timezone      locale        cpu
memory        screen        doNotTrack    osVersion

把这份清单慢慢读一遍,因为它准确地告诉了你这个产品是什么。

useragent 接受一个 manual 之类的 mode 和一个字符串值。webrtc 接受 altered 这类模式,可选带一个 IP。canvaswebgl 接受 realwebglInfo 接受 GPU 厂商和渲染器字符串——在他们自己的示例里,是通过 ANGLE 在 Direct3D 11 上报出来的 Intel Iris Xe——再加上 MAX_TEXTURE_SIZE 这类 WebGL2 上限值。cpumemory 接受核心数和内存大小。timezonelocale 接受 auto 或一个具体值。

**每一个字段描述的都是一台机器。**不是一门生意,不是一笔花费,不是一个结果。这套 API 的全部词汇就是对一台可信的电脑的描述,因为那正是它被造出来要解决的问题,而它解决得很彻底。


本地 API:启动与驱动

环境存在之后,你在本地把它打开。

**先认证。**在他们网站的个人账户里创建一个 token,然后:

POST http://localhost:3001/v1.0/auth/login-with-token
Content-Type: application/json

{ "token": "API_TOKEN" }

成功的样子是 {"success": true}。他们的文档写得很明确:跳过这一步就是那个 401 的来源。

启动环境。

GET http://localhost:3001/v1.0/browser_profiles/PROFILE_ID/start?automation=1

加上 &headless=1 走无头模式。automation=1 这个参数是必需的——不带它,你会拿到一个挂不上去的浏览器。

响应才是有意思的部分。

{
  "success": true,
  "automation": {
    "port": 50568,
    "wsEndpoint": "/devtools/browser/c71c1a9d-f07c-4dd9-84a9-53a4c6df9969"
  }
}

那是一个 DevTools Protocol 句柄。从这里开始你是挂上去——不是启动。Puppeteer、Playwright 和 Selenium 都是连到那个端口上已经在跑的浏览器。他们的文档三种都覆盖了,并对 Selenium 这条路加了一条说明:标准的 ChromeDriver 可能暴露自动化痕迹,所以他们按浏览器版本发布了自己改过的 ChromeDriver,建议把脚本指向它。

停止环境。

GET http://localhost:3001/v1.0/browser_profiles/PROFILE_ID/stop

这些约束,文档里都写了:

  • 只在 Dolphin{anty} 运行时可用。
  • 请求必须来自浏览器所在的同一台机器。
  • 默认端口 3001;被占用时会分配另一个——在应用的 Health 窗口里查。
  • 速率限制:每分钟 1,500 次请求。
  • 在 Free 套餐上,通过 API 导入和导出 cookie 不可用,因为这一档没有云同步。

你实际会写的那个脚本

九行伪代码,值得写出来,因为它的形状本身就是论点:

1.  POST /v1.0/auth/login-with-token          → authorise the local app
2.  POST dolphin-anty-api.com/browser_profiles → create profile from a template
3.  GET  /v1.0/browser_profiles/{id}/start?automation=1
4.  read port + wsEndpoint from the response
5.  puppeteer.connect({ browserWSEndpoint: ... })
6.  ...                                        ← everything you actually care about
7.  GET  /v1.0/browser_profiles/{id}/stop
8.  repeat for the next profile
9.  done

第 1 到第 5 步和第 7 步,是 Dolphin 的 API 在干净利落地做自己的事。第 6 步才是所有难题住的地方,而 Dolphin 的 API 对它无话可说——这是设计使然。

因为第 6 步里,你是在用一个浏览器自动化库驱动一个渲染出来的广告界面:等元素、处理这周新冒出来的一个弹窗、在布局改了之后重新找到某个按钮、接住一次只保存了一半的操作。每一个搭过这套东西的团队都知道它的维护画像。脚本挂掉不是因为 API 挂了,是因为一个页面变了。


另外两条不走 API 的自动化路

值得知道,因为对很多活儿来说它们是更好的答案,而且完全不用写代码。

**Script Builder。**Dolphin{anty} 自带一个可视化的场景构建器,用于跨环境的浏览器自动化,帮助中心里有专门一节,官网上标注支持 Windows、Linux 和 macOS。他们的营销说法是养号、数据采集"以及你心里想的任何别的事"。他们公开的评价里有一条把实际价值说得很直白:一位管理 500 多个账号的用户说,这个场景构建器把注册和账号管理的时间压缩到了大约十分之一,而且只靠一双手。如果你的自动化就是在环境里重复一串点击,这比写和维护 Puppeteer 便宜。

**环境同步器。**官网上标着 beta:让几个环境跑在同步器里,主环境的每一个动作都会在其他环境里重放一遍。这是"手动但并行"的那个选项——你开一个浏览器,其余的跟着走。

在一篇讲 API 的文章里提这两个,是为了对范围诚实。很多人向 API 要的东西,其实是一个场景,不是一个脚本。当你需要从某个数据源以程序化方式创建环境、在流水线里启动它们,或者用一个可视化构建器表达不了的逻辑去驱动它们时,才该去动 API。否则你是在维护代码,去做产品本来就已经会做的事。


这套 API 知道什么,一张表说完

对象在 Dolphin{anty} API 里在广告平台 API 里
浏览器环境✅ 创建、克隆、启动、停止
指纹(UA、WebGL、canvas、WebRTC)✅ 完全可控
代理 IP✅ 按环境挂载
Cookie✅ 付费档可导入导出
广告系列✅ 带 ID 的对象
广告组 / 广告✅ 带 ID 的对象
预算✅ 可读可写的字段
花费与结果✅ 报表端点
转化收入通过追踪系统或转化 API

两列都不缺什么。它们是两个不同世界的两份清单,而那些空格子正是两种工具都存在的理由。


把边界直说出来

Dolphin{anty} 的 API 能创建一个环境、克隆它、描述它的指纹、挂上代理 IP、启动它、停止它、交给你一个 DevTools 端口,并在付费档上管理 cookie。

它不知道广告系列是什么。它不知道预算是什么。它不知道你昨天花了多少,而且它没有任何一个字段能存下这样的东西。

这是这个市场上最干净、最诚实的一条边界,而且值得不带任何刺地说出来:**浏览器 API 自动化的是身份,它从来没打算自动化买量。**任何人告诉你他的指纹浏览器能"自动化你的广告",他描述的是针对界面的浏览器自动化——那是一门真实的技术,也带着真实的维护成本,但它不是一套广告 API。


边界的另一侧长什么样

下面是我们自己的产品,写出来给你和上面的内容放在一起掂量。

Wevion 通过 OAuth 针对各广告平台自己的营销 API 工作——Meta、Google、TikTok、Taboola、Snapchat 和 Outbrain。广告系列、广告组、广告、预算和结果都是带 ID 的对象,不是页面上的元素。没有东西要选,没有东西要等,也没有东西会在一次布局上线时坏掉。

而 Wevion 自己也有可编程的接口,下面这些限定条件让这句话保持诚实:

**目录。**我们的 MCP 服务在一把 API key 上暴露 769 个操作,其中 422 个是写操作——五个广告平台,外加追踪、电商和素材。另外还有一个已发布的 CLI。

在这个数字对你有意义之前,有四件事你该知道:

  1. **这是 Pro 套餐及以上的功能。**在 Free 和 Starter 档上 API 权限是关的——那里 max_api_keys 是零。
  2. **今天没有任何客户在用它。**生产环境里存在 9 把密钥,全是内部或测试用的,整个生命周期里一共 58 次请求。这是一个真实存在、覆盖面也真实的接口,而采用率基本为零。这是实话,只报 769 而不带上这一句,卖的就是一个数字,不是一个产品。
  3. 这是从我们公开的 OpenAPI 规范算出来的目录,不是我们真的跑了一次带认证的 tools/list 数出来的。
  4. **MCP 接口内部没有确认关卡。**路由级的守卫是有的,但产品里别处存在的那一步审批,不在这条路径上。你把一个 agent 接上去,就是把一个 agent 接到了写操作上。具体到 Meta,预算修改不在 MCP 目录里。

我们也不声称这里只有我们一家。好几家厂商都发布了可读写的 MCP 接口,其中一些是免费的,至少有一家从很低的月费起就同时提供 MCP 和 CLI。诚实的说法是"一把密钥下的覆盖面",不是独家。


真正把广告系列跑起来的是什么

可编程接口并不是价值的大头,考虑到上面那个采用率数字,装作不是这样会很奇怪。下面是这个产品自己会做的事:

六个平台,用同一种方式接入——Meta、Google、TikTok、Taboola、Snapchat、Outbrain。六个平台都能连接、投放、同步和衡量。

小的数字先说。由规则引擎驱动的预算调整跑在五个平台上(Outbrain 没有这条分支)。跨平台互相比较的规则跑在四个上:Meta、Google、TikTok、Taboola。在广告组和广告层级上暂停与启用:三个——Meta、TikTok、Snapchat。投放回滚与重投:只有 Meta

规则按 15 分钟的节奏跑,带 33 个条件指标——包括 profitprofit_margintrue_roasbreak_even_roas,所以一条规则可以按边际贡献动作,而不是按平台报出来的回报率。

**一个不对称的刹车。**停掉自治会拦下启用、加预算和重投,而暂停和降预算继续跑。

**预算池。**一份日预算横跨几个平台的广告系列,每八小时重新分配一次,事前有模拟,事后有分配日志。

十个追踪系统适配器——BeMob、Binom、ClickFlare、Everflow、ExoClick、Keitaro、RedTrack、SearchFeed、TrafficManager、Voluum。

**角色与记录。**组织 → 团队 → 工作区 → 访问组,配一份可以用大白话查询的审计日志。

而我们没有的东西,用同样的口气说:

  • **投放时没有素材唯一化。**它在 Dolphin{cloud} 的功能列表里,不在我们的产品里。
  • 投放回滚只有 Meta 有——另外五个平台的批量投放没有撤销。
  • **完全没有身份层。**没有环境,没有指纹,没有代理 IP,也没有要做这些的打算。如果你的自动化问题是"在一台机器上把四十个登录彼此隔开",那 Dolphin{anty} 的 API 就是对的工具,我们替代不了它。
  • 入门套餐上的席位是我们最扎手的地方——在 Starter 上,额外席位买不了。

开发者会想要的那份摘要

  • 两套 API。dolphin-anty-api.com 用 Bearer token,负责创建和描述;localhost:3001 负责启动、停止,并交给你一个 DevTools 端口。
  • 先认证本地那套,走 POST /v1.0/auth/login-with-token,否则就等着 401。
  • automation=1 是必需的,启动时带上;headless=1 可选。
  • **是挂上去,不是启动。**取出 portwsEndpoint,连上 Puppeteer、Playwright 或 Selenium——走 Selenium 这条路时用他们改过的 ChromeDriver。
  • 每分钟 1,500 次请求,同一台机器,应用在运行。免费档没有 cookie 导入导出。
  • **环境的请求体是一份机器描述。**没有广告系列,没有预算,没有花费——而这是这一层的边界,不是产品的缺口。

下一步

常见问题

邮件通讯

The Ad Signal

写给不靠猜的广告投放人员的每周洞察。一封邮件,只有信号。

相关文章

准备好把投放运营自动化了吗?

在每一个账户上批量创建广告。免费开始,一直免费。无需信用卡,随时取消。