POST request/Results/tou/sms/quote
Create SMS quote If a non-compulsory Body Parameter is NOT specified, the results shown will presume that the non-compulsory Body Parameter is NOT to be taken into account and that only the default behaviour should apply. The default behaviour is that CalculateSavingsFromPreviousTwelveMonthsCost is false
Request Information
URI Parameters
None.
Body Parameters
QuoteRequest| Name | Description | Type | Additional information |
|---|---|---|---|
| Address | AddressRequestModel |
Required |
|
| Calculations | CostCaluclationModel |
Required |
|
| Consumption | string |
None. |
|
| Installation | InstallationData |
Required |
|
| IsSubscription | boolean |
Required |
|
| Performance | PerformanceCalculation |
Required |
|
| Solar | SolarModel |
Required |
Request Formats
application/json, text/json
Sample:
{
"address": {
"line1": "sample string 1",
"line2": "sample string 2",
"city": "sample string 3",
"county": "sample string 4",
"postcode": "sample string 5",
"text": "sample string 6",
"propertyType": "sample string 7",
"moveInDate": "2026-07-09T03:11:24.2260964+00:00"
},
"consumption": "sample string 1",
"solar": {
"batteryIncluded": true,
"numberOfPanels": 2,
"panelSize": 3.0,
"panelProductCode": "sample string 4",
"numberOfInverters": 5,
"inverterSize": 6.0,
"inverterProductCode": "sample string 7",
"numberOfBattery": 1,
"batterySize": 1.0,
"batteryProductCode": "sample string 8",
"occupancyArcheType": "sample string 9",
"solarDegradationFirst": 10.0,
"solarDegradationNext": 11.0,
"batteryDegradation": 1.0,
"batteryUsagePct": 1.0,
"batteryChargeRate": 1.0,
"batteryDischargeRate": 1.0
},
"installation": {
"roofOrientation": 1,
"slope": 2
},
"performance": {
"shade": 1.0
},
"calculations": {
"panels": {
"costPerPanel": 1.0,
"newAdditions": [
{
"description": "sample string 1",
"numberOfUnit": 64,
"costPerUnit": 3.0
},
{
"description": "sample string 1",
"numberOfUnit": 64,
"costPerUnit": 3.0
}
]
},
"materials": {
"costPerInverter": 1.0,
"costPerBattery": 2.0,
"meterCost": 3.0,
"pvCablingConsumablesCost": 4.0,
"costPerOptimiser": 5.0,
"costPerBirdProofing": 6.0,
"costPerRoofMounting": 7.0,
"electricalandAncillariesCost": 8.0,
"newAdditions": [
{
"description": "sample string 1",
"numberOfUnit": 64,
"costPerUnit": 3.0
},
{
"description": "sample string 1",
"numberOfUnit": 64,
"costPerUnit": 3.0
}
]
},
"installation": {
"labourCost": 1.0,
"deliveryCost": 2.0,
"rooferCost": 3.0,
"scaffoldingCost": 4.0,
"newAdditions": [
{
"description": "sample string 1",
"numberOfUnit": 64,
"costPerUnit": 3.0
},
{
"description": "sample string 1",
"numberOfUnit": 64,
"costPerUnit": 3.0
}
]
},
"costofSale": {
"salesCommission": 1.0,
"marketing": 2.0,
"leadGeneration": 3.0,
"compliance": 4.0,
"planning": 5.0,
"newAdditions": [
{
"description": "sample string 1",
"numberOfUnit": 64,
"costPerUnit": 3.0
},
{
"description": "sample string 1",
"numberOfUnit": 64,
"costPerUnit": 3.0
}
]
},
"agreedTerm": 1,
"vatPct": 2.0,
"inflationPct": 3.0,
"yieldMarginPct": 4.0
},
"isSubscription": true
}
application/xml, text/xml
Sample:
<QuoteRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/MyUtilityGenius.Api.Models.Dto">
<Address>
<City>sample string 3</City>
<County>sample string 4</County>
<Line1>sample string 1</Line1>
<Line2>sample string 2</Line2>
<MoveInDate>2026-07-09T03:11:24.2260964+00:00</MoveInDate>
<Postcode>sample string 5</Postcode>
<PropertyType>sample string 7</PropertyType>
<Text>sample string 6</Text>
</Address>
<Calculations>
<AgreedTerm>1</AgreedTerm>
<CostofSale>
<Compliance>4</Compliance>
<LeadGeneration>3</LeadGeneration>
<Marketing>2</Marketing>
<NewAdditions>
<OtherCostModel>
<CostPerUnit>3</CostPerUnit>
<Description>sample string 1</Description>
<NumberOfUnit>64</NumberOfUnit>
</OtherCostModel>
<OtherCostModel>
<CostPerUnit>3</CostPerUnit>
<Description>sample string 1</Description>
<NumberOfUnit>64</NumberOfUnit>
</OtherCostModel>
</NewAdditions>
<Planning>5</Planning>
<SalesCommission>1</SalesCommission>
</CostofSale>
<InflationPct>3</InflationPct>
<Installation>
<DeliveryCost>2</DeliveryCost>
<LabourCost>1</LabourCost>
<NewAdditions>
<OtherCostModel>
<CostPerUnit>3</CostPerUnit>
<Description>sample string 1</Description>
<NumberOfUnit>64</NumberOfUnit>
</OtherCostModel>
<OtherCostModel>
<CostPerUnit>3</CostPerUnit>
<Description>sample string 1</Description>
<NumberOfUnit>64</NumberOfUnit>
</OtherCostModel>
</NewAdditions>
<RooferCost>3</RooferCost>
<ScaffoldingCost>4</ScaffoldingCost>
</Installation>
<Materials>
<CostPerBattery>2</CostPerBattery>
<CostPerBirdProofing>6</CostPerBirdProofing>
<CostPerInverter>1</CostPerInverter>
<CostPerOptimiser>5</CostPerOptimiser>
<CostPerRoofMounting>7</CostPerRoofMounting>
<ElectricalandAncillariesCost>8</ElectricalandAncillariesCost>
<MeterCost>3</MeterCost>
<NewAdditions>
<OtherCostModel>
<CostPerUnit>3</CostPerUnit>
<Description>sample string 1</Description>
<NumberOfUnit>64</NumberOfUnit>
</OtherCostModel>
<OtherCostModel>
<CostPerUnit>3</CostPerUnit>
<Description>sample string 1</Description>
<NumberOfUnit>64</NumberOfUnit>
</OtherCostModel>
</NewAdditions>
<PVCablingConsumablesCost>4</PVCablingConsumablesCost>
</Materials>
<Panels>
<CostPerPanel>1</CostPerPanel>
<NewAdditions>
<OtherCostModel>
<CostPerUnit>3</CostPerUnit>
<Description>sample string 1</Description>
<NumberOfUnit>64</NumberOfUnit>
</OtherCostModel>
<OtherCostModel>
<CostPerUnit>3</CostPerUnit>
<Description>sample string 1</Description>
<NumberOfUnit>64</NumberOfUnit>
</OtherCostModel>
</NewAdditions>
</Panels>
<VatPct>2</VatPct>
<YieldMarginPct>4</YieldMarginPct>
</Calculations>
<Consumption>sample string 1</Consumption>
<Installation>
<RoofOrientation>1</RoofOrientation>
<Slope>2</Slope>
</Installation>
<IsSubscription>true</IsSubscription>
<Performance>
<Shade>1</Shade>
</Performance>
<Solar>
<BatteryChargeRate>1</BatteryChargeRate>
<BatteryDegradation>1</BatteryDegradation>
<BatteryDischargeRate>1</BatteryDischargeRate>
<BatteryIncluded>true</BatteryIncluded>
<BatteryProductCode>sample string 8</BatteryProductCode>
<BatterySize>1</BatterySize>
<BatteryUsagePct>1</BatteryUsagePct>
<InverterProductCode>sample string 7</InverterProductCode>
<InverterSize>6</InverterSize>
<NumberOfBattery>1</NumberOfBattery>
<NumberOfInverters>5</NumberOfInverters>
<NumberOfPanels>2</NumberOfPanels>
<OccupancyArcheType>sample string 9</OccupancyArcheType>
<PanelProductCode>sample string 4</PanelProductCode>
<PanelSize>3</PanelSize>
<SolarDegradationFirst>10</SolarDegradationFirst>
<SolarDegradationNext>11</SolarDegradationNext>
</Solar>
</QuoteRequest>
multipart/form-data
Sample:
--MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Address.Line1" sample string 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Address.Line2" sample string 2 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Address.City" sample string 3 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Address.County" sample string 4 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Address.Postcode" sample string 5 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Address.Text" sample string 6 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Address.PropertyType" sample string 7 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Address.MoveInDate" 2026-07-09T03:11:24.2260964+00:00 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Consumption" sample string 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Solar.BatteryIncluded" True --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Solar.NumberOfPanels" 2 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Solar.PanelSize" 3 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Solar.PanelProductCode" sample string 4 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Solar.NumberOfInverters" 5 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Solar.InverterSize" 6 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Solar.InverterProductCode" sample string 7 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Solar.NumberOfBattery" 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Solar.BatterySize" 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Solar.BatteryProductCode" sample string 8 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Solar.OccupancyArcheType" sample string 9 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Solar.SolarDegradationFirst" 10 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Solar.SolarDegradationNext" 11 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Solar.BatteryDegradation" 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Solar.BatteryUsagePct" 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Solar.BatteryChargeRate" 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Solar.BatteryDischargeRate" 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Installation.RoofOrientation" 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Installation.Slope" 2 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Performance.Shade" 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Panels.CostPerPanel" 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Panels.NewAdditions[0].Description" sample string 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Panels.NewAdditions[0].NumberOfUnit" 64 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Panels.NewAdditions[0].CostPerUnit" 3 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Panels.NewAdditions[1].Description" sample string 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Panels.NewAdditions[1].NumberOfUnit" 64 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Panels.NewAdditions[1].CostPerUnit" 3 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Materials.CostPerInverter" 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Materials.CostPerBattery" 2 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Materials.MeterCost" 3 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Materials.PVCablingConsumablesCost" 4 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Materials.CostPerOptimiser" 5 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Materials.CostPerBirdProofing" 6 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Materials.CostPerRoofMounting" 7 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Materials.ElectricalandAncillariesCost" 8 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Materials.NewAdditions[0].Description" sample string 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Materials.NewAdditions[0].NumberOfUnit" 64 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Materials.NewAdditions[0].CostPerUnit" 3 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Materials.NewAdditions[1].Description" sample string 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Materials.NewAdditions[1].NumberOfUnit" 64 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Materials.NewAdditions[1].CostPerUnit" 3 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Installation.LabourCost" 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Installation.DeliveryCost" 2 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Installation.RooferCost" 3 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Installation.ScaffoldingCost" 4 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Installation.NewAdditions[0].Description" sample string 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Installation.NewAdditions[0].NumberOfUnit" 64 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Installation.NewAdditions[0].CostPerUnit" 3 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Installation.NewAdditions[1].Description" sample string 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Installation.NewAdditions[1].NumberOfUnit" 64 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.Installation.NewAdditions[1].CostPerUnit" 3 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.CostofSale.SalesCommission" 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.CostofSale.Marketing" 2 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.CostofSale.LeadGeneration" 3 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.CostofSale.Compliance" 4 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.CostofSale.Planning" 5 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.CostofSale.NewAdditions[0].Description" sample string 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.CostofSale.NewAdditions[0].NumberOfUnit" 64 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.CostofSale.NewAdditions[0].CostPerUnit" 3 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.CostofSale.NewAdditions[1].Description" sample string 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.CostofSale.NewAdditions[1].NumberOfUnit" 64 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.CostofSale.NewAdditions[1].CostPerUnit" 3 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.AgreedTerm" 1 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.VatPct" 2 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.InflationPct" 3 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="Calculations.YieldMarginPct" 4 --MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="IsSubscription" True --MultipartDataMediaFormatterBoundary1q2w3e--
Response Information
Resource Description
QuoteResponseModel| Name | Description | Type | Additional information |
|---|---|---|---|
| QuoteId | string |
None. |
Response Formats
application/json, text/json
Sample:
{
"quoteId": "sample string 1"
}
application/xml, text/xml
Sample:
<QuoteResponseModel xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/MyUtilityGenius.Api.Models.Dto"> <QuoteId>sample string 1</QuoteId> </QuoteResponseModel>
multipart/form-data
Sample:
--MultipartDataMediaFormatterBoundary1q2w3e Content-Disposition: form-data; name="QuoteId" sample string 1 --MultipartDataMediaFormatterBoundary1q2w3e--