List Projects
GET /api/v1/content/projects
Authentication
Requires a Content API key. See Authentication.
Query parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | integer | 50 | Number of projects to return (max 100) |
after | string | — | Cursor for pagination (from nextCursor) |
Response
{
"object": "list",
"data": [
{
"id": "clx1abc23def456ghij",
"name": "My Storefront",
"parentProjectId": null,
"createdAt": "2026-01-15T08:30:00.000Z"
},
{
"id": "clx2ghi78jkl901mnop",
"name": "Holiday Campaign",
"parentProjectId": "clx1abc23def456ghij",
"createdAt": "2026-02-20T14:15:00.000Z"
}
],
"nextCursor": null
}
Response fields
| Field | Type | Description |
|---|---|---|
object | string | Always "list" |
data | array | Array of project objects |
data[].id | string | Project ID |
data[].name | string | Project display name |
data[].parentProjectId | string | null | Parent project ID (for child projects) |
data[].createdAt | string | null | ISO 8601 creation timestamp |
nextCursor | string | null | Cursor for the next page, null if no more results |
Errors
| Code | Status | When |
|---|---|---|
UNAUTHORIZED | 401 | Missing or invalid API key |
INVALID_PARAMS | 400 | Invalid cursor value |
INTERNAL_ERROR | 500 | Unexpected server error |
Examples
- cURL
- TypeScript
- Python
# List first 10 projects
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://studio.weaverse.io/api/v1/content/projects?limit=10"
const res = await fetch(
'https://studio.weaverse.io/api/v1/content/projects?limit=10',
{ headers: { Authorization: ['Bearer', API_KEY].join(' ') } }
)
const { data: projects, nextCursor } = await res.json()
import requests
res = requests.get(
"https://studio.weaverse.io/api/v1/content/projects",
headers={"Authorization": f"Bearer {API_KEY}"},
params={"limit": 10},
)
data = res.json()
projects = data["data"]