PropertyFinder.ae UAE Real Estate Listings avatar

PropertyFinder.ae UAE Real Estate Listings

Pricing

from $2.55 / 1,000 authorized gulf property intelligence rows

Go to Apify Store
PropertyFinder.ae UAE Real Estate Listings

PropertyFinder.ae UAE Real Estate Listings

Turn buyer-authorized or licensed Gulf property exports into privacy-aware evidence, freshness, confidence gaps, review priority, and human actions without scraping, browser automation, or external-source requests.

Pricing

from $2.55 / 1,000 authorized gulf property intelligence rows

Rating

0.0

(0)

Developer

Tim Zinin

Tim Zinin

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Categories

Share

Authorized Gulf Property Listing Intelligence

Normalize Gulf property records that you own or are licensed to process into review-ready evidence, freshness, confidence gaps, human actions, and exact pay-per-result reconciliation — without fetching Property Finder or any external source.

Built for: licensed property data providers, brokerages, owners, property managers, data stewards, compliance teams, and integration teams working from an authorized export.

Commercial unit: one delivered authorized Gulf property intelligence row. The automatic Actor start event is separate. Free diagnostics do not intentionally emit result-found.

Authorized Gulf Property Listing Intelligence: authorized export to evidence-backed human review

What you get

This Actor converts minimal structured property records into deterministic review artifacts while preserving familiar legacy fields. It deliberately does not research listings. Instead, it makes source authority, data gaps, freshness basis, decision limits, billing intent, and terminal settlement visible.

  • One delivery candidate per valid source-scoped listing identity after deterministic deduplication.
  • Zero external-source network activity: no source page, recorded URL, browser, proxy, API, DNS, robots, or sitemap request.
  • A closed record shape that rejects descriptions, photos, contacts, free text, unknown fields, and embedded credentials.
  • Explicit buyer authorization and source-context selection before any paid result candidate can be built.
  • Legacy-compatible property fields plus stable IDs, timestamps, evidence digests, freshness, confidence gaps, and a human action.
  • Mechanical price-per-square-metre where area is supplied, explicitly separated from valuation or investment advice.
  • Free diagnostics for legacy search input and invalid records, never disguised as paid properties.
  • Exact current-run KVS OUTPUT with work, delivery, paid/free/withheld/unknown, terminal, and replay partitions.
  • Settlement-neutral Dataset billing intent: a row never claims its own paid state.
  • Human review required on every record and safeToAutomate always false.

Version 0.2 replaces the historical live-portal crawler. Existing Tasks may retain the technical slug and old input fields, but they no longer cause a source request. A legacy request receives a free migration diagnostic and instructions to submit authorized records. Because that diagnostic is itself a Dataset push, the completed run is not safe for blind replay even though it has no result charge.

Who uses it

The product is for organizations that already control or license the records and need a consistent intelligence layer before data enters sales, operations, analytics, or publishing systems.

  • A licensed Gulf property data provider packaging a permitted downstream export.
  • A brokerage normalizing listings covered by its active marketing mandates.
  • An owner or property manager reviewing an authorized portfolio export.
  • A compliance team checking provenance, rights statements, freshness, gaps, and settlement.
  • A data steward migrating records between listing, CRM, warehouse, or BI systems.
  • An integration team that needs deterministic IDs and exact pay-per-result reconciliation.

It is not a scraper, portal search tool, title registry, valuation engine, investment screener, lead harvester, contact finder, availability monitor, fraud detector, listing publisher, or legal-rights verifier. The Actor does not contact Property Finder, a broker, an owner, a registry, a lender, a valuer, or any recorded URL.

للأسواق الخليجية

هذه الأداة لا تجمع البيانات من بوابات العقارات ولا تتحقق من الملكية أو السعر أو التوفر. استخدمها فقط مع سجلات تملك حقاً موثقاً في معالجتها وتسليمها، وراجع كل نتيجة بشرياً قبل أي نشر أو تواصل أو قرار مالي أو قانوني.

