API Reference/Projects

Projects

6 endpoints|Base URL: https://pipe.solar/api/1.1/wf

Retrieve Project Data by ID

GET/fetch_project_hi

This API retrieves project-related data based on the provided Project ID and returns the project details if a matching Lead record exists.

Query Params

idstringqueryrequired
1curl -X GET "https://pipe.solar/api/1.1/wf/fetch_project_hi?id=value" \
2 -H "Authorization: Bearer ps_live_..." \
3 -H "Content-Type: application/json"
Response
1{
2 "data": {
3 "customerFirstName": "John",
4 "customerLastName": "Doe",
5 "customerPhoneNumber": "9876543210",
6 "customerEmail": "john.doe@example.com",
7 "customerAddress": "221B Baker Street, London, NW1 6XE, UK",
8 "customerStreet": "221B Baker Street",
9 "customerCity": "London",
10 "customerState": "Greater London",
11 "customerZip": "NW1 6XE",
12 "secondaryCustomerFirstName": "Jane",
13 "secondaryCustomerLastName": "Doe",
14 "secondaryCustomerPhoneNumber": "9876500000",
15 "secondaryCustomerEmail": "jane.doe@example.com",
16 "customerNotes": "Customer prefers morning calls and is interested in energy savings.",
17 "projectStatus": "NTP",
18 "contractSignedDate": "03/15/26",
19 "submittedDate": "03/20/26",
20 "contractURL": [
21 "https://example.com/contracts/contract_12345.pdf"
22 ],
23 "allFilesURL": {
24 "surveyFiles": [
25 "https://example.com/files/survey1.jpg"
26 ],
27 "personalFiles": [
28 "https://example.com/files/id_proof.jpg"
29 ],
30 "utilityBills": [
31 "https://example.com/files/utility_bill.pdf"
32 ],
33 "insuranceFiles": [],
34 "driverLicense": [
35 "https://example.com/files/license.jpg"
36 ],
37 "installationPhotos": [
38 "https://example.com/files/install1.jpg"
39 ],
40 "plansets": [
41 "https://example.com/files/planset.pdf"
42 ],
43 "materials": [],
44 "otherDocuments": [],
45 "interconnection": [],
46 "permits": [],
47 "internalDocuments": []
48 },
49 "proposalURL": "https://example.com/proposal/12345",
50 "projectURL": "https://example.com/project/12345",
51 "financeCompany": "Test Finance Co",
52 "financeAmount": "15000",
53 "financeAPR": "5.5",
54 "financeDealerFee": "10",
55 "financeTerm": "60",
56 "monthlyPayment": "285",
57 "financeType": "Loan",
58 "Products": [
59 {
60 "product_name": "Windows A",
61 "product_cost": "900"
62 },
63 {
64 "product_name": "Tesla Powerwall 3 13.5 kWh",
65 "product_cost": "12000"
66 },
67 {
68 "product_name": "Solar Panel Kit 5kW",
69 "product_cost": "7500"
70 }
71 ],
72 "adjustments": "500",
73 "contractPrice": "19900",
74 "salesRepName": "Michael Scott",
75 "salesRepEmail": "michael.scott@dundermifflin.com",
76 "salesRepPhone": "1234567890",
77 "setterName": "Dwight Schrute",
78 "setterEmail": "dwight.schrute@dundermifflin.com",
79 "setterPhone": "0987654321"
80 },
81 "id": "TEST12345"
82}

Fetch All Project (Installer)

GET/fetch_all_project_installer_hi

Query Params

installer_idstringqueryrequired
pagenumberqueryrequired

Body Params

application/json

1curl -X GET "https://pipe.solar/api/1.1/wf/fetch_all_project_installer_hi?installer_id=value&page=value" \
2 -H "Authorization: Bearer ps_live_..." \
3 -H "Content-Type: application/json" \
4 -d '{}'
Response
Successful response

Fetch All Project (Org)

GET/fetch_all_project_hi

Query Params

org_idstringqueryrequired
pagenumberqueryrequired
1curl -X GET "https://pipe.solar/api/1.1/wf/fetch_all_project_hi?org_id=value&page=value" \
2 -H "Authorization: Bearer ps_live_..." \
3 -H "Content-Type: application/json"
Response
Successful response

Update Project Stage

POST/update_stage_hi

This endpoint updates the stage of an existing project. When the API is invoked, it searches for the project using the provided id and updates the project’s stage to the specified project_stage_name. The change is then reflected across the related project and deal records.

Query Params

project_stage_namestringqueryrequired

The target stage name to be assigned to the project. Must match a valid stage configured in the system.

idstringqueryrequired

Unique identifier of the Project record whose stage needs to be updated.

1curl -X POST "https://pipe.solar/api/1.1/wf/update_stage_hi?project_stage_name=value&id=value" \
2 -H "Authorization: Bearer ps_live_..." \
3 -H "Content-Type: application/json"
Response
1{
2 "success": true,
3 "message": "Project status updated successfully.",
4 "data": {
5 "project_id": "U7X5R0UG12",
6 "new_status": "NTP"
7 }
8}

Upload File to Project

POST/project_upload_file_hi

This API endpoint uploads and stores a file in the correct directory based on the provided folder_id within a specific project.

Body Params

application/json

fileurlarrayrequired

The publicly accessible URL of the file to be uploaded

project_idstringrequired

The unique identifier of the target Project where the file will be stored

folder_idstringrequired

This determines which document type directory the file will be uploaded to. Only supported predefined folder_id values are accepted.

Allowed values (11):

contractutility_billdrivers_licensematerials
1curl -X POST "https://pipe.solar/api/1.1/wf/project_upload_file_hi" \
2 -H "Authorization: Bearer ps_live_..." \
3 -H "Content-Type: application/json" \
4 -d '{
5 "fileurl": [
6 ""
7 ],
8 "project_id": "example",
9 "folder_id": "contract"
10}'
Response
1{
2 "success": true,
3 "message": "File has been saved successfully"
4}

Create Activity Log

POST/create_activity_hi

Body Params

application/json

project_idstringrequired

Project ID for Home Improvement Projects

installer_idstringrequired
notesstringrequired
1curl -X POST "https://pipe.solar/api/1.1/wf/create_activity_hi" \
2 -H "Authorization: Bearer ps_live_..." \
3 -H "Content-Type: application/json" \
4 -d '{
5 "project_id": "example",
6 "installer_id": "example",
7 "notes": "example"
8}'
Response
1{
2 "success": true,
3 "message": "Activity created successfully",
4 "data": {
5 "project_id": "12345",
6 "installer_id": "abc"
7 }
8}