Asset categories and the fact keys to use
maintenance.category.list
GET/api/v1/households/{household_id}/queries/maintenance.category.list
- Query
- Rigel runs it
The curated categories with their keys and the spec keys worth knowing for each (use category_key and these keys when adding assets and recording facts), the household's one-off categories, the full catalog of spec keys with units, and the property profile keys.
Parameters#
| Field | Description |
|---|---|
household_idpathstringrequired | The household's ID. |
Response#
200 The answer.
| Field | Description |
|---|---|
curatedarray of objectsrequired | |
curated[].keystringrequired | The category_key to give a command. |
curated[].namestringrequired | The category's name. |
curated[].spec_templatearray of objectsrequired | The spec keys worth knowing for this kind, in display order. |
curated[].spec_template[].keystringrequired | The fact key to record it under. |
curated[].spec_template[].labelstringrequired | The label a person reads. |
curated[].spec_template[].typeone of: number, text, booleanrequired | Whether the value is a number, text or yes/no. |
curated[].spec_template[].unitstring or nullrequired | The unit to store a number in, in snake_case; null for none. |
curated[].spec_template[].hintstring or nullrequired | How to read the value. |
curated[].category_idstring or nullrequired | The household's category record, once an asset has used it. |
curated[].asset_countintegerrequired | Items of this category. |
one_offarray of objectsrequired | |
one_off[].category_idstringrequired | A maintenance category ID, such as cat_01JC0000000000000000000000. |
one_off[].namestringrequired | The one-off category's name. |
one_off[].asset_countintegerrequired | Items of this category. |
spec_fieldsarray of objectsrequired | Every spec key, with its unit. A key means the same in every category. |
spec_fields[].keystringrequired | The fact key to record it under. |
spec_fields[].labelstringrequired | The label a person reads. |
spec_fields[].typeone of: number, text, booleanrequired | Whether the value is a number, text or yes/no. |
spec_fields[].unitstring or nullrequired | The unit to store a number in, in snake_case; null for none. |
spec_fields[].hintstring or nullrequired | How to read the value. |
property_fieldsarray of objectsrequired | The keys for a property's profile facts. |
property_fields[].keystringrequired | The fact key to record it under. |
property_fields[].labelstringrequired | The label a person reads. |
property_fields[].typeone of: number, text, booleanrequired | Whether the value is a number, text or yes/no. |
property_fields[].unitstring or nullrequired | The unit to store a number in, in snake_case; null for none. |
property_fields[].hintstring or nullrequired | How to read the value. |
Errors#
Every error has the same envelope: error.code, error.message, error.details, error.recovery and error.request_id.
| Status | Code | When |
|---|---|---|
400 | validation_failed | A field is missing, misspelled or out of range. details.fields lists each problem. |
401 | unauthenticated | The request has no valid session. |
404 | not_found | The household doesn't exist, or you aren't a member of it. |
Examples#
These are real. Each was recorded from a sample household, the Okafors, running through the whole API when this site was built.
List the kinds of item and the facts to record
curl 'https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/maintenance.category.list' \
-H "Cookie: rigel_session=$RIGEL_SESSION"const response = await fetch("https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/maintenance.category.list", {
headers: {
Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
},
});
const data = await response.json();GET /api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/maintenance.category.list HTTP/1.1
Host: rigel.house
Cookie: rigel_session=<your session>HTTP/1.1 200 OK
Content-Type: application/json
X-Request-Id: req_01M6V9CSZYFWNGTGFCHA40C5FR
{
"curated": [
{
"key": "furnace",
"name": "Furnace",
"spec_template": [
{
"key": "fuel",
"label": "Fuel",
"type": "text",
"unit": null,
"hint": "natural gas, propane, oil, or electric"
},
{
"key": "input_btu",
"label": "Input",
"type": "number",
"unit": "btu_per_hour",
"hint": "heating input"
},
{
"key": "output_btu",
"label": "Output",
"type": "number",
"unit": "btu_per_hour",
"hint": "heating output"
},
{
"key": "afue",
"label": "Efficiency (AFUE)",
"type": "number",
"unit": "percent",
"hint": null
},
{
"key": "stages",
"label": "Stages",
"type": "text",
"unit": null,
"hint": null
},
{
"key": "airflow",
"label": "Airflow",
"type": "number",
"unit": "cfm",
"hint": null
},
{
"key": "width",
"label": "Cabinet width",
"type": "number",
"unit": "in",
"hint": null
},
{
"key": "voltage",
"label": "Voltage",
"type": "number",
"unit": "v",
"hint": "the first if a range or list"
},
{
"key": "filter_size",
"label": "Filter size",
"type": "text",
"unit": null,
"hint": null
}
],
"category_id": "cat_01M6V9CSVCJFP27BZN7X5PGZ0B",
"asset_count": 1
},
{
"key": "boiler",
"name": "Boiler",
"spec_template": [
{
"key": "fuel",
"label": "Fuel",
"type": "text",
"unit": null,
"hint": "natural gas, propane, oil, or electric"
},
{
"key": "input_btu",
"label": "Input",
"type": "number",
"unit": "btu_per_hour",
"hint": "heating input"
},
{
"key": "output_btu",
"label": "Output",
"type": "number",
"unit": "btu_per_hour",
"hint": "heating output"
},
{
"key": "afue",
"label": "Efficiency (AFUE)",
"type": "number",
"unit": "percent",
"hint": null
},
{
"key": "voltage",
"label": "Voltage",
"type": "number",
"unit": "v",
"hint": "the first if a range or list"
}
],
"category_id": null,
"asset_count": 0
},
{
"key": "heat_pump",
"name": "Heat pump",
"spec_template": [
{
"key": "cooling_capacity",
"label": "Cooling capacity",
"type": "number",
"unit": "tons",
"hint": "nominal cooling capacity; 12,000 BTU/h is 1 ton"
},
{
"key": "seer2",
"label": "Cooling efficiency (SEER2)",
"type": "number",
"unit": null,
"hint": null
},
{
"key": "hspf2",
"label": "Heating efficiency (HSPF2)",
"type": "number",
"unit": null,
"hint": null
},
{
"key": "refrigerant",
"label": "Refrigerant",
"type": "text",
"unit": null,
"hint": "such as R-410A or R-454B"
},
{
"key": "voltage",
"label": "Voltage",
"type": "number",
"unit": "v",
"hint": "the first if a range or list"
},
{
"key": "filter_size",
"label": "Filter size",
"type": "text",
"unit": null,
"hint": null
}
],
"category_id": null,
"asset_count": 0
},
{
"key": "air_conditioner",
"name": "Air conditioner",
"spec_template": [
{
"key": "cooling_capacity",
"label": "Cooling capacity",
"type": "number",
"unit": "tons",
"hint": "nominal cooling capacity; 12,000 BTU/h is 1 ton"
},
{
"key": "seer2",
"label": "Efficiency (SEER2)",
"type": "number",
"unit": null,
"hint": null
},
{
"key": "refrigerant",
"label": "Refrigerant",
"type": "text",
"unit": null,
"hint": "such as R-410A or R-454B"
},
{
"key": "voltage",
"label": "Voltage",
"type": "number",
"unit": "v",
"hint": "the first if a range or list"
},
{
"key": "filter_size",
"label": "Filter size",
"type": "text",
"unit": null,
"hint": null
}
],
"category_id": null,
"asset_count": 0
},
{
"key": "thermostat",
"name": "Thermostat",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "water_heater",
"name": "Water heater",
"spec_template": [
{
"key": "fuel",
"label": "Fuel",
"type": "text",
"unit": null,
"hint": "natural gas, propane, oil, or electric"
},
{
"key": "tank_capacity",
"label": "Tank capacity",
"type": "number",
"unit": "gal",
"hint": null
},
{
"key": "input_btu",
"label": "Input",
"type": "number",
"unit": "btu_per_hour",
"hint": "heating input"
},
{
"key": "wattage",
"label": "Element wattage",
"type": "number",
"unit": "w",
"hint": "rated power or heating element wattage"
},
{
"key": "first_hour_rating",
"label": "First hour rating",
"type": "number",
"unit": "gal",
"hint": null
},
{
"key": "uef",
"label": "Efficiency (UEF)",
"type": "number",
"unit": null,
"hint": null
},
{
"key": "anode_rod",
"label": "Anode rod",
"type": "text",
"unit": null,
"hint": null
}
],
"category_id": "cat_01M6V9CSVG3TVM33K52CFH6V3E",
"asset_count": 1
},
{
"key": "water_softener",
"name": "Water softener",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "sump_pump",
"name": "Sump pump",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "electrical_panel",
"name": "Electrical panel",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "generator",
"name": "Generator",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "refrigerator",
"name": "Refrigerator",
"spec_template": [
{
"key": "capacity",
"label": "Total capacity",
"type": "number",
"unit": "cu_ft",
"hint": "interior, drum or cabinet capacity"
},
{
"key": "fresh_food_capacity",
"label": "Fresh food capacity",
"type": "number",
"unit": "cu_ft",
"hint": null
},
{
"key": "freezer_capacity",
"label": "Freezer capacity",
"type": "number",
"unit": "cu_ft",
"hint": null
},
{
"key": "height",
"label": "Height",
"type": "number",
"unit": "in",
"hint": null
},
{
"key": "width",
"label": "Width",
"type": "number",
"unit": "in",
"hint": null
},
{
"key": "depth",
"label": "Depth",
"type": "number",
"unit": "in",
"hint": null
},
{
"key": "voltage",
"label": "Voltage",
"type": "number",
"unit": "v",
"hint": "the first if a range or list"
},
{
"key": "water_filter",
"label": "Water filter",
"type": "text",
"unit": null,
"hint": null
},
{
"key": "ice_maker",
"label": "Ice maker",
"type": "boolean",
"unit": null,
"hint": null
}
],
"category_id": null,
"asset_count": 0
},
{
"key": "range",
"name": "Range",
"spec_template": [
{
"key": "fuel",
"label": "Fuel",
"type": "text",
"unit": null,
"hint": "natural gas, propane, oil, or electric"
},
{
"key": "oven_capacity",
"label": "Oven capacity",
"type": "number",
"unit": "cu_ft",
"hint": null
},
{
"key": "width",
"label": "Width",
"type": "number",
"unit": "in",
"hint": null
},
{
"key": "voltage",
"label": "Voltage",
"type": "number",
"unit": "v",
"hint": "the first if a range or list"
}
],
"category_id": null,
"asset_count": 0
},
{
"key": "dishwasher",
"name": "Dishwasher",
"spec_template": [
{
"key": "place_settings",
"label": "Place settings",
"type": "number",
"unit": null,
"hint": null
},
{
"key": "noise_level",
"label": "Noise level",
"type": "number",
"unit": "dba",
"hint": null
},
{
"key": "width",
"label": "Width",
"type": "number",
"unit": "in",
"hint": null
},
{
"key": "voltage",
"label": "Voltage",
"type": "number",
"unit": "v",
"hint": "the first if a range or list"
}
],
"category_id": "cat_01M6V9CSVHXYSD61W0E42142BW",
"asset_count": 1
},
{
"key": "range_hood",
"name": "Range hood",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "garbage_disposal",
"name": "Garbage disposal",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "washer",
"name": "Washer",
"spec_template": [
{
"key": "capacity",
"label": "Drum capacity",
"type": "number",
"unit": "cu_ft",
"hint": "interior, drum or cabinet capacity"
},
{
"key": "loading",
"label": "Loading",
"type": "text",
"unit": null,
"hint": null
},
{
"key": "voltage",
"label": "Voltage",
"type": "number",
"unit": "v",
"hint": "the first if a range or list"
}
],
"category_id": "cat_01M6V9CSVPCJ2670JSD2W4GJX1",
"asset_count": 2
},
{
"key": "dryer",
"name": "Dryer",
"spec_template": [
{
"key": "capacity",
"label": "Drum capacity",
"type": "number",
"unit": "cu_ft",
"hint": "interior, drum or cabinet capacity"
},
{
"key": "fuel",
"label": "Fuel",
"type": "text",
"unit": null,
"hint": "natural gas, propane, oil, or electric"
},
{
"key": "voltage",
"label": "Voltage",
"type": "number",
"unit": "v",
"hint": "the first if a range or list"
},
{
"key": "vent_size",
"label": "Vent size",
"type": "number",
"unit": "in",
"hint": null
}
],
"category_id": "cat_01M6V9CSVK582SK631HZ9RCPFG",
"asset_count": 1
},
{
"key": "toilet",
"name": "Toilet",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "faucet",
"name": "Faucet",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "smoke_alarm",
"name": "Smoke alarm",
"spec_template": [],
"category_id": "cat_01M6V9CSVNDWVKW30BWF58AT9X",
"asset_count": 1
},
{
"key": "co_alarm",
"name": "Carbon monoxide alarm",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "window",
"name": "Window",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "door",
"name": "Door",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "garage_door",
"name": "Garage door",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "roof",
"name": "Roof",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "gutters",
"name": "Gutters",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "siding",
"name": "Siding",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "deck",
"name": "Deck",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "fence",
"name": "Fence",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "irrigation",
"name": "Irrigation",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "septic_system",
"name": "Septic system",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "well_pump",
"name": "Well pump",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "chimney",
"name": "Chimney",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "fireplace",
"name": "Fireplace",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "dehumidifier",
"name": "Dehumidifier",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "humidifier",
"name": "Humidifier",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "radon_system",
"name": "Radon system",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "microwave",
"name": "Microwave",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "ceiling_fan",
"name": "Ceiling fan",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "pool",
"name": "Pool",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "hot_tub",
"name": "Hot tub",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "lawn_mower",
"name": "Lawn mower",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "snow_blower",
"name": "Snow blower",
"spec_template": [],
"category_id": null,
"asset_count": 0
},
{
"key": "unidentified",
"name": "Not identified yet",
"spec_template": [],
"category_id": null,
"asset_count": 0
}
],
"one_off": [],
"spec_fields": [
{
"key": "fuel",
"label": "Fuel",
"type": "text",
"unit": null,
"hint": "natural gas, propane, oil, or electric"
},
{
"key": "input_btu",
"label": "Input",
"type": "number",
"unit": "btu_per_hour",
"hint": "heating input"
},
{
"key": "output_btu",
"label": "Output",
"type": "number",
"unit": "btu_per_hour",
"hint": "heating output"
},
{
"key": "cooling_capacity",
"label": "Cooling capacity",
"type": "number",
"unit": "tons",
"hint": "nominal cooling capacity; 12,000 BTU/h is 1 ton"
},
{
"key": "afue",
"label": "Efficiency (AFUE)",
"type": "number",
"unit": "percent",
"hint": null
},
{
"key": "seer2",
"label": "Efficiency (SEER2)",
"type": "number",
"unit": null,
"hint": null
},
{
"key": "hspf2",
"label": "Heating efficiency (HSPF2)",
"type": "number",
"unit": null,
"hint": null
},
{
"key": "uef",
"label": "Efficiency (UEF)",
"type": "number",
"unit": null,
"hint": null
},
{
"key": "stages",
"label": "Stages",
"type": "text",
"unit": null,
"hint": null
},
{
"key": "airflow",
"label": "Airflow",
"type": "number",
"unit": "cfm",
"hint": null
},
{
"key": "capacity",
"label": "Capacity",
"type": "number",
"unit": "cu_ft",
"hint": "interior, drum or cabinet capacity"
},
{
"key": "fresh_food_capacity",
"label": "Fresh food capacity",
"type": "number",
"unit": "cu_ft",
"hint": null
},
{
"key": "freezer_capacity",
"label": "Freezer capacity",
"type": "number",
"unit": "cu_ft",
"hint": null
},
{
"key": "oven_capacity",
"label": "Oven capacity",
"type": "number",
"unit": "cu_ft",
"hint": null
},
{
"key": "tank_capacity",
"label": "Tank capacity",
"type": "number",
"unit": "gal",
"hint": null
},
{
"key": "first_hour_rating",
"label": "First hour rating",
"type": "number",
"unit": "gal",
"hint": null
},
{
"key": "height",
"label": "Height",
"type": "number",
"unit": "in",
"hint": null
},
{
"key": "width",
"label": "Width",
"type": "number",
"unit": "in",
"hint": null
},
{
"key": "depth",
"label": "Depth",
"type": "number",
"unit": "in",
"hint": null
},
{
"key": "vent_size",
"label": "Vent size",
"type": "number",
"unit": "in",
"hint": null
},
{
"key": "voltage",
"label": "Voltage",
"type": "number",
"unit": "v",
"hint": "the first if a range or list"
},
{
"key": "amps",
"label": "Current",
"type": "number",
"unit": "a",
"hint": "rated load or full load amps"
},
{
"key": "wattage",
"label": "Wattage",
"type": "number",
"unit": "w",
"hint": "rated power or heating element wattage"
},
{
"key": "refrigerant",
"label": "Refrigerant",
"type": "text",
"unit": null,
"hint": "such as R-410A or R-454B"
},
{
"key": "refrigerant_charge",
"label": "Refrigerant charge",
"type": "number",
"unit": "oz",
"hint": null
},
{
"key": "filter_size",
"label": "Filter size",
"type": "text",
"unit": null,
"hint": null
},
{
"key": "water_filter",
"label": "Water filter",
"type": "text",
"unit": null,
"hint": null
},
{
"key": "ice_maker",
"label": "Ice maker",
"type": "boolean",
"unit": null,
"hint": null
},
{
"key": "place_settings",
"label": "Place settings",
"type": "number",
"unit": null,
"hint": null
},
{
"key": "noise_level",
"label": "Noise level",
"type": "number",
"unit": "dba",
"hint": null
},
{
"key": "loading",
"label": "Loading",
"type": "text",
"unit": null,
"hint": null
},
{
"key": "anode_rod",
"label": "Anode rod",
"type": "text",
"unit": null,
"hint": null
},
{
"key": "manufacture_date",
"label": "Manufacture date",
"type": "text",
"unit": null,
"hint": "YYYY-MM"
}
],
"property_fields": [
{
"key": "property_type",
"label": "Type",
"type": "text",
"unit": null,
"hint": "single-family house, townhouse, condo, cabin…"
},
{
"key": "year_built",
"label": "Year built",
"type": "number",
"unit": null,
"hint": null
},
{
"key": "architectural_style",
"label": "Style",
"type": "text",
"unit": null,
"hint": null
},
{
"key": "construction",
"label": "Construction",
"type": "text",
"unit": null,
"hint": "wood frame, brick, block…"
},
{
"key": "floor_area",
"label": "Floor area",
"type": "number",
"unit": "sq_ft",
"hint": null
},
{
"key": "stories",
"label": "Stories",
"type": "number",
"unit": null,
"hint": null
},
{
"key": "bedrooms",
"label": "Bedrooms",
"type": "number",
"unit": null,
"hint": null
},
{
"key": "bathrooms",
"label": "Bathrooms",
"type": "number",
"unit": null,
"hint": "half baths count 0.5"
},
{
"key": "lot_size",
"label": "Lot size",
"type": "number",
"unit": "acres",
"hint": null
},
{
"key": "garage_capacity",
"label": "Garage",
"type": "number",
"unit": "cars",
"hint": null
},
{
"key": "heating",
"label": "Heating",
"type": "text",
"unit": null,
"hint": "forced-air gas furnace, boiler, heat pump…"
},
{
"key": "cooling",
"label": "Cooling",
"type": "text",
"unit": null,
"hint": null
},
{
"key": "water_source",
"label": "Water",
"type": "text",
"unit": null,
"hint": "municipal or well"
},
{
"key": "sewer",
"label": "Sewer",
"type": "text",
"unit": null,
"hint": "municipal sewer or septic"
},
{
"key": "roof",
"label": "Roof",
"type": "text",
"unit": null,
"hint": "material and when it was last replaced"
},
{
"key": "foundation",
"label": "Foundation",
"type": "text",
"unit": null,
"hint": null
},
{
"key": "basement",
"label": "Basement",
"type": "text",
"unit": null,
"hint": "full, partial, finished, crawl space, none"
},
{
"key": "climate",
"label": "Climate",
"type": "text",
"unit": null,
"hint": "for seasonal timing, such as cold winters, first frost mid-October"
}
]
}For Rigel#
Rigel's tool for this query is maintenance_category_list. Rigel runs this on its own, then says what it did. The agent guide has the rest.