Get a Project's Sold System
Returns the solar system the Project was sold with: the quote's Solar System Record (version 1), frozen when the accepted quote handed off to the Project and never changed by later quote edits. A Project made with no quote has one when its solar facts were entered at New Project: source.quoteId and source.quoteNumber are null, and it holds what was entered and the price and payments it was made with, with storage, production, usage, utility and savings null unless entered. A Project sold before Sold Systems were kept gets one from a one-time backfill, and its source.backfilledFrom says what it was rebuilt from: QUOTE (the accepted quote's design) or PROJECT_SCOPE (the Project's copy of the sale, without price, usage, savings or payments). It holds the scope (PV, PV_STORAGE or STORAGE_ONLY), totals, arrays, inverters, batteries in units, storage and backup, production, usage, utility and rates, savings, price, financing, payment schedule, site, printable display strings (display.summarySentence names the system in one sentence), media (media.designImageKey is the stored design picture's reference, not a URL) and, once the agreement is signed, agreement.contractId. The sale's money needs quotes:content:read as well, the scope that reads it on the Quote: without it, price, financing (with its dealerFeePercent) and payments are null, so are display.ppaRate, display.paymentSources and display.financingTerms, and moneyWithheld is true; with it, moneyWithheld is false. Money is in dollars, energy in kWh, power in kW, and monthly series run January to December. Returns 404 NOT_FOUND when the Project is outside the organization's Property access or has no Sold System. Required scope: projects:read; quotes:content:read for price, financing and payments.
Returns the solar system the Project was sold with: the quote's Solar System Record (version 1), frozen when the accepted quote handed off to the Project and never changed by later quote edits. A Project made with no quote has one when its solar facts were entered at New Project: source.quoteId and source.quoteNumber are null, and it holds what was entered and the price and payments it was made with, with storage, production, usage, utility and savings null unless entered. A Project sold before Sold Systems were kept gets one from a one-time backfill, and its source.backfilledFrom says what it was rebuilt from: QUOTE (the accepted quote's design) or PROJECT_SCOPE (the Project's copy of the sale, without price, usage, savings or payments). It holds the scope (PV, PV_STORAGE or STORAGE_ONLY), totals, arrays, inverters, batteries in units, storage and backup, production, usage, utility and rates, savings, price, financing, payment schedule, site, printable display strings (display.summarySentence names the system in one sentence), media (media.designImageKey is the stored design picture's reference, not a URL) and, once the agreement is signed, agreement.contractId. The sale's money needs quotes:content:read as well, the scope that reads it on the Quote: without it, price, financing (with its dealerFeePercent) and payments are null, so are display.ppaRate, display.paymentSources and display.financingTerms, and moneyWithheld is true; with it, moneyWithheld is false. Money is in dollars, energy in kWh, power in kW, and monthly series run January to December. Returns 404 NOT_FOUND when the Project is outside the organization's Property access or has no Sold System. Required scope: projects:read; quotes:content:read for price, financing and payments.
Get a Project's Sold System. Use an organization API key with projects:read. Check the response envelope and meta.requestId before triggering dependent workflow steps.
Required scopes
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| idrequired | path | string | Project identifier returned by the Organization API. |
Request body
This endpoint does not accept a JSON request body.
Responses
Sold System envelope
object
Missing or invalid organization API key
#/components/schemas/OrgApiError
Organization billing access or an endpoint-specific business quota denied the request
#/components/schemas/OrgApiError
Missing required scope: projects:read
#/components/schemas/OrgApiError
Not found, or the Project has no Sold System
#/components/schemas/OrgApiError
Rate limit exceeded
#/components/schemas/OrgApiError
Errors
Static examples
curl -X GET "$SOLAROS_BASE_URL/api/v1/projects/$SOLAROS_PROJECT/system" \ -H "Authorization: Bearer $SOLAROS_API_KEY"