← Back to Dashboard

Azimuth RM API v4.0.0

Revenue Intelligence Platform — REST API Reference

Authentication

All /api/* endpoints require authentication. Use one of:
Bearer token: Authorization: Bearer YOUR_TOKEN
Session cookie: Obtained via POST /auth/login
Unauthenticated requests return 401 Unauthorized.
POST /auth/login Public
Authenticate and receive a session cookie. Body: { "token": "YOUR_API_TOKEN" }
GET /auth/logout
Clear session cookie and redirect to login page.
GET /api/auth/me Auth
Get current authenticated user info.

System

GET /api/health Public
Health check. Returns version, uptime, environment status.
GET /api/usage Auth
API call usage statistics (Key Data + Hospitable call counts).

Portfolio Intelligence

GET /api/intel Auth
Combined intelligence: regime detection + Monte Carlo forecasts + pricing recommendations + market KPIs. Powers the dashboard Overview tab.
GET /api/revenue-summary Auth
Portfolio-level YTD revenue vs. same time last year (STLY). Includes monthly breakdown, YoY %, annualized projection, and management fees.
Cached: 2 hours
GET /api/portfolio Auth
Portfolio analyzer: comp set analysis, APS scores, pricing signals for all properties.
GET /api/dashboard Auth
Legacy dashboard endpoint (v1 compatibility).

Market Intelligence

GET /api/markets Auth
Live KPI data for all 4 primary markets: occupancy, ADR, RevPAR, booking window, YoY comparisons.
GET /api/regime Auth
K-Means regime detection for all markets. Returns bull/sideways/bear classification with confidence, momentum, volatility, and transition risk.
Cached: 15 minutes | Uses seeded PRNG for deterministic results
GET /api/regime/:marketName Auth
Regime for a specific market by name slug (e.g., galveston-island) or UUID.
:marketName — Market name slug or UUID
GET /api/market Auth
Legacy market KPIs endpoint (v1 compatibility).

Forecasting

GET /api/forecast Auth
Monte Carlo revenue forecasts for all markets. Returns P10/P25/P50/P75/P90 at 30/60/90/180 day horizons.
GET /api/forecast/:marketUuid Auth
Monte Carlo forecast for a single market.
:marketUuid — Market UUID or name

Pricing & Recommendations

GET /api/recommendations Auth
Market-level pricing recommendations combining regime detection and Monte Carlo signals.
POST /api/recommendations Auth
Property-specific recommendations. Body: { "properties": [...] }
GET /api/recommendations/history Auth
Recommendation history log.
?limit=50 — Number of entries to return
GET /api/pace-intel Auth
Per-property, per-month pace intelligence. Compares property booking pace against market benchmarks and generates RAISE/HOLD/CUT/DEAD_MARKET recommendations with revenue-at-risk calculations.
Cached: 2 hours
GET /api/pace Auth
Pace index for all properties across forward booking windows.

Properties

GET /api/properties Auth
All properties with occupancy metrics, APS scores, and pricing recommendations.
GET /api/properties/:id Auth
Deep dive on a single property with full calendar metrics.
GET /api/targets Auth
Current property targets (APS, Target Annual Rent).

Scanning & Actions

GET /api/weekly-scan Auth
Run the weekly tactical pricing scanner. Identifies rate adjustment opportunities.
?refresh=true — Force cache clear and fresh scan
Cached: 1 hour
POST /api/weekly-scan/push Auth
Run weekly scan AND push results to Google Sheet.
GET /api/date-scan Auth
Per-date gap scanner (365 days). Each date evaluated on its own booking curve.
?refresh=true — Force cache clear
Cached: 1 hour
POST /api/date-scan/push Auth
Run per-date scan AND push to Google Sheet.
GET /api/monthly-review Auth
Monthly strategic review with forward Quibble min/max guardrails per market.
Cached: 24 hours

Decisions & Alerts

GET /api/decisions Auth
Get pricing decisions for current and next 2 months. Persisted in PostgreSQL.
POST /api/decisions Auth
Save a pricing decision. Body: { "property": "id", "date": "YYYY-MM-DD", "action": "CUT", "reason": "..." }
DELETE /api/decisions/:id Auth
Remove a decision.
?monthKey=YYYY-MM — Required month key
GET /api/alerts Auth
Recent regime shift alerts. Persisted in PostgreSQL.
?check=1 — Trigger live regime detection (otherwise returns cached alerts)
?limit=20 — Number of alerts to return
POST /api/alerts/:id/acknowledge Auth
Mark an alert as acknowledged.
Azimuth RM v4.0.0 — Pacific Properties Management — API Documentation