List projects in the caller's tenant
const url = 'https://example.com/v1/projects?limit=25';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://example.com/v1/projects?limit=25' \ --header 'Authorization: Bearer <token>'Cursor-paginated. Optional ?orgId= narrows to a specific org (projects may have no org; absent = all); ?nameContains= substring-matches on Project.name.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”1..100. Default 25.
Opaque cursor from a prior response. Absent → first page.
Narrow to projects belonging to a specific org.
Substring match on Project.name.
Responses
Section titled “Responses”Page of projects.
object
object
ProjectId — opaque branded string.
Examplegenerated
{ "data": [ { "id": "example", "tenantId": "example", "orgId": "example", "name": "example", "slug": "example", "isDefault": true, "description": "example", "createdAt": "example", "updatedAt": "example" } ], "hasMore": true, "nextCursor": "example"}Malformed query parameter.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}Missing / malformed / expired / revoked bearer token.
object
object
Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).
Optional, kind-specific.
object
Server-assigned request id; also echoed via X-Request-Id header.
Examplegenerated
{ "error": { "code": "example", "message": "example", "details": {}, "requestId": "example" }}