How to run

  1. Obtain a provider export, brokerage inventory file, owner-authorized export, or another source with documented processing and downstream delivery rights.
  2. Remove descriptions, images, names, phone numbers, emails, notes, buyer profiles, tenant data, and fields outside the closed contract.
  3. Preserve the source listing ID and an HTTPS evidence reference without credentials.
  4. Choose the truthful sourceContext and write traceable sourceName and sourceLicense statements.
  5. Submit one to 100 records with the exact authorization sentence.
  6. Inspect free diagnostics before using valid siblings; invalid objects are not silently repaired.
  7. Read Dataset rows and current-run KVS OUTPUT together. Require the same platform run ID.
  8. Route every row to a person who can verify source authority, identity, availability, ownership, condition, valuation, and transaction terms.

Example input:

{
"schemaVersion": "2.0",
"authorization": "I confirm I am authorized to process and deliver these property records",
"sourceContext": "provider_licensed_export",
"listings": [
{
"listingId": "listing-101",
"listingUrl": "https://inventory.example.com/listing-101",
"title": "Two-bedroom apartment in Dubai Marina",
"price": 2450000,
"currency": "AED",
"dealType": "sale",
"propertyType": "Apartment",
"bedrooms": 2,
"areaSqm": 128.4,
"location": "Dubai Marina",
"latitude": 25.0805,
"longitude": 55.1403,
"listedAt": "2026-08-12T10:00:00Z",
"sourceName": "Licensed Gulf property export",
"sourceLicense": "Buyer confirms downstream processing and delivery rights",
"sourceRetrievedAt": "2026-08-12T12:00:00Z"
}
]
}

The Actor serializes paid delivery so each named result event can be proven exactly. There is no concurrency control because there is no source workload to parallelize.

Authorized Gulf Property Listing Intelligence: authorize, normalize, assess, and reconcile workflow

Pricing

The Actor uses pay per event. A run may incur the automatic apify-actor-start event. Each valid property candidate is linked to result-found during Dataset delivery. Confirmed paid settlement requires the named counter to advance by exactly +1. eventChargeLimitReached only says whether another paid operation fits after the attempt; it does not undo the current named +1. The Dataset row states intent; KVS OUTPUT is the settlement authority.

TierStart eventOne delivered authorized Gulf property intelligence row
FREE$0.00500$0.00300
BRONZE$0.00475$0.00285
SILVER$0.00450$0.00270
GOLD$0.00425$0.00255
PLATINUM$0.00410$0.00246
DIAMOND$0.00400$0.00240

At FREE-tier rates, start plus one paid row is $0.008 and start plus ten paid rows is $0.035. At DIAMOND rates those examples are $0.0064 and $0.028. They exclude platform compute, storage, and downstream services. Read the live pricing panel for the tier actually applied.

Legacy migration and invalid-record diagnostics do not intentionally emit result-found; the separate start event may still apply. A returned Dataset write is free only when the platform proves a zero named-event delta and aggregate zero. The limit flag is recorded as a future-work signal, never used as settlement proof. Unknown delivery, unknown settlement, and anomalous settlement stop the run and forbid blind retry.

Input contract

Public input version 2.0 accepts schemaVersion, authorization, sourceContext, listings, and bounded legacy migration fields. The current path is listings: one to 100 closed objects.

Required record fields are listingId, listingUrl, title, price, currency, dealType, sourceName, and sourceLicense. Optional fields are propertyType, bedrooms, areaSqm, location, latitude, longitude, listedAt, and sourceRetrievedAt. Unknown fields invalidate that object. Currency is 3–8 letters, price is positive, URLs are HTTPS without credentials, timestamps are real UTC values, and numeric fields are bounded.

The exact authorization sentence is: I confirm I am authorized to process and deliver these property records. It is an operational gate, not legal proof. Deduplication uses lowercase sourceName plus listingId. It does not merge across sources, addresses, coordinates, titles, or URLs.

Legacy deal_type, emirate, max_items, max_pages, and max_listing_age_days are migration-only. They never initiate portal access. A legacy-only request creates one free diagnostic and no property result.

Happy, partial, and failure output

A happy run has valid candidates, exact +1 named settlements, one current-run OUTPUT, no fatal error, and reconciled Dataset counts. A partial run can contain free diagnostics, a confirmed-free candidate, a budget stop, or other explicitly counted incomplete work. A failed run stops on invalid top-level input, run-identity failure, pricing drift, pre-push counter failure, unknown delivery, unknown settlement, settlement anomaly, KVS failure, or exit failure.

