Instapage Experiments API
List the Manual and AI experiments running against Instapage landing pages, with their DRAFT / RUNNING / ENDED / ARCHIVED status and timing.
List the Manual and AI experiments running against Instapage landing pages, with their DRAFT / RUNNING / ENDED / ARCHIVED status and timing.
openapi: 3.1.0
info:
title: Instapage Experiments API
description: 'A/B and AI experiments running against landing pages.
The Instapage Public API is a REST API over the Instapage landing page and post-click optimization
platform. It exposes workspaces, team members, landing pages, page groups, personalized experiences,
collections and collection pages, experiments, analytics, form submissions (leads), custom domains
and image assets.
Authentication is a personal API token sent as an HTTP Bearer token in the Authorization header. A
personal token inherits all permissions from its creator and cannot exceed them; expired or revoked
tokens return 401. Rate limiting is 200 requests per minute enforced per token and per IP address,
on top of a daily plan quota that resets at 00:00 UTC; exceeding either returns 429 with a Retry-After
header.
List endpoints are page-number paginated via the `page` query parameter and return a `meta.pagination`
block; form submissions instead use an opaque `meta.nextPageToken` cursor. Errors are returned as
a `{title, details, meta}` envelope.
Instapage does not publish an OpenAPI description. This document was transcribed by API Evangelist
from the published API reference at https://devdocs.instapage.com/ and is not an official Instapage
artifact.'
version: '1'
contact:
name: Instapage Developer Docs
url: https://devdocs.instapage.com/
termsOfService: https://instapage.com/terms-of-service
x-provenance:
method: derived
source: https://devdocs.instapage.com/
generated: '2026-08-13'
note: Instapage publishes no OpenAPI. Transcribed from the published API reference; not an official
Instapage artifact.
servers:
- url: https://api.instapage.com/v1
description: Instapage Public API v1
security:
- BearerAuth: []
tags:
- name: Experiments
description: A/B and AI experiments running against landing pages.
paths:
/workspaces/{workspaceId}/experiments:
get:
summary: Get all experiments
description: Retrieve all experiments for a specific workspace, with optional filtering by status.
operationId: listExperiments
tags:
- Experiments
parameters:
- in: path
name: workspaceId
required: true
description: The ID of the workspace.
schema:
type: number
- in: query
name: status[]
required: false
description: Filter experiments by status. Can include multiple values.
schema:
type: array
items:
type: string
enum:
- DRAFT
- RUNNING
- ENDED
- ARCHIVED
- in: query
name: page
required: false
description: Specifies which page to fetch. Used for pagination purposes.
schema:
type: number
default: 1
responses:
'200':
description: The request was processed successfully.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Experiment'
meta:
$ref: '#/components/schemas/PaginationMeta'
'400':
description: Bad request. Validation error — review input parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized. Authentication failed or missing credentials.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not Found. The requested resource could not be located.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Too Many Requests. Request was blocked due to rate limit or plan restrictions.
See the Retry-After header.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
headers:
Retry-After:
description: Number of seconds to wait before retrying, returned when the daily plan quota
or the 200 requests/minute limit is exceeded.
schema:
type: integer
'500':
description: Internal Server Error. An unexpected condition prevented the request from being
fulfilled.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: Personal API Token
description: 'Personal API token generated from Instapage account settings, sent as `Authorization:
Bearer <token>`.'
schemas:
Pagination:
type: object
properties:
currentPage:
type: number
description: Number of the current page of results.
perPage:
type: number
description: Number of items per page.
totalItemsCount:
type: number
description: Total number of items.
totalPagesCount:
type: number
description: Total number of pages.
nextPage:
type:
- number
- 'null'
description: Number of the next page, null if there is no next page.
previousPage:
type:
- number
- 'null'
description: Number of the previous page, null if there is no previous page.
PaginationMeta:
type: object
properties:
pagination:
$ref: '#/components/schemas/Pagination'
Error:
type: object
description: Error envelope returned by the Instapage API.
properties:
title:
type: string
description: The type of error that occurred.
details:
type: string
description: A human-readable description of the error.
meta:
type: object
properties:
requestedUserId:
type: number
description: ID of the user who made the request.
requestedWorkspaceId:
type: number
description: ID of the workspace involved.
requestedPageId:
type: number
description: ID of the page involved, when the error concerns a page.
Experiment:
type: object
properties:
experimentId:
type: number
description: Unique identifier for the experiment.
experimentName:
type: string
description: Name of the experiment.
pageId:
type: number
description: ID of the page associated with the experiment.
publishedPageUrl:
type: string
description: URL where the experiment page is published.
experimentType:
type: string
description: Type of experiment.
enum:
- Manual
- AI
experimentStatus:
type: string
description: Current status of the experiment.
enum:
- DRAFT
- RUNNING
- ENDED
- ARCHIVED
createdAt:
type: number
description: Creation timestamp (UNIX format).
createdBy:
type: number
description: User ID of the experiment creator.
startedAt:
type:
- number
- 'null'
description: Start timestamp (UNIX format), null if not started.
endedAt:
type:
- number
- 'null'
description: End timestamp (UNIX format), null if not ended.