Skip to content

List workspaces

GET
/v1/workspaces
curl --request GET \
--url https://api.app.layer.ai/api/v1/workspaces \
--header 'Authorization: Bearer <token>'

List all workspaces the authenticated user belongs to, with Creative Units balance details.

limit
Limit

Maximum number of results to return.

integer
default: 20 >= 1 <= 100

Maximum number of results to return.

cursor
Any of:
string

Cursor from a previous response to get the next page.

Successful Response

Media typeapplication/json
ListWorkspacesOutput
object
workspaces
required
Workspaces

All workspaces the authenticated user belongs to, ordered by most recently active first.

Array<object>
WorkspaceInfo
object
workspace_id
required
Workspace Id

The workspace’s unique identifier.

string format: uuid
slug
required
Slug

The workspace slug (its representation in the app URL).

string
name
required
Name

The workspace display name.

string
balance_creative_units
required
Balance Creative Units

Total Creative Units balance before reservations.

number
reserved_creative_units
required
Reserved Creative Units

Creative Units reserved by in-progress generations.

number
available_creative_units
required
Available Creative Units

Usable balance (balance minus reserved). Can be negative.

number
last_active_at
required
Any of:
string format: date-time
pagination
required
PaginationOutput
object
next_cursor
Any of:
string
has_more_results
required
Has More Results

If there are more results to page through

boolean
total_count
Any of:
integer
Examplegenerated
{
"workspaces": [
{
"workspace_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"slug": "example",
"name": "example",
"balance_creative_units": 1,
"reserved_creative_units": 1,
"available_creative_units": 1,
"last_active_at": "2026-04-15T12:00:00Z"
}
],
"pagination": {
"next_cursor": "example",
"has_more_results": true,
"total_count": 1
}
}

Unauthenticated — missing or invalid Bearer token.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}

Forbidden — insufficient permissions.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}

Resource not found.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}

Invalid input parameters.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}

Rate limited — too many concurrent requests.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}

Internal server error.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description."
}