Run-bound paid example:

{
"runId": "propertyFinderGulfRun101",
"buildId": "CURRENT_IMMUTABLE_BUILD_ID",
"status": "SUCCEEDED",
"evidenceAccepted": true,
"output": {
"schemaVersion": "2.0.0",
"kind": "authorized_gulf_property_intelligence_output",
"status": "COMPLETE",
"runId": "propertyFinderGulfRun101",
"requestDigest": "sha256:REPLACED_BY_CURRENT_REQUEST_DIGEST",
"input": {"requestedCount":1,"uniqueCount":1,"duplicateCount":0,"invalidCount":0,"legacyInputCount":0},
"run": {"attemptedCount":1,"successfulCount":1,"failedCount":0,"deliveredRowCount":1,"paidRowCount":1,"freeRowCount":0,"withheldRowCount":0,"unknownDeliveryCount":0,"unknownSettlementCount":0,"partial":false,"budgetStopped":false,"fatalError":null,"replaySafe":false,"safeToAutomate":false},
"delivery": {"eventName":"result-found","attemptedPushCount":1,"resultChargeCountBefore":0,"resultChargeCountAfter":1,"confirmedEventDelta":1,"confirmedDatasetWrites":1,"lastAttempt":{"stableId":"sha256:REPLACED_BY_ROW_STABLE_ID","state":"confirmed_paid","resultChargeCountBefore":0,"resultChargeCountAfter":1,"delta":1,"aggregateChargedCount":2,"eventChargeLimitReached":false}},
"errors": [],
"resultsUrl": "https://api.apify.com/v2/datasets/CURRENT_DATASET_ID/items",
"startedAt": "2026-08-13T00:00:00.000Z",
"completedAt": "2026-08-13T00:00:01.000Z",
"terminal": {"outcome":"COMPLETE","failureStage":null,"primaryKvsWrite":"confirmed","recoveryKvsWrite":"not_attempted","exit":"requested"}
}
}

Run-bound legacy migration example:

{
"runId": "propertyFinderGulfLegacy101",
"buildId": "CURRENT_IMMUTABLE_BUILD_ID",
"status": "SUCCEEDED",
"evidenceAccepted": true,
"output": {
"schemaVersion": "2.0.0",
"kind": "authorized_gulf_property_intelligence_output",
"status": "PARTIAL",
"runId": "propertyFinderGulfLegacy101",
"requestDigest": "sha256:REPLACED_BY_CURRENT_REQUEST_DIGEST",
"input": {"requestedCount":0,"uniqueCount":0,"duplicateCount":0,"invalidCount":0,"legacyInputCount":1},
"run": {"attemptedCount":0,"successfulCount":0,"failedCount":0,"deliveredRowCount":1,"paidRowCount":0,"freeRowCount":1,"withheldRowCount":0,"unknownDeliveryCount":0,"unknownSettlementCount":0,"partial":true,"budgetStopped":false,"fatalError":null,"replaySafe":false,"safeToAutomate":false},
"delivery": {"eventName":"result-found","attemptedPushCount":1,"resultChargeCountBefore":0,"resultChargeCountAfter":0,"confirmedEventDelta":0,"confirmedDatasetWrites":1,"lastAttempt":{"stableId":"sha256:REPLACED_BY_DIAGNOSTIC_STABLE_ID","state":"confirmed_free_diagnostic","resultChargeCountBefore":null,"resultChargeCountAfter":null,"delta":null,"aggregateChargedCount":null,"eventChargeLimitReached":null}},
"errors": [],
"resultsUrl": "https://api.apify.com/v2/datasets/CURRENT_DATASET_ID/items",
"startedAt": "2026-08-13T00:00:00.000Z",
"completedAt": "2026-08-13T00:00:01.000Z",
"terminal": {"outcome":"PARTIAL","failureStage":null,"primaryKvsWrite":"confirmed","recoveryKvsWrite":"not_attempted","exit":"requested"}
}
}

