solarOSsolarOS Docs

Create a draft Quote

Creates DRAFT Quotes only. Requires Idempotency-Key. Validates accessible Customer/Property/Opportunity, active Quote Type/Template, owner defaults, placed custom Fields, External References, audit, and domain events. ownerId is create-only in v1; generic Quote PATCH cannot reassign ownership. Required scope: quotes:write.

POST
/quotes

Creates DRAFT Quotes only. Requires Idempotency-Key. Validates accessible Customer/Property/Opportunity, active Quote Type/Template, owner defaults, placed custom Fields, External References, audit, and domain events. ownerId is create-only in v1; generic Quote PATCH cannot reassign ownership. Required scope: quotes:write.

Authorization

Authorization<token>

Organization API key. Format: Bearer sk_live_...

In: header

Request Body

application/json

JSON request payload for createQuote.

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

curl -X POST "https://example.com/quotes" \  -H "Content-Type: application/json" \  -d '{    "customerId": "customer_123",    "propertyId": "property_123",    "opportunityId": "opportunity_123",    "quoteTypeId": "quote_type_123",    "quoteTemplateId": "quote_template_123",    "name": "8.4 kW solar proposal"  }'
{  "data": {},  "meta": {    "requestId": "string",    "version": "v1",    "timestamp": "2019-08-24T14:15:22Z",    "rateLimit": {      "limit": 0,      "remaining": 0,      "reset": 0    }  }}