Sites
Create a new site with the specified ID
Authorizations
Path parameters
projectIdstringRequired
The project ID
siteIdstringRequired
The site ID
Body
Refer to the /schemas/site endpoint for the full JSON Schema definition
codestringRequiredPattern: 
^[A-Z0-9]*$namestringRequired
productionStartDatestring · dateOptional
generationStartDatestring · dateOptional
consumptionStartDatestring · dateOptional
storageStartDatestring · dateOptional
addressstringRequired
townstringRequired
statestringRequired
latnumber · min: -180 · max: 180Required
longnumber · min: -180 · max: 180Required
serviceIdstringOptional
parcelIDstringOptional
parcelAcreagestringOptional
zoningDistrictstringOptional
ownerOfRecordstringOptional
locationIdintegerOptional
The ID of a SolarNetwork location; used to retrieve weather details
plantIdstringOptional
utilitystringOptional
emissionsApproximationMethodstring · enumOptionalPossible values: 
timezonestringOptional
expectedDailyDatanumberOptional
accessNotesstringOptional
Responses
200
successful operation
application/json
400
Invalid status value
application/json
post
/projects/{projectId}/sites/{siteId}POST /projects/{projectId}/sites/{siteId} HTTP/1.1
Host: api.ecosuite.io/
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 653
{
  "code": "text",
  "name": "text",
  "productionStartDate": "2025-10-31",
  "generationStartDate": "2025-10-31",
  "consumptionStartDate": "2025-10-31",
  "storageStartDate": "2025-10-31",
  "address": "text",
  "town": "text",
  "state": "text",
  "lat": 1,
  "long": 1,
  "serviceId": "text",
  "parcelID": "text",
  "parcelAcreage": "text",
  "zoningDistrict": "text",
  "ownerOfRecord": "text",
  "locationId": 1,
  "plantId": "text",
  "utility": "text",
  "emissionsApproximationMethod": "static",
  "timezone": "text",
  "expectedDailyData": 1,
  "links": [
    {
      "name": "text",
      "url": "https://example.com"
    }
  ],
  "accessNotes": "text",
  "contacts": [
    {
      "name": "text",
      "type": "text",
      "email": "[email protected]",
      "phone": "text",
      "voip": "text",
      "notes": "text"
    }
  ]
}{
  "site": {
    "code": "text",
    "name": "text",
    "productionStartDate": "2025-10-31",
    "generationStartDate": "2025-10-31",
    "consumptionStartDate": "2025-10-31",
    "storageStartDate": "2025-10-31",
    "address": "text",
    "town": "text",
    "state": "text",
    "lat": 1,
    "long": 1,
    "serviceId": "text",
    "parcelID": "text",
    "parcelAcreage": "text",
    "zoningDistrict": "text",
    "ownerOfRecord": "text",
    "locationId": 1,
    "plantId": "text",
    "utility": "text",
    "emissionsApproximationMethod": "static",
    "timezone": "text",
    "expectedDailyData": 1,
    "links": [
      {
        "name": "text",
        "url": "https://example.com"
      }
    ],
    "accessNotes": "text",
    "contacts": [
      {
        "name": "text",
        "type": "text",
        "email": "[email protected]",
        "phone": "text",
        "voip": "text",
        "notes": "text"
      }
    ]
  }
}Update an existing site
Authorizations
Path parameters
projectIdstringRequired
The project ID
siteIdstringRequired
The site ID
Body
Refer to the /schemas/site endpoint for the full JSON Schema definition
codestringRequiredPattern: 
^[A-Z0-9]*$namestringRequired
productionStartDatestring · dateOptional
generationStartDatestring · dateOptional
consumptionStartDatestring · dateOptional
storageStartDatestring · dateOptional
addressstringRequired
townstringRequired
statestringRequired
latnumber · min: -180 · max: 180Required
longnumber · min: -180 · max: 180Required
serviceIdstringOptional
parcelIDstringOptional
parcelAcreagestringOptional
zoningDistrictstringOptional
ownerOfRecordstringOptional
locationIdintegerOptional
The ID of a SolarNetwork location; used to retrieve weather details
plantIdstringOptional
utilitystringOptional
emissionsApproximationMethodstring · enumOptionalPossible values: 
timezonestringOptional
expectedDailyDatanumberOptional
accessNotesstringOptional
Responses
200
successful operation
application/json
400
Invalid status value
application/json
put
/projects/{projectId}/sites/{siteId}PUT /projects/{projectId}/sites/{siteId} HTTP/1.1
Host: api.ecosuite.io/
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 653
{
  "code": "text",
  "name": "text",
  "productionStartDate": "2025-10-31",
  "generationStartDate": "2025-10-31",
  "consumptionStartDate": "2025-10-31",
  "storageStartDate": "2025-10-31",
  "address": "text",
  "town": "text",
  "state": "text",
  "lat": 1,
  "long": 1,
  "serviceId": "text",
  "parcelID": "text",
  "parcelAcreage": "text",
  "zoningDistrict": "text",
  "ownerOfRecord": "text",
  "locationId": 1,
  "plantId": "text",
  "utility": "text",
  "emissionsApproximationMethod": "static",
  "timezone": "text",
  "expectedDailyData": 1,
  "links": [
    {
      "name": "text",
      "url": "https://example.com"
    }
  ],
  "accessNotes": "text",
  "contacts": [
    {
      "name": "text",
      "type": "text",
      "email": "[email protected]",
      "phone": "text",
      "voip": "text",
      "notes": "text"
    }
  ]
}{
  "site": {
    "code": "text",
    "name": "text",
    "productionStartDate": "2025-10-31",
    "generationStartDate": "2025-10-31",
    "consumptionStartDate": "2025-10-31",
    "storageStartDate": "2025-10-31",
    "address": "text",
    "town": "text",
    "state": "text",
    "lat": 1,
    "long": 1,
    "serviceId": "text",
    "parcelID": "text",
    "parcelAcreage": "text",
    "zoningDistrict": "text",
    "ownerOfRecord": "text",
    "locationId": 1,
    "plantId": "text",
    "utility": "text",
    "emissionsApproximationMethod": "static",
    "timezone": "text",
    "expectedDailyData": 1,
    "links": [
      {
        "name": "text",
        "url": "https://example.com"
      }
    ],
    "accessNotes": "text",
    "contacts": [
      {
        "name": "text",
        "type": "text",
        "email": "[email protected]",
        "phone": "text",
        "voip": "text",
        "notes": "text"
      }
    ]
  }
}Deletes an existing site
Authorizations
Path parameters
projectIdstringRequired
The project ID
siteIdstringRequired
The site ID
Responses
200
successful operation
application/json
Responseobject
400
Invalid status value
application/json
delete
/projects/{projectId}/sites/{siteId}DELETE /projects/{projectId}/sites/{siteId} HTTP/1.1
Host: api.ecosuite.io/
Authorization: YOUR_API_KEY
Accept: */*
{}