These examples show the contract lattice, not reusable identifiers. Bind automation only to the actual platform run ID, Dataset, KVS, and named counters. Never construct a paid success from a Dataset row alone.

Field dictionary

FieldMeaning and boundary
urlLegacy-compatible recorded HTTPS listing reference. The Actor validates syntax but never opens, resolves, follows, or verifies it.
titleBuyer-supplied listing title, trimmed and bounded to 240 characters.
price / currencySupplied positive price and uppercase currency code. They are not a valuation or transaction quote.
deal_typeNormalized sale or rent; preserved in the familiar legacy field.
property_typeOptional supplied type such as Apartment or Villa. No taxonomy authority is contacted.
roomsOptional supplied bedroom count, including zero for a studio when the buyer source uses that convention.
area_sqmOptional supplied floor area in square metres. The Actor performs no unit conversion.
location / lat / lngOptional supplied locality and coordinates. Coordinates are not geocoded or checked against the locality.
posted_dateOptional buyer-supplied listing timestamp. It is not fetched from the recorded URL.
description / imagesAlways null and empty. Version 0.2 intentionally rejects descriptions, photos, and free text.
source_portalLegacy-compatible mirror of the buyer-supplied source name; it does not imply portal access.
scraped_atLegacy-compatible field equal to processing time. Nothing is scraped by version 0.2.
partial / partial_reasonTrue only on a diagnostic row or partial run condition; valid property rows are not silently marked complete source coverage.
source_page_urlAlways null because no source page is requested.
schemaVersion / recordTypeLegacy-compatible 1.0.0 with property_listing or free run_advisory.
contractVersion / intelligenceTypeCurrent additive contract 2.0.0 and its explicit authorized-intelligence or diagnostic type.
stableIdSHA-256 over sourceName plus listingId. It supports deterministic joins; it is not ownership proof or anonymization.
entityId / inputRef / emirateLegacy additive identity and input-context fields remain present. Modern records use source-scoped stableId as the primary join and may leave the historical query emirate null.
listingIdBuyer-supplied source-scoped stable listing identifier.
foundTrue for a valid delivery candidate, false for a free diagnostic. It does not assert live availability.
observedAtUTC time when the Actor normalized the record.
freshnessFresh, aging, stale, or unknown based only on supplied sourceRetrievedAt, with the basis and age visible.
changeAlways not_measured because a single submitted snapshot does not establish change.
confidenceEvidence sufficiency for the submitted shape plus explicit gaps; not valuation, authenticity, ownership, or investment confidence.
evidenceDigests binding the normalized record and rights statement. Digests establish integrity, not external truth.
sourceEvidenceLegacy-compatible structured reference to the buyer-supplied HTTPS URL, explicitly labeled as an authorized-export reference rather than fetched portal evidence.
confidenceScore / confidenceBand / dataGapsLegacy-compatible evidence-sufficiency projection derived from the closed shape and explicit gaps; not external accuracy or investment confidence.
pricePerSqmMechanical price divided by supplied area when area is available. It is not an appraisal or comparable-market analysis.
recommendedActionMandatory human verification of rights, identity, availability, ownership, condition, valuation, and terms.
actionPriority / actionReason / recommendationLegacy-compatible routing aliases that retain the human-review reason without authorizing automated action.
priorityReview ordering derived from supplied freshness and locality coverage: HIGH, MEDIUM, or LOW.
safeToAutomateAlways false for external property, outreach, valuation, lending, tenancy, or investment action.
summaryCompact review sentence built only from accepted fields.
failureDiagnosticsNull for result candidates; typed details for a free migration or validation diagnostic.
billingSettlement-neutral intent plus legacy billable eligibility alias. Actual paid/free/anomalous/unknown settlement is authoritative only in current-run KVS OUTPUT.
sourceName / sourceLicenseBuyer-supplied source label and rights statement. The Actor checks shape, not legal sufficiency.
sourceRetrievedAtOptional supplied UTC timestamp used as the freshness basis.
requestDigest / inputDigestStable bindings to the normalized request and record.

The overview view surfaces buyer-facing decision and evidence fields. Full API rows retain every closed contract field. Nested structures use JSON display formatting so a consumer does not confuse evidence objects with ordinary prose.

