{"service": "rentalert", "description": "Read-only map of Hope Town resident rent-due dates, upcoming birthdays, and sobriety milestones across the Level 1 and Level 2 census. Answers 'whose rent is due', 'who is due soon', 'whose birthday is coming up', 'who is hitting a sober milestone', and feeds rent / birthday / milestone reminders. Auto-refreshes from Smartsheet.", "base_url": "http://rentalert.hopetown.ai", "read_only": true, "auth": "none", "freshness": {"refresh_seconds": 600, "note": "responses carry fetched_at, age_seconds, and stale"}, "tools": [{"name": "rent_due_soon", "description": "List residents whose rent is due within N days (default 5). Use for reminders and dashboards.", "method": "GET", "path": "/api/due-soon", "query": {"within": {"type": "integer", "required": false, "default": 5, "description": "days ahead"}}, "example": "http://rentalert.hopetown.ai/api/due-soon?within=7"}, {"name": "rent_due_all", "description": "List every resident that has a rent-due date, both levels.", "method": "GET", "path": "/api/rent-due", "query": {"sheet": {"type": "string", "enum": ["all", "level-1", "level-2"], "default": "all", "required": false}, "within": {"type": "integer", "required": false, "description": "only those due within N days"}}, "example": "http://rentalert.hopetown.ai/api/rent-due?sheet=level-2"}, {"name": "birthdays_soon", "description": "List residents whose birthday falls within N days (default 7). Month/day only, no birth year.", "method": "GET", "path": "/api/birthdays", "query": {"within": {"type": "integer", "required": false, "default": 7, "description": "days ahead"}, "sheet": {"type": "string", "enum": ["all", "level-1", "level-2"], "default": "all", "required": false}}, "example": "http://rentalert.hopetown.ai/api/birthdays?within=7"}, {"name": "milestones_soon", "description": "List residents at or approaching a sobriety milestone within N days (default 7). Milestones: 30/60/90 days, 6/9/18 months, 1 year, then yearly.", "method": "GET", "path": "/api/milestones", "query": {"within": {"type": "integer", "required": false, "default": 7, "description": "days ahead"}, "sheet": {"type": "string", "enum": ["all", "level-1", "level-2"], "default": "all", "required": false}}, "example": "http://rentalert.hopetown.ai/api/milestones?within=14"}, {"name": "rent_health", "description": "Counts + freshness, no names: residents with a due date, hidden rows, due-soon per level, and how fresh the data is.", "method": "GET", "path": "/health", "query": {}, "example": "http://rentalert.hopetown.ai/health"}], "resident_shape": {"sheet": "Level 1 | Level 2", "resident": "string (name)", "rent_day": "int 1-31 (day of month rent is due)", "next_due": "YYYY-MM-DD (next occurrence)", "days_until": "int (0 = today)", "due_soon": "bool (days_until <= 5)", "birthday": "MM-DD (month/day only, no birth year) or null", "days_until_birthday": "int or null (0 = today)", "birthday_soon": "bool (birthday within 7 days)", "sober_days": "int or null (days sober as of today)", "milestone": "next milestone label, e.g. '90 days' or '1 year', or null", "days_until_milestone": "int or null (0 = milestone is today)", "milestone_soon": "bool (milestone within 7 days)"}}