List projects
GET
/v1/projects
curl "https://api.summerbase.com/v1/projects" \ -H "Authorization: Bearer sb_..."const response = await fetch("https://api.summerbase.com/v1/projects", { headers: { Authorization: "Bearer sb_...", },})const data = await response.json()The projects in the organization you are working in. Send
Summerbase-Organization; there is no listing across organizations.
Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”limit
integer
How many records to return, 1 to 100. Defaults to 20.
cursor
string
The next_cursor of the previous page, to read the page after it.
include_total_count
boolean
Whether to add total_count, how many records match altogether. On the first page only: it is the same number on every page of one list, so keep the first page’s, and it is refused beside a cursor.
expand[]
Array<string>
Relationships to include in the response instead of fetching separately. A dotted path expands what an expanded record can expand in turn — at most 4 deep, 10 paths a request, and never back to a record already on the path.
Response
Section titled “Response”Returns a list of project objects, a page at a time. See Pagination.
Media typeapplication/json
Example
{ "data": [ { "checklist_dismissed_at": null, "churn_timing": "at_expiration", "created_at": "2025-09-08T14:02:37Z", "id": "0198f1a2-6c52-7b18-8e3f-2a9c4d6b1e07", "movement_collapse_window_days": 7, "name": "Production", "object": "project", "organization_id": "0198f1a2-6c3d-7e41-9a2b-5c8d1e4f7a90", "recompute_failed_at": null, "recompute_remaining": 0, "recompute_started_at": null, "recompute_total": 0, "reporting_cadence": "monthly", "reporting_currency_code": "USD", "reporting_timezone": "America/New_York", "slug": "production" } ], "has_more": false, "next_cursor": null, "object": "list", "total_count": 1}