Evidence and boundaries

Separate three claims. First, the shape claim: accepted fields passed the closed normalization contract. Second, the buyer-attestation claim: the buyer supplied authorization, a source category, a source label, and a rights statement. Third, external truth: not claimed. The Actor did not verify the source, agreement, property, listing, identity, availability, ownership, mandate, price, area, location, coordinates, timestamp, condition, or transaction terms.

Freshness is based only on sourceRetrievedAt supplied by the buyer. Confidence describes evidence sufficiency and gaps, not market accuracy. A digest binds text and fields; it does not validate them. A stable ID proves deterministic construction, not a unique real-world property, title, mandate, or source record. HTTPS syntax does not prove a URL is safe, current, public, controlled, or licensed.

Property records can contain personal, confidential, commercially sensitive, or copyrighted material. Version 0.2 minimizes this exposure by rejecting descriptions, photos, contact fields, notes, and unknown properties. Buyers must still inspect accepted title, location, source labels, licence statements, identifiers, and URLs for hidden personal data or secrets before submission.

Maintain a documented purpose, access controls, source permission, correction route, retention period, deletion process, downstream-recipient map, and incident owner. Do not repurpose normalized records for unsolicited outreach, tenant profiling, discriminatory decisions, hidden surveillance, or a people-data product.

Decision routing

Every property candidate is review-required and safeToAutomate:false.

StateRouteProhibited shortcut
HIGHVerify rights, listing identity, availability, mandate, and supplied facts promptly.Do not auto-publish, contact, price, lend, insure, or invest.
MEDIUMResolve missing locality, timestamp, coordinates, type, or other gaps.Do not treat absence as a negative property signal.
LOWRefresh or correct stale and weak source evidence first.Do not infer market quality from stale metadata.
Free diagnosticFix the record or migrate the legacy Task.Do not count it as property inventory or a paid result.
Unknown delivery or settlementReconcile platform Dataset, KVS, run status, and counters manually.Never blind-retry.
Replay-safe pre-delivery failureCorrect the explicit failure, then deliberately start a new run.Do not assume the prior start event is refundable.

Priority is queue ordering, not an investment, lead, price, fraud, credit, tenant, ownership, or availability score. Downstream software may store or route a row under its own controls, but it must not turn this output into an autonomous external decision.

Commercial playbooks

1. Licensed portal or provider export

Archive the commercial export agreement, confirm downstream delivery rights and permitted fields, remove disallowed content, preserve provider IDs, then normalize a one-record sample before scaling.

2. Broker-owned inventory

Export inventory your brokerage is authorized to market, keep the internal listing ID and approval trail, and route rows to an availability and mandate review before any publication.

3. Owner-authorized portfolio

Maintain authorization outside the Actor, submit only minimal facts, define who may receive the result, and keep a correction and withdrawal process.

4. Property management portfolio

Use organization-controlled records to standardize price, area, locality, and freshness for a human operations queue. Do not infer tenancy or ownership status from the normalized row.

5. Data warehouse staging

Load Dataset rows into a quarantine table, keep KVS OUTPUT in a run-fact table, and release records only after source-rights and quality review.

6. CRM or listing-system migration

Use stableId to reconcile source-scoped records, map only approved fields, and keep safeToAutomate:false until identity and permission are checked.

7. Freshness review

Supply sourceRetrievedAt, sort by freshness status, and request a new authorized export for stale or unknown records. The Actor never revisits a listing URL.

8. Duplicate control

Use the sourceName plus listingId deduplication key. Investigate cross-source duplicates manually because similar titles, prices, and coordinates do not prove one property or mandate.

9. Pricing review queue

Use mechanical pricePerSqm only as a completeness aid. Add licensed comparables, condition, tenure, fees, floor, view, transaction history, and an accredited appraisal before valuation decisions.

10. Legacy Task migration

An old deal_type/emirate Task receives one free diagnostic and no network access. Replace search fields with the closed listings array and explicit authorization.

11. Failed-run reconciliation

Compare platform run status, Dataset length, named-event counters, and current-run OUTPUT. Retry only a pre-delivery failure marked replaySafe true.

12. Controlled reprocessing

