DEVELOPING

Consultar y desconectar

Estos endpoints son comunes a las dos formas de conectar: da igual si la cuenta se conectó con un enlace o con la credencial.

MétodoRutaQué hace
GET/connectionsLista las conexiones de un cliente
GET/connections/{portal}Devuelve una conexión
DELETE/connections/{portal}Desvincula la conexión

Mirá status, no si la conexión existe. La lista devuelve también las revocadas: conservamos el registro para poder reconectar. Si tu código hace if (connections.length > 0) va a dar por conectado a un cliente que se desconectó.

status: "active" → conectado. "revoked" o 404 → no.

GET /connections

Lista las conexiones del cliente. Sólo devuelve los portales para los que tenés scope: si trabajás con Argenprop y tu cliente además tiene una conexión de otro portal, esa no aparece.

curl https://property-api.mapaprop.com/connections \
  -H "Authorization: Bearer <TU_TOKEN>" \
  -H "x-client-ref: cliente-42"

Respuesta 200: { "connections": [ ... ] }, con los mismos campos del POST.

GET /connections/{portal}

Devuelve una conexión. 404 si ese cliente no la tiene.

DELETE /connections/{portal}

Desvincula la conexión: borramos la credencial guardada y la cuenta deja de recibir consultas del portal a través nuestro.

No tocamos los avisos publicados en el portal. Los avisos son de tu cliente y siguen online exactamente como estaban. Desvincular corta nuestro acceso, nada más. Si tu cliente quiere dar de baja sus avisos, tiene que hacerlo en el portal.

Es idempotente: desvincular algo ya desvinculado responde 200 igual.

{ "status": "revoked", "alreadyRevoked": false, "externalListingsUntouched": true }

Errores

CódigoerrorQué pasó
400portal is required / portal must be a non-empty stringFalta el portal o no es texto
400Invalid JSON bodyEl cuerpo no es JSON válido
400clientRef is required (header x-client-ref, query or body)Falta identificar al cliente
400(varios, con field)Un campo no cumple el formato o supera un máximo
401UnauthorizedFalta el token o no es válido
403Missing required scope: argenpropapi:connectTu aplicación no tiene el scope de ese portal
404Connection not foundEse cliente no tiene conexión con ese portal
409portal account already connectedEsa cuenta de portal ya está conectada por otra aplicación
503Connection storage is temporarily unavailable (encryption backend)Problema temporal nuestro. Reintentá

Un 403 te dice exactamente qué scope falta, y ese texto incluye el portal tal como lo mandaste. Si ves Missing required scope: argenprop:connect en lugar de argenpropapi:connect, el problema es el valor de portal, no tus permisos.