> ## Documentation Index
> Fetch the complete documentation index at: https://docs.landerlab.io/llms.txt
> Use this file to discover all available pages before exploring further.

# LanderLab API 概览

> 了解 LanderLab REST API 的工作原理、如何进行身份验证，以及你可以通过编程方式管理哪些资源，从落地页和线索到 A/B 测试和数据分析。

LanderLab API 让你可以通过编程方式访问整个账户。你可以通过 HTTP 创建和发布落地页、拉取线索数据、读取数据分析、管理 A/B 测试变体、配置集成等等。

如果你更喜欢用自然语言操作而不是编写原始 API 调用，[MCP 服务器](/zh/mcp/overview)可以使用相同的底层 API，将你的 AI 助手直接连接到 LanderLab。它使用你的 LanderLab 账户登录，因此无需 API 密钥。

## 基础 URL

所有 API 请求都发送到：

```text theme={null}
https://api.landerlab.dev
```

当前 API 版本为 **v2**。每个 endpoint 都以 `/api/v2/` 为前缀。

## 身份验证

API 使用 API 密钥进行身份验证。请在每个请求的 `X-API-Key` 请求头中包含你的密钥。

```text theme={null}
X-API-Key: ll_live_YOUR_KEY_HERE
```

你的密钥以 `ll_live_` 开头，并与你的组织绑定。所有请求的作用范围都限定在密钥所属的组织内，因此大多数调用都无需单独传入组织 ID。

<Note>
  API 密钥只会在创建时显示一次。如果丢失，你需要重新生成一个。具体步骤请参见[生成 API 密钥](/zh/mcp/generate-api-key)。
</Note>

### 错误响应

所有 endpoint 都返回标准 HTTP 状态码。

| 状态码 | 含义 |
| - | - |
| `200` | 成功 |
| `400` | 错误请求（参数无效或已达到套餐限制） |
| `401` | 未授权（缺少 API 密钥或 API 密钥无效） |
| `403` | 禁止访问（密钥无权访问该资源） |
| `404` | 未找到 |

错误响应的响应体中包含一个 `error` 字符串，用于描述问题。

## 资源组

API 按以下资源组组织，每个组对应 API 参考中的一个章节。

### 工作区

在你的组织中列出、创建和重命名工作区。工作区是落地页、线索和域名的顶层容器。

| Endpoint | 说明 |
| - | - |
| `GET /api/v2/organizations/{organizationId}/workspaces/get` | 列出所有工作区 |
| `POST /api/v2/organizations/{organizationId}/workspaces/create` | 创建工作区 |
| `POST /api/v2/workspaces/{workspaceId}/rename` | 重命名工作区 |

### 落地页

管理落地页：列出、创建、重命名、发布、取消发布和删除。发布需要指定域名和路径；如果超出套餐限制或路径已被占用，将返回 `400`。

| Endpoint | 说明 |
| - | - |
| `GET /api/v2/workspaces/{workspaceId}/landers/get` | 列出工作区中的落地页 |
| `POST /api/v2/workspaces/{workspaceId}/landers/create` | 创建落地页 |
| `POST /api/v2/landers/{landerId}/publish` | 发布落地页 |
| `POST /api/v2/landers/{landerId}/unpublish` | 取消发布落地页 |
| `DELETE /api/v2/landers/{landerId}` | 删除落地页及其所有变体 |

删除落地页会永久移除所有关联的变体、文件和集成。

### A/B 测试（变体）

每个落地页都有一个或多个变体。主变体（master）是在 A/B 测试关闭时接收流量的变体。启用 A/B 测试后，流量会按照你设置的权重在各变体之间分配。

| Endpoint | 说明 |
| - | - |
| `GET /api/v2/landers/{landerId}/variants` | 列出所有变体 |
| `POST /api/v2/variants/{variantId}/clone` | 克隆变体 |
| `POST /api/v2/landers/{landerId}/ab-testing/enable` | 启用 A/B 测试 |
| `POST /api/v2/landers/{landerId}/ab-testing/disable` | 停用 A/B 测试 |
| `POST /api/v2/landers/{landerId}/ab-testing/weights` | 设置流量分配权重 |
| `POST /api/v2/variants/{variantId}/set-master` | 将变体设为主变体 |
| `DELETE /api/v2/variants/{variantId}` | 删除变体 |

你无法删除主变体。请先将其他变体设为主变体。

### 编辑器

加载和保存特定变体的 HTML 内容和设置。保存 HTML 时会自动处理 base64 图片提取和版本管理。