Treat a new run as a new commercial attempt. Check requestDigest, stable IDs, prior settlement, and purpose before intentionally submitting the same records again.

For every playbook, name the accountable owner, source authority, permitted fields, recipients, purpose, review SLA, correction path, access policy, retention date, and incident process. The Actor supplies evidence structure; it cannot supply governance or rights.

Integration recipes

Apify API

Start one bounded run, poll that run only, require OUTPUT.runId to equal the platform run ID, compare Dataset length with deliveredRowCount, and compare named result-found events with paidRowCount.

Webhook automation

Trigger only after terminal platform status. Route FAILED and unknown states to incident review, free diagnostics to data quality, and result candidates to a controlled human queue.

Data warehouse

Partition Dataset facts from current-run settlement facts. Store stableId, requestDigest, inputDigest, observedAt, sourceRetrievedAt, and run ID with access controls and deletion policy.

CRM staging

Write approved minimal facts to quarantine. Do not auto-create outreach, marketing, valuation, credit, insurance, tenancy, or investment actions.

MCP or agent workflow

Treat the Actor as a deterministic normalization tool. An agent may propose a review task but cannot infer source authority, ownership, valuation, availability, or permission to contact.

CSV export

Preserve nulls, booleans, ISO timestamps, source labels, and the full JSON confidence/evidence/billing objects. Do not flatten unknown into false.

BI dashboard

Show paid/free/withheld/unknown counts alongside freshness and gaps. Never chart candidate count as verified market inventory.

Replay guard

Store the run ID, requestDigest, terminal status, and lastAttempt. Any linked push attempt makes blind replay unsafe.

Integrations must treat current-run KVS OUTPUT as a separate run fact. Do not copy a final paid/free state into the pre-settlement Dataset row. Do not retry a run merely because an external workflow did not receive its webhook.

Operating guide

Before production, archive the licence or authority, approve the minimal field map, define the purpose and recipients, set retention and deletion rules, and nominate a manual reviewer. Start with one record and a bounded charge cap. Confirm one Dataset row, one current-run OUTPUT, one automatic start event, one named result event, and no unexpected Dataset billing event.

During operation, monitor invalidCount, duplicateCount, withheldRowCount, unknownDeliveryCount, unknownSettlementCount, freshness, evidence gaps, LOW priority, KVS recovery, and platform status. A sudden increase in rejected rows usually means the export changed. An unexpected price map, absent current run ID, nonzero starting named counter, or unreadable pricing state fails closed.

When a push throws, the Actor cannot know whether the Dataset accepted it. When a push returns but the counter cannot be read, Dataset delivery is known but settlement is not. Both states are terminal and never retried automatically. Reconcile against platform storage and counters before any intentional new run.

Security posture is deliberately small: no outbound request path, no API key, no browser, no proxy, closed record properties, bounded input, HTTPS syntax, exact dependency pinning, serialized paid delivery, exact named counters, and semantic OUTPUT validation. This reduces technical exposure but does not validate submitted data or its legal use.

Review the source agreement and privacy design whenever the provider, fields, purpose, recipients, jurisdiction, retention, or pricing changes. Preserve legacy compatibility only for migration; do not reintroduce source fetching behind the old fields.

FAQ

Does this Actor scrape Property Finder?

No. Version 0.2 performs zero external-source network requests. It does not open Property Finder, the recorded listing URL, an API, a sitemap, robots.txt, or any other property source. Platform storage and billing operations still occur inside Apify.

Why keep the propertyfinder-gulf slug?

The technical slug preserves existing Tasks and API integrations while the current title, schema, README, and runtime describe an authorized-export intelligence product.

Does the authorization sentence prove rights?

No. It is an explicit operational attestation. The buyer remains responsible for the actual licence, mandate, privacy basis, attribution, field restrictions, retention, and recipients.

Can I paste records copied from a public website?

Not unless you have a documented right that covers automated or manual collection, processing, and paid downstream delivery. Public visibility alone is not a commercial licence.

Does the Actor verify listing availability?

No. It does not contact a portal, broker, owner, registry, property manager, or other authority. Verify availability immediately before any downstream action.

Does it verify ownership or the marketing mandate?

