Skip to main content

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​

MethodPathScopeNotes
GET/projectsreadPaginated; orderBy: id, name, description, date_created, account_id
POST/projectswriteBody {name, description, createdBy} → 201
GET/projects/{id}read
PUT/projects/{id}writeBody {description, modifiedBy} — only description can change
DELETE/projects/{id}writeBody {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"}'
  • Jobs — filter jobs by project with GET /jobs?projectId=...
  • AI Job Scheduling — POST /ai/schedule can create or reuse a project by name