The following document describes the implementation flow to integrate the Cabaprop API into your system.
Workflow
- Connect the account: the account holder generates an API KEY from their panel at cabaprop.com.ar and you send it to POST /cabaprop/connect, which returns a Cabaprop token (
token+exp). Store it — you will need it in theX-Cabaprop-Tokenheader of every endpoint that follows. - Get the profile and branches: with GET /cabaprop/get-branches you obtain the real estate agency
id(realStateId) and theidof at least one branch (branchOfficeId). Both are required in order to publish. - Resolve the catalogs: use Cabaprop API > Location catalogs (neighborhoods, operation types, property types/sub-types, attributes) to obtain the ids you need to build the Property Object (
operation_type,property_type,sub_property_type,location.barrios). If your system already knows Mapaprop's internal schema, you can also query the zone/operation/type/attribute mapping — but there is no way to create new mappings, so the recommended path for new integrations is always the catalog. - Build your Property Object: with the ids resolved, build the
propertyobject as described in Cabaprop API > Property Object. Remember the minimum of 3 images and that thelocation.numberkey must be present (even if it is""). - Publish the property: with POST /cabaprop/publish you publish the listing. The endpoint is idempotent — if you call it again for the same property, it updates the existing listing instead of failing.
- Update the listing: for later changes (price, description, images, etc.) use PUT /cabaprop/property, sending only the fields that changed.
title,locationandproperty_type/operation_typecannot be updated — for those cases you have to unpublish and publish again. - Unpublish the listing: with DELETE /cabaprop/property/unpublish you take the listing down. It is idempotent as well.
- Disconnect the account (optional): DELETE /cabaprop/disconnect marks the account as disconnected on your side. It does not unpublish existing listings — unpublish them beforehand if applicable.
Renewing the Cabaprop token
The token returned by POST /cabaprop/connect expires (approximately 30 days, according to the exp field of the response). Whenever any endpoint returns 401 with "Cabaprop authentication failed", call POST /cabaprop/connect again with the same apiKey to obtain a new token.
Portal business errors
The validation errors returned by Cabaprop (for example, coordinates outside CABA, or a missing street/number) are not propagated as an HTTP error: they are returned with status 200 and the shape {"success":false,"errorCode":"...","detail":"..."}. Always check the success field in the response of POST /cabaprop/publish, PUT /cabaprop/property and DELETE /cabaprop/property/unpublish — a 200 does not always mean success.
Intermediate database
The system stores a copy of the last published state of each listing, linked to your propertyId/custId. This is what allows PUT /cabaprop/property to merge only the fields you send, and POST /cabaprop/publish to be idempotent. The information you load and modify in Cabaprop stays on record until you unpublish the listing with DELETE /cabaprop/property/unpublish.