API Compatibility
The Solarize API is unversioned. Breaking changes are announced by email to all API key holders 30 days in advance, along with a detailed migration guide.
For currently planned removals and replacements, see Upcoming Breaking Changes.
API-breaking changes are modifications that may introduce incompatibilities or disrupt existing integrations. These include, but are not limited to:
- Alterations to resource URLs
- Removal or renaming of response properties
- Removal or renaming of request parameters
- Deletion of enum values
- Conversion of an optional request parameter to a required one
- Changes to HTTP status codes
Additive changes do not introduce any incompatibilities and typically enhance the API’s functionality. These include:
- Introduction of new resources
- Addition of new request parameters
- Introduction of new response properties
- Inclusion of new enum values
Upcoming Breaking Changes
This section tracks API changes that are planned to become breaking changes after the deprecation period.
The section contains summaries of changes. As the final reference please refer to the API reference of each listed entity.
2026-07-06
The API remains backward compatible during the current 30-day notice window. After this window, the changes below become breaking and old behavior is removed.
Effective: 2026-07-06 14:00 Europe/Berlin
Status: announced
Global
These changes apply across the API and are not limited to a single resource.
| Endpoints | Change | Migration |
|---|---|---|
POST on all creation endpoints | Create responses change from 200 to 201 | Expect 201 on successful resource creation. |
PUT on all update endpoints | PUT update operations removed | Use PATCH update operations. |
Accounts
Legacy company object is removed.
| Endpoints | Change | Migration |
|---|---|---|
GET /v1/accounts/{id} | company removed | Use companyName. |
Contracts
Contract endpoints remove v2 and standardize on v1. Contract payloads also require using dunningBlock.
| Endpoints | Change | Migration |
|---|---|---|
GET /v1/contractsGET /v1/contracts/{id}PATCH /v1/contracts/{id}POST /v1/contracts | dunningBlock required/used in contract payloads | Send and handle dunningBlock in your integration. |
GET /v1/contractsGET /v1/contracts/{id}PATCH /v1/contracts/{id}POST /v1/contracts | siteId required/used in contract payloads | Send and handle siteId in your integration. |
PUT /v1/contracts/{id} | PUT update operation removed | Use PATCH /v1/contracts/{id}. |
DELETE /v2/contracts/{id}GET /v2/contractsGET /v2/contracts/{id}PATCH /v2/contracts/{id}POST /v2/contracts | v2 contract endpoints removed | Migrate to v1/contracts endpoints. |
Contract Meters
Legacy contract meter updates via PUT are removed.
| Endpoints | Change | Migration |
|---|---|---|
PUT /v1/contract-meters/{id} | PUT update operation removed | Use PATCH /v1/contract-meters/{id}. |
Custom Attributes
Legacy custom attribute updates via PUT are removed.
| Endpoints | Change | Migration |
|---|---|---|
PUT /v1/custom-attributes/{id} | PUT update operation removed | Use PATCH /v1/custom-attributes/{id}. |
Customers
Customer legacy identity, person, and address aliases are removed.
| Endpoints | Change | Migration |
|---|---|---|
GET /v1/customersGET /v1/customers/{id}POST /v1/customersPATCH /v1/customers/{id} | siteId removed | Stop relying on this field in customer objects. |
GET /v1/customersGET /v1/customers/{id}POST /v1/customersPATCH /v1/customers/{id} | type removed | Use companyName for differentiation. |
GET /v1/customersGET /v1/customers/{id}POST /v1/customersPATCH /v1/customers/{id} | customerNumber removed | Use number. |
GET /v1/customersGET /v1/customers/{id}POST /v1/customersPATCH /v1/customers/{id} | billingEmail removed | Use invoiceEmail. |
GET /v1/customersGET /v1/customers/{id}POST /v1/customersPATCH /v1/customers/{id} | person removed | Use email, salutation, title, firstName, lastName, phone1, phone2. |
GET /v1/customersGET /v1/customers/{id}POST /v1/customersPATCH /v1/customers/{id} | shippingAddress removed | Use deliveryAddress. |
GET /v1/customersGET /v1/customers/{id}POST /v1/customersPATCH /v1/customers/{id} | billingAddress removed | Use address. |
PUT /v1/customers/{id} | PUT update operation removed | Use PATCH /v1/customers/{id}. |
Electricity Products
Legacy prepayment cycle configuration is removed.
| Endpoints | Change | Migration |
|---|---|---|
GET /v1/electricity-productsGET /v1/electricity-products/{id}POST /v1/electricity-productsPATCH /v1/electricity-products/{id} | prepaymentCycle removed | Use prepaymentConfiguration. |
PUT /v1/electricity-products/{id} | PUT update operation removed | Use PATCH /v1/electricity-products/{id}. |
Invoices
Invoice filtering removes the legacy settled switch.
| Endpoints | Change | Migration |
|---|---|---|
GET /v1/invoices | settled query parameter removed | Use state query parameter. |
Line Items
Line item ownership references are normalized.
| Endpoints | Change | Migration |
|---|---|---|
GET /v1/line-itemsGET /v1/line-items/{id} | meterOwnershipId removed | Use contractId of the invoice context. |
Measurements
Interpolated marker is removed from measurements.
| Endpoints | Change | Migration |
|---|---|---|
GET /v1/measurements | interpolated removed | Stop relying on this field. |
Readings
Legacy readings endpoints are removed in favor of measurements endpoints.
| Endpoints | Change | Migration |
|---|---|---|
GET /v1/aggregated-readings | Aggregated readings endpoint removed | Use /v1/aggregated-measurements. |
GET /v1/readings | Readings endpoint removed | Use /v1/measurements. |
Meter Balancing Settings
Account reference is removed from balancing settings payloads.
| Endpoints | Change | Migration |
|---|---|---|
GET /v1/meter-balancing-settingsGET /v1/meter-balancing-settings/{id}POST /v1/meter-balancing-settingsPATCH /v1/meter-balancing-settings/{id} | accountId removed | Stop relying on this field. |
PUT /v1/meter-balancing-settings/{id} | PUT update operation removed | Use PATCH /v1/meter-balancing-settings/{id}. |
Meters
Meter compatibility fields are removed in favor of dedicated balancing settings and the new MPO identifier.
| Endpoints | Change | Migration |
|---|---|---|
GET /v1/metersGET /v1/meters/{id}POST /v1/metersPATCH /v1/meters/{id} | parentMeterId removed | Stop relying on this field. |
GET /v1/metersGET /v1/meters/{id} | priority removed from meter | Use /v1/meter-balancing-settings/{id} for priority. |
GET /v1/metersGET /v1/meters/{id}POST /v1/metersPATCH /v1/meters/{id} | mpo removed | Use mpoId. |
PUT /v1/meters/{id} | PUT update operation removed | Use PATCH /v1/meters/{id}. |
Payment Methods
Legacy payment method updates via PUT are removed.
| Endpoints | Change | Migration |
|---|---|---|
PUT /v1/payment-methods/{id} | PUT update operation removed | Use PATCH /v1/payment-methods/{id}. |
Payments
Legacy payment updates via PUT are removed.
| Endpoints | Change | Migration |
|---|---|---|
PUT /v1/payments/{id} | PUT update operation removed | Use PATCH /v1/payments/{id}. |
Prepayment Requests
Single payment linkage is removed in favor of multiple payment IDs.
| Endpoints | Change | Migration |
|---|---|---|
POST /v1/prepayment-requests | date removed | Use startDate and endDate. |
GET /v1/prepayment-requestsGET /v1/prepayment-requests/{id}POST /v1/prepayment-requests | paymentId removed | Use paymentIds. |
Prepayment Amounts
Legacy prepayment amount updates via PUT are removed.
| Endpoints | Change | Migration |
|---|---|---|
PUT /v1/prepayment-amounts/{id} | PUT update operation removed | Use PATCH /v1/prepayment-amounts/{id}. |
Price Component Groups
Legacy price component group updates via PUT are removed.
| Endpoints | Change | Migration |
|---|---|---|
PUT /v1/price-component-groups/{id} | PUT update operation removed | Use PATCH /v1/price-component-groups/{id}. |
Price Components
Legacy price component updates via PUT are removed.
| Endpoints | Change | Migration |
|---|---|---|
PUT /v1/price-components/{id} | PUT update operation removed | Use PATCH /v1/price-components/{id}. |
Prices
Legacy price updates via PUT are removed.
| Endpoints | Change | Migration |
|---|---|---|
PUT /v1/prices/{id} | PUT update operation removed | Use PATCH /v1/prices/{id}. |
Sites
Site responses and payloads remove legacy location/address compatibility fields.
| Endpoints | Change | Migration |
|---|---|---|
GET /v1/sitesGET /v1/sites/{id}POST /v1/sitesPATCH /v1/sites/{id} | timezone removed from site | Read timezone from account (GET /v1/accounts/{id}) instead. |
GET /v1/sitesGET /v1/sites/{id}POST /v1/sitesPATCH /v1/sites/{id} | address1, address2, address3, address4 removed | Use line1, line2, line3, line4. |
PUT /v1/sites/{id} | PUT update operation removed | Use PATCH /v1/sites/{id}. |
Invoice Templates
Invoice-template endpoints are removed and template payload compatibility fields are cleaned up.
| Endpoints | Change | Migration |
|---|---|---|
DELETE /v1/invoice-templates/{id}GET /v1/invoice-templatesGET /v1/invoice-templates/{id}PATCH /v1/invoice-templates/{id}POST /v1/invoice-templates | Invoice-template endpoints removed | Use /v1/templates endpoints. |
Templates
Template payload compatibility fields are cleaned up.
| Endpoints | Change | Migration |
|---|---|---|
PUT /v1/templates/{id} | PUT update operation removed | Use PATCH /v1/templates/{id}. |
/v1/templates payloads | values removed | Use GET /v1/templates/{id} and remove reliance on values. |
Tax Rates
Legacy tax rate updates via PUT are removed.
| Endpoints | Change | Migration |
|---|---|---|
PUT /v1/tax-rates/{id} | PUT update operation removed | Use PATCH /v1/tax-rates/{id}. |
Users
Nested person object is removed in favor of top-level user contact fields.
| Endpoints | Change | Migration |
|---|---|---|
GET /v1/usersGET /v1/users/{id} | person removed | Use firstName, lastName, phone1, phone2. |