Skip to content
Rigel docs
Open Rigel

Repairs and improvements under way

maintenance.project.list

GET/api/v1/households/{household_id}/queries/maintenance.project.list

  • Query
  • Rigel runs it

Projects with their status and counts. Without a status, the ones still going (planning, active, on hold); ask for done or cancelled to see finished ones.

Parameters#

Repairs and improvements under way: parameters
FieldDescription
household_idpathstringrequired

The household's ID.

statusqueryone of: planning, active, on_hold, done, cancelledoptional

Only projects in this status. Leave out for planning, active and on hold.

property_idquerystringoptional

Only this property's projects.

Response#

200 The answer.

Repairs and improvements under way: response fields
FieldDescription
itemsarray of objectsrequired
items[].idstringrequired

A maintenance project ID, such as mpj_01JC0000000000000000000000.

items[].addressstring or nullrequired

The web route that opens it.

items[].titlestringrequired

What the project is.

items[].goalstring or nullrequired

What done looks like.

items[].kindone of: repair, improvement, maintenance, otherrequired

repair, improvement, maintenance or other.

items[].statusone of: planning, active, on_hold, done, cancelledrequired

planning, active, on_hold, done or cancelled.

items[].property_idstringrequired

A property ID, such as prp_01JC0000000000000000000000.

items[].started_onstring or nullrequired

When it started.

items[].finished_onstring or nullrequired

When it finished.

items[].budgetinteger or nullrequired

The budget in minor units of currency.

items[].currencystring or nullrequired

The budget's currency.

pattern ^[A-Z]{3}$
items[].asset_countintegerrequired

Items it concerns.

items[].open_issue_countintegerrequired

Problems it is working on that aren't resolved.

items[].visit_countintegerrequired

Visits for it.

Errors#

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

Repairs and improvements under way: 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.

List the projects under way

Request, curl
curl 'https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/maintenance.project.list' \
  -H "Cookie: rigel_session=$RIGEL_SESSION"
Request, TypeScript
const response = await fetch("https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/maintenance.project.list", {
  headers: {
    Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
  },
});
const data = await response.json();
Request, HTTP
GET /api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/maintenance.project.list 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_01M6V9CT185JE0ZHPYHKVP536X

{
  "items": [
    {
      "id": "mpj_01M6V9CSZC4PE99PPRAQ7ASEZQ",
      "address": "/maintenance/projects/mpj_01M6V9CSZC4PE99PPRAQ7ASEZQ",
      "title": "Stop the basement window leak",
      "goal": "Dry basement walls before the spring rains.",
      "kind": "repair",
      "status": "active",
      "property_id": "prp_01M6V9CSTXS6P4CG6RNTNT60FA",
      "started_on": "2026-10-19",
      "finished_on": null,
      "budget": 150000,
      "currency": "USD",
      "asset_count": 0,
      "open_issue_count": 1,
      "visit_count": 0
    }
  ]
}

List finished projects

Without a status, only the ones still going come back.

Request, curl
curl 'https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/maintenance.project.list?status=done' \
  -H "Cookie: rigel_session=$RIGEL_SESSION"
Request, TypeScript
const response = await fetch("https://rigel.house/api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/maintenance.project.list?status=done", {
  headers: {
    Cookie: `rigel_session=${process.env.RIGEL_SESSION}`,
  },
});
const data = await response.json();
Request, HTTP
GET /api/v1/households/hh_01M6V9CS6GGVFCY7NAS8ZTQV95/queries/maintenance.project.list?status=done 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_01M6V9CT1A4E68NKVAJP2H7D3V

{
  "items": []
}

For Rigel#

Rigel's tool for this query is maintenance_project_list. 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