solarOS Organization API

Organization API

Get one Project (including canonical caseId)

Returns one Project inside the organization and linked Property boundary, with onHold: true while it has an open hold. Project Scope (originalScope, currentScope) carries the sale's money only for a key that also has quotes:content:read, the scope that reads it on the Quote: without it, every field typed Currency and every financing fact (apr, dealerFeePercent, financingTerms, paymentSources, financingScenarioName, loan and financing terms, ppaRatePerKwh, financingEscalatorPercent, pricePerWatt, downPayment, upfrontPayment, monthlyPayment, totalCostWithFinancing) is left out, and projectDetails.pricing and its line items' unitPrice, lineTotal and section subtotal are null. Cross-tenant or inaccessible records return 404. Required scope: projects:read; quotes:content:read for the scope money.

/api/v1/projects/{id}

Returns one Project inside the organization and linked Property boundary, with onHold: true while it has an open hold. Project Scope (originalScope, currentScope) carries the sale's money only for a key that also has quotes:content:read, the scope that reads it on the Quote: without it, every field typed Currency and every financing fact (apr, dealerFeePercent, financingTerms, paymentSources, financingScenarioName, loan and financing terms, ppaRatePerKwh, financingEscalatorPercent, pricePerWatt, downPayment, upfrontPayment, monthlyPayment, totalCostWithFinancing) is left out, and projectDetails.pricing and its line items' unitPrice, lineTotal and section subtotal are null. Cross-tenant or inaccessible records return 404. Required scope: projects:read; quotes:content:read for the scope money.

Get one Project (including canonical caseId). Use an organization API key with projects:read. Check the response envelope and meta.requestId before triggering dependent workflow steps.

Required scopes

projects:read

Parameters

NameInTypeDescription
idrequiredpathstringProject identifier returned by the Organization API.

Request body

This endpoint does not accept a JSON request body.

Responses

200

Project envelope

#/components/schemas/OrgApiResourceEnvelope

401

Missing or invalid organization API key

#/components/schemas/OrgApiError

402

Organization billing access or an endpoint-specific business quota denied the request

#/components/schemas/OrgApiError

403

Missing required scope: projects:read

#/components/schemas/OrgApiError

404

Not found

#/components/schemas/OrgApiError

429

Rate limit exceeded

#/components/schemas/OrgApiError

Errors

401 Missing or invalid organization API key402 Organization billing access or an endpoint-specific business quota denied the request403 Missing required scope: projects:read404 Not found429 Rate limit exceeded

Static examples

curl -X GET "$SOLAROS_BASE_URL/api/v1/projects/$SOLAROS_PROJECT" \
  -H "Authorization: Bearer $SOLAROS_API_KEY"