Instapage Workspaces API
Create, read, rename and delete Instapage workspaces — the top-level tenant container that holds a customer's landing pages, integrations, domains and assets.
Create, read, rename and delete Instapage workspaces — the top-level tenant container that holds a customer's landing pages, integrations, domains and assets.
openapi: 3.1.0
info:
title: Instapage Workspaces API
description: 'Workspaces are the top-level container for landing pages, integrations, domains and other
assets in Instapage.
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: Workspaces
description: Workspaces are the top-level container for landing pages, integrations, domains and other
assets in Instapage.
paths:
/workspaces:
get:
summary: Get all workspaces
description: Retrieve all workspaces the authenticated token has access to.
operationId: listWorkspaces
tags:
- Workspaces
parameters:
- in: query
name: page
required: false
description: Specifies which page to fetch. Used for pagination purposes.
schema:
type: number
default: 1
- in: query
name: name
required: false
description: Optional name of the workspace to limit the result (case insensitive).
schema:
type: string
responses:
'200':
description: The request was processed successfully.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Workspace'
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'
'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'
post:
summary: Add new workspace
description: Create a new workspace for the authenticated user. Each workspace must have a unique
name under the same owner.
operationId: createWorkspace
tags:
- Workspaces
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- name
properties:
name:
type: string
description: The unique name of the workspace.
responses:
'201':
description: The workspace was created successfully.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Workspace'
'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'
'409':
description: Conflict. A workspace with the same name already exists.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Unprocessable Entity. Limit of workspaces has been reached.
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'
/workspaces/{workspaceId}:
get:
summary: Get single workspace
description: Retrieves details of a single workspace by its ID.
operationId: getWorkspace
tags:
- Workspaces
parameters:
- &id001
in: path
name: workspaceId
required: true
description: The ID of the workspace.
schema:
type: number
responses:
'200':
description: Request was processed successfully.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Workspace'
'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: Workspace not found.
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'
patch:
summary: Rename workspace
description: Updates the name of an existing workspace.
operationId: renameWorkspace
tags:
- Workspaces
parameters:
- *id001
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: The new name for the workspace.
responses:
'200':
description: Request was processed successfully.
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Workspace'
'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: Workspace not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Conflict. The workspace name is already taken.
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'
delete:
summary: Delete workspace
description: Deletes a workspace by its ID.
operationId: deleteWorkspace
tags:
- Workspaces
parameters:
- *id001
responses:
'200':
description: Workspace successfully deleted.
'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: Workspace not found.
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.
Workspace:
type: object
properties:
workspaceId:
type: number
description: Unique identifier of the workspace.
ownerId:
type: number
description: Identifier of the workspace owner.
workspaceName:
type: string
description: Name of the workspace.
accessLevel:
type: string
description: User's access level to the workspace.
createdAt:
type: number
description: Creation date of the workspace in UNIX timestamp format.