FundaInBusiness Scraper with Contacts & Description
Pricing
from $0.70 / 1,000 enriched property listings
FundaInBusiness Scraper with Contacts & Description
Extract Fundainbusiness.nl commercial property listings with rich listing detail, agency data, pricing, locations, amenities, media, coordinates, and flexible market filters. Built for enterprise-grade Dutch commercial real estate intelligence, comps, CRM enrichment, and monitoring.
Pricing
from $0.70 / 1,000 enriched property listings
Rating
0.0
(0)
Developer
Fatih Tahta
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Fundainbusiness.nl Property Scraper
Slug: fatihtahta/fundainbusiness-nl-property-scraper-apify
Overview
Fundainbusiness.nl Property Scraper collects structured public commercial property listing records from Fundainbusiness.nl, including listing identity, source URLs, deal type, property category, asking-price signals, location details, property dimensions, media URLs, agency information, availability, and source context. Fundainbusiness.nl is a public Dutch business real estate marketplace, and its listing pages are useful for monitoring commercial property supply, public asking prices, availability, property types, and agency visibility across the Netherlands. The actor helps property researchers, analysts, operators, brokers, and data teams turn public listing pages into repeatable datasets for market monitoring, comparable-listing research, CRM enrichment, portfolio review, and competitive analysis. It supports location-based searches, Fundainbusiness.nl URL inputs for search pages or individual listings, property filters, optional detail enrichment, and optional post-run MCP connector delivery. Results are delivered as structured Apify dataset records suitable for review, export, ETL pipelines, BI dashboards, AI-agent workflows, and downstream APIs. The actor is designed for recurring public data acquisition with documented inputs, stable record groups, and run summary artifacts, while avoiding claims about complete market coverage, valuation accuracy, or guaranteed listing availability.
What Makes This Actor Different
- Pipeline-ready commercial property records: each listing is organized into documented groups such as
source_context,entity,listing,pricing,location,property,media,relationships,availability, andattributes, which makes the output easier to ingest into warehouses, CRMs, search indexes, BI tools, and AI-agent systems. - Public-source provenance built into every record: source URLs, source domain, listing IDs, search context, page position, enrichment status, and collection timestamps help teams audit where a listing came from and compare repeated runs without relying on hidden context.
- Flexible acquisition scope: users can start from a location, paste Fundainbusiness.nl search result or individual listing URLs, or combine supported filters such as deal type, property type, price range, floor area, publication date, amenities, availability, construction profile, energy label, auction timing, and open-day timing.
- Optional detail enrichment:
enrich_datacan add richer detail-page values when available, including fields such as longer descriptions, asking price text, energy label, year built, availability timing, coordinates, image count, and additional source-specific attributes. - Run receipts for operations: every successful run writes
RUN-SUMMARYandRUN-SUMMARY.htmlartifacts that summarize saved listing counts, input scope, enrichment coverage, location coverage, coordinate coverage, top breakdowns, sample records, and user-facing artifact keys. - Agentic usability: the README documents input recipes, stable identifiers, field references, output examples, artifact behavior, and idempotency guidance so tools such as Claude, Codex, internal copilots, workflow automations, and property research agents can use the actor without private context.
- Optional MCP connector handoff: when
mcpConnectorsis provided, the actor can send a bounded run-summary message through user-authorized Apify MCP connectors after the dataset and key-value-store artifacts are ready. It does not push the full listing dataset through MCP by default. - Field-preserving contract: schema-supported property and listing values are grouped under stable public fields when available, while optional source-dependent values remain optional so downstream systems can null-check safely.
Who Should Use This Actor
- Real estate investors and analysts: collect public commercial listings by market, property type, price band, area range, or keyword for comparable-listing research and recurring inventory snapshots.
- Brokerages, agencies, and property operations teams: monitor public availability, listing categories, agencies, media, and key property facts across selected geographies or recurring target segments.
- Market research and analytics teams: build structured datasets for dashboards that compare asking-price signals, property mix, listing status, location coverage, and visible agency activity.
- Proptech and data engineering teams: feed normalized commercial property records into ETL pipelines, warehouses, internal APIs, search indexes, vector stores, or enrichment systems.
- AI agents and workflow automations: run scoped collection jobs, read the field reference, inspect run summaries, and route structured records into research, alerting, enrichment, or review workflows.
- Lead generation and enrichment teams: append public listing attributes, source URLs, agency names, property dimensions, and availability signals to existing CRM or account records.
- Monitoring and operations teams: schedule recurring runs to detect new, removed, changed, or enriched listing records using stable IDs, URLs, source context, and run receipts.
Common Use Cases
- Market intelligence: monitor public commercial property supply, asking-price signals, availability, property categories, agencies, location coverage, and source-visible changes over time.
- Comparable listing research: collect listings for a specific city, municipality, property type, price range, floor-area range, deal type, or keyword segment.
- Competitive monitoring: track which agencies and property categories are visible in selected commercial markets and compare repeated snapshots.
- CRM and lead enrichment: attach public listing URLs, agency names, property types, floor areas, availability, and media URLs to internal account or opportunity records.
- Recurring reporting: schedule periodic runs for inventory dashboards, stakeholder reports, alerts, and historical market snapshots.
- Direct listing review: provide known listing URLs and enable enrichment when the workflow needs richer detail-page attributes for analyst review.
- Agentic research workflows: let an internal agent choose a supported input scope, run the actor, inspect the run summary, and upsert records into downstream systems.
Real-World Questions This Data Can Answer
- Which public Fundainbusiness.nl listings match a specific location, property type, deal type, price band, floor-area band, keyword, or filter set?
- Which listings have source URLs, listing IDs, agency details, media URLs, and property attributes suitable for CRM enrichment or analyst review?
- Which cities, property categories, deal types, and agencies are most visible in a selected public commercial-property segment?
- Which records include enriched fields such as detailed descriptions, asking price text, energy label, coordinates, year built, or additional source attributes?
- Which listings appear new, removed, repriced, or status-changed when compared with a previous internal snapshot?
- Which runs produced enough structured records and artifact evidence to move into BI dashboards, ETL jobs, alerts, or AI-agent workflows?
- Which records require human review because optional fields such as price, coordinates, agency, availability, or media are missing?
Quick Start
- Choose a search strategy: paste Fundainbusiness.nl search/listing URLs in
startUrls, or build a query fromlocationand filters. - Select
deal_type,property_type, and any filters needed for your first property segment. - Set a small
limit, such as 10 or 25, for the first validation run. - Run the actor in Apify Console and inspect the first dataset records.
- Review
RUN-SUMMARYorRUN-SUMMARY.htmlto confirm saved count, input scope, enrichment coverage, and sample records. - Increase the limit, add filters, enable enrichment, export results, schedule the actor, or route a summary through MCP connectors once the output is verified.
Input Parameters
The actor accepts location, URL, filter, enrichment, connector, and limit inputs for collecting Fundainbusiness.nl commercial property listings.
| Parameter | Type | Description | Default |
|---|---|---|---|
startUrls | string array | Fundainbusiness.nl search result URLs or individual listing URLs for direct collection. Use one URL per line in the Apify input form. | - |
location | string | City, municipality, neighborhood, region, or commercial property market to search. Use this for location-driven discovery. | - |
deal_type | string enum | Listing mode. Allowed values: buy for sale listings, rent for rental listings, both for sale and rental listings. | both |
property_type | string enum | Commercial property category. Allowed values: all, office, industrial_unit, retail, catering, agribusiness, agricultural_land, building_plot, garage_unit, practice_space, tourism_leisure, sports, cultural, religious, educational, paved_outdoor_area, healthcare, investment, land, social_real_estate, other, residential. | all |
keyword | string | Optional keyword to narrow results by term, brand, street, feature, or business phrase. | - |
min_price | integer | Minimum sale price or monthly rent. Applies to buy and rent; ignored when deal_type is both. | - |
max_price | integer | Maximum sale price or monthly rent. Applies to buy and rent; ignored when deal_type is both. | - |
min_area | integer | Minimum property floor area in square meters. | - |
max_area | integer | Maximum property floor area in square meters. | - |
publication_date | string enum | Recently published listing filter. Allowed values: today, since_3_days, since_5_days, since_10_days, since_30_days. | - |
surrounding | string array | Surrounding-area filters. Allowed values include business park, harbour area, residential district, office park, rural area, shopping centre, town centre, and related source-supported contexts. | [] |
amenities | string array | Building feature filters such as air conditioning, cable ducts, concrete floor, elevator, loading bays, pantry, showroom, sprinkler, three-phase power, toilet, and openable windows. | [] |
availability | string array | Availability filters. Allowed values: available_now, investment, turnkey. | [] |
parking | string enum | Minimum parking capacity filter. Allowed values: less_than_5, 5_plus, 10_plus, 20_plus, 50_plus. | - |
construction_type | string enum | Construction profile. Allowed values: resale, new. | - |
property_age | string array | Construction-period filters. Allowed values include before_1906, 1906_1930, 1931_1944, 1945_1959, 1960_1970, 1971_1980, 1981_1990, 1991_2000, 2001_2010, 2011_2020, after_2020. | [] |
energy_label | string array | Energy-label filters. Allowed values: a, b, c, d, e, f, g. | [] |
auction_date | string enum | Auction timing filter. Allowed values: all, today, next_week, next_month. | - |
open_day | string enum | Open-day timing filter. Allowed values: all, next_weekend, today. | - |
highlighted | boolean | When true, collects only highlighted or featured listings. | false |
sold_rented | boolean | When true, includes sold or rented listings for the selected listing mode. | false |
enrich_data | boolean | When true, collects richer listing detail fields when available. This can add optional descriptions, asking prices, energy labels, coordinates, image counts, and detailed source attributes. | false |
limit | integer | Maximum number of listings to save. Minimum value is 1. Leave empty to collect as many matching listings as are available. | - |
mcpConnectors | array | Optional Apify MCP connectors authorized by the user. When provided, the actor sends a concise run-summary handoff after dataset and run artifacts are saved. | [] |
Choosing Inputs
Use startUrls when you already have a Fundainbusiness.nl results page or individual listing page that captures the exact scope you want to collect. Use location when you want the actor to discover listings for a city, municipality, region, neighborhood, or market.
Choose deal_type early because price filters behave differently for sale and rental listings. Use property_type to keep datasets focused by category, and add keyword, price, area, publication date, amenities, availability, parking, construction, energy label, auction, open-day, highlighted, or sold/rented filters only when they represent the segment you actually want to compare. Narrower filters produce cleaner review queues and more precise dashboards; broader filters improve discovery.
Start with a small limit for validation, then increase it once the record shape and field coverage match your use case. For recurring analysis, segment runs by city, property type, deal type, price band, or keyword so downstream comparisons are easier. Enable enrich_data when the workflow needs detail-page fields; leave it off for faster exploratory checks when listing-card fields are enough. Use mcpConnectors only when you want a run-summary notification or workflow handoff through an Apify-authorized connector.
Input Recipes
- Validation run: choose one
location, keepdeal_typeasboth, leave most filters empty, and set a smalllimitso you can inspect the dataset shape before scaling. - Targeted retail search: set
location, chooseproperty_typeasretail, selectdeal_type, addmin_price,max_price, orkeywordif needed, and use a moderatelimitfor a focused segment. - Broad market discovery: use a location with minimal filters and a sensible
limitto understand visible commercial supply before splitting the market into smaller segments. - Recently posted monitoring: use
publication_datewith a repeated location and property category to collect fresher public listings for review queues or alerts. - Known URL enrichment: provide search result or listing URLs in
startUrls, enableenrich_data, and use a small limit when matching known public listings against an internal CRM or research list. - Operational handoff: run a validated input with
mcpConnectorsselected so a concise run summary is delivered to an authorized destination after dataset and summary artifacts are ready.
Example Inputs
Location-driven validation run
{"location": "Amsterdam","deal_type": "both","property_type": "all","limit": 10,"enrich_data": false}
Targeted rental office search
{"location": "Rotterdam","deal_type": "rent","property_type": "office","min_area": 100,"max_area": 750,"keyword": "turnkey","limit": 50}
Direct URL enrichment run
{"startUrls": ["https://www.fundainbusiness.nl/en/winkel/nieuw-amsterdam/object-43897944-vaart-zz-38/"],"deal_type": "both","enrich_data": true,"limit": 5,"mcpConnectors": []}
Output
Output destination
The actor writes results to an Apify dataset as JSON records. The dataset is designed for direct consumption by analytics tools, ETL pipelines, AI agents, and downstream APIs with minimal post-processing.
The current public dataset shape is property_listing. Run-level receipts and summary reports are written separately to the default key-value store and are not dataset rows.
Record envelope and stable identifiers
Each listing record includes record_type, record_id, source_context, and entity. The recommended idempotency key is record_id when present, with entity.url or source_context.source_url as the audit URL fallback. For more conservative upserts, use a composite key such as source_context.source_domain + record_id, or source_context.source_domain + entity.url when a listing ID is missing.
Use these identifiers to merge, deduplicate, sync, and compare records across repeated runs. The source_context object also carries provenance such as source_id, source_domain, source URL, seed URL, search context, page number, result position, enrichment status, and collection timestamp.
Examples
Example: property listing record
{"record_type": "property_listing","record_id": "43897944","source_context": {"source_id": "fundainbusiness_nl_property_scraper","source_domain": "fundainbusiness.nl","source_url": "https://www.fundainbusiness.nl/en/winkel/nieuw-amsterdam/object-43897944-vaart-zz-38/","seed_url": "https://www.fundainbusiness.nl/en/alle-bedrijfsaanbod/nieuw-amsterdam/","enrichment_status": "enriched","enrichment_source": "listing_detail_page","page_number": 1,"position": 1,"scraped_at": "2026-06-25T10:34:20+00:00","language": "en","country": "NL","external_ids": {"listing_id": "43897944","tiny_id": "43897944","global_id": "7442581","detail_listing_id": "80867851"},"search": {"offering_type": "alle-bedrijfsaanbod","results_total": 4}},"entity": {"title": "Vaart ZZ 38, Nieuw-Amsterdam","description": "Sample commercial space in a visible business location.","url": "https://www.fundainbusiness.nl/en/winkel/nieuw-amsterdam/object-43897944-vaart-zz-38/","category": "commercial_property","status": "beschikbaar","external_ids": {"listing_id": "43897944"}},"listing": {"listing_id": "43897944","listing_type": "commercial_property","listing_status": "beschikbaar","deal_type": "rent","source_category": "winkel","usage_types": ["Retail outlet with showroom","Catering establishment","Office"],"available_from": "In overleg","source_listing_type": "regular"},"pricing": {"price": 93,"currency": "EUR","price_text": "EUR 93 /m2/year","price_per_area": 93,"price_per_area_text": "EUR 93 /m2/year","asking_price": 395000,"asking_price_text": "EUR 395,000 v.o.n.","source_price_text": "EUR 93 /m2/year"},"location": {"address": "Vaart ZZ 38, Nieuw-Amsterdam","street_address": "Vaart ZZ 38","city": "Nieuw-Amsterdam","country": "Netherlands","latitude": 51.99208,"longitude": 5.096786,"map_marker_title": "Sluiseiland-Zuid 1"},"property": {"property_id": "7442581","property_type": "winkel","usage_types": ["Retail outlet with showroom","Catering establishment","Office"],"floor_area": 238,"floor_area_text": "238 m2","sales_floor_area": 128,"sales_floor_area_text": "128 m2","area_unit": "sqm","year_built": 2022,"construction_type": "Bestaande bouw","energy_label": "A","availability": "In overleg","status": "beschikbaar"},"media": {"main_image_url": "https://cloud.funda.nl/valentina_media/example_720x480.jpg","image_urls": ["https://cloud.funda.nl/valentina_media/example_720x480.jpg"],"image_count": 1,"alt_text": "Vaart ZZ 38, Nieuw-Amsterdam"},"relationships": {"agency": {"name": "Sample Business Brokers","url": "https://www.fundainbusiness.nl/en/makelaar/sample-business-brokers/"}},"availability": {"status": "beschikbaar","available_from": "In overleg"},"attributes": {"source_specific": {"listing_type": "regular","usage_summary": "Retail outlet with showroom | Catering establishment | Office"}}}
Run Summary, Map, And Artifacts
Each successful run writes two stable key-value-store artifacts:
RUN-SUMMARY: machine-readable JSON with generated time, run duration, source and actor identity, public input summary, saved record counts, record-type counts, enrichment counts, deal-type and category breakdowns, city and country breakdowns, coordinate coverage, pricing coverage, property-type counts, agency counts, media coverage, artifact keys, map artifact keys when present, sample records, and trace ID when available.RUN-SUMMARY.html: human-readable report for operators, analysts, and reviewers. It summarizes saved listings, enriched listings, coordinate coverage, duration, listing breakdowns, location and price breakdowns, enrichment status, artifact keys, and sample listings.
These artifacts are run receipts, not dataset rows. Property teams can use them to verify that a run completed and saved the expected type of records. Data teams and AI agents can use them to decide whether to export, retry, compare with a previous run, send an alert, or route the dataset to a downstream workflow. If a map or report artifact is returned for a run, the summary includes its key under artifact metadata; coordinate fields in listing records are optional and typically depend on enrichment and source availability.
Field Reference
Record envelope
- record_type (string, required): record family; normal listing rows use
property_listing. - record_id (string, optional): source listing identifier suitable for deduplication when present.
source_context
- source_context.source_id (string, optional): source identifier that produced the record.
- source_context.source_domain (string, optional): public source domain, usually
fundainbusiness.nl. - source_context.source_url (string, optional): main source listing URL for audit and review.
- source_context.canonical_url (string, optional): canonical or detail-page URL when available.
- source_context.seed_url (string, optional): search or source URL that led to the listing.
- source_context.enrichment_status (string, optional):
standard,enriched, or another source-provided enrichment label. - source_context.enrichment_source (string, optional): public label for the detail source used during enrichment.
- source_context.page_number (integer, optional): search results page where the listing appeared.
- source_context.position (integer, optional): one-based result position assigned during collection.
- source_context.scraped_at (string, optional): timestamp when the record was created.
- source_context.language (string, optional): language code associated with the source context.
- source_context.country (string, optional): country code associated with the listing source.
- source_context.external_ids (object, optional): source IDs such as listing ID, tiny ID, global ID, or detail listing ID.
- source_context.search (object, optional): search URL, offering type, selected locations, filters, and total result counts when available.
entity
- entity.title (string, optional): display title or address label.
- entity.description (string, optional): short listing description, often available on enriched records.
- entity.url (string, optional): public listing URL.
- entity.category (string, optional): normalized high-level category, such as
commercial_property. - entity.status (string, optional): source status label when available.
- entity.external_ids (object, optional): source IDs attached to the listing entity.
listing
- listing.listing_id (string, optional): listing ID repeated for easier joins.
- listing.listing_type (string, optional): normalized listing type.
- listing.listing_status (string, optional): source listing status.
- listing.deal_type (string, optional): sale or rental mode when available.
- listing.source_category (string, optional): source category path or label.
- listing.usage_types (array of strings, optional): source-provided commercial use labels.
- listing.description (string, optional): longer detail description when available.
- listing.available_from (string, optional): availability timing.
- listing.source_listing_type (string, optional): source classification such as regular or promoted.
pricing
- pricing.price (number, optional): numeric displayed price when available.
- pricing.currency (string, optional): currency code such as
EUR. - pricing.price_text (string, optional): source price label with units.
- pricing.price_per_area (number, optional): numeric price-per-area value.
- pricing.price_per_area_text (string, optional): original price-per-area label.
- pricing.asking_price (number, optional): detail-page asking price when enrichment exposes it.
- pricing.asking_price_text (string, optional): original asking-price label.
- pricing.source_price_text (string, optional): listing-card price text retained for audit.
location
- location.address (string, optional): source display address.
- location.street_address (string, optional): street-level address when parsed separately.
- location.city (string, optional): city or municipality label.
- location.country (string, optional): country label.
- location.latitude / location.longitude (number, optional): coordinates when the source exposes them, usually on enriched records.
- location.map_marker_title (string, optional): source map marker label.
- location.neighborhood (string, optional): neighborhood or surrounding-area label when available.
property
- property.property_id (string, optional): source property identifier.
- property.property_type (string, optional): source property category.
- property.usage_types (array of strings, optional): commercial use labels associated with the property.
- property.floor_area / property.floor_area_text (number/string, optional): floor area and original label.
- property.floor_area_sqm (object, optional): structured floor-area value and text in square meters.
- property.sales_floor_area / property.sales_floor_area_text (number/string, optional): sales floor area and original label.
- property.sales_floor_area_sqm (object, optional): structured sales floor-area value and text in square meters.
- property.area_unit (string, optional): normalized area unit, usually
sqm. - property.year_built (integer, optional): construction year when available.
- property.construction_type (string, optional): source construction type label.
- property.energy_label (string, optional): source energy label.
- property.availability (string, optional): source availability label.
- property.status (string, optional): source property status.
- property.parking (string, optional): parking information when present.
- property.surrounding (string, optional): surrounding-area label.
- property.facts (array, optional): additional source fact labels.
media, relationships, availability, and attributes
- media.main_image_url (string, optional): primary listing image URL.
- media.image_urls (array of strings, optional): listing image URLs in source order.
- media.image_count (integer, optional): number of images observed when available.
- media.alt_text (string, optional): image alt text or media label.
- relationships.agency.name (string, optional): agency or broker name.
- relationships.agency.url (string, optional): public agency profile URL.
- availability.status (string, optional): summarized availability status.
- availability.available_from (string, optional): summarized availability timing.
- attributes.source_specific (object, optional): source-specific summary fields.
- attributes.raw_attributes (object, optional): grouped source attributes for advanced processing.
- attributes.detail_attributes (object, optional): detail-page attributes when enrichment succeeds.
- attributes.detail_source (object, optional): public detail-page identifiers and metadata.
- attributes.advertisement_targeting (object, optional): source-provided public targeting labels for audit and classification.
Data Model Notes
- Identity fields: prefer
record_idfor upserts when present, and keepentity.urlorsource_context.source_urlas the audit fallback. - Source/provenance fields:
source_contexthelps trace each listing to the public source page, search scope, result position, enrichment status, and collection timestamp. - Property/listing attributes:
listing,property,pricing,location,media, andrelationshipscarry the main user-facing value for research and downstream processing. - Pricing and status fields: prices, availability, and status labels are point-in-time public signals and should be verified before operational decisions.
- Nested objects: nested groups keep related attributes together for JSON-first systems; flatten deliberately only when exporting to spreadsheets.
- Optional fields: many values depend on the listing type, source visibility, selected filters, and whether enrichment is enabled.
- Repeated runs: compare records across runs using the recommended idempotency key plus Apify run metadata and
source_context.scraped_atwhen present.
Data Quality, Guarantees, And Handling
- Structured records: results are normalized into predictable JSON objects for downstream use.
- Field preservation: meaningful schema-supported listing and property values should be kept in stable public fields or grouped objects instead of being silently discarded; optional source values may still be absent when the target does not expose them for a specific record.
- Best-effort extraction: fields may vary by region, availability, account visibility, listing type, UI experiments, or source-side changes.
- Optional fields: null-check in downstream code, dashboards, and AI-agent workflows.
- Deduplication: use
record_idwhen present, or a composite key based onsource_context.source_domainplusentity.urlorsource_context.source_url. - Freshness: results reflect publicly available data at run time.
- Repeated runs: use the recommended idempotency key when syncing data into warehouses, CRMs, search indexes, vector stores, or monitoring systems.
- Schema awareness: downstream systems should rely on documented fields and handle newly missing optional fields gracefully.
- Run receipts: use
RUN-SUMMARYandRUN-SUMMARY.htmlto audit listing counts, enrichment status, coordinate coverage, artifact readiness, and sample records without treating them as replacement dataset records.
Tips For Best Results
- Start with a small
limitto validate the output shape before scaling up. - Use one city, property type, deal type, price band, keyword, or segment per run when you need clean comparisons.
- Leave optional filters empty when the goal is broad discovery.
- Add filters gradually to understand how each parameter changes the returned dataset.
- Enable
enrich_dataonly when you need richer detail-page fields such as descriptions, coordinates, energy labels, image counts, or asking-price text. - Schedule recurring runs for monitoring workflows instead of relying on manual one-off collection.
- Use stable identifiers and source URLs for deduplication when storing records over time.
- Review
RUN-SUMMARYand a small record sample before importing listings into production pipelines, dashboards, CRMs, or research workflows.
How to Run on Apify
- Open the Actor in Apify Console.
- Configure the available input fields for the target location, URLs, property type, deal type, filters, enrichment preference, and optional connector handoff.
- Set the maximum number of outputs to collect with
limitwhen you want a bounded run. - Click Start and wait for the run to finish.
- Open the dataset and inspect the first records.
- Download results in JSON, CSV, Excel, or another supported format.
Agentic And API-First Usage
This actor can be used as a structured public commercial-property data acquisition step inside larger automated workflows. It is especially useful when an agent or pipeline needs a bounded, documented dataset plus a run receipt before deciding whether to enrich records, update a CRM, refresh a dashboard, or alert a human reviewer.
Agent workflow pattern:
- Generate or select a scoped input from the supported schema.
- Run the actor manually, on a schedule, or through Apify platform automation.
- Wait for completion and read the dataset records.
- Validate records against the Field Reference.
- Read
RUN-SUMMARYorRUN-SUMMARY.htmlto verify counts, enrichment status, limit behavior, coordinates, artifact keys, and export readiness. - Upsert records into the downstream system using
record_idor the recommended composite URL key. - Trigger market analysis, enrichment, alerts, BI refreshes, vector/search indexing, lead review, or human verification.
Practical notes for agentic use:
- Keep prompts and automations grounded in the documented input parameters.
- Start with small validation runs before allowing broad automated collection.
- Feed the Field Reference and one output sample to downstream AI steps.
- Feed run summary artifacts to downstream agents so they can reason about completion, record counts, location distribution, enrichment status, and follow-up actions.
- Treat optional property and listing fields as nullable instead of asking agents to infer missing values.
- Store run ID, input configuration, and dataset export metadata outside or alongside records when building audit trails.
- For tools such as Claude, Codex, internal copilots, or property workflow agents, pass the input schema, Field Reference, idempotency key, and one representative output example rather than the full README when context is limited.
Scheduling & Automation
Scheduling
Automated Data Collection
You can schedule runs to keep a selected property segment fresh for monitoring, reporting, or enrichment workflows. Use the same input configuration for comparable recurring snapshots.
- Navigate to Schedules in Apify Console
- Create a new schedule, such as daily, weekly, or a custom cron cadence
- Configure input parameters for the selected location, URLs, property type, filters, enrichment, and limit
- Enable notifications for run completion
- Add webhooks for automated processing
Integration Options
- CRM enrichment: sync public listing URLs, agency names, property categories, price labels, availability, and source identifiers into account, opportunity, or lead records.
- BI dashboards: monitor asking-price signals, availability, property mix, agency visibility, city coverage, and enrichment coverage over time.
- Warehouses and ETL pipelines: ingest nested JSON records into structured property tables, history tables, or analytics models.
- Google Sheets or Airtable: review smaller validation runs, analyst queues, or manually curated target segments.
- Webhooks: trigger validation, notification, deduplication, or ingestion workflows after each completed run.
- MCP connectors: authorize a connector in Apify, select it in
mcpConnectors, and use the delivered run-summary message in the destination tool. The actor sends a summary handoff, not the full listing dataset. - Search and vector indexes: index titles, descriptions, property facts, locations, agency names, and source URLs for discovery or agent retrieval workflows.
Export Formats And Downstream Use
- JSON: best for APIs, applications, AI agents, and data pipelines that need nested fields and full record fidelity.
- CSV or Excel: useful for spreadsheet workflows, stakeholder review, analyst QA, and lightweight market analysis.
- API access: supports automated ingestion into internal systems using Apify dataset access.
- BI and warehouses: suitable for reporting, dashboards, historical analysis, and recurring monitoring.
- Search or vector indexes: useful for property discovery, semantic search, retrieval workflows, and agent context when fields such as titles, descriptions, locations, source URLs, and attributes are indexed deliberately.
Downstream Pipeline Guide
- Idempotency: use
record_idwhen present, withentity.urlorsource_context.source_urlas the fallback. - Null handling: treat optional fields as nullable because listing detail, media, coordinates, agency, price, and availability can vary.
- Type handling: preserve numbers, booleans, arrays, and nested objects when exporting to JSON-first systems.
- Flattening: if exporting to CSV or Excel, flatten nested objects deliberately and keep the original JSON export for full fidelity.
- Partitioning: store run date, input segment, geography, property type, deal type, or workflow name alongside records for easier analysis.
- Change detection: compare repeated runs by stable key and selected business fields such as
pricing.price_text,pricing.asking_price,entity.status,availability.status,property.floor_area,property.energy_label, andrelationships.agency.name. - Quality checks: monitor record count, duplicate rate, required identifier coverage, price/status availability, coordinate coverage, media coverage, and agency fill rate.
- Human review: route records with missing critical fields, unusual prices, changed status, new agencies, or high-value segments into review queues.
- Retention: decide how long to keep raw JSON exports versus normalized warehouse tables based on your reporting, audit, and monitoring needs.
Performance And Coverage Expectations
No saved run artifacts with measured duration, throughput, or limit-hit behavior were available in the local actor workspace used for this README pass. Use the following as planning estimates, not guarantees:
- Small runs under 1,000 outputs: approximately 3-5 minutes.
- Medium runs from 1,000-5,000 outputs: approximately 5-15 minutes.
- Large runs above 5,000 outputs: approximately 15-30 minutes.
Execution time varies based on filters, result volume, target availability, target response size, enrichment depth, coordinate availability, artifact creation, and how much information is returned per listing. Highly filtered runs can finish faster, while broad discovery, detail enrichment, direct-listing batches, or media-rich records may take longer. The actor does not claim complete market coverage, guaranteed availability, lossless extraction, or appraisal-grade accuracy; use saved records and run summary artifacts to review each run.
Limitations
- Availability depends on what Fundainbusiness.nl publicly exposes at run time.
- Some optional fields may be missing on sparse records or listing types that do not expose detail values.
- Very broad searches may take longer or require a higher
limit. - Enrichment can add useful detail fields, but those fields depend on what individual listing pages provide.
- Target-side changes can affect field availability, labels, or visible results.
- Regional, account, visibility, listing status, or availability differences may change what appears in a run.
- Listing prices, availability, status, and descriptions are point-in-time public signals and should be verified before operational decisions.
- The actor provides structured public real estate data, not legal, financial, investment, valuation, appraisal, or brokerage advice.
Troubleshooting
- No results returned: check location spelling, selected property category, deal type, direct URLs, filters, and whether Fundainbusiness.nl has matching public records.
- Fewer results than expected: broaden filters, raise
limit, or verify that the target contains enough matching public listings. - Some fields are empty: optional fields depend on what each listing or detail page publicly provides.
- Duplicate-looking records: compare
record_id,entity.url, andsource_context.source_urlbefore deciding whether records are duplicates, updates, or variants. - Run takes longer than expected: reduce scope, lower the validation limit, disable enrichment for exploratory runs, or split broad collection into smaller segments.
- Output changed: compare the current output with the Field Reference and review a small sample to identify which optional fields changed.
- Downstream import failed: check JSON validity, nullable fields, nested objects, arrays, and whether your destination expects flattened columns.
- MCP delivery did not arrive: confirm that connectors were authorized in Apify and selected in
mcpConnectors; the dataset and run summary artifacts remain the primary outputs.
FAQ
What data does this actor collect?
It collects public Fundainbusiness.nl commercial property listing records, including listing identity, URLs, deal type, category, pricing labels, location details, property attributes, media URLs, agency details, availability, source context, and optional enrichment fields when available.
Can I filter by location, property type, date, price, status, keyword, or other criteria?
Yes. The input schema supports startUrls for search result or individual listing URLs, plus location, deal_type, property_type, keyword, price range, floor-area range, publication date, surrounding context, amenities, availability, parking, construction type, construction period, energy label, auction timing, open-day timing, highlighted listings, and sold/rented listings.
Why did I receive fewer results than my limit?
The limit is a maximum, not a guarantee. A run can return fewer records when the selected location, URLs, property type, filters, or public target availability produce fewer matching listings.
Where can I find the run summary?
The actor writes RUN-SUMMARY and RUN-SUMMARY.html to the default key-value store. The output schema also exposes links to the dataset and these run-summary artifacts.
Does the actor create an interactive map?
The dataset can include location.latitude and location.longitude when enriched records expose coordinates. If a run returns a stable map or report artifact, the run summary lists its key. Do not assume every run includes a map artifact.
How should I choose a limit for my first run?
Start small, such as 10-25 records, so you can inspect the record shape, field coverage, and run summary. Increase the limit after confirming that the output matches your workflow.
Can I schedule recurring runs?
Yes. Use Apify schedules to run the same input daily, weekly, or on a custom cadence for monitoring, reporting, and recurring enrichment.
How do I avoid duplicates across runs?
Use record_id when present, and keep entity.url or source_context.source_url as audit fallbacks. For conservative upserts, use a composite key such as source domain plus listing ID or source URL.
Can I use the output with AI agents or automated workflows?
Yes. The actor produces structured JSON records plus run summary artifacts that AI agents and automation systems can use for validation, enrichment, monitoring, alerts, search indexing, and human review handoffs.
Can I export the data to CSV, Excel, or JSON?
Yes. Apify datasets can be exported in JSON, CSV, Excel, and other supported formats. JSON preserves nested objects with the highest fidelity.
Does this actor collect private data or provide official MLS/appraisal data?
No. It collects publicly available Fundainbusiness.nl listing information. It does not provide private data, official MLS access, ownership verification, appraisal-grade valuation, legal advice, investment advice, or guaranteed listing availability.
What should I include when reporting an issue?
Include the redacted input, run ID, expected versus actual behavior, a small output sample if useful, and the downstream destination or export format if the issue is pipeline-related.
Compliance & Ethics
Responsible Data Collection
This actor collects publicly available commercial property listing information from Fundainbusiness.nl for legitimate business purposes, including:
- Real estate research and market analysis
- Listing monitoring, CRM enrichment, and operational reporting
- Public property-data acquisition for analytics, dashboards, and workflow automation
This section is informational and not legal advice. Users are responsible for ensuring that their use of collected data complies with applicable laws, regulations, contracts, and platform rules.
Best Practices
- Use collected data in accordance with applicable laws, regulations, and the target site’s terms.
- Respect individual privacy and personal information.
- Use data responsibly and avoid disruptive or excessive collection.
- Do not use this actor for spamming, harassment, discrimination, unlawful housing practices, or other harmful purposes.
- Follow relevant data protection, fair housing, consumer protection, and sector-specific requirements where applicable.
- Review your own retention, access control, and data-sharing policies before operationalizing the dataset.
Support
For help, use the actor page or Issues channel available for this actor. Include the redacted input used, run ID, expected versus actual behavior, a small output sample when relevant, and the downstream destination or export format if the issue is pipeline-related. Avoid sharing secrets, private credentials, or unnecessary personal data in support requests.