No. A supplied listing ID, URL, source label, or licence statement does not prove title, agency appointment, authority to advertise, or authority to transact.

Is pricePerSqm a valuation?

No. It is only supplied price divided by supplied area. It omits condition, tenure, floor, view, service charges, financing, transaction comparables, source quality, and market timing.

Can it recommend an investment?

No. safeToAutomate is false and the action is human verification. The output is not investment, financial, legal, tax, appraisal, lending, insurance, or tenancy advice.

Why reject descriptions and photos?

They carry higher copyright, privacy, contact-data, and redistribution risk. The replacement contract accepts only minimal structured facts needed for review.

Can I submit phone numbers or agent names?

No. Unknown record fields are rejected. Do not hide contact details in title, location, sourceName, sourceLicense, IDs, or URLs.

Does the Actor fetch the recorded URL?

No. It validates HTTPS syntax and rejects embedded credentials, but does not resolve DNS, follow redirects, download content, or establish safety or provenance.

What makes a row billable?

A valid result candidate is linked to result-found only during Dataset delivery. The named result counter must advance by exactly +1 for confirmed paid settlement.

Are diagnostics charged as result rows?

No. Legacy migration and invalid-record diagnostics are pushed without result-found. The automatic Actor start event remains separate.

What happens at the charge limit?

The current row is paid whenever the named result counter advances by exactly +1 and the aggregate receipt is bounded, even if eventChargeLimitReached is true. That flag only stops future work. A zero named delta plus aggregate zero is a delivered free row.

What if pushData throws?

Delivery may or may not have occurred. The Actor records unknown_delivery, marks replaySafe false, stops, and never retries the linked push.

What if the Dataset write returns but the counter cannot be read?

Dataset delivery is known while settlement is unknown. OUTPUT records settlement_unknown, replaySafe false, and requires manual platform reconciliation.

Can two sources use the same listing ID?

Yes. Identity is scoped to lowercase sourceName plus listingId. Cross-source merging is intentionally not automatic.

Does SHA-256 anonymize a property or owner?

No. Stable hashes are integrity and join keys. Predictable or linkable identifiers can still reveal business or personal information.

Can I rerun the same records?

Only deliberately after reconciling the previous run. A new run creates a new start event and may create new result charges even for identical input.

Where is terminal truth?

Use the platform run status together with default KVS key OUTPUT, bound to the same run ID. Dataset billing fields are settlement-neutral by design.

How long should I retain output?

Only as long as the documented purpose, licence, mandate, and privacy basis require. Set access, correction, deletion, and downstream-recipient controls before production use.

No. Rights and privacy obligations vary by source, agreement, jurisdiction, field set, purpose, and recipient. Obtain qualified advice where required.

Sources and rights

Version 0.2 uses only JSON placed in Actor input. It does not access Property Finder, recorded listing URLs, search pages, sitemaps, robots files, APIs, portals, registries, brokers, owners, valuation sources, or any other external system. There is no fallback scraper, browser automation, proxy route, hidden endpoint, or redirect-following path.

The buyer must hold a documented right to submit, process, receive, and further use each record for the stated purpose. Depending on the source, that may be a commercial provider licence, a valid brokerage mandate, owner authorization, organization-controlled inventory, or another reviewed authority. The required sentence is an explicit attestation, not a substitute for the underlying agreement.

If records originated from a third-party portal or data provider, review its current contract for automation, export, redistribution, attribution, field restrictions, photos and text, permitted recipients, geography, retention, security, correction, termination, and audit obligations. If the contract does not permit paid downstream delivery, obtain permission or use another source. Do not use this Actor to bypass access controls or licence limits.

Property facts change and can be wrong. Verify current availability, identity, title, ownership, mandate, address, coordinates, size, condition, encumbrances, service charges, taxes, price, currency, transaction terms, counterparty, and all regulatory requirements through appropriate authoritative channels and qualified humans.

This output is not a valuation, appraisal, title report, property inspection, investment recommendation, financial advice, mortgage or insurance decision, tenancy screening, legal opinion, fraud clearance, source licence, marketing consent, or permission to contact anyone. It is a bounded normalization, evidence, human-routing, and settlement layer for records the buyer is already authorized to process.