v1 — 可编程模拟外部服务已就绪

可编程的
模拟外部服务

开发、测试、预发布阶段,无需调用真实接口。零封号风险、零误发消息。 首期完整复刻 Unipile LinkedIn API——切换一个环境变量即可替换真实 API,应用零代码改动;多 Provider 架构已就绪。

打开管理面板 了解更多 ↓
Architecture
  调用方应用                         Simulator (simula-forge)
  ┌─────────────┐   X-API-KEY         ┌──────────────────────────┐
   unipiles/    ──────────────────▶  /linkedin/api/v1/**
   client.ts     UNIPILE_API_URL      故障中间件 → 契约 oracle  
  └─────────────┘  =host/linkedin       → 端点 → 状态内核(SQLite)
         (前缀骑 baseURL, 零代码改动)      → webhook fire-and-forget
                                     ├──────────────────────────┤
  ┌─────────────┐                       /brightdata/api/v1/**
   bd-client/   BD_API_URL          (即将推出)              
  └─────────────┘                      ├──────────────────────────┤
  ┌─────────────┐                       /emailengine/api/v1/**
   ee-client/   EE_API_URL          (即将推出)              
  └─────────────┘                      └──────────────────────────┘
       
  Real Services (实跑时直连)

已支持服务

每个 Provider 独立模拟一套外部服务,URL 空间按 Provider 分目录,世界隔离跨 Provider 共享。

in
LinkedIn (Unipile)
15 端点
完整复刻 Unipile LinkedIn 自动化 API,支持消息、帖子、邀请、InMail 等。
消息帖子邀请个人档案InMail

核心能力

为开发者设计的模拟平台——从故障注入到确定性状态,覆盖集成测试的每个角落。

📜

契约忠实

契约来源 = 真实抓包 + 调用方源码。错误信封、分页、状态词表均已实测锚定,响应格式与真实 API 一致。

🔁

一键切换

切换环境变量(如 UNIPILE_API_URL)指向模拟器,应用零代码改动。每个 Provider 独立 URL 空间,互不干扰。

🎯

确定性状态

有状态内核管理 accounts / chats / messages / invites,写读一致,确定性种子可复现。

故障注入

429 + Retry-After / 422 / 超时 / 封号信封——重试逻辑、错误处理终于可以在测试中验证。

🎭

对手戏

模拟用户回复消息、触发应用侧 webhook。Inbox 和 Invites 是真正的对手戏舞台。

🌍

世界隔离

按 API Key 隔离世界,CI 并行测试互不污染。每世界独立虚拟时钟,可推进时间触发定时任务。

API 端点

按 Provider 分组展示已实现的模拟端点,契约与真实抓包一致。

in LinkedIn (Unipile) 15 端点
GET /linkedin/api/v1/users/me 当前用户信息
POST /linkedin/api/v1/users/invite 发送连接邀请
GET /linkedin/api/v1/users/:providerId 用户公开档案
POST /linkedin/api/v1/chats 创建会话
POST /linkedin/api/v1/chats/:chatId/messages 发送消息
GET /linkedin/api/v1/chats/:chatId/messages 聊天消息
GET /linkedin/api/v1/chat_attendees/:providerId/chats 会话列表
GET /linkedin/api/v1/messages 消息列表
GET /linkedin/api/v1/linkedin/inmail_balance InMail 余额
GET /linkedin/api/v1/users/:providerId/posts 用户帖子列表
GET /linkedin/api/v1/users/:providerId/comments 用户评论列表
POST /linkedin/api/v1/posts/reaction 点赞 / 取消点赞
POST /linkedin/api/v1/posts/:socialId/comments 评论帖子
POST /linkedin/api/v1/posts 发布 / 转发帖子
GET /linkedin/api/v1/posts/:postId 帖子详情

开始使用

克隆仓库、安装依赖、启动开发服务器——三步即可替换真实 API。

进入管理面板
$ bun install && bun dev