Base URL
All API requests go to:/api/v2/.
Authentication
The API uses API key authentication. Include your key in theX-API-Key header on every request.
ll_live_ and is tied to your organization. All requests are scoped to the organization the key belongs to, so you do not need to pass an organization ID separately in most calls.
API keys are shown only once at creation. If you lose yours, you need to generate a new one. See Generate an API Key for steps.
Error responses
All endpoints return standard HTTP status codes.| Code | Meaning |
|---|---|
200 | Success |
400 | Bad request (invalid parameters or plan limit reached) |
401 | Unauthorized (missing or invalid API key) |
403 | Forbidden (key does not have access to this resource) |
404 | Not found |
error string in the response body with a description of the problem.
Resource Groups
The API is organized around the following resource groups. Each group maps to a section in the API reference.Workspaces
List, create, and rename workspaces within your organization. Workspaces are the top-level container for landers, leads, and domains.| Endpoint | Description |
|---|---|
GET /api/v2/organizations/{organizationId}/workspaces/get | List all workspaces |
POST /api/v2/organizations/{organizationId}/workspaces/create | Create a workspace |
POST /api/v2/workspaces/{workspaceId}/rename | Rename a workspace |
Landers
Manage landing pages: list, create, rename, publish, unpublish, and delete. Publishing requires a domain and path and will return a400 if plan limits are exceeded or the path is already taken.
| Endpoint | Description |
|---|---|
GET /api/v2/workspaces/{workspaceId}/landers/get | List landers in a workspace |
POST /api/v2/workspaces/{workspaceId}/landers/create | Create a lander |
POST /api/v2/landers/{landerId}/publish | Publish a lander |
POST /api/v2/landers/{landerId}/unpublish | Unpublish a lander |
DELETE /api/v2/landers/{landerId} | Delete a lander and all its variants |
A/B Testing (Variants)
Each lander has one or more variants. The master variant is the one that receives traffic when A/B testing is off. When A/B testing is enabled, traffic is split across variants according to the weights you set.| Endpoint | Description |
|---|---|
GET /api/v2/landers/{landerId}/variants | List all variants |
POST /api/v2/variants/{variantId}/clone | Clone a variant |
POST /api/v2/landers/{landerId}/ab-testing/enable | Enable A/B testing |
POST /api/v2/landers/{landerId}/ab-testing/disable | Disable A/B testing |
POST /api/v2/landers/{landerId}/ab-testing/weights | Set traffic split weights |
POST /api/v2/variants/{variantId}/set-master | Promote a variant to master |
DELETE /api/v2/variants/{variantId} | Delete a variant |
Editor
Load and save the HTML content and settings for a specific variant. Saving HTML handles base64 image extraction and versioning automatically.| Endpoint | Description |
|---|---|
GET /api/v2/variants/{variantId}/editor/load | Load HTML, settings, forms, and metadata |
POST /api/v2/variants/{variantId}/editor/save | Save HTML content |
POST /api/v2/variants/{variantId}/editor/settings | Save variant settings (integrations, SEO, tracking) |
Leads
Pull leads at workspace or organization level. Leads are paginated and can be filtered by date range, status (complete or partial), lander, and search query. The maximum page size is 1000 per request.
| Endpoint | Description |
|---|---|
GET /api/v2/workspaces/{workspaceId}/leads/get | List leads for a workspace |
GET /api/v2/organizations/{organizationId}/leads/get | List leads across the organization |
GET /api/v2/landers/{landerId}/lead-schema | Get the JSON Schema for a lander’s leads |
POST /api/v2/landers/lead-schema | Get the JSON Schema for multiple landers |
Analytics
A single flexible endpoint covers all analytics needs. Filter by workspace, lander, or variant. The most specific filter wins: if you passvariantIds, workspace and lander filters are ignored.
| Endpoint | Description |
|---|---|
POST /api/v2/organizations/{organizationId}/analytics/get | Get analytics with date range, timezone, and optional group-by |
startDate, endDate, timezone (IANA format, e.g. America/New_York).
Optional filters: workspaceIds, landerIds, variantIds.
Group by: date, lander, variant, or workspace. Defaults to date.
Domains
List domains at workspace or organization level.| Endpoint | Description |
|---|---|
GET /api/v2/workspaces/{workspaceId}/domains/get | List domains in a workspace |
GET /api/v2/organizations/{organizationId}/domains/get | List all domains across the organization |
Folders
Organize landers into folders within a workspace.| Endpoint | Description |
|---|---|
GET /api/v2/workspaces/{workspaceId}/folders | List all folders |
POST /api/v2/workspaces/{workspaceId}/folders/create | Create a folder |
POST /api/v2/folders/{folderId}/rename | Rename a folder |
Integrations
Create and list org-level integrations, then enable or disable them per lander. OAuth-based integrations (Mailchimp, HubSpot, Google Sheets, AWeber) require an interactive OAuth flow and cannot be created via the API directly.| Endpoint | Description |
|---|---|
GET /api/v2/organizations/{organizationId}/integrations | List all integrations |
POST /api/v2/organizations/{organizationId}/integrations/create | Create an integration |
POST /api/v2/lander-integrations/{id}/enable | Enable a lander integration |
POST /api/v2/lander-integrations/{id}/disable | Disable a lander integration |
DELETE /api/v2/lander-integrations/{id} | Remove an integration from a lander |
OpenAPI Spec and Interactive Docs
The full OpenAPI 3.1 spec is available at:Using the API with an AI Assistant (MCP)
If you want to manage your LanderLab account using plain English instead of writing API calls, the LanderLab MCP server is built on the same API and exposes 30+ tools to any MCP-compatible AI assistant, including Claude, ChatGPT, Cursor, and Windsurf. The MCP server URL is:X-API-Key header for authentication. See Connect AI Assistants via MCP for setup instructions.