solarOSsolarOS Docs

Create a Project container

Creates a Project for an accessible Customer and linked Property. name, customerId, and propertyId are required. Legacy type is ignored. Creation origin is assigned by the server. Use templateId (not projectTemplateId) for optional Project Template hydration. Arranged Project Scope fields start null unless supplied in projectScope. Requires Idempotency-Key and projects:write.

POST
/projects

Creates a Project for an accessible Customer and linked Property. name, customerId, and propertyId are required. Legacy type is ignored. Creation origin is assigned by the server. Use templateId (not projectTemplateId) for optional Project Template hydration. Arranged Project Scope fields start null unless supplied in projectScope. Requires Idempotency-Key and projects:write.

Authorization

Authorization<token>

Organization API key. Format: Bearer sk_live_...

In: header

Request Body

application/json

JSON request payload for createProject.

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/projects" \  -H "Content-Type: application/json" \  -d '{    "customerId": "customer_123",    "propertyId": "property_123",    "opportunityId": "opportunity_123",    "templateId": "project_template_123",    "name": "Lovelace residential install",    "status": "ACTIVE",    "priority": "MEDIUM",    "projectScope": {      "systemSizeKw": 8.4,      "storageKwh": 13.5    }  }'
{  "data": {},  "meta": {    "requestId": "string",    "version": "v1",    "timestamp": "2019-08-24T14:15:22Z",    "rateLimit": {      "limit": 0,      "remaining": 0,      "reset": 0    }  }}