API Home
API Access & Authentication
With the exception of public API endpoints, requests to the WegoWise API must be authenticated. WegoWise authenticates these requests using the OAuth 1.0 protocol. OAuth client libraries are available for numerous programming languages.
Step 1: Register App
To make authenticated requests to the WegoWise API, you must first register your app with WegoWise. You must have an active WegoWise user account to register an app. Registered apps are given authentication credentials consisting of a consumer key and a consumer secret, which will be used in subsequent steps when generating OAuth headers.
Step 2: Request Temporary Credentials
Your app will need to send a POST request to
https://www.wegowise.com/oauth/request_token
which includes the appropriate
OAuth authorization header
. An example header is shown below.
Authorization:
OAuth oauth_consumer_key="17547cfc0b45bf1f7ca17eee86318af35103b4ce",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="1395088838",
oauth_nonce="867c4716a81e236c4671e3f82098b6f8",
oauth_version="1.0",
oauth_callback="http%3A%2F%2Fexample.com%2Fcallback",
oauth_signature="Mc%2B2WEdHD5AsbDP5NsgVRYVwKXo%3D"
WegoWise will return a url-encoded response with the temporary token credentials in the response body
oauth_token=a5f5e9d2a3911a048b467bce3ad577a5cb64402c&oauth_token_secret=cfe39d9b5fb6b8617e5c633da1ec23c9f993c676&oauth_callback_confirmed=true
Step 3: Obtain User Authorization
Access token credentials are specific to the WegoWise user who is using
your app. After successfully obtaining temporary credentials, your app
should direct users to WegoWise so they can grant permission for your app
to access their resources. Given the above temporary credential response,
you would send the user to https://www.wegowise.com/oauth/authorize?oauth_token=a5f5e9d2a3911a048b467bce3ad577a5cb64402c
, where they will be prompted to authorize your app. Ensure that you attach
the oauth_token
parameter to the URL as shown above as well as
the authorization header.
After the user authorizes the app, WegoWise will redirect the user to the
callback URL you established when the app was registered with WegoWise.
An oauth_verifier
string will have been appended to the URL.
Your app will include that verifier in the next step.
Step 4: Request Access Token Credentials
The final step involves sending a POST request to
https://www.wegowise.com/oauth/access_token
. This request
will include the appropriate
OAuth authorization header
for an OAuth token credential request. An example header is shown below.
Authorization:
OAuth oauth_consumer_key="17547cfc0b45bf1f7ca17eee86318af35103b4ce",
oauth_token="a5f5e9d2a3911a048b467bce3ad577a5cb64402c",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="1395087547",
oauth_nonce="b4c399fb4d05bd186895e0ee1c886271",
oauth_verifier="d830f350d1d0099e6fc6",
oauth_version="1.0",
oauth_signature="NrHElhluZZSRjXOPC6uaRHZvkVM%3D"
WegoWise will return a url-encoded response with the token credentials in the response body.
oauth_token=d01533fc7c157566aa53cb3b8f80bbfa85bec356&oauth_token_secret=e6592fe3c77653a5d6d1112c51d2edac0b694340
Once you have the access token credentials you will be able to request protected resources using the access token credentials for the user who granted access. You will need to repeat steps 2 through 4 for each WegoWise user your app needs to access resources for.
Examples
Node.js Example
var oauth = require('oauth-client');
var consumer = oauth.createConsumer('CONSUMER_KEY', 'CONSUMER_SECRET');
var token = oauth.createToken('ACCESS_TOKEN_KEY', 'ACCESS_TOKEN_SECRET');
var signature = oauth.createHmac(consumer, token);
var request_options = {
port: '443',
host: 'www.wegowise.com',
https: true,
path: '/api/v1/users/USERNAME/buildings/ID?sqft=194000&has_elevator=false',
oauth_signature: signature,
method: 'PUT',
headers: { 'content-type': 'application/json' }
}
var request = oauth.request(request_options, function(response) {
response.setEncoding('utf8');
response.on('data', function (chunk) {
console.log(chunk);
});
});
request.end();
OAuth
View OAuth user
/oauth/user
Get information about the user whose access token credentials are being used to request authenticated resources.
{
"id": "1",
"username": "johndoe"
}
Apartments
List apartments
/api/v1/wego_pro/buildings/{id}/apartments
Get a list of apartments that have been defined for a building.
[
{
"unit_number": "2C",
"id": 102,
"sqft": 13000,
"n_bedrooms": 2,
"building_id": 193
},
{
"unit_number": "3C",
"id": 103,
"sqft": 13000,
"n_bedrooms": 2,
"building_id": 193
}
]
{
"errors": "Building not found"
}
View apartment
/api/v1/wego_pro/apartments/{id}
Get info about a given apartment.
{
"unit_number": "3C",
"id": 103,
"sqft": 13000,
"n_bedrooms": 2,
"building_id": 193
}
{
"errors": "Apartment not found"
}
Create apartment
/api/v1/wego_pro/buildings/{id}/apartments
Create an apartment associated with a building for the authorized user.
{
"unit_number": "101a",
"sqft": 1000,
"n_bedrooms": 3
}
{
"type": "object",
"required": true,
"properties": {
"n_bedrooms": {
"type": "integer",
"required": true
},
"sqft": {
"type": "integer",
"required": true
},
"unit_number": {
"type": "string",
"required": true
}
}
}
{
"id": 3534,
"building_id": 1234,
"unit_number": "101a",
"sqft": 1000,
"n_bedrooms": 3
}
{
"errors": "Unit number can't be blank"
}
Update an apartment
/api/v1/wego_pro/apartments/{id}
Update an apartment.
{
"unit_number": "29a"
}
{
"id": 3534,
"building_id": 1234,
"unit_number": "29a",
"sqft": 1000,
"n_bedrooms": 3
}
{
"errors": "Unit number can't be blank"
}
Destroy a apartment
/api/v1/wego_pro/apartments/{id}
This will destroy an apartment that is editable by the authorized user. The server will respond with status code 204 with no body if the apartment is succesfully destroyed. If the apartment is not found the server will respond with a 404.
It is important to note that destroying an apartment cascades. Any associated meters and data will be destroyed as well.
Commercial Building Areas
List building areas
/api/v1/wego_pro/buildings/{id}/areas
Get a list of the commercial building areas that have been defined for a given commercial building.
[
{
"id": 9,
"building_id": 874,
"name": "3rd Floor Office",
"sqft": 1200,
"type": "OfficeArea",
"n_pcs": 16,
"n_operating_hours": 50,
"n_main_shift_workers": 16,
"percent_heated": 100,
"percent_cooled": 100,
"is_vacant": false
},
{
"id": 12,
"building_id": 874,
"name": "4th Floor Office",
"sqft": 1000,
"type": "OfficeArea",
"n_pcs": 12,
"n_operating_hours": 40,
"n_main_shift_workers": 12,
"percent_heated": 100,
"is_vacant": false
}
]
{
"errors": "Building not found"
}
View building area
/api/v1/wego_pro/areas/{id}
Get information about a given commercial building area.
{
"building_id": 874,
"name": "3rd Floor Office",
"sqft": 1200,
"type": "OfficeArea",
"n_pcs": 16,
"n_operating_hours": 50,
"n_main_shift_workers": 16,
"percent_heated": 100,
"percent_cooled": 100,
"is_vacant": false
}
{
"errors": "Area not found"
}
Create a commercial building area
/api/v1/wego_pro/buildings/{id}/areas
Create a building area for a building that the authorized user has edit access to.
The schema that follows contains definitions of valid characteristics for each of the area types. Fields may have a minimum, maximum and default value. Any characteristic such as n_operating_hours must fall within the minimum/maximum range, but may be zero if is_vacant is true.
{
"id": 192,
"area_type": "BankArea",
"name": "Piggy Bank",
"n_operating_hours": 65,
"sqft": 1000,
"n_pcs": 3,
"percent_heated": 90,
"percent_cooled": 90,
"is_vacant": false
}
[
{
"title": "BankArea",
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"sqft": {
"type": "integer",
"required": true
},
"is_vacant": {
"type": "boolean",
"required": true,
"default": false
},
"percent_heated": {
"type": "integer",
"required": false,
"default": 100
},
"percent_cooled": {
"type": "integer",
"required": false,
"default": 100
},
"n_operating_hours": {
"type": "integer",
"required": false,
"default": 65,
"minimum": 30,
"maximum": 168
},
"n_main_shift_workers": {
"description": "Number of main shift workers per 1000 sqft",
"type": "decimal",
"required": false,
"default": 2.3
},
"n_pcs": {
"description": "Number of computers per 1000 sqft",
"type": "decimal",
"required": false,
"default": 2.0
}
}
},
{
"title": "CourthouseArea",
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"sqft": {
"type": "integer",
"required": true
},
"is_vacant": {
"type": "boolean",
"required": true,
"default": false
},
"percent_heated": {
"type": "integer",
"required": false,
"default": 100
},
"percent_cooled": {
"type": "integer",
"required": false,
"default": 60
},
"n_operating_hours": {
"type": "integer",
"required": false,
"default": 65,
"minimum": 30,
"maximum": 168
},
"n_main_shift_workers": {
"description": "Number of main shift workers per 1000 sqft",
"type": "decimal",
"required": false,
"default": 2.3
},
"n_pcs": {
"description": "Number of computers per 1000 sqft",
"type": "decimal",
"required": false,
"default": 2.0
}
}
},
{
"title": "HospitalArea",
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"sqft": {
"type": "integer",
"required": true
},
"is_vacant": {
"type": "boolean",
"required": true,
"default": false
},
"n_fte_workers": {
"description": "Number of full time workers per 1000 sqft",
"type": "decimal",
"required": false,
"default": 2.6
},
"n_staffed_beds": {
"description": "Number of staffed beds per 1000 sqft",
"type": "decimal",
"required": false,
"default": 0.46
},
"n_mri_machines": {
"type": "integer",
"required": false,
"default": 1
},
"n_buildings": {
"type": "integer",
"required": false
},
"n_floors": {
"type": "integer",
"required": false
},
"has_tertiary_care": {
"type": "boolean",
"required": false
},
"has_laboratory": {
"type": "boolean",
"required": false
},
"has_laundry_facility": {
"type": "boolean",
"required": false
},
"ownership_status": {
"enum":
[
"For Profit",
"Government",
"Non Profit"
],
"required": false
}
}
},
{
"title": "HotelArea",
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"sqft": {
"type": "integer",
"required": true
},
"is_vacant": {
"type": "boolean",
"required": true,
"default": false
},
"percent_heated": {
"type": "integer",
"required": false,
"default": 60
},
"percent_cooled": {
"type": "integer",
"required": false,
"default": 60
},
"n_rooms": {
"description": "Number of rooms per 1000 sqft",
"type": "decimal",
"required": false,
"default": 1.95
},
"n_main_shift_workers": {
"description": "Number of main shift workers per 1000 sqft",
"type": "decimal",
"required": false,
"default": 0.32
},
"n_pcs": {
"description": "Number of computers per 1000 sqft",
"type": "decimal",
"required": false,
"default": 2.0
},
"n_commercial_refrigeration_units": {
"type": "decimal",
"required": false,
"default": 0.023
},
"has_cooking": {
"type": "boolean",
"required": true,
"default": false
}
}
},
{
"title": "MedicalOfficeArea",
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"sqft": {
"type": "integer",
"required": true
},
"is_vacant": {
"type": "boolean",
"required": true,
"default": false
},
"percent_heated": {
"type": "integer",
"required": false,
"default": 100
},
"percent_cooled": {
"type": "integer",
"required": false,
"default": 100
},
"n_operating_hours": {
"type": "integer",
"required": false,
"default": 65,
"minimum": 30,
"maximum": 168
},
"n_main_shift_workers": {
"description": "Number of main shift workers per 1000 sqft",
"type": "decimal",
"required": false,
"default": 2.2
},
"n_mri_machines": {
"type": "integer",
"required": false,
"default": 1
}
}
},
{
"title": "MultiFamilyHousingArea",
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"sqft": {
"type": "integer",
"required": true
},
"is_vacant": {
"type": "boolean",
"required": true,
"default": false
},
"percent_heated": {
"type": "integer",
"required": false
},
"percent_cooled": {
"type": "integer",
"required": false
},
"n_operating_hours": {
"type": "integer",
"required": false,
"default": 65,
"minimum": 30,
"maximum": 168
},
"n_main_shift_workers": {
"description": "Number of main shift workers per 1000 sqft",
"type": "decimal",
"required": false,
"default": 2.3
},
"n_units": {
"type": "integer",
"required": false
},
"n_bedrooms": {
"type": "integer",
"required": false
},
"n_floors": {
"type": "integer",
"required": false
},
"n_laundry_hookups": {
"type": "integer",
"required": false
},
"n_common_area_laundry_hookups": {
"type": "integer",
"required": false
},
"resident_population_type": {
"required": false,
"enum":
[
"Dedicated Military",
"Dedicated Senior/Independent Living",
"Dedicated Special Accessibility Needs",
"Dedicated Student",
"Other dedicated housing",
"No specific resident population"
]
},
"is_government_subsidized": {
"type": "boolean",
"required": false
}
}
},
{
"title": "OfficeArea",
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"sqft": {
"type": "integer",
"required": true
},
"is_vacant": {
"type": "boolean",
"required": true,
"default": false
},
"percent_heated": {
"type": "integer",
"required": false,
"default": 100
},
"percent_cooled": {
"type": "integer",
"required": false,
"default": 100
},
"n_operating_hours": {
"type": "integer",
"required": false,
"default": 65,
"minimum": 30,
"maximum": 168
},
"n_main_shift_workers": {
"description": "Number of main shift workers per 1000 sqft",
"type": "decimal",
"required": false,
"default": 2.3
},
"n_pcs": {
"description": "Number of computers per 1000 sqft",
"type": "decimal",
"required": false,
"default": 2.0
}
}
},
{
"title": "OtherArea",
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"sqft": {
"type": "integer",
"required": true
},
"is_vacant": {
"type": "boolean",
"required": true,
"default": false
},
"description": {
"type": "string",
"required": true
},
"n_operating_hours": {
"type": "integer",
"required": false,
"default": 65,
"minimum": 30,
"maximum": 168
},
"n_main_shift_workers": {
"description": "Number of main shift workers per 1000 sqft",
"type": "decimal",
"required": false,
"default": 0
},
"n_pcs": {
"description": "Number of computers per 1000 sqft",
"type": "decimal",
"required": false,
"default": 0
}
}
},
{
"title": "ParkingArea",
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"sqft": {
"type": "integer",
"required": true
},
"n_enclosed_sqft": {
"type": "integer",
"required": true
},
"n_non_enclosed_sqft": {
"type": "integer",
"required": true
},
"n_open_sqft": {
"type": "integer",
"required": true
},
"is_vacant": {
"type": "boolean",
"required": true,
"default": false
},
"supplemental_heating": {
"type": "string",
"required": false
}
}
},
{
"title": "ResidenceHallArea",
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"sqft": {
"type": "integer",
"required": true
},
"is_vacant": {
"type": "boolean",
"required": true,
"default": false
},
"percent_heated": {
"type": "integer",
"required": false,
"default": 100
},
"percent_cooled": {
"type": "integer",
"required": false,
"default": 100
},
"has_computer_lab": {
"type": "boolean",
"default": false
},
"has_dining_hall": {
"type": "boolean",
"default": false
},
"n_rooms": {
"type": "integer",
"required": false
}
}
},
{
"title": "RetailArea",
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"sqft": {
"type": "integer",
"required": true
},
"is_vacant": {
"type": "boolean",
"required": true,
"default": false
},
"percent_heated": {
"type": "integer",
"required": false,
"default": 100
},
"percent_cooled": {
"type": "integer",
"required": false,
"default": 100
},
"n_operating_hours": {
"type": "integer",
"required": false,
"default": 65
},
"n_main_shift_workers": {
"description": "Number of main shift workers per 1000 sqft",
"type": "decimal",
"required": false,
"default": 1
},
"n_pcs": {
"description": "Number of computers per 1000 sqft",
"type": "decimal",
"default": 0.2
},
"n_cash_registers": {
"description": "Number of computers per 1000 sqft",
"type": "decimal",
"default": 0.3
},
"n_walkin_freezers": {
"type": "integer",
"default": 0
},
"n_refrigerator_freezers": {
"type": "integer",
"default": 0
},
"has_outside_entrance": {
"type": "boolean",
"default": true
}
}
},
{
"title": "SchoolArea",
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"sqft": {
"type": "integer",
"required": true
},
"is_vacant": {
"type": "boolean",
"required": true,
"default": false
},
"percent_heated": {
"type": "integer",
"required": false,
"default": 100
},
"percent_cooled": {
"type": "integer",
"required": false,
"default": 100
},
"n_operating_hours": {
"type": "integer",
"required": false,
"default": 65,
"minimum": 30,
"maximum": 168
},
"n_main_shift_workers": {
"description": "Number of main shift workers per 1000 sqft",
"type": "decimal",
"required": false,
"default": 0.77
},
"n_total_seating_capacity": {
"description": "Number of seats per 1000 sqft",
"type": "decimal",
"default": 10.0
},
"n_pcs": {
"description": "Number of computers per 1000 sqft",
"type": "decimal",
"default": 1.75
},
"n_walkin_freezers": {
"type": "decimal",
"default": 0.01
},
"is_open_weekends": {
"type": "boolean",
"default": false
},
"is_high_school": {
"type": "boolean",
"default": false
},
"has_cooking": {
"type": "boolean",
"default": true
}
}
},
{
"title": "SeniorCareArea",
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"sqft": {
"type": "integer",
"required": true
},
"is_vacant": {
"type": "boolean",
"required": true,
"default": false
},
"percent_heated": {
"type": "integer",
"required": false,
"default": 100
},
"percent_cooled": {
"type": "integer",
"required": false,
"default": 100
},
"n_units": {
"description": "Number of units per 1000 sqft",
"type": "decimal",
"default": 1.584
},
"n_average_residents": {
"description": "Number of residents per 1000 sqft",
"type": "decimal",
"default": 2.075
},
"total_resident_capacity": {
"description": "Number of residents per 1000 sqft",
"type": "decimal",
"default": 2.374
},
"n_main_shift_workers": {
"description": "Number of main shift workers per 1000 sqft",
"type": "decimal",
"required": false,
"default": 0.9523
},
"n_pcs": {
"description": "Number of computers per 1000 sqft",
"type": "decimal",
"default": 1.75
},
"n_commercial_refrigeration_units": {
"type": "integer",
"required": false
},
"n_commercial_washing_machines": {
"description": "Number of commercial washing machines per 1000 sqft",
"type": "decimal",
"default": 0.04422
},
"n_residential_washing_machines": {
"description": "Number of residential washing machines per 1000 sqft",
"type": "decimal",
"default": 0.05757
},
"n_electronic_lift_systems": {
"description": "Number of electronic lifts per 1000 sqft",
"type": "decimal",
"default": 0.0704
}
}
},
{
"title": "SupermarketArea",
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"sqft": {
"type": "integer",
"required": true
},
"is_vacant": {
"type": "boolean",
"required": true,
"default": false
},
"percent_heated": {
"type": "integer",
"required": false,
"default": 100
},
"percent_cooled": {
"type": "integer",
"required": false,
"default": 100
},
"n_operating_hours": {
"type": "integer",
"required": false,
"default": 105,
"minimum": 30,
"maximum": 168
},
"n_main_shift_workers": {
"description": "Number of main shift workers per 1000 sqft",
"type": "decimal",
"required": false,
"default": 1
},
"n_pcs": {
"description": "Number of computers per 1000 sqft",
"type": "decimal",
"required": false
},
"n_walkin_freezers": {
"description": "Number of walkin freezers per 1000 sqft",
"type": "decimal",
"default": 0.25
},
"has_cooking": {
"type": "boolean",
"required": true,
"default": false
},
"n_refrigerator_freezers": {
"type": "integer",
"required": false
}
}
},
{
"title": "WarehouseRefrigeratedArea",
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"sqft": {
"type": "integer",
"required": true
},
"is_vacant": {
"type": "boolean",
"required": true,
"default": false
},
"n_operating_hours": {
"type": "integer",
"required": false,
"default": 60,
"minimum": 30,
"maximum": 168
},
"n_main_shift_workers": {
"description": "Number of main shift workers per 1000 sqft",
"type": "decimal",
"required": false,
"default": 0.59
}
}
},
{
"title": "WarehouseUnrefrigeratedArea",
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"sqft": {
"type": "integer",
"required": true
},
"is_vacant": {
"type": "boolean",
"required": true,
"default": false
},
"percent_heated": {
"type": "integer",
"required": false,
"default": 20
},
"percent_cooled": {
"type": "integer",
"required": false,
"default": 50
},
"n_operating_hours": {
"type": "integer",
"required": false,
"default": 60,
"minimum": 30,
"maximum": 168
},
"n_main_shift_workers": {
"description": "Number of main shift workers per 1000 sqft",
"type": "decimal",
"required": false,
"default": 0.59
},
"n_walkin_freezers": {
"type": "integer",
"default": 0
}
}
},
{
"title": "WorshipFacilityArea",
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"sqft": {
"type": "integer",
"required": true
},
"is_vacant": {
"type": "boolean",
"required": true,
"default": false
},
"n_operating_hours": {
"type": "integer",
"required": false,
"default": 33,
"maximum": 168
},
"n_total_seating_capacity": {
"description": "Total seating capacity per 1000 sqft",
"type": "decimal",
"required": false,
"default": 40
},
"n_weekdays_open": {
"type": "integer",
"required": false,
"default": 3,
"minimum": 1,
"maximum": 7
},
"n_pcs": {
"description": "Number of computers per 1000 sqft",
"type": "decimal",
"default": 0.2
},
"n_commercial_refrigeration_units": {
"description": "Number of commercial refrigerators per 1000 sqft",
"type": "decimal",
"default": 0.018
}
}
}
]
{
"building_id": 1,
"name": "Piggy Bank",
"sqft": 1000,
"type": "BankArea",
"n_operating_hours": 65,
"n_main_shift_workers": 3,
"n_pcs": 3,
"percent_heated": 90.0,
"percent_cooled": 90.0,
"is_vacant": false
}
{
"errors": "Name can't be blank"
}
Update a commercial building area
/api/v1/wego_pro/areas/{id}
Update a commercial building area that the authenticated user has access to. Validations will be performed as for the create area end point.
{
"n_operating_hours": 50
}
{
"id": 192,
"area_type": "BankArea",
"name": "Piggy Bank",
"n_operating_hours": 50,
"sqft": 1000,
"n_pcs": 3,
"percent_heated": 90,
"percent_cooled": 90,
"is_vacant": false
}
{
"errors": "Name can't be blank"
}
Destroy a commercial building area
/api/v1/wego_pro/areas/{id}
This will destroy a commercial building area that is editable by the authorized user. The server will respond with status code 204 with no body if the area is succesfully destroyed. If the area is not found the server will respond with a 404.
It is important to note that destroying an area cascades. Any associated meters and data will be destroyed as well.
Buildings
Buildings by user
/api/v1/wego_pro/users/{username}/buildings
Get a list of buildings associated with a WegoWise user account.
[
{
"conditioned_sqft": 12000,
"id": 1,
"nickname": "The Big Building",
"n_stories": 3,
"sqft": 13000,
"year_built": 1950,
"type": "Low-rise / garden-style apartment building",
"basement":
{
"sqft": 1000,
"conditioned": false
},
"cooling":
{
"system": "none"
},
"heating":
{
"fuel": "Gas",
"system": "hot_water_boiler"
},
"hot_water":
{
"fuel": "Gas",
"system": "hot_water_boiler"
},
"location":
{
"city": "Boston",
"climate_zone": "cold",
"country": "United States",
"county": "Suffolk",
"state": "MA",
"street_address": "1 Example Street",
"zip_code": "02201"
}
},
{
"conditioned_sqft": 19000,
"id": 2,
"nickname": "Building A",
"n_stories": 5,
"sqft": 20050,
"year_built": 1980,
"type": "midrise",
"basement":
{
"sqft": 1000,
"conditioned": false
},
"cooling":
{
"system": "sleeve"
},
"heating":
{
"fuel": "Gas",
"system": "furnace"
},
"hot_water":
{
"fuel": "Gas",
"system": "furnace"
},
"location":
{
"city": "Boston",
"climate_zone": "cold",
"country": "United States",
"county": "Suffolk",
"state": "MA",
"street_address": "7 Example Street",
"zip_code": "02201"
}
}
]
{
"errors": "User not found"
}
Buildings by development
/api/v1/wego_pro/developments/{id}/buildings
Developments represent a collection of buildings, such as an apartment complex or a campus. This endpoint returns a list of buildings in the specified development.
[
{
"conditioned_sqft": 12000,
"id": 1,
"nickname": "The Big Building",
"n_stories": 3,
"sqft": 13000,
"year_built": 1950,
"type": "Low-rise / garden-style apartment building",
"basement":
{
"sqft": 1000,
"conditioned": false
},
"cooling":
{
"system": "none"
},
"heating":
{
"fuel": "Gas",
"system": "hot_water_boiler"
},
"hot_water":
{
"fuel": "Gas",
"system": "hot_water_boiler"
},
"location":
{
"city": "Boston",
"climate_zone": "cold",
"country": "United States",
"county": "Suffolk",
"state": "MA",
"street_address": "1 Example Street",
"zip_code": "02201"
}
},
{
"conditioned_sqft": 19000,
"id": 2,
"nickname": "Building A",
"n_stories": 5,
"sqft": 20050,
"year_built": 1980,
"type": "midrise",
"basement":
{
"sqft": 1000,
"conditioned": false
},
"cooling":
{
"system": "sleeve"
},
"heating":
{
"fuel": "Gas",
"system": "furnace"
},
"hot_water":
{
"fuel": "Gas",
"system": "furnace"
},
"location":
{
"city": "Boston",
"climate_zone": "cold",
"country": "United States",
"county": "Suffolk",
"state": "MA",
"street_address": "7 Example Street",
"zip_code": "02201"
}
}
]
{
"errors": "Property not found"
}
Buildings for authorized user
/api/v1/wego_pro/buildings
This endpoint returns a list of buildings for the authorized user.
[
{
"conditioned_sqft": 12000,
"id": 1,
"nickname": "The Big Building",
"n_stories": 3,
"sqft": 13000,
"year_built": 1950,
"type": "Low-rise / garden-style apartment building",
"basement":
{
"sqft": 1000,
"conditioned": false
},
"cooling":
{
"system": "none"
},
"heating":
{
"fuel": "Gas",
"system": "hot_water_boiler"
},
"hot_water":
{
"fuel": "Gas",
"system": "hot_water_boiler"
},
"location":
{
"city": "Boston",
"climate_zone": "cold",
"country": "United States",
"county": "Suffolk",
"state": "MA",
"street_address": "1 Example Street",
"zip_code": "02201"
}
},
{
"conditioned_sqft": 19000,
"id": 2,
"nickname": "Building A",
"n_stories": 5,
"sqft": 20050,
"year_built": 1980,
"type": "midrise",
"basement":
{
"sqft": 1000,
"conditioned": false
},
"cooling":
{
"system": "sleeve"
},
"heating":
{
"fuel": "Gas",
"system": "furnace"
},
"hot_water":
{
"fuel": "Gas",
"system": "furnace"
},
"location":
{
"city": "Boston",
"climate_zone": "cold",
"country": "United States",
"county": "Suffolk",
"state": "MA",
"street_address": "7 Example Street",
"zip_code": "02201"
}
}
]
View building
/api/v1/wego_pro/buildings/{id}
Get info about a building.
{
"conditioned_sqft": 12000,
"id": 1,
"nickname": "The Big Building",
"n_stories": 3,
"sqft": 13000,
"year_built": 1950,
"type": "Low-rise / garden-style apartment building",
"basement":
{
"sqft": 1000,
"conditioned": false
},
"cooling":
{
"system": "Window AC"
},
"heating":
{
"fuel": "Gas",
"system": "Boiler (High-efficiency condensing)"
},
"hot_water":
{
"fuel": "Gas",
"system": "Indirect hot water tank off boiler (Heat & DHW)"
},
"location":
{
"city": "Boston",
"climate_zone": "cold",
"country": "United States",
"county": "Suffolk",
"state": "MA",
"street_address": "1 Example Street",
"zip_code": "02201"
}
}
{
"errors": "Building not found"
}
- sf_detached:
- Detached home (not connected to any other buildings)
- sf_attached:
- Townhouse / Row house (shares wall(s) with another building)
- apt_condo:
- Apartment / Condo
- mobile_home:
- Mobile home
- multifamily:
- Multi-family home
- lowrise:
- Low-rise / garden-style apartment building
- midrise:
- Mid-rise apartment building
- highrise:
- High-rise apartment building
- wood_steel:
- Wood or steel frame
- concrete:
- Solid concrete
- masonry:
- Masonry (load-bearing)
- modular:
- Modular
- sips:
- Structurally insulated panels (SIPS)
- other:
- Other
- window_ac:
- Window AC
- sleeve:
- Room AC in sleeve (through wall)
- mini_split:
- Ductless mini-split
- ptac:
- PTAC unit
- central:
- Ducted central AC (Outdoor condenser)
- rooftop:
- Packaged rooftop cooling system
- ground_heat_pump:
- Ground-source heat pump
- tower_heat_pump:
- Cooling tower with heat pumps
- air_chiller:
- Air-cooled chiller
- water_chiller:
- Water-cooled chiller (Cooling tower)
- none:
- None
- other:
- Other
- furnace:
- Furnace
- h_e_furnace:
- Furnace (High-efficiency condensing)
- steam_boiler:
- Boiler (Steam)
- hot_water_boiler:
- Boiler (Hot water)
- h_e_boiler:
- Boiler (High-efficiency condensing)
- apt_heat_pumps:
- Boiler (Heat pumps in apartments)
- ground_heat_pump:
- Heat pump (Ground-source)
- air_heat_pump:
- Heat pump (Air-source)
- hot_water:
- Hot water heater
- h_e_hot_water:
- Hot water heater (High-efficiency condensing)
- baseboard:
- Electric baseboard
- ptac:
- PTAC units
- other:
- Other
- indirect_with_heat:
- Indirect hot water tank off boiler (Heat & DHW)
- indirect_boiler:
- Indirect hot water tank off dedicated boiler
- tankless_coil:
- Tankless coil in boiler
- stand_alone:
- Stand-alone storage water heater
- on_demand:
- On-demand/Instantaneous
- cogen:
- Cogeneration
- other:
- Other
- elderly:
- Elderly
- student:
- Students
- family:
- Families with children
- other:
- Mixed/None of the above
- Electric:
- Electric dryers
- Gas:
- Gas dryers
- none:
- Not heated
- electric:
- Electric heated
- gas:
- Gas heated
- solar:
- Solar panel heating
Create building
/api/v1/wego_pro/developments/{id}/buildings
Create a building for the authorized user.
{
"address": "123 Main St, Boston, MA 02118",
"nickname": "Main Street Apartments",
"year_built": "2000",
"construction": "wood_steel",
"sqft": "1000",
"has_basement": true,
"basement_sqft": "200",
"basement_conditioned": false,
"n_stories": 2,
"n_bedrooms": 12,
"green_certified": false,
"n_electric_general_meters": 1,
"n_water_general_meters": 1,
"n_gas_general_meters": 1,
"n_oil_general_meters": 0,
"heating_system": "furnace",
"heating_fuel": "Gas",
"cooling_system": "window_ac",
"hot_water_fuel": "Solar",
"hot_water_system": "other",
"has_pool": false,
"has_laundry": false,
"notes": "notes",
"draft": false,
"low_income": false,
"resident_type": "other",
"building_type": "sf_detached"
}
{
"type": "object",
"required": true,
"properties": {
"address": {
"type": "string",
"required": true
},
"nickname": {
"type": "string",
"required": true
},
"building_type": {
"enum": [
"sf_detached",
"sf_attached",
"apt_condo",
"mobile_home",
"multifamily",
"lowrise",
"midrise",
"highrise"
],
"required": true
},
"year_built": {
"type": "string",
"required": true
},
"construction": {
"enum": [
"wood_steel",
"concrete",
"masonry",
"modular",
"sips",
"other"
],
"required": true
},
"sqft": {
"type": "integer",
"required": true
},
"has_basement": {
"type": "boolean",
"required": true
},
"basement_sqft": {
"type": "integer",
"required": true
},
"basement_conditioned": {
"type": "boolean",
"required": true
},
"n_stories": {
"type": "integer",
"required": true
},
"n_bedrooms": {
"type": "integer",
"required": true
},
"green_certified": {
"type": "boolean",
"required": true
},
"leed_certified": {
"type": "boolean",
"required": true
},
"epa_certified": {
"type": "boolean",
"required": true
},
"nahb_certified": {
"type": "boolean",
"required": true
},
"earthcraft_certified": {
"type": "boolean",
"required": true
},
"enterprise_green_certified": {
"type": "boolean",
"required": true
},
"greenpoint_certified": {
"type": "boolean",
"required": true
},
"passive_house_certified": {
"type": "boolean",
"required": true
},
"other_certified": {
"type": "boolean",
"required": true
},
"leed_level": {
"enum": [
"Platinum",
"Gold",
"Silver",
"Certified"
],
"required": false
},
"n_water_general_meters": {
"type": "integer",
"required": true
},
"n_electric_general_meters": {
"type": "integer",
"required": true
},
"n_gas_general_meters": {
"type": "integer",
"required": true
},
"n_oil_general_meters": {
"type": "integer",
"required": true
},
"heating_system": {
"enum": [
"furnace",
"h_e_furnace",
"steam_boiler",
"hot_water_boiler",
"h_e_boiler",
"apt_heat_pumps",
"ground_heat_pump",
"air_heat_pump",
"hot_water",
"h_e_hot_water",
"baseboard",
"ptac",
"other"
],
"required": true
},
"heating_fuel": {
"enum": [
"Electric",
"Gas",
"Oil"
],
"required": true
},
"cooling_system": {
"enum": [
"window_ac",
"sleeve",
"mini_split",
"ptac",
"central",
"rooftop",
"ground_heat_pump",
"tower_heat_pump",
"air_chiller",
"water_chiller",
"none",
"other"
],
"required": true
},
"hot_water_fuel": {
"enum": [
"Electric",
"Gas",
"Oil"
],
"required": true
},
"hot_water_system": {
"enum": [
"indirect_with_heat",
"indirect_boiler",
"tankless_coil",
"stand_alone",
"on_demand",
"cogen",
"other"
],
"required": true
},
"has_laundry": {
"type": "boolean",
"required": true
},
"dryer_fuel": {
"enum": [
"Electric",
"Gas"
],
"required": false
},
"has_pool": {
"type": "boolean",
"required": true
},
"pool_year_round": {
"type": "boolean",
"required": false
},
"pool_fuel": {
"enum": [
"none",
"electric",
"gas",
"solar"
],
"required": false
},
"has_elevator": {
"type": "boolean",
"required": "true"
},
"resident_type": {
"enum": [
"elderly",
"student",
"family",
"other"
],
"required": "true"
},
"notes": {
"type": "string",
"required": false
}
}
}
{
"conditioned_sqft": 12000,
"id": 1,
"nickname": "The Big Building",
"n_stories": 3,
"sqft": 13000,
"year_built": 1950,
"type": "Low-rise / garden-style apartment building",
"basement":
{
"sqft": 1000,
"conditioned": false
},
"cooling":
{
"system": "Window AC"
},
"heating":
{
"fuel": "Gas",
"system": "Boiler (High-efficiency condensing)"
},
"hot_water":
{
"fuel": "Gas",
"system": "Indirect hot water tank off boiler (Heat & DHW)"
},
"location":
{
"city": "Boston",
"climate_zone": "cold",
"country": "United States",
"county": "Suffolk",
"state": "MA",
"street_address": "1 Example Street",
"zip_code": "02201"
}
}
{
"errors": "Sqft is invalid"
}
- sf_detached:
- Detached home (not connected to any other buildings)
- sf_attached:
- Townhouse / Row house (shares wall(s) with another building)
- apt_condo:
- Apartment / Condo
- mobile_home:
- Mobile home
- multifamily:
- Multi-family home
- lowrise:
- Low-rise / garden-style apartment building
- midrise:
- Mid-rise apartment building
- highrise:
- High-rise apartment building
- wood_steel:
- Wood or steel frame
- concrete:
- Solid concrete
- masonry:
- Masonry (load-bearing)
- modular:
- Modular
- sips:
- Structurally insulated panels (SIPS)
- other:
- Other
- window_ac:
- Window AC
- sleeve:
- Room AC in sleeve (through wall)
- mini_split:
- Ductless mini-split
- ptac:
- PTAC unit
- central:
- Ducted central AC (Outdoor condenser)
- rooftop:
- Packaged rooftop cooling system
- ground_heat_pump:
- Ground-source heat pump
- tower_heat_pump:
- Cooling tower with heat pumps
- air_chiller:
- Air-cooled chiller
- water_chiller:
- Water-cooled chiller (Cooling tower)
- none:
- None
- other:
- Other
- furnace:
- Furnace
- h_e_furnace:
- Furnace (High-efficiency condensing)
- steam_boiler:
- Boiler (Steam)
- hot_water_boiler:
- Boiler (Hot water)
- h_e_boiler:
- Boiler (High-efficiency condensing)
- apt_heat_pumps:
- Boiler (Heat pumps in apartments)
- ground_heat_pump:
- Heat pump (Ground-source)
- air_heat_pump:
- Heat pump (Air-source)
- hot_water:
- Hot water heater
- h_e_hot_water:
- Hot water heater (High-efficiency condensing)
- baseboard:
- Electric baseboard
- ptac:
- PTAC units
- other:
- Other
- indirect_with_heat:
- Indirect hot water tank off boiler (Heat & DHW)
- indirect_boiler:
- Indirect hot water tank off dedicated boiler
- tankless_coil:
- Tankless coil in boiler
- stand_alone:
- Stand-alone storage water heater
- on_demand:
- On-demand/Instantaneous
- cogen:
- Cogeneration
- other:
- Other
- elderly:
- Elderly
- student:
- Students
- family:
- Families with children
- other:
- Mixed/None of the above
- Electric:
- Electric dryers
- Gas:
- Gas dryers
- none:
- Not heated
- electric:
- Electric heated
- gas:
- Gas heated
- solar:
- Solar panel heating
Update building
/api/v1/wego_pro/buildings/{id}
Update a building that can be edited by the authorized user.
{
"nickname": "The Largest Building"
}
{
"conditioned_sqft": 12000,
"id": 1,
"nickname": "The Largest Building",
"n_stories": 3,
"sqft": 13000,
"year_built": 1950,
"type": "Low-rise / garden-style apartment building",
"basement":
{
"sqft": 1000,
"conditioned": false
},
"cooling":
{
"system": "Window AC"
},
"heating":
{
"fuel": "Gas",
"system": "Boiler (High-efficiency condensing)"
},
"hot_water":
{
"fuel": "Gas",
"system": "Indirect hot water tank off boiler (Heat & DHW)"
},
"location":
{
"city": "Boston",
"climate_zone": "cold",
"country": "United States",
"county": "Suffolk",
"state": "MA",
"street_address": "1 Example Street",
"zip_code": "02201"
}
}
{
"errors": "Total size of apartments is invalid"
}
Destroy a building
/api/v1/wego_pro/buildings/{id}
This will destroy a building owned by the authorized user. The server will respond with status code 204 with no body if the building is succesfully destroyed. If the building is not found the server will respond with a 404.
It is important to note that destroying a building cascades. Any associated apartments, meters and data will be destroyed as well.
Monthly Data
Monthly data for apartment
/api/v1/wego_pro/apartments/{id}/data
WegoWise normalizes raw meter data to calendar months and tracks how that data applies to the parent structure of each meter. This endpoint allows you to retrieve that normalized monthly data for the specified apartment, according to data type and desired usage or cost unit of measure.
ID of the structure whose data we are querying
Type of data requested
- electric
- gas
- oil
- water
Unit of measure, or charge type
- btu
- ccf
- demand_kw
- ft3
- gallons
- kwh
- therms
- delivery_charge
- demand_charge
- fixed_charge
- fuel_charge
- total_charge
[
{
"date": "2011-11-01",
"value": 22.0
},
{
"date": "2011-12-01",
"value": 25.0
},
{
"date": "2012-01-01",
"value": 24.0
}
]
{
"errors": "Invalid data type and unit combination"
}
{
"errors": "Apartment not found"
}
- sf_detached:
- Detached home (not connected to any other buildings)
- sf_attached:
- Townhouse / Row house (shares wall(s) with another building)
- apt_condo:
- Apartment / Condo
- mobile_home:
- Mobile home
- multifamily:
- Multi-family home
- lowrise:
- Low-rise / garden-style apartment building
- midrise:
- Mid-rise apartment building
- highrise:
- High-rise apartment building
- wood_steel:
- Wood or steel frame
- concrete:
- Solid concrete
- masonry:
- Masonry (load-bearing)
- modular:
- Modular
- sips:
- Structurally insulated panels (SIPS)
- other:
- Other
- window_ac:
- Window AC
- sleeve:
- Room AC in sleeve (through wall)
- mini_split:
- Ductless mini-split
- ptac:
- PTAC unit
- central:
- Ducted central AC (Outdoor condenser)
- rooftop:
- Packaged rooftop cooling system
- ground_heat_pump:
- Ground-source heat pump
- tower_heat_pump:
- Cooling tower with heat pumps
- air_chiller:
- Air-cooled chiller
- water_chiller:
- Water-cooled chiller (Cooling tower)
- none:
- None
- other:
- Other
- furnace:
- Furnace
- h_e_furnace:
- Furnace (High-efficiency condensing)
- steam_boiler:
- Boiler (Steam)
- hot_water_boiler:
- Boiler (Hot water)
- h_e_boiler:
- Boiler (High-efficiency condensing)
- apt_heat_pumps:
- Boiler (Heat pumps in apartments)
- ground_heat_pump:
- Heat pump (Ground-source)
- air_heat_pump:
- Heat pump (Air-source)
- hot_water:
- Hot water heater
- h_e_hot_water:
- Hot water heater (High-efficiency condensing)
- baseboard:
- Electric baseboard
- ptac:
- PTAC units
- other:
- Other
- indirect_with_heat:
- Indirect hot water tank off boiler (Heat & DHW)
- indirect_boiler:
- Indirect hot water tank off dedicated boiler
- tankless_coil:
- Tankless coil in boiler
- stand_alone:
- Stand-alone storage water heater
- on_demand:
- On-demand/Instantaneous
- cogen:
- Cogeneration
- other:
- Other
- elderly:
- Elderly
- student:
- Students
- family:
- Families with children
- other:
- Mixed/None of the above
- Electric:
- Electric dryers
- Gas:
- Gas dryers
- none:
- Not heated
- electric:
- Electric heated
- gas:
- Gas heated
- solar:
- Solar panel heating
Monthly data for building
/api/v1/wego_pro/buildings/{id}/data
WegoWise normalizes raw meter data to calendar months and tracks how that data applies to the parent structure of each meter. This endpoint allows you to retrieve that normalized monthly data for the specified building, according to data type and desired usage or cost unit of measure.
ID of the structure whose data we are querying
Type of data requested
- electric
- gas
- oil
- water
Unit of measure, or charge type
- btu
- ccf
- demand_kw
- ft3
- gallons
- kwh
- therms
- delivery_charge
- demand_charge
- fixed_charge
- fuel_charge
- total_charge
[
{
"date": "2011-11-01",
"value": 22.0
},
{
"date": "2011-12-01",
"value": 25.0
},
{
"date": "2012-01-01",
"value": 24.0
}
]
{
"errors": "Invalid data type and unit combination"
}
{
"errors": "Building not found"
}
- sf_detached:
- Detached home (not connected to any other buildings)
- sf_attached:
- Townhouse / Row house (shares wall(s) with another building)
- apt_condo:
- Apartment / Condo
- mobile_home:
- Mobile home
- multifamily:
- Multi-family home
- lowrise:
- Low-rise / garden-style apartment building
- midrise:
- Mid-rise apartment building
- highrise:
- High-rise apartment building
- wood_steel:
- Wood or steel frame
- concrete:
- Solid concrete
- masonry:
- Masonry (load-bearing)
- modular:
- Modular
- sips:
- Structurally insulated panels (SIPS)
- other:
- Other
- window_ac:
- Window AC
- sleeve:
- Room AC in sleeve (through wall)
- mini_split:
- Ductless mini-split
- ptac:
- PTAC unit
- central:
- Ducted central AC (Outdoor condenser)
- rooftop:
- Packaged rooftop cooling system
- ground_heat_pump:
- Ground-source heat pump
- tower_heat_pump:
- Cooling tower with heat pumps
- air_chiller:
- Air-cooled chiller
- water_chiller:
- Water-cooled chiller (Cooling tower)
- none:
- None
- other:
- Other
- furnace:
- Furnace
- h_e_furnace:
- Furnace (High-efficiency condensing)
- steam_boiler:
- Boiler (Steam)
- hot_water_boiler:
- Boiler (Hot water)
- h_e_boiler:
- Boiler (High-efficiency condensing)
- apt_heat_pumps:
- Boiler (Heat pumps in apartments)
- ground_heat_pump:
- Heat pump (Ground-source)
- air_heat_pump:
- Heat pump (Air-source)
- hot_water:
- Hot water heater
- h_e_hot_water:
- Hot water heater (High-efficiency condensing)
- baseboard:
- Electric baseboard
- ptac:
- PTAC units
- other:
- Other
- indirect_with_heat:
- Indirect hot water tank off boiler (Heat & DHW)
- indirect_boiler:
- Indirect hot water tank off dedicated boiler
- tankless_coil:
- Tankless coil in boiler
- stand_alone:
- Stand-alone storage water heater
- on_demand:
- On-demand/Instantaneous
- cogen:
- Cogeneration
- other:
- Other
- elderly:
- Elderly
- student:
- Students
- family:
- Families with children
- other:
- Mixed/None of the above
- Electric:
- Electric dryers
- Gas:
- Gas dryers
- none:
- Not heated
- electric:
- Electric heated
- gas:
- Gas heated
- solar:
- Solar panel heating
Monthly data for meter
/api/v1/wego_pro/meters/{id}/data
WegoWise normalizes raw meter data to calendar months and tracks how that data applies to the parent structure of each meter. This endpoint allows you to retrieve that normalized monthly data for the specified meter, according to data type and desired usage or cost unit of measure.
ID of the structure whose data we are querying
Type of data requested
- electric
- gas
- oil
- water
Unit of measure, or charge type
- btu
- ccf
- demand_kw
- ft3
- gallons
- kwh
- therms
- delivery_charge
- demand_charge
- fixed_charge
- fuel_charge
- total_charge
[
{
"date": "2011-11-01",
"value": 22.0
},
{
"date": "2011-12-01",
"value": 25.0
},
{
"date": "2012-01-01",
"value": 24.0
}
]
{
"errors": "Invalid data type and unit combination"
}
{
"errors": "Meter not found"
}
- sf_detached:
- Detached home (not connected to any other buildings)
- sf_attached:
- Townhouse / Row house (shares wall(s) with another building)
- apt_condo:
- Apartment / Condo
- mobile_home:
- Mobile home
- multifamily:
- Multi-family home
- lowrise:
- Low-rise / garden-style apartment building
- midrise:
- Mid-rise apartment building
- highrise:
- High-rise apartment building
- wood_steel:
- Wood or steel frame
- concrete:
- Solid concrete
- masonry:
- Masonry (load-bearing)
- modular:
- Modular
- sips:
- Structurally insulated panels (SIPS)
- other:
- Other
- window_ac:
- Window AC
- sleeve:
- Room AC in sleeve (through wall)
- mini_split:
- Ductless mini-split
- ptac:
- PTAC unit
- central:
- Ducted central AC (Outdoor condenser)
- rooftop:
- Packaged rooftop cooling system
- ground_heat_pump:
- Ground-source heat pump
- tower_heat_pump:
- Cooling tower with heat pumps
- air_chiller:
- Air-cooled chiller
- water_chiller:
- Water-cooled chiller (Cooling tower)
- none:
- None
- other:
- Other
- furnace:
- Furnace
- h_e_furnace:
- Furnace (High-efficiency condensing)
- steam_boiler:
- Boiler (Steam)
- hot_water_boiler:
- Boiler (Hot water)
- h_e_boiler:
- Boiler (High-efficiency condensing)
- apt_heat_pumps:
- Boiler (Heat pumps in apartments)
- ground_heat_pump:
- Heat pump (Ground-source)
- air_heat_pump:
- Heat pump (Air-source)
- hot_water:
- Hot water heater
- h_e_hot_water:
- Hot water heater (High-efficiency condensing)
- baseboard:
- Electric baseboard
- ptac:
- PTAC units
- other:
- Other
- indirect_with_heat:
- Indirect hot water tank off boiler (Heat & DHW)
- indirect_boiler:
- Indirect hot water tank off dedicated boiler
- tankless_coil:
- Tankless coil in boiler
- stand_alone:
- Stand-alone storage water heater
- on_demand:
- On-demand/Instantaneous
- cogen:
- Cogeneration
- other:
- Other
- elderly:
- Elderly
- student:
- Students
- family:
- Families with children
- other:
- Mixed/None of the above
- Electric:
- Electric dryers
- Gas:
- Gas dryers
- none:
- Not heated
- electric:
- Electric heated
- gas:
- Gas heated
- solar:
- Solar panel heating
Monthly data for development
/api/v1/wego_pro/developments/{id}/data
WegoWise normalizes raw meter data to calendar months and tracks how that data applies to the parent structure of each meter. This endpoint allows you to retrieve that normalized monthly data for the specified development, according to data type and desired usage or cost unit of measure.
ID of the structure whose data we are querying
Type of data requested
- electric
- gas
- oil
- water
Unit of measure, or charge type
- btu
- ccf
- demand_kw
- ft3
- gallons
- kwh
- therms
- delivery_charge
- demand_charge
- fixed_charge
- fuel_charge
- total_charge
[
{
"date": "2011-11-01",
"value": 22.0
},
{
"date": "2011-12-01",
"value": 25.0
},
{
"date": "2012-01-01",
"value": 24.0
}
]
{
"errors": "Invalid data type and unit combination"
}
{
"errors": "Property not found"
}
- sf_detached:
- Detached home (not connected to any other buildings)
- sf_attached:
- Townhouse / Row house (shares wall(s) with another building)
- apt_condo:
- Apartment / Condo
- mobile_home:
- Mobile home
- multifamily:
- Multi-family home
- lowrise:
- Low-rise / garden-style apartment building
- midrise:
- Mid-rise apartment building
- highrise:
- High-rise apartment building
- wood_steel:
- Wood or steel frame
- concrete:
- Solid concrete
- masonry:
- Masonry (load-bearing)
- modular:
- Modular
- sips:
- Structurally insulated panels (SIPS)
- other:
- Other
- window_ac:
- Window AC
- sleeve:
- Room AC in sleeve (through wall)
- mini_split:
- Ductless mini-split
- ptac:
- PTAC unit
- central:
- Ducted central AC (Outdoor condenser)
- rooftop:
- Packaged rooftop cooling system
- ground_heat_pump:
- Ground-source heat pump
- tower_heat_pump:
- Cooling tower with heat pumps
- air_chiller:
- Air-cooled chiller
- water_chiller:
- Water-cooled chiller (Cooling tower)
- none:
- None
- other:
- Other
- furnace:
- Furnace
- h_e_furnace:
- Furnace (High-efficiency condensing)
- steam_boiler:
- Boiler (Steam)
- hot_water_boiler:
- Boiler (Hot water)
- h_e_boiler:
- Boiler (High-efficiency condensing)
- apt_heat_pumps:
- Boiler (Heat pumps in apartments)
- ground_heat_pump:
- Heat pump (Ground-source)
- air_heat_pump:
- Heat pump (Air-source)
- hot_water:
- Hot water heater
- h_e_hot_water:
- Hot water heater (High-efficiency condensing)
- baseboard:
- Electric baseboard
- ptac:
- PTAC units
- other:
- Other
- indirect_with_heat:
- Indirect hot water tank off boiler (Heat & DHW)
- indirect_boiler:
- Indirect hot water tank off dedicated boiler
- tankless_coil:
- Tankless coil in boiler
- stand_alone:
- Stand-alone storage water heater
- on_demand:
- On-demand/Instantaneous
- cogen:
- Cogeneration
- other:
- Other
- elderly:
- Elderly
- student:
- Students
- family:
- Families with children
- other:
- Mixed/None of the above
- Electric:
- Electric dryers
- Gas:
- Gas dryers
- none:
- Not heated
- electric:
- Electric heated
- gas:
- Gas heated
- solar:
- Solar panel heating
Raw Data
Raw data for a meter
/api/v1/wego_pro/meters/{id}/raw_data
Retrieve a collection of datapoints for a given meter. This will return all raw data for a given meter, including datapoints manually added by users, as well as those imported from the utility company website where applicable. Data returned includes start and end dates, usage and cost figures.
[
{
"id": 1000,
"delivery_charge": null,
"end_date": "2014-01-31",
"fuel_charge": null,
"total_charge": "10.0",
"start_date": "2014-01-01",
"gallons": null,
"kwh": "0.292997363023733",
"btu": 1000,
"demand_charge": null,
"demand_kw": null,
"fixed_charge": null,
"late_charge": null,
"off_peak_charge": null,
"off_peak_kwh": null,
"peak_charge": null,
"peak_kwh": null
},
{
"id": 1001,
"delivery_charge": null,
"end_date": "2013-12-31",
"fuel_charge": null,
"total_charge": "10.0",
"start_date": "2013-12-01",
"gallons": null,
"kwh": "0.292997363023733",
"btu": 1000,
"demand_charge": null,
"demand_kw": null,
"fixed_charge": null,
"late_charge": null,
"off_peak_charge": null,
"off_peak_kwh": null,
"peak_charge": null,
"peak_kwh": null
}
]
{
"errors": "Meter not found"
}
Show a raw datum for a meter
/api/v1/wego_pro/meters/{id}/raw_data/{id}
Show a single raw datum for a meter.
{
"id": 1,
"delivery_charge": "100.0",
"end_date": "2012-03-04",
"fuel_charge": null,
"total_charge": "500.0",
"start_date": "2012-02-01",
"gallons": null,
"kwh": "29.2997363023733",
"btu": 100000,
"demand_charge": null,
"demand_kw": null,
"fixed_charge": "80.0",
"late_charge": null,
"off_peak_charge": null,
"off_peak_kwh": null,
"peak_charge": null,
"peak_kwh": null
}
Create a raw datum for a meter
/api/v1/wego_pro/meters/{id}/raw_data
You create a raw datum by specifying a meter in the url and posting to the raw data end point as a user that is authorized to edit the meter.
Each type of meter (electric, gas, oil, propane, steam, and water) has its own raw datum type with common and specific fields. A request is listed for gas. Schemas for each of the different types of raw datum are listed below.
{
"start_date": "2012-02-01",
"end_date": "2012-03-04",
"btu": "100000",
"total_charge": "300.0",
"delivery_charge": "100.0",
"fixed_charge": "80.0"
}
[
{
"title": "Electric raw datum",
"type": "object",
"required": true,
"properties": {
"start_date": {
"type": "string",
"required": true
},
"end_date": {
"type": "string",
"required": true
},
"kwh": {
"type": "string",
"required": true
},
"total_charge": {
"type": "string",
"required": true
},
"delivery_charge": {
"type": "string",
"required": false
},
"fixed_charge": {
"type": "string",
"required": false
},
"fuel_charge": {
"type": "string",
"required": false
},
"demand_charge": {
"type": "string",
"required": false
},
"peak_charge": {
"type": "string",
"required": false
},
"late_charge": {
"type": "string",
"required": false
},
"off_peak_charge": {
"type": "string",
"required": false
},
"peak_kwh": {
"type": "string",
"required": false
},
"off_peak_kwh": {
"type": "string",
"required": false
},
"demand_kw": {
"type": "string",
"required": false
}
}
},
{
"title": "Gas raw datum",
"type": "object",
"required": true,
"properties": {
"start_date": {
"type": "string",
"required": true
},
"end_date": {
"type": "string",
"required": true
},
"btu": {
"type": "string",
"required": true
},
"total_charge": {
"type": "string",
"required": true
},
"delivery_charge": {
"type": "string",
"required": false
},
"fixed_charge": {
"type": "string",
"required": false
},
"fuel_charge": {
"type": "string",
"required": false
}
}
},
{
"title": "Oil raw datum",
"type": "object",
"required": true,
"properties": {
"start_date": {
"type": "string",
"required": true
},
"end_date": {
"type": "string",
"required": true
},
"btu": {
"type": "string",
"required": true
},
"total_charge": {
"type": "string",
"required": true
},
"delivery_charge": {
"type": "string",
"required": false
},
"fixed_charge": {
"type": "string",
"required": false
},
"fuel_charge": {
"type": "string",
"required": false
},
"gallons": {
"type": "string",
"required": false
}
}
},
{
"title": "Steam raw datum",
"type": "object",
"required": true,
"properties": {
"start_date": {
"type": "string",
"required": true
},
"end_date": {
"type": "string",
"required": true
},
"btu": {
"type": "string",
"required": true
},
"total_charge": {
"type": "string",
"required": true
},
"delivery_charge": {
"type": "string",
"required": false
},
"fixed_charge": {
"type": "string",
"required": false
},
"fuel_charge": {
"type": "string",
"required": false
},
"gallons": {
"type": "string",
"required": false
}
}
},
{
"title": "Water raw datum",
"type": "object",
"required": true,
"properties": {
"start_date": {
"type": "string",
"required": true
},
"end_date": {
"type": "string",
"required": true
},
"total_charge": {
"type": "string",
"required": true
},
"delivery_charge": {
"type": "string",
"required": false
},
"fixed_charge": {
"type": "string",
"required": false
},
"fuel_charge": {
"type": "string",
"required": false
},
"gallons": {
"type": "string",
"required": false
}
}
},
{
"title": "Propane raw datum",
"type": "object",
"required": true,
"properties": {
"start_date": {
"type": "string",
"required": true
},
"end_date": {
"type": "string",
"required": true
},
"btu": {
"type": "string",
"required": true
},
"total_charge": {
"type": "string",
"required": true
},
"delivery_charge": {
"type": "string",
"required": false
},
"fixed_charge": {
"type": "string",
"required": false
},
"fuel_charge": {
"type": "string",
"required": false
},
"gallons": {
"type": "string",
"required": false
}
}
}
]
{
"id": 1,
"delivery_charge": "100.0",
"end_date": "2012-03-04",
"fuel_charge": null,
"total_charge": "500.0",
"start_date": "2012-02-01",
"gallons": null,
"kwh": "29.2997363023733",
"btu": 100000,
"demand_charge": null,
"demand_kw": null,
"fixed_charge": "80.0",
"late_charge": null,
"off_peak_charge": null,
"off_peak_kwh": null,
"peak_charge": null,
"peak_kwh": null
}
{
"errors": "Must specify usage or total cost"
}
Update a raw datum for a meter
/api/v1/wego_pro/meters/{id}/raw_data/{id}
In order to update a raw datum it is necessary to specify both the meter id and raw datum id in the PUT request url. The schema is the same for creating and updating a raw datum. Manually entered raw data may be updated by the automatic importer if a utility login has been created for a meter.
{
"start_date": "2012-02-01",
"end_date": "2012-03-04",
"btu": "100000",
"total_charge": "300.0",
"delivery_charge": "100.0",
"fixed_charge": "80.0"
}
[
{
"title": "Electric raw datum",
"type": "object",
"required": true,
"properties": {
"start_date": {
"type": "string",
"required": true
},
"end_date": {
"type": "string",
"required": true
},
"kwh": {
"type": "string",
"required": true
},
"total_charge": {
"type": "string",
"required": true
},
"delivery_charge": {
"type": "string",
"required": false
},
"fixed_charge": {
"type": "string",
"required": false
},
"fuel_charge": {
"type": "string",
"required": false
},
"demand_charge": {
"type": "string",
"required": false
},
"peak_charge": {
"type": "string",
"required": false
},
"late_charge": {
"type": "string",
"required": false
},
"off_peak_charge": {
"type": "string",
"required": false
},
"peak_kwh": {
"type": "string",
"required": false
},
"off_peak_kwh": {
"type": "string",
"required": false
},
"demand_kw": {
"type": "string",
"required": false
}
}
},
{
"title": "Gas raw datum",
"type": "object",
"required": true,
"properties": {
"start_date": {
"type": "string",
"required": true
},
"end_date": {
"type": "string",
"required": true
},
"btu": {
"type": "string",
"required": true
},
"total_charge": {
"type": "string",
"required": true
},
"delivery_charge": {
"type": "string",
"required": false
},
"fixed_charge": {
"type": "string",
"required": false
},
"fuel_charge": {
"type": "string",
"required": false
}
}
},
{
"title": "Oil raw datum",
"type": "object",
"required": true,
"properties": {
"start_date": {
"type": "string",
"required": true
},
"end_date": {
"type": "string",
"required": true
},
"btu": {
"type": "string",
"required": true
},
"total_charge": {
"type": "string",
"required": true
},
"delivery_charge": {
"type": "string",
"required": false
},
"fixed_charge": {
"type": "string",
"required": false
},
"fuel_charge": {
"type": "string",
"required": false
},
"gallons": {
"type": "string",
"required": false
}
}
},
{
"title": "Steam raw datum",
"type": "object",
"required": true,
"properties": {
"start_date": {
"type": "string",
"required": true
},
"end_date": {
"type": "string",
"required": true
},
"btu": {
"type": "string",
"required": true
},
"total_charge": {
"type": "string",
"required": true
},
"delivery_charge": {
"type": "string",
"required": false
},
"fixed_charge": {
"type": "string",
"required": false
},
"fuel_charge": {
"type": "string",
"required": false
},
"gallons": {
"type": "string",
"required": false
}
}
},
{
"title": "Water raw datum",
"type": "object",
"required": true,
"properties": {
"start_date": {
"type": "string",
"required": true
},
"end_date": {
"type": "string",
"required": true
},
"total_charge": {
"type": "string",
"required": true
},
"delivery_charge": {
"type": "string",
"required": false
},
"fixed_charge": {
"type": "string",
"required": false
},
"fuel_charge": {
"type": "string",
"required": false
},
"gallons": {
"type": "string",
"required": false
}
}
},
{
"title": "Propane raw datum",
"type": "object",
"required": true,
"properties": {
"start_date": {
"type": "string",
"required": true
},
"end_date": {
"type": "string",
"required": true
},
"btu": {
"type": "string",
"required": true
},
"total_charge": {
"type": "string",
"required": true
},
"delivery_charge": {
"type": "string",
"required": false
},
"fixed_charge": {
"type": "string",
"required": false
},
"fuel_charge": {
"type": "string",
"required": false
},
"gallons": {
"type": "string",
"required": false
}
}
}
]
{
"id": 1,
"delivery_charge": "100.0",
"end_date": "2012-03-04",
"fuel_charge": null,
"total_charge": "500.0",
"start_date": "2012-02-01",
"gallons": null,
"kwh": "29.2997363023733",
"btu": 100000,
"demand_charge": null,
"demand_kw": null,
"fixed_charge": "80.0",
"late_charge": null,
"off_peak_charge": null,
"off_peak_kwh": null,
"peak_charge": null,
"peak_kwh": null
}
{
"errors": "Must specify usage or total cost"
}
Destroy a raw datum
/api/v1/wego_pro/meters/{id}/raw_data/{id}
This will destroy a raw datum for a meter that the authorized user has edit access to. The server will respond with status code 204 with no body if the datum is succesfully destroyed. If the datum is not found the server will respond with a 404.
Developments
List developments
/api/v1/wego_pro/users/{username}/developments
Get a list of developments associated with the specified WegoWise user account.
[
{
"buildings_count": 112,
"covered_parking_sqft": null,
"electric_meters_count": 9,
"draft_buildings_count": 4,
"gas_meters_count": 10,
"id": 1,
"irrigated_sqft": 99999,
"name": "Shady Acres",
"n_apartments": 42,
"n_bedrooms": 89,
"oil_meters_count": 11,
"partially_covered_parking_sqft": null,
"propane_meters_count": 13,
"sqft": 91234,
"steam_meters_count": 12,
"uncovered_parking_sqft": null,
"water_meters_count": 8
},
{
"buildings_count": 412,
"covered_parking_sqft": null,
"electric_meters_count": 91,
"draft_buildings_count": 44,
"gas_meters_count": 100,
"id": 2,
"irrigated_sqft": null,
"name": "Tuscan Meadows",
"n_apartments": 43,
"n_bedrooms": 99,
"oil_meters_count": 110,
"partially_covered_parking_sqft": null,
"propane_meters_count": 130,
"sqft": 310001,
"steam_meters_count": 120,
"uncovered_parking_sqft": null,
"water_meters_count": 81
}
]
{
"errors": "User not found"
}
List developments
/api/v1/wego_pro/users/developments
Get a list of developments associated with the authenticated user's account.
[
{
"buildings_count": 112,
"covered_parking_sqft": null,
"electric_meters_count": 9,
"draft_buildings_count": 4,
"gas_meters_count": 10,
"id": 1,
"irrigated_sqft": 99999,
"name": "Shady Acres",
"n_apartments": 42,
"n_bedrooms": 89,
"oil_meters_count": 11,
"partially_covered_parking_sqft": null,
"propane_meters_count": 13,
"sqft": 91234,
"steam_meters_count": 12,
"uncovered_parking_sqft": null,
"water_meters_count": 8
},
{
"buildings_count": 412,
"covered_parking_sqft": null,
"electric_meters_count": 91,
"draft_buildings_count": 44,
"gas_meters_count": 100,
"id": 2,
"irrigated_sqft": null,
"name": "Tuscan Meadows",
"n_apartments": 43,
"n_bedrooms": 99,
"oil_meters_count": 110,
"partially_covered_parking_sqft": null,
"propane_meters_count": 130,
"sqft": 310001,
"steam_meters_count": 120,
"uncovered_parking_sqft": null,
"water_meters_count": 81
}
]
Create development
/api/v1/wego_pro/developments
Create a development
Developers may wish to use the JSON Schema Lint website to validate requests against the schema defined below.
{
"name": "My Development",
"manager": "John Smith",
"legal_owner": "Jane Doe",
"irrigated_sqft": 5000
}
{
"type": "object",
"required": true,
"properties": {
"name": {
"type": "string",
"required": true
},
"manager": {
"type": "string",
"required": true
},
"legal_owner": {
"type": "string",
"required": true
},
"irrigated_sqft": {
"type": "integer",
"required": false
},
"covered_parking_sqft": {
"type": "integer",
"required": false
},
"partially_covered_parking_sqft": {
"type": "integer",
"required": false
},
"uncovered_parking_sqft": {
"type": "integer",
"required": false
}
}
}
{
"id": 1,
"buildings_count": 0,
"covered_parking_sqft": null,
"electric_meters_count": 0,
"draft_buildings_count": 0,
"gas_meters_count": 0,
"irrigated_sqft": 5000,
"legal_owner": "Jane Doe",
"manager": "John Smith",
"name": "My Development",
"n_apartments": null,
"n_bedrooms": null,
"oil_meters_count": 0,
"partially_covered_parking_sqft": null,
"propane_meters_count": 0,
"sqft": null,
"steam_meters_count": 0,
"uncovered_parking_sqft": null,
"water_meters_count": 0
}
{
"errors": "Legal owner can't be blank"
}
Update development
/api/v1/wego_pro/developments/{id}
Update a development
The schema is the same as for creation.
{
"id": 1,
"buildings_count": 0,
"covered_parking_sqft": null,
"electric_meters_count": 0,
"draft_buildings_count": 0,
"gas_meters_count": 0,
"irrigated_sqft": 5000,
"legal_owner": "Jane Doe",
"manager": "John Smith",
"name": "My Updated Development",
"n_apartments": null,
"n_bedrooms": null,
"oil_meters_count": 0,
"partially_covered_parking_sqft": null,
"propane_meters_count": 0,
"sqft": null,
"steam_meters_count": 0,
"uncovered_parking_sqft": null,
"water_meters_count": 0
}
{
"errors": "Legal owner can't be blank"
}
Destroy a development
/api/v1/wego_pro/developments/{id}
This will destroy a development owned by the authorized user. The server will respond with status code 204 with no body if the development is succesfully destroyed. If the development is not found the server will respond with a 404.
It is important to note that destroying a development cascades. Any buildings, associated apartments, meters and data will be destroyed as well.
Meters
Meters by user
/api/v1/wego_pro/users/{username}/meters
Get a list of meters associated with a given WegoWise user.
[
{
"account_number": "78734039A",
"id": 1,
"data_type": "Gas",
"tenant_pays": false,
"buildings_count": 2,
"coverage": "all",
"nickname": null,
"notes": "Some notes",
"scope": "BuildingMeter",
"utility_company":
{
"name": "NSTAR"
}
},
{
"account_number": "78734039B",
"id": 2,
"data_type": "Gas",
"tenant_pays": false,
"buildings_count": 1,
"coverage": "common",
"nickname": null,
"notes": "Some notes",
"scope": "BuildingMeter",
"utility_company":
{
"name": "NSTAR"
}
}
]
{
"errors": "User not found"
}
Meters by apartment
/api/v1/wego_pro/apartments/{id}/meters
Get a list of meters linked to the specified apartment.
[
{
"account_number": "78734039A",
"id": 1,
"data_type": "Gas",
"tenant_pays": false,
"buildings_count": 1,
"coverage": "apartment",
"nickname": null,
"notes": "Some notes",
"scope": "ApartmentMeter",
"utility_company":
{
"name": "NSTAR"
}
},
{
"account_number": "78734039B",
"id": 2,
"data_type": "Gas",
"tenant_pays": false,
"buildings_count": 1,
"coverage": "apartment",
"nickname": "Water heater meter",
"notes": "Some notes",
"scope": "ApartmentMeter",
"utility_company":
{
"name": "NSTAR"
}
}
]
{
"errors": "Apartment not found"
}
Meters by area
/api/v1/wego_pro/areas/{id}/meters
Get a list of meters for a given commercial building area.
[
{
"account_number": "78734039A",
"id": 1,
"data_type": "Gas",
"tenant_pays": false,
"buildings_count": 1,
"coverage": "area",
"nickname": null,
"notes": "Some notes",
"scope": "AreaMeter",
"utility_company":
{
"name": "NSTAR"
}
},
{
"account_number": "78734039B",
"id": 2,
"data_type": "Gas",
"tenant_pays": false,
"buildings_count": 1,
"coverage": "area",
"nickname": null,
"notes": "Some notes",
"scope": "AreaMeter",
"utility_company":
{
"name": "NSTAR"
}
}
]
{
"errors": "Area not found"
}
Meters by building
/api/v1/wego_pro/buildings/{id}/meters
Get a list of meters for a given building.
[
{
"account_number": "78734039A",
"id": 1,
"data_type": "Gas",
"tenant_pays": false,
"buildings_count": 2,
"coverage": "all",
"nickname": null,
"notes": "Some notes",
"scope": "BuildingMeter",
"utility_company":
{
"name": "NSTAR"
}
},
{
"account_number": "78734039B",
"id": 2,
"data_type": "Gas",
"tenant_pays": false,
"buildings_count": 1,
"coverage": "common",
"nickname": null,
"notes": "Some notes",
"scope": "BuildingMeter",
"utility_company":
{
"name": "NSTAR"
}
}
]
{
"errors": "Building not found"
}
Meters by development
/api/v1/wego_pro/developments/{id}/meters
Get a list of meters for a given development. This would include any building, apartment or commercial building area meters defined for structures within that development.
[
{
"account_number": "78734039A",
"id": 1,
"data_type": "Gas",
"tenant_pays": false,
"buildings_count": 2,
"coverage": "all",
"nickname": null,
"notes": "Some notes",
"scope": "BuildingMeter",
"utility_company":
{
"name": "NSTAR"
}
},
{
"account_number": "78734039B",
"id": 2,
"data_type": "Gas",
"tenant_pays": false,
"buildings_count": 1,
"coverage": "common",
"nickname": null,
"notes": "Some notes",
"scope": "BuildingMeter",
"utility_company":
{
"name": "NSTAR"
}
}
]
{
"errors": "Property not found"
}
View meter
/api/v1/wego_pro/meters/{id}
Get information about a meter.
{
"account_number": "78734039A",
"id": 1,
"data_type": "Gas",
"tenant_pays": false,
"buildings_count": 2,
"coverage": "all",
"nickname": "New meter",
"notes": "Some notes",
"scope": "BuildingMeter",
"utility_company":
{
"name": "NSTAR"
}
}
{
"errors": "Meter not found"
}
Create building meter
/api/v1/wego_pro/buildings/{id}/meters
Create a meter for a building that the authorized user has edit access to. When a username and password are provided for a utility company that supports imports a utility login will be created automatically for the meter and data will be imported.
Note: Either utility_company_id or other_utility_company must be specified. A list of utility companies can be found using the public utility companies end point.
{
"account_number": "123456789",
"utility_company_id": 231,
"username": "jane_smith",
"password": "pasword123",
"coverage": "all",
"n_buildings": 1,
"data_type": "Gas",
"nickname": "New meter"
}
{
"type": "object",
"required": true,
"properties": {
"account_number": {
"type": "string",
"required": true
},
"data_type": {
"enum": [
"Electric",
"Gas",
"Oil",
"Water",
"Total_energy"
]
},
"coverage": {
"enum": [
"all",
"common"
]
},
"n_buildings": {
"type": "integer",
"required": true
},
"nickname": {
"type": "string",
"required": false
},
"notes": {
"type": "string",
"required": false
},
"username": {
"type": "string"
},
"password": {
"type": "string"
},
"utility_company_id": {
"type": "string"
},
"other_utility_company": {
"type": "string"
}
}
}
{
"buildings_count": 1,
"coverage": "all",
"data_type": "Gas",
"id": 1,
"scope": "BuildingMeter",
"notes": null,
"nickname": "New meter",
"utility_company":
{
"id": 1,
"name": "National Grid"
}
}
{
"errors": "Account number is invalid"
}
- sf_detached:
- Detached home (not connected to any other buildings)
- sf_attached:
- Townhouse / Row house (shares wall(s) with another building)
- apt_condo:
- Apartment / Condo
- mobile_home:
- Mobile home
- multifamily:
- Multi-family home
- lowrise:
- Low-rise / garden-style apartment building
- midrise:
- Mid-rise apartment building
- highrise:
- High-rise apartment building
- wood_steel:
- Wood or steel frame
- concrete:
- Solid concrete
- masonry:
- Masonry (load-bearing)
- modular:
- Modular
- sips:
- Structurally insulated panels (SIPS)
- other:
- Other
- window_ac:
- Window AC
- sleeve:
- Room AC in sleeve (through wall)
- mini_split:
- Ductless mini-split
- ptac:
- PTAC unit
- central:
- Ducted central AC (Outdoor condenser)
- rooftop:
- Packaged rooftop cooling system
- ground_heat_pump:
- Ground-source heat pump
- tower_heat_pump:
- Cooling tower with heat pumps
- air_chiller:
- Air-cooled chiller
- water_chiller:
- Water-cooled chiller (Cooling tower)
- none:
- None
- other:
- Other
- furnace:
- Furnace
- h_e_furnace:
- Furnace (High-efficiency condensing)
- steam_boiler:
- Boiler (Steam)
- hot_water_boiler:
- Boiler (Hot water)
- h_e_boiler:
- Boiler (High-efficiency condensing)
- apt_heat_pumps:
- Boiler (Heat pumps in apartments)
- ground_heat_pump:
- Heat pump (Ground-source)
- air_heat_pump:
- Heat pump (Air-source)
- hot_water:
- Hot water heater
- h_e_hot_water:
- Hot water heater (High-efficiency condensing)
- baseboard:
- Electric baseboard
- ptac:
- PTAC units
- other:
- Other
- indirect_with_heat:
- Indirect hot water tank off boiler (Heat & DHW)
- indirect_boiler:
- Indirect hot water tank off dedicated boiler
- tankless_coil:
- Tankless coil in boiler
- stand_alone:
- Stand-alone storage water heater
- on_demand:
- On-demand/Instantaneous
- cogen:
- Cogeneration
- other:
- Other
- elderly:
- Elderly
- student:
- Students
- family:
- Families with children
- other:
- Mixed/None of the above
- Electric:
- Electric dryers
- Gas:
- Gas dryers
- none:
- Not heated
- electric:
- Electric heated
- gas:
- Gas heated
- solar:
- Solar panel heating
Create apartment meter
/api/v1/wego_pro/apartments/{id}/meters
Create a meter for an apartment that the authorized user has edit access to. When a username and password are provided for a utility company that supports imports a utility login will be created automatically for the and data will be imported.
Note: Either utility_company_id or other_utility_company must be specified. A list of utility companies can be found using the public utility companies end point.
{
"account_number": "123456789",
"utility_company_id": 231,
"username": "jane_smith",
"password": "pasword123",
"data_type": "Gas",
"tenant_pays": false
}
{
"type": "object",
"required": true,
"properties": {
"account_number": {
"type": "string",
"required": true
},
"tenant_pays": {
"type": "boolean",
"required": true
},
"data_type": {
"enum": [
"Electric",
"Gas",
"Oil",
"Water",
"Total_energy"
]
},
"nickname": {
"type": "string",
"required": false
},
"notes": {
"type": "string",
"required": false
},
"username": {
"type": "string"
},
"password": {
"type": "string"
},
"utility_company_id": {
"type": "string"
},
"other_utility_company": {
"type": "string"
}
}
}
{
"buildings_count": 1,
"coverage": "apartment",
"data_type": "Gas",
"id": 1,
"scope": "ApartmentMeter",
"notes": null,
"utility_company":
{
"id": 1,
"name": "National Grid"
},
"tenant_pays": false
}
{
"errors": "Account number is invalid"
}
- sf_detached:
- Detached home (not connected to any other buildings)
- sf_attached:
- Townhouse / Row house (shares wall(s) with another building)
- apt_condo:
- Apartment / Condo
- mobile_home:
- Mobile home
- multifamily:
- Multi-family home
- lowrise:
- Low-rise / garden-style apartment building
- midrise:
- Mid-rise apartment building
- highrise:
- High-rise apartment building
- wood_steel:
- Wood or steel frame
- concrete:
- Solid concrete
- masonry:
- Masonry (load-bearing)
- modular:
- Modular
- sips:
- Structurally insulated panels (SIPS)
- other:
- Other
- window_ac:
- Window AC
- sleeve:
- Room AC in sleeve (through wall)
- mini_split:
- Ductless mini-split
- ptac:
- PTAC unit
- central:
- Ducted central AC (Outdoor condenser)
- rooftop:
- Packaged rooftop cooling system
- ground_heat_pump:
- Ground-source heat pump
- tower_heat_pump:
- Cooling tower with heat pumps
- air_chiller:
- Air-cooled chiller
- water_chiller:
- Water-cooled chiller (Cooling tower)
- none:
- None
- other:
- Other
- furnace:
- Furnace
- h_e_furnace:
- Furnace (High-efficiency condensing)
- steam_boiler:
- Boiler (Steam)
- hot_water_boiler:
- Boiler (Hot water)
- h_e_boiler:
- Boiler (High-efficiency condensing)
- apt_heat_pumps:
- Boiler (Heat pumps in apartments)
- ground_heat_pump:
- Heat pump (Ground-source)
- air_heat_pump:
- Heat pump (Air-source)
- hot_water:
- Hot water heater
- h_e_hot_water:
- Hot water heater (High-efficiency condensing)
- baseboard:
- Electric baseboard
- ptac:
- PTAC units
- other:
- Other
- indirect_with_heat:
- Indirect hot water tank off boiler (Heat & DHW)
- indirect_boiler:
- Indirect hot water tank off dedicated boiler
- tankless_coil:
- Tankless coil in boiler
- stand_alone:
- Stand-alone storage water heater
- on_demand:
- On-demand/Instantaneous
- cogen:
- Cogeneration
- other:
- Other
- elderly:
- Elderly
- student:
- Students
- family:
- Families with children
- other:
- Mixed/None of the above
- Electric:
- Electric dryers
- Gas:
- Gas dryers
- none:
- Not heated
- electric:
- Electric heated
- gas:
- Gas heated
- solar:
- Solar panel heating
Create area meter
/api/v1/wego_pro/areas/{id}/meters
Create a meter for an area that the authorized user has edit access to. When a username and password are provided for a utility company that supports imports a utility login will be created automatically for the and data will be imported.
Note: Either utility_company_id or other_utility_company must be specified. A list of utility companies can be found using the public utility companies end point.
{
"account_number": "123456789",
"utility_company_id": 231,
"username": "jane_smith",
"password": "pasword123",
"data_type": "Gas",
"tenant_pays": false
}
{
"type": "object",
"required": true,
"properties": {
"account_number": {
"type": "string",
"required": true
},
"tenant_pays": {
"type": "boolean",
"required": true
},
"data_type": {
"enum": [
"Electric",
"Gas",
"Oil",
"Water",
"Total_energy"
]
},
"nickname": {
"type": "string",
"required": false
},
"notes": {
"type": "string",
"required": false
},
"username": {
"type": "string"
},
"password": {
"type": "string"
},
"utility_company_id": {
"type": "string"
},
"other_utility_company": {
"type": "string"
}
}
}
{
"buildings_count": 1,
"coverage": "all",
"data_type": "Gas",
"id": 1,
"scope": "AreaMeter",
"nickname": null,
"notes": null,
"utility_company":
{
"id": 1,
"name": "National Grid"
},
"tenant_pays": false
}
{
"errors": "Account number is invalid"
}
- sf_detached:
- Detached home (not connected to any other buildings)
- sf_attached:
- Townhouse / Row house (shares wall(s) with another building)
- apt_condo:
- Apartment / Condo
- mobile_home:
- Mobile home
- multifamily:
- Multi-family home
- lowrise:
- Low-rise / garden-style apartment building
- midrise:
- Mid-rise apartment building
- highrise:
- High-rise apartment building
- wood_steel:
- Wood or steel frame
- concrete:
- Solid concrete
- masonry:
- Masonry (load-bearing)
- modular:
- Modular
- sips:
- Structurally insulated panels (SIPS)
- other:
- Other
- window_ac:
- Window AC
- sleeve:
- Room AC in sleeve (through wall)
- mini_split:
- Ductless mini-split
- ptac:
- PTAC unit
- central:
- Ducted central AC (Outdoor condenser)
- rooftop:
- Packaged rooftop cooling system
- ground_heat_pump:
- Ground-source heat pump
- tower_heat_pump:
- Cooling tower with heat pumps
- air_chiller:
- Air-cooled chiller
- water_chiller:
- Water-cooled chiller (Cooling tower)
- none:
- None
- other:
- Other
- furnace:
- Furnace
- h_e_furnace:
- Furnace (High-efficiency condensing)
- steam_boiler:
- Boiler (Steam)
- hot_water_boiler:
- Boiler (Hot water)
- h_e_boiler:
- Boiler (High-efficiency condensing)
- apt_heat_pumps:
- Boiler (Heat pumps in apartments)
- ground_heat_pump:
- Heat pump (Ground-source)
- air_heat_pump:
- Heat pump (Air-source)
- hot_water:
- Hot water heater
- h_e_hot_water:
- Hot water heater (High-efficiency condensing)
- baseboard:
- Electric baseboard
- ptac:
- PTAC units
- other:
- Other
- indirect_with_heat:
- Indirect hot water tank off boiler (Heat & DHW)
- indirect_boiler:
- Indirect hot water tank off dedicated boiler
- tankless_coil:
- Tankless coil in boiler
- stand_alone:
- Stand-alone storage water heater
- on_demand:
- On-demand/Instantaneous
- cogen:
- Cogeneration
- other:
- Other
- elderly:
- Elderly
- student:
- Students
- family:
- Families with children
- other:
- Mixed/None of the above
- Electric:
- Electric dryers
- Gas:
- Gas dryers
- none:
- Not heated
- electric:
- Electric heated
- gas:
- Gas heated
- solar:
- Solar panel heating
Update meter
/api/v1/wego_pro/meters/{id}
Update a meter that can be edited by the authorized user.
{
"notes": "Some notes"
}
{
"buildings_count": 1,
"coverage": "all",
"data_type": "Gas",
"id": 1,
"scope": "BuildingMeter",
"nickname": null,
"notes": null,
"utility_company":
{
"id": 1,
"name": "National Grid"
}
}
{
"errors": "Coverage is invalid"
}
Destroy a meter
/api/v1/wego_pro/meters/{id}
This will destroy a meter that the authorized user has edit access to. The server will respond with status code 204 with no body if the meter is succesfully destroyed. If the meter is not found the server will respond with a 404.
It is important to note that destroying a meter cascades. Any associated data will be destroyed as well.
Link a meter
/api/v1/wego_pro/buildings/{id}/link_meter
This end point links a meter with an additional building. The meter must already belong to a building that resides in the same development and the difference between the meter n_buildings and building_count must be at least one. The authorized user must have edit access for both meter and building.
{
"meter_id": 1
}
{
"buildings_count": 1,
"coverage": "all",
"data_type": "Gas",
"id": 1,
"scope": "BuildingMeter",
"nickname": null,
"notes": null,
"utility_company":
{
"id": 1,
"name": "National Grid"
}
}
{
"errors": "Meter cannot be linked to this structure"
}
Unlink a meter
/api/v1/wego_pro/buildings/{id}/unlink_meter
This will unlink a meter and a building. The server will respond with status code 204 with no body if the meter is unlinked succesfully. If the meter is not found the server will respond with a 404. The authorized user must have edit access to both the meter and the building.
{
"meter_id": 1
}
Meter Structures
List parent structures for a meter
/api/v1/wego_pro/meters/{id}/structures
Get a list of structures associated with the given meter. Parent structures for an apartment meter, for example, would include the apartment, the building in which the apartment is located, and the development that contains the apartment building.
[
{
"name": "Northwest Apartments",
"id": 230,
"sqft": 55000,
"type": "Development"
},
{
"name": "West Building",
"id": 1245,
"sqft": 18000,
"type": "Building"
},
{
"name": "Unit 12",
"id": 4049,
"sqft": 1000,
"type": "Apartment"
}
]
{
"errors": "Meter not found"
}
Upgrade Categories
List upgrade categories
/api/v1/wego_pro/upgrade_categories
Lists categories that may be assigned to a building upgrade.
[
{
"id": 1,
"name": "HVAC",
"assignable": false,
"description": null,
"parent_id": null
},
{
"id": 2,
"name": "Heating",
"assignable": false,
"description": "Replacement of heating system, insulating of heating pipes, air sealing heating ductwork, retro-commissioning",
"parent_id": 1
},
{
"id": 3,
"name": "Mechanical Equipment",
"assignable": true,
"description": null,
"parent_id": 2
},
{
"id": 4,
"name": "Fuel Switch",
"assignable": true,
"description": null,
"parent_id": 2
}
]
Building Upgrades
List building upgrades
/api/v1/wego_pro/buildings/{id}/upgrades
Get a list of upgrades that have been defined for a building.
[
{
"id": 1,
"building_id": 1,
"name": "New Common area lighting",
"start_date": "2014-05-01",
"end_date": "2014-05-01",
"before": "Older T12 and CFLs Were in the Common Areas",
"after": "LED Installed in Common Areas and Basement",
"cost": "100.0",
"expected_savings": 12,
"categories": [{ "category_id": 321,
"name": "Lighting" },
{ "category_id": 462,
"name": "Common" }]
},
{
"id": 2,
"building_id": 1,
"name": "Insulation",
"start_date": "2014-05-01",
"end_date": "2014-05-01",
"before": "No exterior insulation",
"after": "Blown in cellulose insulation",
"cost": "100.0",
"expected_savings": 12,
"categories": [{ "category_id": 235,
"name": "Building envelope" },
{ "category_id": 567,
"name": "Insulation" }]
}
]
{
"errors": "Building not found"
}
Show a building upgrade
api/v1/wego_pro/building_upgrades/{id}
Show an upgrade that has been defined for a building. An upgrade represents an improvement to a building that has been made during a defined time period. Wegowise uses building upgrades to help analyze the affect an upgrade has on energy user/carbon footprint.
{
"id": 1,
"building_id": 1,
"name": "New Common area lighting",
"start_date": "2014-05-01",
"end_date": "2014-05-01",
"before": "Older T12 and CFLs Were in the Common Areas",
"after": "LED Installed in Common Areas and Basement",
"cost": "100.0",
"expected_savings": 12,
"categories": [{ "category_id": 321,
"name": "Lighting" },
{ "category_id": 462,
"name": "Common" }]
}
{
"errors": "Building upgrade not found"
}
Create a building upgrade
/api/v1/wego_pro/buildings/{id}/upgrades
Creates an upgrade for a building.
Upgrades may be categorized by including an array of category objects. Categories can be hierarchical, i.e. Building Envelope -> Insulation. It is only necessary to apply the specific category, in this case Insulation, any parent categories will be automatically added. A list of upgrade categories can be retrieved using the Upgrade Categories end point.
{
"end_date": "2014-05-01",
"before": "Older T12 and CFLs Were in the Common Areas",
"after": "LED Installaed in Common Areas and Basement",
"name": "New Common area lighting",
"cost": "100.00",
"expected_savings": "12",
"start_date": "2014-05-01",
"categories":
[
{
"category_id": 3
}
]
}
{
"type": "object",
"required": true,
"properties": {
"building_id": {
"type": "integer",
"required": true
},
"start_date": {
"type": "date",
"required": true
},
"end_date": {
"type": "date",
"required": true
},
"before": {
"type": "string",
"required": true
},
"after": {
"type": "string",
"required": true
},
"name": {
"type": "string",
"required": true
},
"cost": {
"type": "decimal"
},
"expected_savings": {
"type": "integer"
},
"categories": {
"type": "array",
"required": false,
"items": {
"type": "object",
"properties": {
"category_id": {
"type": "integer",
"required": true
}
}
}
}
}
}
{
"id": 1,
"building_id": 1,
"name": "New Common area lighting",
"start_date": "2014-05-01",
"end_date": "2014-05-01",
"before": "Older T12 and CFLs Were in the Common Areas",
"after": "LED Installed in Common Areas and Basement",
"cost": "100.0",
"expected_savings": 12,
"categories": [{ "category_id": 321,
"name": "Lighting" },
{ "category_id": 462,
"name": "Common" }]
}
{
"errors": "Must specify start date"
}
Update building upgrade
api/v1/wego_pro/building_upgrades/{id}
Update a building upgrade for a building that can be edited by the authorized user.
When applying a category it is necessary to list all categories for the upgrade. For example, if an upgrade already has category 3 applied and category 4 is to be added it is necessary to include both category 3 and 4 in the update request.
{
"before": "Older Incandescents Were in the Common Areas",
"categories":
[
{
"category_id": 3
},
{
"category_id": 4
}
]
}
{
"id": 1,
"building_id": 1,
"name": "New Common area lighting",
"start_date": "2014-05-01",
"end_date": "2014-05-01",
"before": "Older T12 and CFLs Were in the Common Areas",
"after": "LED Installed in Common Areas and Basement",
"cost": "100.0",
"expected_savings": 12,
"categories": [{ "category_id": 321,
"name": "Lighting" },
{ "category_id": 462,
"name": "Common" }]
}
{
"errors": "Must specify start date"
}
Destroy a building upgrade
api/v1/wego_pro/building_upgrades/{id}
This will destroy a building upgrade for a building owned by the authorized user. The server will respond with status code 204 with no body if the building upgrade is succesfully destroyed. If the building or upgrade is not found the server will respond with a 404.
User
Show user information
/api/v1/wego_pro/user
Show information about the authenticated user.
{
"id": 3472,
"username": "api_user",
"phone": "(123) 456-1234",
"first_name": "Joe",
"last_name": "Schmoe",
"organization": ""
}
{
"errors": "User not found"
}
Organizations
List user organizations
/api/v1/wego_pro/organizations
Lists the organization that a user belongs to. Note that a user may only be added to an organization via the WegoWise website and since the organization listed under the owner is entered when the user is created it may not match.
[
{
"id": 2344,
"name": "Housing Analysis",
"owner" :
{
"id": 1,
"username": "jpsmith",
"phone": "123-555-1212",
"person_id": 1,
"first_name": "Joe",
"last_name": "Smith",
"organization": "WW Property Management"
}
},
{
"id": 352,
"name": "Housing Management",
"owner":
{
"id": 3,
"username": "janedoe",
"phone": null,
"person_id": 3,
"first_name": "Jane",
"last_name": "Doe",
"organization": "Celestron Inc."
}
}
]
Lists an organization's members
/api/v1/wego_pro/organizations/{id}/members
Lists the members of an organization if the authenticated user is an admin or the owner of an organization. Note that the listed user's organization is the name of the organization entered when the user was created and it may not match.
[
{
"id": 456,
"role": "admin",
"access": "edit",
"organization_id": 571,
"user":
{
"id": 3472,
"username": "api_user",
"phone": "(123) 456-1234",
"first_name": "Joe",
"last_name": "Schmoe",
"organization": ""
}
},
{
"id": 9245,
"role": "owner",
"access": "edit",
"organization_id": 723,
"user":
{
"id": 456,
"username": "anotheruser",
"phone": "(123) 456-1234",
"first_name": "Jane",
"last_name": "Doe",
"organization": ""
}
}
]
Utility Companies
List utility companies
/api/v1/utility_companies
WegoWise has the ability to automatically import data from a number of utility providers. This endpoint returns a list of the companies that WegoWise can currently import from.
[
{
"id": 23,
"data_type": "Gas",
"name": "Con Edison",
"short_name": "ConEd",
"state_code": "PA",
"country": "United States",
"currency": "USD"
},
{
"id": 33,
"data_type": "Water",
"name": "Los Angeles Dept. of Water & Power",
"short_name": "LADWP",
"state_code": "CA",
"country": "United States",
"currency": "USD"
},
{
"id": 34,
"data_type": "Electric",
"name": "Los Angeles Dept. of Water & Power",
"short_name": "LADWP",
"state_code": "CA",
"country": "United States",
"currency": "USD"
}
]