Projects
Projects are containers for your work within Airclou. Each project can have its own settings, members, and resources.
The project object
Attributes
| Attribute | Type | Description |
|---|---|---|
id | string | Unique identifier for the project |
name | string | Project name |
description | string | Project description |
status | string | Project status: active, archived, or draft |
owner_id | string | ID of the user who owns the project |
team_id | string | ID of the team this project belongs to (optional) |
created_at | timestamp | When the project was created |
updated_at | timestamp | When the project was last updated |
Example object
{
"id": "proj_1234567890",
"name": "Website Redesign",
"description": "Complete redesign of company website",
"status": "active",
"owner_id": "usr_1234567890",
"team_id": "team_1234567890",
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-11-06T09:15:00Z"
}
List all projects
GET /playbook/api/v1/projects
Query parameters
| Parameter | Type | Description |
|---|---|---|
limit | integer | Number of projects to return (1-100) |
cursor | string | Pagination cursor |
status | string | Filter by status: active, archived, or draft |
team_id | string | Filter by team ID |
search | string | Search by project name |
Example request
curl "https://app.airclou.com/playbook/api/v1/projects?status=active" \
-H "Authorization: Bearer YOUR_API_KEY"
Example response
{
"data": [
{
"id": "proj_1234567890",
"name": "Website Redesign",
"description": "Complete redesign of company website",
"status": "active",
"owner_id": "usr_1234567890",
"team_id": "team_1234567890",
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-11-06T09:15:00Z"
}
],
"pagination": {
"next_cursor": null,
"has_more": false,
"total_count": 1
}
}
Retrieve a project
GET /playbook/api/v1/projects/{project_id}
Example request
curl "https://app.airclou.com/playbook/api/v1/projects/proj_1234567890" \
-H "Authorization: Bearer YOUR_API_KEY"
Create a project
POST /playbook/api/v1/projects
Request body
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Project name |
description | string | No | Project description |
team_id | string | No | Team to assign project to |
status | string | No | Initial status (default: draft) |
Example request
curl -X POST "https://app.airclou.com/playbook/api/v1/projects" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Mobile App",
"description": "iOS and Android mobile application",
"team_id": "team_1234567890",
"status": "active"
}'
Example response
{
"id": "proj_9876543210",
"name": "Mobile App",
"description": "iOS and Android mobile application",
"status": "active",
"owner_id": "usr_1234567890",
"team_id": "team_1234567890",
"created_at": "2025-11-06T10:30:00Z",
"updated_at": "2025-11-06T10:30:00Z"
}
Update a project
PATCH /playbook/api/v1/projects/{project_id}
Request body
| Field | Type | Description |
|---|---|---|
name | string | Project name |
description | string | Project description |
status | string | Project status |
team_id | string | Team ID (or null to remove from team) |
Example request
curl -X PATCH "https://app.airclou.com/playbook/api/v1/projects/proj_1234567890" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "archived"
}'
Delete a project
DELETE /playbook/api/v1/projects/{project_id}
Example request
curl -X DELETE "https://app.airclou.com/playbook/api/v1/projects/proj_1234567890" \
-H "Authorization: Bearer YOUR_API_KEY"
Example response
204 No Content
Warning: Deleting a project will permanently delete all associated resources. This action cannot be undone.
Project statuses
Active
Project is currently in progress and visible to team members.
Draft
Project is being planned and not yet fully active. Limited visibility.
Archived
Project is complete or on hold. Can be restored to active status if needed.