Properties
A real-estate broker's portfolio: each property with its operation, price in UF or CLP, features and status.
Download the full API pública projection: openapi.json.
| Method | Path | What it does |
|---|---|---|
GET | /properties | Search the cartera |
POST | /properties | Add a property to the cartera |
DELETE | /properties/{id} | Remove a property from the cartera |
GET | /properties/{id} | One property |
PATCH | /properties/{id} | Edit a property (pause it with status: pausada) |
GET | /properties/{id}/publications | A property’s listings on the portals |
POST | /properties/{id}/publications | Publish a property to Portal Inmobiliario |
DELETE | /properties/{id}/publications/{publicationId} | Close a listing on the portal |
POST | /properties/{id}/release-fields | Let protected fields follow the source again |
GET | /properties/portals | Connected portal accounts and their import |
DELETE | /properties/portals/{accountId} | Disconnect a portal account |
GET | /properties/portals/{accountId}/listing-tiers | Listing tiers the account’s packs allow |
POST | /properties/portals/{accountId}/sync | Import the account’s listings now |
POST | /properties/portals/mercadolibre/connect | Start connecting Portal Inmobiliario |
GET /properties
Search the cartera
Live properties, newest first, every filter ANDed. Prices filter across currencies: «2 dormitorios en Ñuñoa bajo UF 5.000» is comuna=Ñuñoa&min_bedrooms=2&max_price=5000&price_currency=UF, and it also finds properties priced in CLP, converted with the day’s UF (meta.uf_value). Without a known UF value, a price bound matches only rows in its own currency. Requires marketplace:read. Only on a workspace whose vertical is real-estate; any other answers 403 VERTICAL_NOT_ENABLED.
| Parameter | In | Type | Required | Constraints |
|---|---|---|---|---|
q | query | string | no | máx. 200 |
operation | query | venta \ | arriendo | no |
property_type | query | departamento \ | casa \ | oficina \ |
status | query | disponible \ | bloqueada \ | reservada \ |
include_units | query | boolean | no | |
comuna | query | string[] | no | |
min_bedrooms | query | integer | null | no | ≥ 0, ≤ 99 |
min_bathrooms | query | integer | null | no | ≥ 0, ≤ 99 |
min_parking | query | integer | null | no | ≥ 0, ≤ 99 |
pets_allowed | query | boolean | no | |
furnished | query | boolean | no | |
broker_user_id | query | uuid | no | |
min_price | query | number | no | > 0 |
max_price | query | number | no | > 0 |
price_currency | query | UF \ | CLP | no |
limit | query | integer | no | ≥ 1, ≤ 200 |
offset | query | integer | null | no | ≥ 0 |
curl https://api.vitrinadev.com/api/v1/properties \
-H "Authorization: Bearer $VITRINA_KEY"Example response (200)
{
"data": [
{
"id": "0199e3a0-0000-7000-8000-000000000001",
"tenant_id": "0199e3a0-0000-7000-8000-0000000000aa",
"display_id": "I-12",
"title": "Departamento 2D2B con terraza, metro Irarrázaval",
"description": "Luminoso, orientación norte, a pasos del metro.",
"operation": "venta",
"property_type": "departamento",
"status": "disponible",
"region": "Metropolitana",
"comuna": "Ñuñoa",
"sector": "Plaza Ñuñoa",
"address": "Av. Irarrázaval 0000, depto 000",
"sale_price_amount": 4800,
"sale_price_currency": "UF",
"rent_price_amount": null,
"rent_price_currency": null,
"common_expenses_clp": 120000,
"property_tax_clp": 85000,
"bedrooms": 2,
"bathrooms": 2,
"usable_area_m2": 62,
"total_area_m2": 70,
"parking_spaces": 1,
"storage_units": 1,
"orientation": "norte",
"floor": 8,
"year_built": 2018,
"furnished": false,
"pets_allowed": true,
"photos": [
"https://example.com/i-12/1.jpg"
],
"broker_user_id": "0199e3a0-0000-7000-8000-0000000000bb",
"owner_name": "Propietaria de ejemplo",
"owner_phone": "+56900000000",
"owner_email": "[email protected]",
"source": "manual",
"external_ref": null,
"protected_fields": [],
"created_by": "0199e3a0-0000-7000-8000-0000000000bb",
"created_at": "2026-10-14T12:00:00.000Z",
"updated_at": "2026-10-14T12:00:00.000Z",
"sale_price": {
"amount": 4800,
"currency": "UF",
"amount_clp": 189120000,
"amount_uf": 4800
},
"rent_price": null
}
],
"meta": {
"pagination": {
"total": 1,
"limit": 50,
"offset": 0
},
"uf_value": {
"clp": 39400,
"date": "2026-10-14"
}
}
}Answers: 200 · 400 · 401 · 403 · 404 · 409 · 429
POST /properties
Add a property to the cartera
A price belongs to an operation the property is offered for (sale_price_* needs venta, rent_price_* needs arriendo; venta_y_arriendo carries both), and each price carries its currency (UF or CLP). The display id (I-n) is allocated by the server. Requires marketplace:write. Only on a workspace whose vertical is real-estate; any other answers 403 VERTICAL_NOT_ENABLED.
curl -X POST https://api.vitrinadev.com/api/v1/properties \
-H "Authorization: Bearer $VITRINA_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Departamento 2D2B con terraza, metro Irarrázaval",
"operation": "venta",
"property_type": "departamento",
"comuna": "Ñuñoa",
"sale_price_amount": 4800,
"sale_price_currency": "UF",
"bedrooms": 2,
"bathrooms": 2
}'Example response (201)
{
"data": {
"id": "0199e3a0-0000-7000-8000-000000000001",
"tenant_id": "0199e3a0-0000-7000-8000-0000000000aa",
"display_id": "I-12",
"title": "Departamento 2D2B con terraza, metro Irarrázaval",
"description": "Luminoso, orientación norte, a pasos del metro.",
"operation": "venta",
"property_type": "departamento",
"status": "disponible",
"region": "Metropolitana",
"comuna": "Ñuñoa",
"sector": "Plaza Ñuñoa",
"address": "Av. Irarrázaval 0000, depto 000",
"sale_price_amount": 4800,
"sale_price_currency": "UF",
"rent_price_amount": null,
"rent_price_currency": null,
"common_expenses_clp": 120000,
"property_tax_clp": 85000,
"bedrooms": 2,
"bathrooms": 2,
"usable_area_m2": 62,
"total_area_m2": 70,
"parking_spaces": 1,
"storage_units": 1,
"orientation": "norte",
"floor": 8,
"year_built": 2018,
"furnished": false,
"pets_allowed": true,
"photos": [
"https://example.com/i-12/1.jpg"
],
"broker_user_id": "0199e3a0-0000-7000-8000-0000000000bb",
"owner_name": "Propietaria de ejemplo",
"owner_phone": "+56900000000",
"owner_email": "[email protected]",
"source": "manual",
"external_ref": null,
"protected_fields": [],
"created_by": "0199e3a0-0000-7000-8000-0000000000bb",
"created_at": "2026-10-14T12:00:00.000Z",
"updated_at": "2026-10-14T12:00:00.000Z",
"sale_price": {
"amount": 4800,
"currency": "UF",
"amount_clp": 189120000,
"amount_uf": 4800
},
"rent_price": null
}
}Answers: 201 · 400 · 401 · 403 · 404 · 409 · 429
DELETE /properties/{id}
Remove a property from the cartera
Takes the property out of the cartera and out of every search, card and Instagram link. To take it off the market but keep it, pause it instead. Requires marketplace:write. Only on a workspace whose vertical is real-estate; any other answers 403 VERTICAL_NOT_ENABLED.
| Parameter | In | Type | Required | Constraints |
|---|---|---|---|---|
id | path | string | yes | mín. 1, máx. 64 |
curl -X DELETE https://api.vitrinadev.com/api/v1/properties/<id> \
-H "Authorization: Bearer $VITRINA_KEY"Example response (200)
{
"data": {
"id": "0199e3a0-0000-7000-8000-000000000001",
"display_id": "I-12",
"deleted": true
}
}Answers: 200 · 400 · 401 · 403 · 404 · 409 · 429
GET /properties/{id}
One property
id is the uuid or the display id (I-12). Includes the private fields (dirección, propietario) — this is the broker’s surface, not the agent’s. Requires marketplace:read. Only on a workspace whose vertical is real-estate; any other answers 403 VERTICAL_NOT_ENABLED.
| Parameter | In | Type | Required | Constraints |
|---|---|---|---|---|
id | path | string | yes | mín. 1, máx. 64 |
curl https://api.vitrinadev.com/api/v1/properties/<id> \
-H "Authorization: Bearer $VITRINA_KEY"Example response (200)
{
"data": {
"id": "0199e3a0-0000-7000-8000-000000000001",
"tenant_id": "0199e3a0-0000-7000-8000-0000000000aa",
"display_id": "I-12",
"title": "Departamento 2D2B con terraza, metro Irarrázaval",
"description": "Luminoso, orientación norte, a pasos del metro.",
"operation": "venta",
"property_type": "departamento",
"status": "disponible",
"region": "Metropolitana",
"comuna": "Ñuñoa",
"sector": "Plaza Ñuñoa",
"address": "Av. Irarrázaval 0000, depto 000",
"sale_price_amount": 4800,
"sale_price_currency": "UF",
"rent_price_amount": null,
"rent_price_currency": null,
"common_expenses_clp": 120000,
"property_tax_clp": 85000,
"bedrooms": 2,
"bathrooms": 2,
"usable_area_m2": 62,
"total_area_m2": 70,
"parking_spaces": 1,
"storage_units": 1,
"orientation": "norte",
"floor": 8,
"year_built": 2018,
"furnished": false,
"pets_allowed": true,
"photos": [
"https://example.com/i-12/1.jpg"
],
"broker_user_id": "0199e3a0-0000-7000-8000-0000000000bb",
"owner_name": "Propietaria de ejemplo",
"owner_phone": "+56900000000",
"owner_email": "[email protected]",
"source": "manual",
"external_ref": null,
"protected_fields": [],
"created_by": "0199e3a0-0000-7000-8000-0000000000bb",
"created_at": "2026-10-14T12:00:00.000Z",
"updated_at": "2026-10-14T12:00:00.000Z",
"sale_price": {
"amount": 4800,
"currency": "UF",
"amount_clp": 189120000,
"amount_uf": 4800
},
"rent_price": null
}
}Answers: 200 · 400 · 401 · 403 · 404 · 409 · 429
PATCH /properties/{id}
Edit a property (pause it with status: pausada)
Partial update. On a property that came from a portal or an import, every field this edit changes is protected: no later sync overwrites it until it is released (protected_fields, ADR 0023). Requires marketplace:write. Only on a workspace whose vertical is real-estate; any other answers 403 VERTICAL_NOT_ENABLED.
| Parameter | In | Type | Required | Constraints |
|---|---|---|---|---|
id | path | string | yes | mín. 1, máx. 64 |
curl -X PATCH https://api.vitrinadev.com/api/v1/properties/<id> \
-H "Authorization: Bearer $VITRINA_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "pausada"
}'Example response (200)
{
"data": {
"id": "0199e3a0-0000-7000-8000-000000000001",
"tenant_id": "0199e3a0-0000-7000-8000-0000000000aa",
"display_id": "I-12",
"title": "Departamento 2D2B con terraza, metro Irarrázaval",
"description": "Luminoso, orientación norte, a pasos del metro.",
"operation": "venta",
"property_type": "departamento",
"status": "disponible",
"region": "Metropolitana",
"comuna": "Ñuñoa",
"sector": "Plaza Ñuñoa",
"address": "Av. Irarrázaval 0000, depto 000",
"sale_price_amount": 4800,
"sale_price_currency": "UF",
"rent_price_amount": null,
"rent_price_currency": null,
"common_expenses_clp": 120000,
"property_tax_clp": 85000,
"bedrooms": 2,
"bathrooms": 2,
"usable_area_m2": 62,
"total_area_m2": 70,
"parking_spaces": 1,
"storage_units": 1,
"orientation": "norte",
"floor": 8,
"year_built": 2018,
"furnished": false,
"pets_allowed": true,
"photos": [
"https://example.com/i-12/1.jpg"
],
"broker_user_id": "0199e3a0-0000-7000-8000-0000000000bb",
"owner_name": "Propietaria de ejemplo",
"owner_phone": "+56900000000",
"owner_email": "[email protected]",
"source": "manual",
"external_ref": null,
"protected_fields": [],
"created_by": "0199e3a0-0000-7000-8000-0000000000bb",
"created_at": "2026-10-14T12:00:00.000Z",
"updated_at": "2026-10-14T12:00:00.000Z",
"sale_price": {
"amount": 4800,
"currency": "UF",
"amount_clp": 189120000,
"amount_uf": 4800
},
"rent_price": null
}
}Answers: 200 · 400 · 401 · 403 · 404 · 409 · 429
GET /properties/{id}/publications
A property’s listings on the portals
One row per portal account the property is listed on, with the portal’s own state for the listing (portal_state: listed, paused, withdrawn, moderated). A listing paused or closed on the portal never changes the property’s status. Requires marketplace:read. Only on a workspace whose vertical is real-estate; any other answers 403 VERTICAL_NOT_ENABLED.
| Parameter | In | Type | Required | Constraints |
|---|---|---|---|---|
id | path | string | yes | mín. 1, máx. 64 |
curl https://api.vitrinadev.com/api/v1/properties/<id>/publications \
-H "Authorization: Bearer $VITRINA_KEY"Example response (200)
{
"data": [
{
"id": "0199e3a0-0000-7000-8000-0000000000dd",
"property_id": "0199e3a0-0000-7000-8000-000000000001",
"marketplace_account_id": "0199e3a0-0000-7000-8000-0000000000cc",
"provider": "mercadolibre",
"external_id": "MLC1500000001",
"status": "imported",
"origin": "portal",
"permalink": "https://www.portalinmobiliario.com/MLC-1500000001",
"listing_type": "silver",
"portal_state": "paused",
"portal_state_at": "2026-10-14T18:20:00.000Z",
"last_synced_at": "2026-10-15T09:00:00.000Z",
"last_published_at": null,
"last_error": null,
"created_at": "2026-10-14T12:00:00.000Z",
"updated_at": "2026-10-15T09:00:00.000Z"
}
]
}Answers: 200 · 400 · 401 · 403 · 404 · 409 · 429
POST /properties/{id}/publications
Publish a property to Portal Inmobiliario
Lists the property on the account: the category from its tipo and operación, the price in UF (sent as CLF) or CLP, its attributes, comuna and dirección, up to 30 photos, the description, and the workspace WhatsApp line as the contact button. The tier comes from the packs the account holds (a publication pack is mandatory). Publishing again refreshes the live listing (outcome: updated). After that, the listing follows the property: edits are pushed, pausada pauses it, back on the market re-activates it, and vendida / arrendada or removing the property closes it (closed is final on the portal). Errors (422), each with field_errors keyed by the property field to fix: portal_no_package (no pack with cupos for the tier; details.tiers lists what the account has), portal_listing_incomplete (nothing was sent), portal_listing_rejected (the portal refused it; details.causes verbatim). 409 when the property already has a listing on this account that the import found on the portal. Requires marketplace:write. Only on a workspace whose vertical is real-estate; any other answers 403 VERTICAL_NOT_ENABLED.
| Parameter | In | Type | Required | Constraints |
|---|---|---|---|---|
id | path | string | yes | mín. 1, máx. 64 |
Body
| Field | Type | Required | Constraints |
|---|---|---|---|
account_id | uuid | yes | |
listing_type | silver \ | gold \ | gold_premium |
operation | venta \ | arriendo | — |
curl -X POST https://api.vitrinadev.com/api/v1/properties/<id>/publications \
-H "Authorization: Bearer $VITRINA_KEY" \
-H "Content-Type: application/json" \
-d '{
"account_id": "0199e3a0-0000-7000-8000-0000000000cc",
"listing_type": "silver"
}'Example response (201)
{
"data": {
"outcome": "published",
"publication": {
"id": "0199e3a0-0000-7000-8000-0000000000dd",
"property_id": "0199e3a0-0000-7000-8000-000000000001",
"marketplace_account_id": "0199e3a0-0000-7000-8000-0000000000cc",
"provider": "mercadolibre",
"external_id": "MLC1500000001",
"status": "published",
"origin": "vitrina",
"permalink": "https://www.portalinmobiliario.com/MLC-1500000001",
"listing_type": "silver",
"portal_state": "listed",
"portal_state_at": "2026-10-14T18:20:00.000Z",
"last_synced_at": "2026-10-15T09:00:00.000Z",
"last_published_at": "2026-10-15T12:00:00.000Z",
"last_error": null,
"created_at": "2026-10-14T12:00:00.000Z",
"updated_at": "2026-10-15T09:00:00.000Z"
}
}
}Answers: 201 · 400 · 401 · 403 · 404 · 409 · 429
DELETE /properties/{id}/publications/{publicationId}
Close a listing on the portal
Closes the listing on Portal Inmobiliario (final there: publishing again creates a new listing). The property and its status are untouched. Requires marketplace:write. Only on a workspace whose vertical is real-estate; any other answers 403 VERTICAL_NOT_ENABLED.
| Parameter | In | Type | Required | Constraints |
|---|---|---|---|---|
id | path | string | yes | mín. 1, máx. 64 |
publicationId | path | uuid | yes |
curl -X DELETE https://api.vitrinadev.com/api/v1/properties/<id>/publications/<id> \
-H "Authorization: Bearer $VITRINA_KEY"Example response (200)
{
"data": {
"id": "0199e3a0-0000-7000-8000-0000000000dd",
"property_id": "0199e3a0-0000-7000-8000-000000000001",
"marketplace_account_id": "0199e3a0-0000-7000-8000-0000000000cc",
"provider": "mercadolibre",
"external_id": "MLC1500000001",
"status": "deleted",
"origin": "vitrina",
"permalink": "https://www.portalinmobiliario.com/MLC-1500000001",
"listing_type": "silver",
"portal_state": "withdrawn",
"portal_state_at": "2026-10-14T18:20:00.000Z",
"last_synced_at": "2026-10-15T09:00:00.000Z",
"last_published_at": "2026-10-15T12:00:00.000Z",
"last_error": null,
"created_at": "2026-10-14T12:00:00.000Z",
"updated_at": "2026-10-15T09:00:00.000Z"
}
}Answers: 200 · 400 · 401 · 403 · 404 · 409 · 429
POST /properties/{id}/release-fields
Let protected fields follow the source again
Removes the named fields from protected_fields, so the next portal or import sync may overwrite them. Requires marketplace:write. Only on a workspace whose vertical is real-estate; any other answers 403 VERTICAL_NOT_ENABLED.
| Parameter | In | Type | Required | Constraints |
|---|---|---|---|---|
id | path | string | yes | mín. 1, máx. 64 |
Body
| Field | Type | Required | Constraints |
|---|---|---|---|
fields | string[] | yes |
curl -X POST https://api.vitrinadev.com/api/v1/properties/<id>/release-fields \
-H "Authorization: Bearer $VITRINA_KEY" \
-H "Content-Type: application/json" \
-d '{
"fields": [
"sale_price_amount"
]
}'Example response (200)
{
"data": {
"id": "0199e3a0-0000-7000-8000-000000000001",
"tenant_id": "0199e3a0-0000-7000-8000-0000000000aa",
"display_id": "I-12",
"title": "Departamento 2D2B con terraza, metro Irarrázaval",
"description": "Luminoso, orientación norte, a pasos del metro.",
"operation": "venta",
"property_type": "departamento",
"status": "disponible",
"region": "Metropolitana",
"comuna": "Ñuñoa",
"sector": "Plaza Ñuñoa",
"address": "Av. Irarrázaval 0000, depto 000",
"sale_price_amount": 4800,
"sale_price_currency": "UF",
"rent_price_amount": null,
"rent_price_currency": null,
"common_expenses_clp": 120000,
"property_tax_clp": 85000,
"bedrooms": 2,
"bathrooms": 2,
"usable_area_m2": 62,
"total_area_m2": 70,
"parking_spaces": 1,
"storage_units": 1,
"orientation": "norte",
"floor": 8,
"year_built": 2018,
"furnished": false,
"pets_allowed": true,
"photos": [
"https://example.com/i-12/1.jpg"
],
"broker_user_id": "0199e3a0-0000-7000-8000-0000000000bb",
"owner_name": "Propietaria de ejemplo",
"owner_phone": "+56900000000",
"owner_email": "[email protected]",
"source": "manual",
"external_ref": null,
"protected_fields": [],
"created_by": "0199e3a0-0000-7000-8000-0000000000bb",
"created_at": "2026-10-14T12:00:00.000Z",
"updated_at": "2026-10-14T12:00:00.000Z",
"sale_price": {
"amount": 4800,
"currency": "UF",
"amount_clp": 189120000,
"amount_uf": 4800
},
"rent_price": null
}
}Answers: 200 · 400 · 401 · 403 · 404 · 409 · 429
GET /properties/portals
Connected portal accounts and their import
The workspace’s Portal Inmobiliario (Mercado Libre) accounts: how many properties of the cartera each one lists, split by portal state, and the last import run with its counts. Requires marketplace:read. Only on a workspace whose vertical is real-estate; any other answers 403 VERTICAL_NOT_ENABLED.
curl https://api.vitrinadev.com/api/v1/properties/portals \
-H "Authorization: Bearer $VITRINA_KEY"Example response (200)
{
"data": [
{
"id": "0199e3a0-0000-7000-8000-0000000000cc",
"provider": "mercadolibre",
"portal": "portal_inmobiliario",
"name": "Mercado Libre – CORREDORA_DEMO",
"seller_nickname": "CORREDORA_DEMO",
"enabled": true,
"sync_enabled": true,
"connected_at": "2026-10-14T12:00:00.000Z",
"properties": {
"total": 6,
"listed": 5,
"paused": 1,
"other": 0
},
"last_run": {
"id": "0199e3a0-0000-7000-8000-0000000000ee",
"status": "success",
"started_at": "2026-10-15T09:00:00.000Z",
"finished_at": "2026-10-15T09:00:12.000Z",
"error_message": null,
"summary": {
"seen": 6,
"created": 0,
"updated": 1,
"unchanged": 5,
"skipped": 0,
"not_real_estate": 0,
"removed_by_broker": 0,
"confirmed_absent": 0,
"portal_states": {
"listed": 5,
"paused": 1
},
"truncated": false
}
}
}
]
}Answers: 200 · 400 · 401 · 403 · 404 · 409 · 429
DELETE /properties/portals/{accountId}
Disconnect a portal account
Removes the connection and its listing records. The properties it imported stay in the cartera. Requires marketplace:write. Only on a workspace whose vertical is real-estate; any other answers 403 VERTICAL_NOT_ENABLED.
| Parameter | In | Type | Required | Constraints |
|---|---|---|---|---|
accountId | path | uuid | yes |
curl -X DELETE https://api.vitrinadev.com/api/v1/properties/portals/<id> \
-H "Authorization: Bearer $VITRINA_KEY"Answers: 204 · 400 · 401 · 403 · 404 · 409 · 429
GET /properties/portals/{accountId}/listing-tiers
Listing tiers the account’s packs allow
The tiers the account can publish with right now, read from its active Mercado Libre packs, with cupos left. Empty data = no pack: publishing answers portal_no_package. Requires marketplace:read. Only on a workspace whose vertical is real-estate; any other answers 403 VERTICAL_NOT_ENABLED.
| Parameter | In | Type | Required | Constraints |
|---|---|---|---|---|
accountId | path | uuid | yes |
curl https://api.vitrinadev.com/api/v1/properties/portals/<id>/listing-tiers \
-H "Authorization: Bearer $VITRINA_KEY"Example response (200)
{
"data": [
{
"listing_type": "silver",
"via": "publication",
"remaining": 37
},
{
"listing_type": "gold",
"via": "upgrade",
"remaining": 5
}
]
}Answers: 200 · 400 · 401 · 403 · 404 · 409 · 429
POST /properties/portals/{accountId}/sync
Import the account’s listings now
Queues an import of every active and paused listing of the account into the cartera (also runs every 6 hours). Re-running an unchanged account changes nothing; a field the broker edited in Vitrina is never overwritten; the property’s status is never written. Requires marketplace:write. Only on a workspace whose vertical is real-estate; any other answers 403 VERTICAL_NOT_ENABLED.
| Parameter | In | Type | Required | Constraints |
|---|---|---|---|---|
accountId | path | uuid | yes |
curl -X POST https://api.vitrinadev.com/api/v1/properties/portals/<id>/sync \
-H "Authorization: Bearer $VITRINA_KEY"Example response (202)
{
"data": {
"enqueued": true
}
}Answers: 202 · 400 · 401 · 403 · 404 · 409 · 429
POST /properties/portals/mercadolibre/connect
Start connecting Portal Inmobiliario
Returns Mercado Libre’s consent URL (Portal Inmobiliario is Mercado Libre’s real-estate site; the broker signs in with their Mercado Libre account). After consent the browser returns to return_to with status=connected, and the first import runs at the next scheduler tick (≤ 15 minutes), or right away with POST /properties/portals/\{accountId\}/sync. 503 MERCADOLIBRE_NOT_CONFIGURED when the platform has no Mercado Libre app. Requires marketplace:write. Only on a workspace whose vertical is real-estate; any other answers 403 VERTICAL_NOT_ENABLED.
Body
| Field | Type | Required | Constraints |
|---|---|---|---|
return_to | string | — | uri, máx. 2000 |
curl -X POST https://api.vitrinadev.com/api/v1/properties/portals/mercadolibre/connect \
-H "Authorization: Bearer $VITRINA_KEY" \
-H "Content-Type: application/json" \
-d '{
"return_to": "https://example.com/vuelta-del-consentimiento"
}'Example response (200)
{
"data": {
"authorize_url": "https://auth.mercadolibre.cl/authorization?response_type=code&client_id=…"
}
}Answers: 200 · 400 · 401 · 403 · 404 · 409 · 429
Projects
A real-estate developer's projects, their unit models, their stock of units (apartments, houses, parking spaces and storage units) and their versioned price list in UF and PDF quotes with down payment and mortgage payment, with an Excel import.
Public stock
A dealership's published lot: list, count and read one unit. This is the surface a dealer website consumes.