{
    "info": {
        "_postman_id": "rpm-pro-api-collection",
        "name": "RPM PRO API v5.9.3.3",
        "description": "RPM PRO REST API collection v5.9.3.3. Import environment and set baseUrl, adminAPIKey, adminAPISecret.",
        "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
    },
    "variable": [
        {
            "key": "baseUrl",
            "value": "http://localhost"
        },
        {
            "key": "apiBase",
            "value": "{{baseUrl}}/API"
        }
    ],
    "item": [
        {
            "name": "Admin Auth",
            "item": [
                {
                    "name": "Admin Login",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"adminAPIKey\": \"{{adminAPIKey}}\",\n  \"adminAPISecret\": \"{{adminAPISecret}}\"\n}"
                        },
                        "url": "{{apiBase}}/auth/V1/login.json"
                    }
                },
                {
                    "name": "Admin User",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/auth/V1/user.json"
                    }
                },
                {
                    "name": "Admin Logout",
                    "request": {
                        "method": "POST",
                        "url": "{{apiBase}}/auth/V1/logout.json"
                    }
                }
            ]
        },
        {
            "name": "Admin Data",
            "description": "Requires Admin Login first (session cookie). Staff reads: super_admin + svc_rep. Landlord: read-only on owned data. Writes/DELETE: super_admin only.",
            "item": [
                {
                    "name": "List Properties",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/adminProperties/V1/properties.json?type=all&limit=20"
                    }
                },
                {
                    "name": "Create Property",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"type\": \"ltr\",\n  \"propertyName\": \"API Test Property\",\n  \"propertyDesc\": \"Created via admin API\",\n  \"propertyRate\": \"1500.00\",\n  \"latePenalty\": \"50.00\",\n  \"propertyDeposit\": \"1500.00\",\n  \"petsAllowed\": 0\n}"
                        },
                        "url": "{{apiBase}}/adminProperties/V1/properties.json"
                    }
                },
                {
                    "name": "Update Property",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"propertyDesc\": \"Updated via admin API\",\n  \"onWebsite\": 1\n}"
                        },
                        "url": "{{apiBase}}/adminProperties/V1/properties/1.json"
                    }
                },
                {
                    "name": "Get Property",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/adminProperties/V1/properties/2001.json"
                    }
                },
                {
                    "name": "List Invoices",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/adminInvoices/V1/invoices.json?limit=20"
                    }
                },
                {
                    "name": "Create Invoice",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"description\": \"SERVICE\",\n  \"tenantId\": 1,\n  \"propertyId\": 1,\n  \"dueDate\": \"2026-08-01\",\n  \"tax\": 0,\n  \"lineItems\": [{\"description\": \"Admin API line\", \"amount\": 100, \"quantity\": 1, \"taxed\": 0}]\n}"
                        },
                        "url": "{{apiBase}}/adminInvoices/V1/invoices.json"
                    }
                },
                {
                    "name": "Update Invoice",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"status\": 0,\n  \"notes\": \"Updated via admin API\"\n}"
                        },
                        "url": "{{apiBase}}/adminInvoices/V1/invoices/1.json"
                    }
                },
                {
                    "name": "Get Invoice",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/adminInvoices/V1/invoices/1.json"
                    }
                },
                {
                    "name": "List Tenants",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/adminTenants/V1/tenants.json?limit=20"
                    }
                },
                {
                    "name": "Create Tenant",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"tenantEmail\": \"api-tenant@example.com\",\n  \"tenantFirstName\": \"API\",\n  \"tenantLastName\": \"Tenant\",\n  \"password\": \"ChangeMe0!\",\n  \"isActive\": 1\n}"
                        },
                        "url": "{{apiBase}}/adminTenants/V1/tenants.json"
                    }
                },
                {
                    "name": "Update Tenant",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"tenantFirstName\": \"Updated\",\n  \"isActive\": 1\n}"
                        },
                        "url": "{{apiBase}}/adminTenants/V1/tenants/1.json"
                    }
                },
                {
                    "name": "Get Tenant",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/adminTenants/V1/tenants/1.json"
                    }
                },
                {
                    "name": "List Reservations",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/adminReservations/V1/reservations.json?limit=20"
                    }
                },
                {
                    "name": "Create Reservation",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"propertyId\": 2001,\n  \"dateFrom\": \"2026-08-10\",\n  \"dateTo\": \"2026-08-15\",\n  \"name\": \"API Guest\",\n  \"email\": \"guest@example.com\",\n  \"totalPrice\": 500,\n  \"skipAvailabilityCheck\": true\n}"
                        },
                        "url": "{{apiBase}}/adminReservations/V1/reservations.json"
                    }
                },
                {
                    "name": "Update Reservation",
                    "request": {
                        "method": "PUT",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"status\": \"1\"\n}"
                        },
                        "url": "{{apiBase}}/adminReservations/V1/reservations/1.json"
                    }
                },
                {
                    "name": "Get Reservation",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/adminReservations/V1/reservations/1.json"
                    }
                },
                {
                    "name": "List Expenses",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/adminExpenses/V1/expenses.json?limit=20"
                    }
                },
                {
                    "name": "Income Report",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/adminReports/V1/income.json?dateFrom=2026-01-01&dateTo=2026-12-31"
                    }
                },
                {
                    "name": "Occupancy Report",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/adminReports/V1/occupancy.json?dateFrom=2026-01-01&dateTo=2026-12-31"
                    }
                },
                {
                    "name": "List Housekeeping Requests",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/adminHousekeeping/V1/requests.json?limit=20"
                    }
                },
                {
                    "name": "Archive Property (DELETE)",
                    "request": {
                        "method": "DELETE",
                        "url": "{{apiBase}}/adminProperties/V1/properties/1.json"
                    }
                }
            ]
        },
        {
            "name": "Site Settings",
            "item": [
                {
                    "name": "Get Settings",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/siteSettings/V1/settings.json"
                    }
                }
            ]
        },
        {
            "name": "Site Content",
            "item": [
                {
                    "name": "List Content",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/siteContent/V1/content.json"
                    }
                },
                {
                    "name": "Get Content by Key",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/siteContent/V1/content/home-hero.json"
                    }
                }
            ]
        },
        {
            "name": "Site Pages",
            "item": [
                {
                    "name": "List Pages",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/sitePages/V1/pages.json"
                    }
                },
                {
                    "name": "Get Page by Slug",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/sitePages/V1/pages/about.json"
                    }
                }
            ]
        },
        {
            "name": "Site Reviews",
            "item": [
                {
                    "name": "List Reviews",
                    "request": {
                        "method": "GET",
                        "url": {
                            "raw": "{{apiBase}}/siteReviews/V1/reviews.json?propertyId=1&limit=20",
                            "host": [
                                "{{apiBase}}"
                            ],
                            "path": [
                                "siteReviews",
                                "V1",
                                "reviews.json"
                            ],
                            "query": [
                                {
                                    "key": "propertyId",
                                    "value": "1"
                                },
                                {
                                    "key": "limit",
                                    "value": "20"
                                }
                            ]
                        }
                    }
                }
            ]
        },
        {
            "name": "Site Sliders",
            "item": [
                {
                    "name": "List Sliders",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/siteSliders/V1/sliders.json"
                    }
                }
            ]
        },
        {
            "name": "Site Navigation",
            "item": [
                {
                    "name": "Get Menus",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/siteNavigation/V1/menus.json"
                    }
                }
            ]
        },
        {
            "name": "Site FAQ",
            "item": [
                {
                    "name": "List FAQs",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/siteFaq/V1/faqs.json"
                    }
                }
            ]
        },
        {
            "name": "Site Events",
            "item": [
                {
                    "name": "List Events",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/siteEvents/V1/events.json"
                    }
                },
                {
                    "name": "Get Event",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/siteEvents/V1/events/1.json"
                    }
                }
            ]
        },
        {
            "name": "Site Attractions",
            "item": [
                {
                    "name": "List Attractions",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/siteAttractions/V1/attractions.json"
                    }
                },
                {
                    "name": "Get Attraction",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/siteAttractions/V1/attractions/1.json"
                    }
                },
                {
                    "name": "List Categories",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/siteAttractions/V1/categories.json"
                    }
                }
            ]
        },
        {
            "name": "Site Contact",
            "item": [
                {
                    "name": "Contact Message",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"name\": \"Test User\",\n  \"email\": \"test@example.com\",\n  \"message\": \"Hello from Postman\"\n}"
                        },
                        "url": "{{apiBase}}/siteContact/V1/message.json"
                    }
                },
                {
                    "name": "Subscribe",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"email\": \"subscribe@example.com\"\n}"
                        },
                        "url": "{{apiBase}}/siteContact/V1/subscribe.json"
                    }
                }
            ]
        },
        {
            "name": "VR Properties",
            "item": [
                {
                    "name": "List VR Properties",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/vrProperties/V1/vrProperties.json"
                    }
                },
                {
                    "name": "Get VR Property",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/vrProperties/V1/vrProperties/1.json"
                    }
                },
                {
                    "name": "VR Property Images",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/vrProperties/V1/vrPropertyImages/1.json"
                    }
                }
            ]
        },
        {
            "name": "LTR Properties",
            "item": [
                {
                    "name": "List LTR Properties",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/ltrProperties/V1/ltrProperties.json"
                    }
                },
                {
                    "name": "Get LTR Property",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/ltrProperties/V1/ltrProperties/1.json"
                    }
                },
                {
                    "name": "LTR Property Images",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/ltrProperties/V1/ltrPropertyImages/1.json"
                    }
                }
            ]
        },
        {
            "name": "Blog",
            "item": [
                {
                    "name": "List Posts",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/networkBlog/V1/networkBlogPosts.json"
                    }
                },
                {
                    "name": "Get Post",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/networkBlog/V1/networkBlogPosts/1.json"
                    }
                },
                {
                    "name": "Posts by Category",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/networkBlog/V1/networkBlogByCat/1.json"
                    }
                },
                {
                    "name": "List Categories",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/networkBlog/V1/networkBlogCategory.json"
                    }
                }
            ]
        },
        {
            "name": "Tenant Auth",
            "item": [
                {
                    "name": "Tenant Login",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"email\": \"{{tenantEmail}}\",\n  \"password\": \"{{tenantPassword}}\"\n}"
                        },
                        "url": "{{apiBase}}/publicAuth/V1/login.json"
                    }
                },
                {
                    "name": "Tenant Me",
                    "request": {
                        "method": "GET",
                        "url": "{{apiBase}}/publicAuth/V1/me.json"
                    }
                },
                {
                    "name": "Tenant Logout",
                    "request": {
                        "method": "POST",
                        "url": "{{apiBase}}/publicAuth/V1/logout.json"
                    }
                },
                {
                    "name": "Tenant Register",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"tenantFirstName\": \"Test\",\n  \"tenantLastName\": \"Tenant\",\n  \"tenantEmail\": \"newtenant@example.com\",\n  \"password\": \"SecurePass123!\",\n  \"password2\": \"SecurePass123!\"\n}"
                        },
                        "url": "{{apiBase}}/publicAuth/V1/register.json"
                    }
                }
            ]
        },
        {
            "name": "Booking",
            "item": [
                {
                    "name": "Availability",
                    "request": {
                        "method": "GET",
                        "url": {
                            "raw": "{{apiBase}}/publicBooking/V1/availability/1.json?dateFrom=2026-08-01&dateTo=2026-08-07",
                            "host": [
                                "{{apiBase}}"
                            ],
                            "path": [
                                "publicBooking",
                                "V1",
                                "availability",
                                "1.json"
                            ],
                            "query": [
                                {
                                    "key": "dateFrom",
                                    "value": "2026-08-01"
                                },
                                {
                                    "key": "dateTo",
                                    "value": "2026-08-07"
                                }
                            ]
                        }
                    }
                },
                {
                    "name": "Calendar",
                    "request": {
                        "method": "GET",
                        "url": {
                            "raw": "{{apiBase}}/publicBooking/V1/calendar/1.json?months=12",
                            "host": [
                                "{{apiBase}}"
                            ],
                            "path": [
                                "publicBooking",
                                "V1",
                                "calendar",
                                "1.json"
                            ],
                            "query": [
                                {
                                    "key": "months",
                                    "value": "12"
                                }
                            ]
                        }
                    }
                },
                {
                    "name": "Quote",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"propertyId\": 1,\n  \"dateFrom\": \"2026-08-01\",\n  \"dateTo\": \"2026-08-07\",\n  \"adults\": 2,\n  \"children\": 0,\n  \"pets\": 0\n}"
                        },
                        "url": "{{apiBase}}/publicBooking/V1/quote.json"
                    }
                },
                {
                    "name": "Validate Coupon",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"propertyId\": 1,\n  \"couponCode\": \"SUMMER10\"\n}"
                        },
                        "url": "{{apiBase}}/publicBooking/V1/validateCoupon.json"
                    }
                },
                {
                    "name": "Book",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"propertyId\": 1,\n  \"dateFrom\": \"2026-08-01\",\n  \"dateTo\": \"2026-08-07\",\n  \"name\": \"Jane Guest\",\n  \"email\": \"guest@example.com\",\n  \"phone\": \"555-0100\",\n  \"adults\": 2\n}"
                        },
                        "url": "{{apiBase}}/publicBooking/V1/book.json"
                    }
                }
            ]
        },
        {
            "name": "Lease Applications",
            "item": [
                {
                    "name": "Apply",
                    "request": {
                        "method": "POST",
                        "header": [
                            {
                                "key": "Content-Type",
                                "value": "application/json"
                            }
                        ],
                        "body": {
                            "mode": "raw",
                            "raw": "{\n  \"propertyId\": 1\n}"
                        },
                        "url": "{{apiBase}}/leaseApplications/V1/apply.json"
                    }
                }
            ]
        }
    ]
}
