List projects
Retrieve a paginated list of projects in your workspace.
Use this to build project management dashboards or to enumerate projects for administrative purposes. Results are ordered by project id and returned in pages. When hasMore is true, pass the returned cursor to fetch the next page.
Required Permissions
Your root key must have the following permission:
project.*.read_project(to read projects in your workspace)
Authorization
Body
application/jsonMaximum number of projects to return per request.
Balance between response size and number of pagination calls needed.
Default: 100
Range: 1–100
Pagination cursor from a previous response to fetch the next page.
Use when hasMore: true in the previous response.
Length: max 256
Responses
hasMore: true.requestId is particularly important when troubleshooting issues with the Unkey support team.Show child attributesHide child attributes
Items: max 100
Show child attributesHide child attributes
URL-safe handle for this project, unique within your workspace.
This is the caller-defined identifier used to reference the project in get, update, and delete operations.
Range: 0–9223372036854776000
Unix timestamp in milliseconds when the project was last updated.
Omitted if the project has never been updated.
Range: 0–9223372036854776000
Whether delete protection is enabled for this project.
When true, the project cannot be deleted until protection is disabled.
Show child attributesHide child attributes
Opaque pagination token for retrieving the next page of results.
Include this exact value in the cursor field of subsequent requests.
Cursors are temporary and may expire after extended periods.
Length: 1–1024
Indicates whether additional results exist beyond this page.
When true, use the cursor to fetch the next page.
When false, you have reached the end of the result set.
requestId is particularly important when troubleshooting issues with the Unkey support team.Show child attributesHide child attributes
Show child attributesHide child attributes
400 (Bad Request), 401 (Unauthorized), 403 (Forbidden), 404 (Not Found), 409 (Conflict), and 500 (Internal Server Error).Show child attributesHide child attributes
JSON path indicating exactly where in the request the error occurred. This helps pinpoint the problematic field or parameter. Examples include:
- 'body.name' (field in request body)
- 'body.items[3].tags' (nested array element)
- 'path.apiId' (path parameter)
- 'query.limit' (query parameter)
Use this location to identify exactly which part of your request needs correction.
requestId is particularly important when troubleshooting issues with the Unkey support team.Show child attributesHide child attributes
Show child attributesHide child attributes
400 (Bad Request), 401 (Unauthorized), 403 (Forbidden), 404 (Not Found), 409 (Conflict), and 500 (Internal Server Error).requestId is particularly important when troubleshooting issues with the Unkey support team.Show child attributesHide child attributes
Show child attributesHide child attributes
400 (Bad Request), 401 (Unauthorized), 403 (Forbidden), 404 (Not Found), 409 (Conflict), and 500 (Internal Server Error).requestId is particularly important when troubleshooting issues with the Unkey support team.Show child attributesHide child attributes
Show child attributesHide child attributes
400 (Bad Request), 401 (Unauthorized), 403 (Forbidden), 404 (Not Found), 409 (Conflict), and 500 (Internal Server Error).requestId is particularly important when troubleshooting issues with the Unkey support team.Show child attributesHide child attributes
Show child attributesHide child attributes
400 (Bad Request), 401 (Unauthorized), 403 (Forbidden), 404 (Not Found), 409 (Conflict), and 500 (Internal Server Error).