Projects
A project is a named container for jobs. Every job belongs to exactly one project, project names are unique within an account, and deleting a project deletes its jobs.
Project object
{
"id": 1,
"accountId": 123,
"name": "Data Processing Pipeline",
"description": "Daily data processing and cleanup tasks",
"dateCreated": "2026-01-15T10:30:00Z",
"dateModified": null,
"createdBy": "user123",
"modifiedBy": null,
"deletedBy": null
}
Endpoints
| Method | Path | Scope | Notes |
|---|---|---|---|
GET | /projects | read | Paginated; orderBy: id, name, description, date_created, account_id |
POST | /projects | write | Body {name, description, createdBy} → 201 |
GET | /projects/{id} | read | |
PUT | /projects/{id} | write | Body {description, modifiedBy} — only description can change |
DELETE | /projects/{id} | write | Body {deletedBy} → 204; also deletes the project's jobs |
Create
name, description and createdBy are all required. A name already used in the account returns 400.
curl -X POST "https://api.scheduler0.com/api/v1/projects" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-H "X-Secret-Key: YOUR_SECRET_KEY" \
-H "X-Account-ID: YOUR_ACCOUNT_ID" \
-d '{
"name": "E-commerce Automation",
"description": "Order processing and inventory tasks",
"createdBy": "user123"
}'
List and get
curl "https://api.scheduler0.com/api/v1/projects?limit=10&offset=0&orderBy=date_created&orderByDirection=desc" \
-H "X-API-Key: YOUR_API_KEY" \
-H "X-Secret-Key: YOUR_SECRET_KEY" \
-H "X-Account-ID: YOUR_ACCOUNT_ID"
{
"success": true,
"data": {
"total": 1,
"offset": 0,
"limit": 10,
"projects": [
{
"id": 1,
"accountId": 123,
"name": "E-commerce Automation",
"description": "Order processing and inventory tasks",
"dateCreated": "2026-01-15T10:30:00Z",
"createdBy": "user123"
}
]
}
}
GET /projects/{id} returns a single project, or 404 if it does not exist in this account.
Update
Only description is updatable; the name is fixed at creation. modifiedBy is required.
curl -X PUT "https://api.scheduler0.com/api/v1/projects/1" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-H "X-Secret-Key: YOUR_SECRET_KEY" \
-H "X-Account-ID: YOUR_ACCOUNT_ID" \
-d '{
"description": "Updated description",
"modifiedBy": "user123"
}'
Delete
Deletes the project and every job in it. deletedBy is required.
curl -X DELETE "https://api.scheduler0.com/api/v1/projects/1" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-H "X-Secret-Key: YOUR_SECRET_KEY" \
-H "X-Account-ID: YOUR_ACCOUNT_ID" \
-d '{"deletedBy": "user123"}'
Related
- Jobs — filter jobs by project with
GET /jobs?projectId=... - AI Job Scheduling —
POST /ai/schedulecan create or reuse a project by name