Skip to content

List projects with filtering and pagination

GET
/v1/projects

Retrieves a paginated list of projects accessible to the authenticated member. Supports filtering by pinned status, archived status, creator, and text search. Projects are returned without their nested services for performance. Use GET /projects/{id} for full details. Results are sorted by most recently updated first.

page
integer
0

Page number (0-based)

size
integer
default: 20 >= 1 <= 100

Number of items per page

pinned
boolean

Filter by pinned status (if not provided, returns all projects regardless of pinned status)

archived
boolean

Filter by archived status (if not provided, returns all projects regardless of archived status)

createdBy
string

Filter by projects created by the specified member id

query
string

Search query to filter projects by name (case-insensitive partial match)

The projects without the services

A paginated response containing projects

object
data
required

The projects for this page

Array<object>

The project

object
id
required

An identifier (e.g., my-project-a1b2c)

string
>= 8 characters <= 60 characters /^[a-z0-9][a-z0-9-]*[a-z0-9]$/
name
required

The name of this project

string
>= 3 characters <= 60 characters
description
required

A description of this project

string
<= 200 characters
archived
required

Whether the project is archived or not

boolean
pinned
required

Whether the project is pinned for the member or not

boolean
serviceCount
required

The number of services in this project

integer format: int32
isOwner
required

Whether the authenticated caller is the creator of this project

boolean
createdBy
required

The name of the actor (member email or API key name) that created this project

string
createdByType
required

The type of actor (user or API key)

string
Allowed values: MEMBER API_KEY
updatedBy
required

The name of the actor (member email or API key name) that last updated this project or one of its services

string
updatedByType
required

The type of actor (user or API key)

string
Allowed values: MEMBER API_KEY
createdAt
required

The timestamp in UTC that the project was created

string format: date-time
updatedAt
required

The timestamp in UTC that the project or on of its its services was last updated

string format: date-time
page
required

Current page number (0-based)

integer
size
required

Number of items per page

integer
>= 1
total
required

Total number of projects

integer
totalPages
required

Total number of pages

integer
first
required

Whether this is the first page

boolean
last
required

Whether this is the last page

boolean

Invalid query parameters

Standard error response

object
status
required

HTTP status code

integer
Example
400
code
required

Machine-readable error code in snake_case

string
Allowed values: bad_request unauthorized payment_required forbidden not_found conflict rate_limited internal_error project_not_found project_limit_reached service_not_found service_name_conflict subscription_not_found customer_not_found insufficient_ai_credits invalid_billing_cycle validation_failed resource_already_exists public_share_token_not_found
message
required

Error message

string
Example
Validation failed
details

Additional error details

string
Example
Project name must be between 3 and 60 characters

Unauthorized, authentication required

Standard error response

object
status
required

HTTP status code

integer
Example
400
code
required

Machine-readable error code in snake_case

string
Allowed values: bad_request unauthorized payment_required forbidden not_found conflict rate_limited internal_error project_not_found project_limit_reached service_not_found service_name_conflict subscription_not_found customer_not_found insufficient_ai_credits invalid_billing_cycle validation_failed resource_already_exists public_share_token_not_found
message
required

Error message

string
Example
Validation failed
details

Additional error details

string
Example
Project name must be between 3 and 60 characters

Too many requests

Rate limit exceeded error response

object
status
required

HTTP status code

integer
Example
429
code
required

Machine-readable error code in snake_case

string
Allowed values: bad_request unauthorized payment_required forbidden not_found conflict rate_limited internal_error project_not_found project_limit_reached service_not_found service_name_conflict subscription_not_found customer_not_found insufficient_ai_credits invalid_billing_cycle validation_failed resource_already_exists public_share_token_not_found
message
required

Error message

string
Example
Too many requests
retryAfter
required

Number of seconds until the client can retry

integer
Example
60
Retry-After
integer

Number of seconds to wait before retrying

Internal server error

Standard error response

object
status
required

HTTP status code

integer
Example
400
code
required

Machine-readable error code in snake_case

string
Allowed values: bad_request unauthorized payment_required forbidden not_found conflict rate_limited internal_error project_not_found project_limit_reached service_not_found service_name_conflict subscription_not_found customer_not_found insufficient_ai_credits invalid_billing_cycle validation_failed resource_already_exists public_share_token_not_found
message
required

Error message

string
Example
Validation failed
details

Additional error details

string
Example
Project name must be between 3 and 60 characters