solarOSsolarOS Docs

Create an Opportunity

Creates an Opportunity for an accessible Customer. propertyId is optional for external CRM imports that do not yet have a solarOS Property mapping. Stage changes do not create hidden downstream records. Requires Idempotency-Key.

POST
/opportunities

Creates an Opportunity for an accessible Customer. propertyId is optional for external CRM imports that do not yet have a solarOS Property mapping. Stage changes do not create hidden downstream records. Requires Idempotency-Key.

Authorization

Authorization<token>

Organization API key. Format: Bearer sk_live_...

In: header

Request Body

application/json

JSON request payload for createOpportunity.

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/opportunities" \  -H "Content-Type: application/json" \  -d '{    "customerId": "customer_123",    "propertyId": "property_123",    "name": "Residential solar install",    "stage": "PROPOSAL",    "value": "42500",    "expectedCloseDate": "2026-09-15"  }'
{  "data": {},  "meta": {    "requestId": "string",    "version": "v1",    "timestamp": "2019-08-24T14:15:22Z",    "rateLimit": {      "limit": 0,      "remaining": 0,      "reset": 0    }  }}