Idealista Property Details Extractor
Pricing
Pay per usage
Idealista Property Details Extractor
Extract full property details from Idealista by ID: descriptions, specs, energy certificates, multimedia URLs & contact info. Enrich your property database.
Pricing
Pay per usage
Rating
0.0
(0)
Developer

axly
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
📋 Idealista Property Details Extractor
Purpose: Extract comprehensive property details, descriptions, and specifications by property ID
Version: 1.0.0
Pricing: Per-property ($0.10 per 100 properties, $100-500 monthly revenue)
🎯 Features
- Comprehensive Data Extraction: Property details, descriptions, specifications, multimedia, and statistics
- Multi-language Support: en, es, it, pt, fr
- Multi-country Support: 🇪🇸 es, 🇮🇹 it, 🇵🇹 pt, 🇫🇷 fr
- Rate Limiting: Built-in rate limiting (1 request/second) with exponential backoff
- Error Handling: Robust error handling with retry logic and graceful failures
- Custom Extractors: Optional JavaScript functions for custom data processing
📥 Input Schema
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
propertyIds | string[] | ✅ | - | Array of property IDs to fetch details for |
country | string | ❌ | "es" | Country code (es, it, pt, fr) |
language | string | ❌ | "en" | Language for property descriptions |
includeMultimedia | boolean | ❌ | true | Include image/video URLs |
includeStats | boolean | ❌ | false | Include property statistics |
max_concurrent | integer | ❌ | 2 | Maximum concurrent requests (1-5) |
custom_extractor | string | ❌ | - | Optional JavaScript function for custom processing |
📤 Output Schema
Returns an object with a properties array containing detailed property information:
{"properties": [{"id": "string","title": "string","description": "string","price": {"amount": "number","currency": "string"},"location": {"address": "string","coordinates": {"latitude": "number","longitude": "number"}},"features": "object","multimedia": {"images": "array","videos": "array","plans": "array"},"contact": "object","energyCertificate": "object"}]}
🔧 Implementation Details
API Methods Used
api.createPropertyDetailsRequest(propertyId, language, quality)- Property detailsapi.parsePropertyDetailsResponse(response)- Parse details responseapi.createPropertyMultimediaRequest(propertyId)- Multimedia dataapi.parsePropertyMultimediaResponse(response)- Parse multimedia responseapi.createPropertyStatsRequest(propertyId)- Property statisticsapi.parsePropertyStatsResponse(response)- Parse stats response
Rate Limiting
- Per Request: 1 second minimum delay
- Concurrent: Max 5 concurrent requests
- Retry Logic: Exponential backoff (1s, 2s, 4s)
Error Handling
- Network errors: Retry with exponential backoff (max 3 attempts)
- Auth errors: Automatic re-authentication
- Rate limits: Increased delays on rate limit errors
- Parsing errors: Logged and skipped
- Custom extractor errors: Logged with fallback to original data
🚀 Usage Example
// Input{"propertyIds": ["12345678", "87654321"],"country": "es","language": "en","includeMultimedia": true,"includeStats": false,"max_concurrent": 2}// Custom extractor example"custom_extractor": "function(propertyData) { return { ...propertyData, customField: 'value' }; }"
📊 Performance & Scaling
- Concurrency: Configurable concurrent processing (1-5)
- Memory Management: Batch processing to manage memory usage
- Error Recovery: Continues processing other properties on individual failures
- Logging: Comprehensive logging for monitoring and debugging
🔒 Production Ready
✅ Apify Layout: 100% compliant with selected template
✅ Input Validation: Strict INPUT_SCHEMA.json with descriptions and validation
✅ Error Handling: Comprehensive error handling with Actor.fail() and Actor.exit()
✅ Rate Limiting: Built-in rate limiting with exponential backoff
✅ Logging: Comprehensive logging via Actor.log
✅ Secrets: No hardcoded credentials (uses API client configuration)
✅ Async Handling: Proper async usage with resource cleanup
✅ Local Testing: apify run succeeds with sample input
✅ Linting: ESLint configuration with zero errors
✅ Documentation: Auto-generated README from design specifications
Ready for production deployment! 🚀
This actor is fully compliant with the Idealista API reverse-engineering specifications and Apify production standards.