solarOSsolarOS Docs

Run Quote builder content calculations

Runs the app-equivalent calculation action for Quote builder content. The optional body accepts scope (all, pricing, solar, financing, payment_schedule, savings, or environmental) and force. Solar Quote Types use the solar calculation pipeline; service/general Quote Types use the general pricing pipeline. Requires Idempotency-Key and returns action.confirmed plus action.confirmationSignal so agents can verify the calculation completed before proceeding. Side effects include ActivityLog, quote.content.calculated domain event, idempotency capture, and usage telemetry. Required scope: quotes:calculate.

POST
/quotes/{id}/content/calculate

Runs the app-equivalent calculation action for Quote builder content. The optional body accepts scope (all, pricing, solar, financing, payment_schedule, savings, or environmental) and force. Solar Quote Types use the solar calculation pipeline; service/general Quote Types use the general pricing pipeline. Requires Idempotency-Key and returns action.confirmed plus action.confirmationSignal so agents can verify the calculation completed before proceeding. Side effects include ActivityLog, quote.content.calculated domain event, idempotency capture, and usage telemetry. Required scope: quotes:calculate.

Authorization

Authorization<token>

Organization API key. Format: Bearer sk_live_...

In: header

Path Parameters

id*string

Quote identifier returned by the Organization API.

Request Body

application/json

JSON request payload for calculateQuoteBuilderContent.

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/quotes/string/content/calculate" \  -H "Content-Type: application/json" \  -d '{    "scope": "all",    "force": false  }'
{  "data": {    "action": {      "confirmed": true,      "confirmationSignal": "string"    },    "resource": {}  },  "meta": {    "requestId": "string",    "version": "v1",    "timestamp": "2019-08-24T14:15:22Z",    "rateLimit": {      "limit": 0,      "remaining": 0,      "reset": 0    }  }}