ReDesk AI › Projects
Projects
A project is the record everything hangs off: the customer, the site, the system size and where it is in your SOP. Proposals, steps and milestones all belong to one.
The project object
FieldTypeDescription
idstringUnique id, prefixed prj_.customerstringThe customer this project is for (cus_…).templatestringThe SOP template the project follows (tpl_…).capacity_kwnumberPlanned DC capacity in kW.stageenumlead, survey, design, approval, install, commissioned or closed.siteobjectAddress and coordinates of the installation.ownerstringThe team member accountable for the project (usr_…).created_attimestampWhen the project was created.project object
{
"id": "prj_71Ka",
"object": "project",
"customer": "cus_8Q2Xk",
"template": "tpl_rooftop_standard",
"capacity_kw": 42.5,
"stage": "survey",
"site": {
"line1": "Plot 14, MIDC Bhosari",
"city": "Pune",
"state": "MH",
"postcode": "411026",
"lat": 18.6298,
"lng": 73.8478
},
"owner": "usr_2Wd9",
"created_at": "2026-08-01T06:20:11Z"
}List projects
GET
/v1/projectsProjects in your organisation, newest first.
ParameterDescription
stagequery · enum
customerquery · string
limitquery · integer
starting_afterquery · string
Request
curl https://api.redesk.ai/v1/projects \ -H "Authorization: Bearer sk_test_..."
Response
{
"object": "list",
"data": [
{
"id": "prj_71Ka",
"object": "project",
"customer": "cus_8Q2Xk",
"template": "tpl_rooftop_standard",
"capacity_kw": 42.5,
"stage": "survey",
"site": {
"line1": "Plot 14, MIDC Bhosari",
"city": "Pune",
"state": "MH",
"postcode": "411026",
"lat": 18.6298,
"lng": 73.8478
},
"owner": "usr_2Wd9",
"created_at": "2026-08-01T06:20:11Z"
}
],
"has_more": false
}Create a project
POST
/v1/projectsStarts a project from an SOP template. The first step of the template is opened immediately.
ParameterDescription
customerbody · stringrequired
cus_8Q2Xk.templatebody · stringrequired
capacity_kwbody · numberrequired
sitebody · object
ownerbody · string
Request
curl -X POST https://api.redesk.ai/v1/projects \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{
"customer": "cus_8Q2Xk",
"template": "tpl_rooftop_standard",
"capacity_kw": 42.5
}'Response
{
"id": "prj_71Ka",
"object": "project",
"customer": "cus_8Q2Xk",
"template": "tpl_rooftop_standard",
"capacity_kw": 42.5,
"stage": "survey",
"site": {
"line1": "Plot 14, MIDC Bhosari",
"city": "Pune",
"state": "MH",
"postcode": "411026",
"lat": 18.6298,
"lng": 73.8478
},
"owner": "usr_2Wd9",
"created_at": "2026-08-01T06:20:11Z"
}Retrieve a project
GET
/v1/projects/{id}Fetch one project by id.
ParameterDescription
idpath · stringrequired
Request
curl https://api.redesk.ai/v1/projects/prj_71Ka \ -H "Authorization: Bearer sk_test_..."
Response
{
"id": "prj_71Ka",
"object": "project",
"customer": "cus_8Q2Xk",
"template": "tpl_rooftop_standard",
"capacity_kw": 42.5,
"stage": "survey",
"site": {
"line1": "Plot 14, MIDC Bhosari",
"city": "Pune",
"state": "MH",
"postcode": "411026",
"lat": 18.6298,
"lng": 73.8478
},
"owner": "usr_2Wd9",
"created_at": "2026-08-01T06:20:11Z"
}Update a project
PATCH
/v1/projects/{id}Change the owner, size or site. Stage moves only through SOP steps, never directly.
ParameterDescription
idpath · stringrequired
capacity_kwbody · number
ownerbody · string
Request
curl -X PATCH https://api.redesk.ai/v1/projects/prj_71Ka \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{
"capacity_kw": 45
}'Response
{
"id": "prj_71Ka",
"object": "project",
"customer": "cus_8Q2Xk",
"template": "tpl_rooftop_standard",
"capacity_kw": 45,
"stage": "survey",
"site": {
"line1": "Plot 14, MIDC Bhosari",
"city": "Pune",
"state": "MH",
"postcode": "411026",
"lat": 18.6298,
"lng": 73.8478
},
"owner": "usr_2Wd9",
"created_at": "2026-08-01T06:20:11Z"
}