| Endpoint | 说明 |
| - | - |
| `GET /api/v2/variants/{variantId}/editor/load` | 加载 HTML、设置、表单和元数据 |
| `POST /api/v2/variants/{variantId}/editor/save` | 保存 HTML 内容 |
| `POST /api/v2/variants/{variantId}/editor/settings` | 保存变体设置（集成、SEO、跟踪） |

### 线索

按工作区或组织级别拉取线索。线索采用分页返回，可按日期范围、状态（`complete` 或 `partial`）、落地页和搜索关键词筛选。每次请求的最大分页大小为 1000。

| Endpoint | 说明 |
| - | - |
| `GET /api/v2/workspaces/{workspaceId}/leads/get` | 列出工作区的线索 |
| `GET /api/v2/organizations/{organizationId}/leads/get` | 列出整个组织的线索 |
| `GET /api/v2/landers/{landerId}/lead-schema` | 获取某个落地页线索的 JSON Schema |
| `POST /api/v2/landers/lead-schema` | 获取多个落地页的 JSON Schema |

线索 schema endpoint 会返回一个 [Draft-07 JSON Schema](https://json-schema.org/specification-links#draft-7)，描述该落地页的线索可能包含的所有字段，包括表单字段、测验答案、系统字段和集成字段。

### 数据分析

一个灵活的 endpoint 即可满足所有数据分析需求。可按工作区、落地页或变体筛选。最具体的筛选条件优先：如果传入 `variantIds`，工作区和落地页筛选条件将被忽略。

| Endpoint | 说明 |
| - | - |
| `POST /api/v2/organizations/{organizationId}/analytics/get` | 按日期范围、时区和可选的分组方式获取数据分析 |

**必填参数：** `startDate`、`endDate`、`timezone`（IANA 格式，例如 `America/New_York`）。

**可选筛选条件：** `workspaceIds`、`landerIds`、`variantIds`。

**分组方式：** `date`、`lander`、`variant` 或 `workspace`。默认为 `date`。

### 域名

按工作区或组织级别列出域名。

| Endpoint | 说明 |
| - | - |
| `GET /api/v2/workspaces/{workspaceId}/domains/get` | 列出工作区中的域名 |
| `GET /api/v2/organizations/{organizationId}/domains/get` | 列出整个组织的所有域名 |

### 文件夹

在工作区内将落地页整理到文件夹中。

| Endpoint | 说明 |
| - | - |
| `GET /api/v2/workspaces/{workspaceId}/folders` | 列出所有文件夹 |
| `POST /api/v2/workspaces/{workspaceId}/folders/create` | 创建文件夹 |
| `POST /api/v2/folders/{folderId}/rename` | 重命名文件夹 |

### 集成

创建并列出组织级集成，然后按落地页启用或停用。基于 OAuth 的集成（Mailchimp、HubSpot、Google Sheets、AWeber）需要交互式 OAuth 流程，无法直接通过 API 创建。

| Endpoint | 说明 |
| - | - |
| `GET /api/v2/organizations/{organizationId}/integrations` | 列出所有集成 |
| `POST /api/v2/organizations/{organizationId}/integrations/create` | 创建集成 |
| `POST /api/v2/lander-integrations/{id}/enable` | 启用落地页集成 |
| `POST /api/v2/lander-integrations/{id}/disable` | 停用落地页集成 |
| `DELETE /api/v2/lander-integrations/{id}` | 从落地页移除集成 |

## OpenAPI 规范和交互式文档

完整的 OpenAPI 3.1 规范地址：

```text theme={null}
https://backend-v2.landerlab.workers.dev/api/v2/openapi.json
```

交互式 API 文档（内置请求测试工具）地址：

```text theme={null}
https://api.landerlab.dev/api/v2/docs
```

## 通过 AI 助手使用 API（MCP）

如果你希望用自然语言而不是编写 API 调用来管理 LanderLab 账户，LanderLab MCP 服务器基于同一套 API 构建，并向任何兼容 MCP 的 AI 助手（包括 Claude、ChatGPT、Cursor 和 Windsurf）提供 30 多个工具。

MCP 服务器 URL 为：

```text theme={null}
https://api.landerlab.dev/mcp
```

它通过浏览器登录进行身份验证，而不是使用 `X-API-Key` 请求头，因此无需 API 密钥。设置说明请参见[通过 MCP 连接 AI 助手](/zh/mcp/overview)。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.