Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/aurora-solar:aurora-solar-consumption-profiles-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Sync Consumption Profiles API
description: This Aurora Integration API allows authorized clients and 3rd parties to easily read, update, and create resources/objects with specific parameters within Aurora. You can find out more about Aurora Solar here.
version: 2024.05.0
contact:
name: Aurora Solar Support
email: support@aurorasolar.com
servers:
- url: https://api-sandbox.aurorasolar.com
description: Sandbox Environment
security:
- bearerAuth: []
tags:
- name: Consumption Profiles
paths:
/tenants/{tenant_id}/projects/{id}/consumption_profile:
get:
tags:
- Consumption Profiles
summary: Retrieve Consumption Profile
description: Retrieve the consumption profile for a project.
operationId: retrieveConsumptionProfile
parameters:
- name: tenant_id
in: path
description: The ID of the tenant that the project is part of.
required: true
schema:
type: string
format: uuid
- name: id
in: path
description: The ID of the project to retrieve the consumption profile for.
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Consumption Profile successfully retrieved.
content:
application/json:
schema:
type: object
properties:
consumption_profile:
type: object
properties:
id:
type: string
format: uuid
description: Unique ID identifying the consumption profile.
project_id:
type: string
format: uuid
description: Unique ID identifying the project that the consumption profile belongs to.
location:
type: string
description: Name of a nearby weather station that was used as the source of weather data.
example: Mountain View Moffett Fld
utility:
type: string
description: Name of the utility company that the homeowner is connected to before going solar.
example: Pacific Gas & Electric Co
utility_id:
type: string
format: uuid
description: Unique ID of the utility company that the homeowner is connected to. Field is omitted if utility rate is derived from Genability.
utility_rate:
type: string
description: Name of the specific utility rate/plan that the homeowner is on, before going solar.
example: E-1 - Baseline Region R
utility_rate_id:
type: string
format: uuid
description: Unique ID of the specific utility rate/plan that the homeowner is on, before going solar. Field is omitted if utility rate is derived from Genability.
utility_rate_version:
type: string
description: Specific time interval that the homeowner was referring to, when providing energy (kWh) or bill information of a given month. The effective time interval of the utility rate that was used in the calculation of the consumption profile.
example: 28 Feb 2015 – 30 Aug 2015
utility_rate_version_id:
type: string
format: uuid
description: Unique ID of the specific time interval that the homeowner was referring to, when providing energy (kWh) or bill information of a given month.
utility_rate_escalation:
type: number
format: double
description: The annual escalation of utility rates for the project, as a percentage (`4.0` means 4%).
example: 4
input_mode:
type: string
enum:
- bill
- energy
description: Indicates whether the user inputed "bill" or "energy" values during the creation of the consumption profile.
input_values:
type: array
description: Specifies which values of either "bill" or "energy" were manually entered by the user. "null" is returned for values that were computed by Aurora without the explicit input of the user.
items:
type: number
example:
- 90
- null
- 90.25
- 90.5
- 90.75
- 90.75
- 91
- 92
- 92.25
- 92.5
- 93
- 93.25
monthly_energy:
type: array
description: Monthly consumption of energy in kWh from Jan - Dec.
items:
type: number
example: null
monthly_bill:
type: array
description: Monthly bill, denominated in the tenant's configured currency (see `currency` on `GET /tenants/{id}`), from Jan - Dec.
items:
type: number
example: null
hourly_energy:
type: array
description: Energy consumption in kWh broken down by hour (8760 values)
items:
type: number
example: null
efficiency_packages:
type: array
description: A list of efficiency packages applied to this consumption profile.
items:
type: object
properties:
efficiency_package_name:
type: string
description: Name of the efficiency package.
efficiency_package_value:
type: number
format: double
description: Value in percent of the efficiency package, on a 0-100 scale.
example: []
'400':
description: Bad Request
content:
application/json:
schema:
type: object
allOf:
- type: object
properties:
errors:
type: array
items:
type: object
properties:
message:
type: string
required:
- errors
- example:
errors:
- message: 'Expected UUID but received non-UUID value for the follow URL parameters: [:tenant_id]'
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
allOf:
- type: object
properties:
errors:
type: array
items:
type: object
properties:
message:
type: string
required:
- errors
- example:
errors:
- message: Invalid bearer token.
'403':
description: Forbidden
content:
application/json:
schema:
type: object
allOf:
- type: object
properties:
errors:
type: array
items:
type: object
properties:
message:
type: string
required:
- errors
- example:
errors:
- message: This endpoint is not provisioned for this key. To provision, please contact your Aurora account team.
'404':
description: Not Found
content:
application/json:
schema:
type: object
allOf:
- type: object
properties:
errors:
type: array
items:
type: object
properties:
message:
type: string
required:
- errors
- example:
errors:
- message: The project with id 84634864-3324-34af-fa00-1548796facbd could not be found
put:
tags:
- Consumption Profiles
summary: Update Consumption Profile
description: 'Update the existing consumption profile for a project.
---
Each request must contain `utility_rate_escalation`, one of the energy consumption values below, or both.
---
**Energy consumption.** A request accepts *only one* of the following values.
- `monthly_energy`: An array of exactly 12 monthly energy values in kWh. Null values are allowed and represented as "null".
- `monthly_bill`: An array of exactly 12 monthly bill values, denominated in the tenant''s configured currency (see `currency` on `GET /tenants/{id}`). Null values are allowed and represented as "null".
- `interval_data`: An array of exactly (8760, 8784, 17520, 17568, 35040, or 35136) energy values in kWh. Null values are allowed and represented as "null".
- The array must contain at least 1 complete month of contiguous non-null values.
- The first array value must correspond to the first interval of the year beginning at 1 January 00:00.
- `annual_energy`: The total annual energy consumption in kWh. Aurora distributes it across the year using a typical load profile for the project''s location, so monthly values follow the expected seasonal variation.
- `annual_bill`: The total annual pre-solar electricity bill, denominated in the tenant''s configured currency. Aurora finds the annual energy consumption whose bills, under the project''s pre-solar utility rate, sum to this amount, then distributes that energy across the year in the same way as `annual_energy`.
- The project must have a pre-solar utility rate. The conversion uses the rate set at the time of the request; changing the rate later does not change the consumption profile.
Bill inputs (`monthly_bill`, `annual_bill`) are converted to energy using energy and fixed charges only. Demand charges are not included in the conversion, so on a rate with demand charges the returned `monthly_bill` values are higher than the bills provided.
Annual inputs require a typical load profile for the project''s location. The response returns `input_values` as null for every month, since all monthly values are estimated.
---
**Utility rate escalation.** `utility_rate_escalation` is independent of the energy consumption values. It can be sent on its own, which leaves the consumption profile unchanged, or together with one energy consumption value. If the request is rejected, neither is applied.
- `utility_rate_escalation`: The annual escalation of utility rates, as a percentage (`4.0` means 4%). New projects start with the tenant''s default for the project''s type and location. A value must fall within the tenant''s configured minimum and maximum for the project, otherwise the request is rejected with a 422 error. The range is only checked when the value changes, so sending the project''s current value is always accepted. `null` is treated as not provided, so the value cannot be reset to the tenant default through the API. Financing options that use an integration-provided escalation rate ignore this value.
Consumption profiles are only supported for residential projects.'
operationId: updateConsumptionProfile
parameters:
- name: tenant_id
in: path
description: The ID of the tenant that the project is part of.
required: true
schema:
type: string
format: uuid
- name: id
in: path
description: The ID of the project to update the consumption profile for.
required: true
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
consumption_profile:
type: object
description: Consumption profile fields to update.
properties:
monthly_bill:
type: array
description: An array of the monthly bills, denominated in the tenant's configured currency (see `currency` on `GET /tenants/{id}`). Null values allowed as "null".
minItems: 12
maxItems: 12
items:
type: number
example:
- 90
- 'null'
- 90.25
- 90.5
- 90.75
- 90.75
- 91
- 92
- 92.25
- 92.5
- 93
- 93.25
monthly_energy:
type: array
description: An array of the monthly energy in kWh. Null values allowed as "null".
minItems: 12
maxItems: 12
items:
type: number
example: null
interval_data:
type: array
description: An array of the energy values for each 15/30/60 minute interval from the beginning to end of a common/leap year, in kWh. Null values allowed as "null". Array length must be exactly 8760, 8784, 17520, 17568, 35040, or 35136 values.
items:
type: number
example: null
annual_energy:
type: number
description: The total annual energy consumption in kWh. Must be greater than 0 and at most 1,000,000. Distributed across the year using a typical load profile for the project's location.
maximum: 1000000
example: null
exclusiveMinimum: 0
annual_bill:
type: number
description: The total annual pre-solar electricity bill, denominated in the tenant's configured currency (see `currency` on `GET /tenants/{id}`). Must be greater than 0, at least the lowest possible annual bill under the project's pre-solar utility rate (fixed charges plus any pool or EV usage), and at most the annual bill for 1,000,000 kWh. Converted to annual energy using the project's pre-solar utility rate, then distributed across the year using a typical load profile for the project's location.
example: null
exclusiveMinimum: 0
utility_rate_escalation:
type: number
format: double
description: The annual escalation of utility rates for the project, as a percentage (`4.0` means 4%). Can be sent on its own or together with one energy consumption value. Must be within the tenant's configured minimum and maximum for the project when the value changes. `null` is treated as not provided.
example: 4
responses:
'200':
description: Project successfully updated.
content:
application/json:
schema:
type: object
properties:
consumption_profile:
type: object
properties:
id:
type: string
format: uuid
description: Unique ID identifying the consumption profile.
project_id:
type: string
format: uuid
description: Unique ID identifying the project that the consumption profile belongs to.
location:
type: string
description: Name of a nearby weather station that was used as the source of weather data.
example: Mountain View Moffett Fld
utility:
type: string
description: Name of the utility company that the homeowner is connected to before going solar.
example: Pacific Gas & Electric Co
utility_id:
type: string
format: uuid
description: Unique ID of the utility company that the homeowner is connected to. Field is omitted if utility rate is derived from Genability.
utility_rate:
type: string
description: Name of the specific utility rate/plan that the homeowner is on, before going solar.
example: E-1 - Baseline Region R
utility_rate_id:
type: string
format: uuid
description: Unique ID of the specific utility rate/plan that the homeowner is on, before going solar. Field is omitted if utility rate is derived from Genability.
utility_rate_version:
type: string
description: Specific time interval that the homeowner was referring to, when providing energy (kWh) or bill information of a given month. The effective time interval of the utility rate that was used in the calculation of the consumption profile.
example: 28 Feb 2015 – 30 Aug 2015
utility_rate_version_id:
type: string
format: uuid
description: Unique ID of the specific time interval that the homeowner was referring to, when providing energy (kWh) or bill information of a given month.
utility_rate_escalation:
type: number
format: double
description: The annual escalation of utility rates for the project, as a percentage (`4.0` means 4%).
example: 4
input_mode:
type: string
enum:
- bill
- energy
description: Indicates whether the user inputed "bill" or "energy" values during the creation of the consumption profile.
input_values:
type: array
description: Specifies which values of either "bill" or "energy" were manually entered by the user. "null" is returned for values that were computed by Aurora without the explicit input of the user.
items:
type: number
example:
- 90
- null
- 90.25
- 90.5
- 90.75
- 90.75
- 91
- 92
- 92.25
- 92.5
- 93
- 93.25
monthly_energy:
type: array
description: Monthly consumption of energy in kWh from Jan - Dec.
items:
type: number
example: null
monthly_bill:
type: array
description: Monthly bill, denominated in the tenant's configured currency (see `currency` on `GET /tenants/{id}`), from Jan - Dec.
items:
type: number
example: null
hourly_energy:
type: array
description: Energy consumption in kWh broken down by hour (8760 values)
items:
type: number
example: null
efficiency_packages:
type: array
description: A list of efficiency packages applied to this consumption profile.
items:
type: object
properties:
efficiency_package_name:
type: string
description: Name of the efficiency package.
efficiency_package_value:
type: number
format: double
description: Value in percent of the efficiency package, on a 0-100 scale.
example: []
'400':
description: Bad Request
content:
application/json:
schema:
type: object
allOf:
- type: object
properties:
errors:
type: array
items:
type: object
properties:
message:
type: string
required:
- errors
- example:
errors:
- message: 'Expected UUID but received non-UUID value for the follow URL parameters: [:tenant_id]'
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
allOf:
- type: object
properties:
errors:
type: array
items:
type: object
properties:
message:
type: string
required:
- errors
- example:
errors:
- message: Invalid bearer token.
'403':
description: Forbidden
content:
application/json:
schema:
type: object
allOf:
- type: object
properties:
errors:
type: array
items:
type: object
properties:
message:
type: string
required:
- errors
- example:
errors:
- message: This endpoint is not provisioned for this key. To provision, please contact your Aurora account team.
'404':
description: Not Found
content:
application/json:
schema:
type: object
allOf:
- type: object
properties:
errors:
type: array
items:
type: object
properties:
message:
type: string
required:
- errors
- example:
errors:
- message: The project with id 84634864-3324-34af-fa00-1548796facbd could not be found
'422':
description: Unprocessable Entity
content:
application/json:
schema:
type: object
allOf:
- type: object
properties:
errors:
type: array
items:
type: object
properties:
message:
type: string
required:
- errors
- example:
errors:
- message: Something went wrong
- message: Something else went wrong
- message: It's really not your day, is it?
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: header
x-provenance:
method: harvested
publisher: Aurora Solar
source: https://docs.aurorasolar.com/openapi/aurora_sync_api_spec_oas.yaml
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)