ActorStack.dev

Agency or owner: the one Zonaprop field that changes your legal position

Zonaprop labels private owners separately from agencies, and that label decides whether a phone number is a business contact or an individual's personal data.

By Oswaldo Carabano7 min read

Short answer

Zonaprop distinguishes agencies from private owners — "dueño directo" — and the Actor carries that label through as `seller_type`. Agency phone numbers are returned by default because they are published business contacts. A private owner's number is an individual's personal data, so it is withheld unless you explicitly enable it, and `partial_phone` is not a substitute: it is the five-digit fragment Zonaprop shows every visitor.

Key points

  • `seller_type` comes from Zonaprop's own labelling, so the segments can be separated without inferring anything.
  • Agency numbers are published business contacts and are always returned.
  • Private owners' numbers are off by default. Turning them on is a decision that needs a lawful basis, and the input says so.
  • `partial_phone` is the five-digit fragment Zonaprop itself renders publicly — area code plus three digits — so the digits that identify the line are never in the output.
  • Argentina has its own data protection law, and the fact that a number is visible on a public page is not the same as a basis for building a database of it.
On this page7 sections

Zonaprop already does the hardest part of this job for you: it labels private owners separately from agencies. That label — seller_type — is the field that decides whether a phone number in your dataset is a published business contact or an individual's personal data, and those are not the same thing in any jurisdiction.

The label Zonaprop already applies

Argentine listings distinguish an inmobiliaria from a dueño directo — an agency from a direct owner — and the portal renders that distinction itself. The Actor carries it through as seller_type rather than inferring it from the publisher name, which is the kind of inference that quietly misclassifies a one-person agency as an individual and vice versa.

Why the label decides more than segmentation

As a market signal the split is already useful: the two segments price differently and respond differently. But the reason it is load-bearing is that the two carry different obligations.

A phone number an agency publishes is a business contact, published so customers will call it. A phone number an individual publishes to sell their apartment is personal data about that individual, published for one specific purpose — and “it was on a public page” is not a lawful basis for building a database of it.

Agency numbers

Always returned. This is the least contentious category of scraped contact data there is: a commercial entity publishing a contact channel in order to receive commercial contact.

Collecting is still not the same as using — rules on unsolicited commercial contact apply wherever you and the recipient are. But nothing about the collection needs special justification.

Private owners' numbers, and the default

Withheld unless you set includePrivateSellerPhone: true, and the input field says why. That is a deliberate design choice with the same shape as the one in the coches.net Actor — except that there the field is refused outright, and here it is an opt-in.

The difference is scale and traceability. On coches.net roughly 107,000 private sellers make the GDPR Article 14 information duty impossible for anyone to discharge. On a targeted Zonaprop run — one neighbourhood, one operation — the population is small enough that a lawful basis and a notification are conceivable for somebody who actually has one. So the decision is left to the user, marked as carrying a privacy consequence, rather than made silently in either direction.

`partial_phone` is not a phone number

This field causes confusion, so plainly: partial_phone is the five-digit fragment Zonaprop itself renders on the public listing page to any visitor. It covers the area code plus three digits.

The last five digits — the part that identifies the line — are never included, in any configuration. It is useful for de-duplicating publishers across listings without holding anybody's number, and it is useless for calling anybody, which is the point.

The Argentine framework, briefly

Argentina has had a data protection law since 2000 — Ley 25.326 — supervised by the Agencia de Acceso a la Información Pública. Like the GDPR it works on the basis that personal data needs a lawful basis and a purpose, and like the GDPR it does not treat public visibility as consent.

Practical guidance

  1. Split on seller_type before anything else. Almost every analysis reads differently by segment.
  2. Leave the private-phone flag off unless you can say why it is on. The default is the answer for the overwhelming majority of uses.
  3. Use partial_phone for de-duplication, which is what it is good for.
  4. Have a removal route. This project has one: data removal.

Frequently asked questions

Does the Actor return private sellers' phone numbers?
Not by default. Agency numbers are always returned because they are business contacts. A private owner is an individual, so their number is opt-in, and the responsibility for having a lawful basis sits with whoever enables it.
What is `partial_phone`?
The five-digit fragment Zonaprop itself displays to any visitor — the area code plus three digits. It is not the phone number, and the five digits that identify the line are never included.
How do I separate agency listings from owner listings?
With `seller_type`, which carries Zonaprop's own distinction rather than a guess based on the publisher name. Both segments behave differently on price and on responsiveness, so the split is worth making before analysis.

Sources

Every URL below was requested and returned a page on the date shown.

  1. Operator claimchecked 19 Aug 2026
    Zonaprop Argentina Real Estate & Agency Scraper — Actor README and input schemaActorStack / Apify Store
  2. Law or regulatorchecked 19 Aug 2026
    Ley 25.326 de Protección de los Datos PersonalesInfoLEG, Ministerio de Justicia (Argentina)
  3. Law or regulatorchecked 19 Aug 2026
    Protección de datos personalesAgencia de Acceso a la Información Pública (Argentina)
Paper receipts and printed documents arranged on a desk beside office stationery.
ZonapropGuide

USD and ARS prices

Argentine listings are priced in dollars or pesos, and expenses almost always in pesos. Mixing them without care produces analysis that is wrong by two orders of magnitude.

8 min
The facade of a contemporary Argentine apartment building, balconies stacked floor by floor.
ZonapropGuide

Geolocated property data

Most property datasets give you a neighbourhood. Coordinates on the listing itself let you do the analysis that neighbourhood averages cannot.

7 min
Skyline of modern high-rise apartment towers in Buenos Aires against a clear sky.
ZonapropGuide

Scrape Zonaprop

A walkthrough of extracting Argentine property data: why the proxy country matters, what the 5-page robots.txt cap means for coverage, and how to read prices quoted in two currencies.

9 min