solarOS Organization API

Organization API

Create a Project Template from a manifest

Creates an independent Disabled Project Template at version 1. Legacy manifest.type is ignored. options.isPublished=true or options.isActive=true returns 400; enable explicitly using PATCH after reviewing the saved definition. Manifests may carry paymentEventMarks (event key + step name); unknown event keys return 400.

/api/v1/manifests/templates

Creates an independent Disabled Project Template at version 1. Legacy manifest.type is ignored. options.isPublished=true or options.isActive=true returns 400; enable explicitly using PATCH after reviewing the saved definition. Manifests may carry paymentEventMarks (event key + step name); unknown event keys return 400.

Create a Project Template from a manifest. Use any valid organization API key. Check the response envelope and meta.requestId before triggering dependent workflow steps.

Required scopes

Any valid organization API key

Parameters

No path or query parameters.

Request body

objectrequired
FieldTypeDescription
namestringOptional unless marked required.
stages[]array<object>Optional unless marked required.
stages[].namestringOptional unless marked required.
stages[].items[]array<object>Optional unless marked required.
stages[].items[].typestringOptional unless marked required.
stages[].items[].titlestringOptional unless marked required.
createtemplatefrommanifestRequest
{
  "name": "Residential PV install",
  "stages": [
    {
      "name": "Install",
      "items": [
        {
          "type": "WORK_ORDER",
          "title": "Install array"
        }
      ]
    }
  ]
}

Responses

201

Created Project Template manifest result

#/components/schemas/OrgApiResourceEnvelope

400

Invalid JSON or manifest validation error

#/components/schemas/OrgApiError

401

Missing or invalid organization API key

#/components/schemas/OrgApiError

409

Duplicate active template name

#/components/schemas/OrgApiError

429

Rate limit exceeded

#/components/schemas/OrgApiError

Errors

400 Invalid JSON or manifest validation error401 Missing or invalid organization API key409 Duplicate active template name429 Rate limit exceeded

Static examples

curl -X POST "$SOLAROS_BASE_URL/api/v1/manifests/templates" \
  -H "Authorization: Bearer $SOLAROS_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{"name":"Residential PV install","stages":[{"name":"Install","items":[{"type":"WORK_ORDER","title":"Install array"}]}]}'