{ "info": { "_postman_id": "dubai-dld-properties-api-v1", "name": "Dubai DLD Properties API - Complete Collection", "description": "Comprehensive Postman collection for Dubai DLD Analytics API including the new unified Properties endpoint and all existing endpoints.\n\n## New Endpoint\n- **Properties Recent**: Unified endpoint for both rent and sale queries (`/api/properties/recent`)\n\n## Features\n- Natural Language Query Processing\n- Transaction & Rental Filtering\n- Property Search (Rent/Sale)\n- Analytics & Reporting\n- Database Information", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "_exporter_id": "dubai-dld-api" }, "item": [ { "name": "🏘️ Properties (Unified Endpoint)", "item": [ { "name": "Get All Properties - Rent", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=rent&page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "rent", "description": "Property type: rent or sale" }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] }, "description": "Get all rental properties with pagination" }, "response": [] }, { "name": "Get All Properties - Sale", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=sale&page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "sale" }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] }, "description": "Get all sale/transaction properties with pagination" }, "response": [] }, { "name": "Rent - Filter by Area", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=rent&area_name=business+bay&page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "rent" }, { "key": "area_name", "value": "business bay", "description": "Case-insensitive partial match" }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] }, "description": "Get rental properties in Business Bay area" }, "response": [] }, { "name": "Sale - Filter by Area", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=sale&area_name=dubai+marina&page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "sale" }, { "key": "area_name", "value": "dubai marina" }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] }, "description": "Get sale properties in Dubai Marina area" }, "response": [] }, { "name": "Rent - Filter by Property Type", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=rent&property_type=apartment&page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "rent" }, { "key": "property_type", "value": "apartment" }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] }, "description": "Get rental apartments" }, "response": [] }, { "name": "Sale - Filter by Property Type", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=sale&property_type=villa&page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "sale" }, { "key": "property_type", "value": "villa" }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] }, "description": "Get sale villas" }, "response": [] }, { "name": "Rent - Filter by Rooms", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=rent&rooms=2.0&page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "rent" }, { "key": "rooms", "value": "2.0", "description": "Decimal value: 1.0, 2.0, 3.0, etc." }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] }, "description": "Get 2-bedroom rental properties" }, "response": [] }, { "name": "Sale - Filter by Bedrooms", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=sale&beds=3&page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "sale" }, { "key": "beds", "value": "3", "description": "String format: '3', 'studio', '3 b/r', etc." }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] }, "description": "Get 3-bedroom sale properties (can also use 'rooms' parameter)" }, "response": [] }, { "name": "Sale - Filter by Studio", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=sale&beds=studio&page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "sale" }, { "key": "beds", "value": "studio" }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] }, "description": "Get studio sale properties" }, "response": [] }, { "name": "Rent - Filter by Size Range", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=rent&size_min=1000&size_max=2000&page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "rent" }, { "key": "size_min", "value": "1000", "description": "Minimum area in sq. ft" }, { "key": "size_max", "value": "2000", "description": "Maximum area in sq. ft" }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] }, "description": "Get rental properties between 1000-2000 sq. ft" }, "response": [] }, { "name": "Sale - Filter by Size Range", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=sale&size_min=1500&size_max=3000&page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "sale" }, { "key": "size_min", "value": "1500" }, { "key": "size_max", "value": "3000" }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] }, "description": "Get sale properties between 1500-3000 sq. ft" }, "response": [] }, { "name": "Sale - Legacy Size Parameter", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=sale&size=2500&page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "sale" }, { "key": "size", "value": "2500", "description": "Legacy parameter: upper bound for area (only for sale)" }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] }, "description": "Get sale properties with size <= 2500 sq. ft (legacy size parameter)" }, "response": [] }, { "name": "Rent - Filter by Project", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=rent&project=emaar&page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "rent" }, { "key": "project", "value": "emaar", "description": "Case-insensitive partial match" }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] }, "description": "Get rental properties in Emaar projects" }, "response": [] }, { "name": "Sale - Filter by Project", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=sale&project=dubai+marina&page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "sale" }, { "key": "project", "value": "dubai marina" }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] }, "description": "Get sale properties in Dubai Marina projects" }, "response": [] }, { "name": "Rent - Combined Filters", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=rent&area_name=business+bay&property_type=apartment&rooms=2.0&size_min=1000&size_max=1500&page=1&page_size=20", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "rent" }, { "key": "area_name", "value": "business bay" }, { "key": "property_type", "value": "apartment" }, { "key": "rooms", "value": "2.0" }, { "key": "size_min", "value": "1000" }, { "key": "size_max", "value": "1500" }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "20" } ] }, "description": "Get 2-bedroom apartments for rent in Business Bay, 1000-1500 sq. ft" }, "response": [] }, { "name": "Sale - Combined Filters", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=sale&area_name=dubai+marina&property_type=villa&beds=3&size_min=2000&size_max=3000&project=emaar&page=1&page_size=20", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "sale" }, { "key": "area_name", "value": "dubai marina" }, { "key": "property_type", "value": "villa" }, { "key": "beds", "value": "3" }, { "key": "size_min", "value": "2000" }, { "key": "size_max", "value": "3000" }, { "key": "project", "value": "emaar" }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "20" } ] }, "description": "Get 3-bedroom villas for sale in Dubai Marina, 2000-3000 sq. ft, Emaar projects" }, "response": [] }, { "name": "Rent - Simple Limit", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=rent&limit=10", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "rent" }, { "key": "limit", "value": "10", "description": "Legacy limit parameter (no pagination metadata)" } ] }, "description": "Get first 10 rental properties (legacy limit)" }, "response": [] }, { "name": "Sale - Simple Limit", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=sale&limit=50", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "sale" }, { "key": "limit", "value": "50" } ] }, "description": "Get first 50 sale properties (legacy limit)" }, "response": [] }, { "name": "Rent - Pagination Page 2", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=rent&page=2&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "rent" }, { "key": "page", "value": "2" }, { "key": "page_size", "value": "30" } ] }, "description": "Get second page of rental properties" }, "response": [] }, { "name": "Error - Missing Type Parameter", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] }, "description": "This should return 400 error - type parameter is required" }, "response": [] }, { "name": "Error - Invalid Type", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/properties/recent?type=invalid&page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "properties", "recent"], "query": [ { "key": "type", "value": "invalid" }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] }, "description": "This should return 400 error - type must be 'rent' or 'sale'" }, "response": [] } ] }, { "name": "🏢 Transactions", "item": [ { "name": "Get Recent Transactions", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/transactions/recent?page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "transactions", "recent"], "query": [ { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] } }, "response": [] }, { "name": "Filter by Area", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/transactions/recent?area_name=business+bay&page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "transactions", "recent"], "query": [ { "key": "area_name", "value": "business bay" }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] } }, "response": [] }, { "name": "Filter by Property Type and Beds", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/transactions/recent?property_type=apartment&beds=3&page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "transactions", "recent"], "query": [ { "key": "property_type", "value": "apartment" }, { "key": "beds", "value": "3" }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] } }, "response": [] } ] }, { "name": "🏠 Rents", "item": [ { "name": "Get Recent Rents", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/rents/recent?page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "rents", "recent"], "query": [ { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] } }, "response": [] }, { "name": "Filter by Area and Rooms", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/rents/recent?area_name=dubai+marina&rooms=2.0&page=1&page_size=30", "host": ["{{baseUrl}}"], "path": ["api", "rents", "recent"], "query": [ { "key": "area_name", "value": "dubai marina" }, { "key": "rooms", "value": "2.0" }, { "key": "page", "value": "1" }, { "key": "page_size", "value": "30" } ] } }, "response": [] } ] }, { "name": "🤖 Natural Language Queries", "item": [ { "name": "Rental Price Trend", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"query\": \"Give me the last 6 months rental price trend for Business Bay\",\n \"sessionId\": \"test-session-123\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{baseUrl}}/api/query", "host": ["{{baseUrl}}"], "path": ["api", "query"] }, "description": "Natural language query for rental price trends" }, "response": [] }, { "name": "Top Areas for Rental Transactions", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"query\": \"Which area is having more rental transactions?\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{baseUrl}}/api/query", "host": ["{{baseUrl}}"], "path": ["api", "query"] } }, "response": [] }, { "name": "Commercial Leasing", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"query\": \"Top 5 areas for Commercial leasing and why?\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{baseUrl}}/api/query", "host": ["{{baseUrl}}"], "path": ["api", "query"] } }, "response": [] }, { "name": "Average Price 3BHK", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"query\": \"Avg price of 3BHK apartment by area in last 6 months, group it by month. Show top 5 areas only.\"\n}", "options": { "raw": { "language": "json" } } }, "url": { "raw": "{{baseUrl}}/api/query", "host": ["{{baseUrl}}"], "path": ["api", "query"] } }, "response": [] } ] }, { "name": "📊 Predefined Analytics", "item": [ { "name": "Rental Trend by Area", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/queries/rental-trend/business-bay", "host": ["{{baseUrl}}"], "path": ["api", "queries", "rental-trend", "business-bay"] } }, "response": [] }, { "name": "Top Areas", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/queries/top-areas", "host": ["{{baseUrl}}"], "path": ["api", "queries", "top-areas"] } }, "response": [] }, { "name": "Commercial Leasing", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/queries/commercial-leasing", "host": ["{{baseUrl}}"], "path": ["api", "queries", "commercial-leasing"] } }, "response": [] }, { "name": "Residential Leasing", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/queries/residential-leasing", "host": ["{{baseUrl}}"], "path": ["api", "queries", "residential-leasing"] } }, "response": [] }, { "name": "Fast Moving Projects", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/queries/fast-moving-projects", "host": ["{{baseUrl}}"], "path": ["api", "queries", "fast-moving-projects"] } }, "response": [] }, { "name": "Off-Plan Uptick", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/queries/offplan-uptick", "host": ["{{baseUrl}}"], "path": ["api", "queries", "offplan-uptick"] } }, "response": [] }, { "name": "Project Summary", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/queries/project-summary", "host": ["{{baseUrl}}"], "path": ["api", "queries", "project-summary"] } }, "response": [] }, { "name": "Project Summary Detail", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/queries/project-summary-detail", "host": ["{{baseUrl}}"], "path": ["api", "queries", "project-summary-detail"] } }, "response": [] } ] }, { "name": "🔧 System & Info", "item": [ { "name": "Health Check", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/health", "host": ["{{baseUrl}}"], "path": ["health"] }, "description": "Check if the API server is running" }, "response": [] }, { "name": "Database Info", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/database/info", "host": ["{{baseUrl}}"], "path": ["api", "database", "info"] }, "description": "Get database table information and record counts" }, "response": [] }, { "name": "Available Queries", "request": { "method": "GET", "header": [], "url": { "raw": "{{baseUrl}}/api/queries/available", "host": ["{{baseUrl}}"], "path": ["api", "queries", "available"] }, "description": "List all available query endpoints and examples" }, "response": [] } ] } ], "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "exec": [ "" ] } }, { "listen": "test", "script": { "type": "text/javascript", "exec": [ "" ] } } ], "variable": [ { "key": "baseUrl", "value": "http://localhost:3000", "type": "string" } ] }