BETA

GET /properties

Two ways: one property by its paId, or the list of yours.

One property

GET https://property-api.mapaprop.com/property-v1/properties/{paId}

The list

GET https://property-api.mapaprop.com/property-v1/properties
{ "total": 12, "items": [ { "…" } ] }

The list is for ONE clientRef, not for your whole inventory. It returns the properties of the client you send in x-client-ref. For another clincy's inventory, ask with its clientRef. See clientRef.

Authentication

Authorization: Bearer <your token>.

curl https://property-api.mapaprop.com/property-v1/properties/01M3PTZ8YBMM5DSNW03WP8VD9E \
  -H "Authorization: Bearer $TOKEN"

The response

The response carries the clientRef, the same one you sent in the envelope. We return it on all six paths (verify, create, read, list, update and delete) so you can match it against your own database without having to remember which clientRef you asked with.

The same thing create returned — object, portals, summary — plus the image detail.

The portals are recalculated on every request. It is not a snapshot of the day you created the property: if we improve a portal's mapping, you see it here without posting anything again.

verdictAtCreation — the verdict from the day you created it

Besides portals — which is recalculated — the GET returns the verdict as it was the day you created the property, with its date:

"verdictAtCreation": {
  "at": "2026-09-29T21:52:43.549Z",
  "argenprop": { "status": "fields_complete", "blockers": [] },
  "zonaprop":  { "status": "fields_complete", "blockers": [] }
}

To decide whether to publish, look at portals, not at this. The two coexist on purpose and say different things:

portalswhat the system would say today
verdictAtCreationwhat it said the day you created it, with its date

verdictAtCreation is a historical record: it explains why a property created a month ago did or did not pass, with the mapping that existed back then.

published — what is published on each portal

What publishing wrote on the other side. Until you publish, it comes back as null:

"published": {
  "argenprop": { "itemId": null, "remoteStatus": null },
  "zonaprop":  { "itemId": null, "remoteStatus": null }
}
FieldWhat it is
itemIdThe listing id on that portal
remoteStatusIts status on the other side

images and assets — the status of your images

images gives you the summary and assets the detail, one entry per image:

"images": { "status": "partial", "total": 4, "processed": 3 },
"assets": [
  { "n": 1, "slot": "image", "source": "https://tu-cdn.com/frente.jpg",
    "url": "https://…/image-1.jpg", "ok": true },
  { "n": 2, "slot": "image", "source": "https://tu-cdn.com/living.jpg",
    "error": "el host del origen no existe (DNS no resuelve) [ENOTFOUND]", "ok": false }
]
FieldWhat it is
slotimage or blueprint
sourceThe URL you sent us
urlWhere it ended up. Only if ok
errorWhy it could not be downloaded. Only if not ok

The images.status values and what to do with each one are in POST /properties.

Errors

CodeWhen
401Token missing, expired or invalid
404That paId does not exist

The GET never returns 409: you can always look a property up, even while its images are being downloaded. That is in fact how you follow the progress.