Skip to content
Rigel docs
Open Rigel

The state of the house at a glance

maintenance.overview.get

GET/api/v1/households/{household_id}/queries/maintenance.overview.get

  • Query
  • Rigel runs it

The properties with their asset counts, and for all of them (or one property) how many maintenance tasks are overdue, due within two weeks, due this season or later, the open problems, the active projects and the upcoming visits. Start here for 'how are we doing?' or 'what needs attention?'.

Parameters#

The state of the house at a glance: parameters
FieldDescription
household_idpathstringrequired

The household's ID.

property_idquerystringoptional

Only this property's numbers. Leave out for all.

Response#

200 The answer.

The state of the house at a glance: response fields
FieldDescription
todaystringrequired

The household's local date, YYYY-MM-DD.

propertiesarray of objectsrequired
properties[].idstringrequired

A property ID, such as prp_01JC0000000000000000000000.

properties[].namestringrequired

The property's name.

properties[].addressstring or nullrequired

Its postal address, as written.

properties[].asset_countintegerrequired

How many items are in its records (retired ones not counted).

tasksobjectrequired

Active, non-optional maintenance tasks by group.

tasks.overdueintegerrequired

Past their due date.

tasks.due_soonintegerrequired

Due within 14 days, or a seasonal window that is open now.

tasks.this_seasonintegerrequired

Due before the current season ends.

tasks.laterintegerrequired

Everything else, including usage tasks with no date.

open_issue_countintegerrequired

Problems that are open or being watched.

urgent_issuesarray of objectsrequired

The worst open problems, most severe first.

urgent_issues[].idstringrequired

The problem's ID (iss_…).

urgent_issues[].addressstring or nullrequired

The web route that opens it.

urgent_issues[].titlestringrequired

What the problem is.

urgent_issues[].severityone of: low, medium, high, urgentrequired

How bad it is.

urgent_issues[].asset_namestring or nullrequired

The item it is about.

active_project_countintegerrequired

Projects that are planning, active or on hold.

upcoming_visitsarray of objectsrequired

The next scheduled visits, soonest first.

upcoming_visits[].idstringrequired

The visit's ID (vst_…).

upcoming_visits[].addressstring or nullrequired

The web route that opens it.

upcoming_visits[].titlestringrequired

What it is for.

upcoming_visits[].contractor_namestring or nullrequired

Who is coming.

upcoming_visits[].starts_atstring (date-time) or nullrequired

When they arrive (start of the window).

upcoming_visit_countintegerrequired

How many visits are scheduled from now on.

Errors#

Every error has the same envelope: error.code, error.message, error.details, error.recovery and error.request_id.

The state of the house at a glance: errors
StatusCodeWhen
400validation_failedA field is missing, misspelled or out of range. details.fields lists each problem.
401unauthenticatedThe request has no valid session.
404not_foundThe 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.

The state of the house at a glance

Request, curl
curl 'https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/maintenance.overview.get' \
  -H "Cookie: rigel_session=$RIGEL_SESSION"
Request, TypeScript
const response = await fetch("https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/maintenance.overview.get", {
  headers: {
    Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
  },
});
const data = await response.json();
Request, HTTP
GET /api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/maintenance.overview.get HTTP/1.1
Host: rigel.house
Cookie: rigel_session=<your session>
Response, 200
HTTP/1.1 200 OK
Content-Type: application/json
X-Request-Id: req_01M6V9CSZQ5S4BVY0CQJX5YK8J

{
  "today": "2026-11-07",
  "properties": [
    {
      "id": "prp_01M6V9CSTXS6P4CG6RNTNT60FA",
      "name": "The Okafor house",
      "address": null,
      "asset_count": 6
    }
  ],
  "tasks": {
    "overdue": 1,
    "due_soon": 2,
    "this_season": 0,
    "later": 3
  },
  "open_issue_count": 3,
  "urgent_issues": [
    {
      "id": "iss_01M6V9CSYFR1X4V2X9M3HXT85F",
      "address": "/maintenance/issues/iss_01M6V9CSYFR1X4V2X9M3HXT85F",
      "title": "Basement window leaks in heavy rain",
      "severity": "high",
      "asset_name": null
    },
    {
      "id": "iss_01M6V9CSYDVEZGY1GMEFWZ87YF",
      "address": "/maintenance/issues/iss_01M6V9CSYDVEZGY1GMEFWZ87YF",
      "title": "Dishwasher not draining fully",
      "severity": "medium",
      "asset_name": "Dishwasher"
    },
    {
      "id": "iss_01M6V9CSYG0VSKKZ391H7TTWHX",
      "address": "/maintenance/issues/iss_01M6V9CSYG0VSKKZ391H7TTWHX",
      "title": "Towels take two cycles to dry",
      "severity": "low",
      "asset_name": "Dryer"
    }
  ],
  "active_project_count": 1,
  "upcoming_visits": [
    {
      "id": "vst_01M6V9CSZ6JREAG7RJGS2CZF57",
      "address": "/maintenance/visits/vst_01M6V9CSZ6JREAG7RJGS2CZF57",
      "title": "Look at the dishwasher drain",
      "contractor_name": "Riverbend Plumbing & Drain",
      "starts_at": "2026-11-13T15:00:00.000Z"
    },
    {
      "id": "vst_01M6V9CSYWPZZCJP1Q0PBTS1SF",
      "address": "/maintenance/visits/vst_01M6V9CSYWPZZCJP1Q0PBTS1SF",
      "title": "Furnace inspection and tune-up",
      "contractor_name": "Smith Heating & Air",
      "starts_at": "2026-11-19T15:00:00.000Z"
    }
  ],
  "upcoming_visit_count": 2
}

For Rigel#

Rigel's tool for this query is maintenance_overview_get. Rigel runs this on its own, then says what it did. The agent guide has the rest.

Rigel is in early access, and sign-up is by invitation. Open Rigel