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étodo | Ruta | Qué hace |
|---|---|---|
GET | /connections | Lista 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ódigo | error | Qué pasó |
|---|---|---|
400 | portal is required / portal must be a non-empty string | Falta el portal o no es texto |
400 | Invalid JSON body | El cuerpo no es JSON válido |
400 | clientRef 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 |
401 | Unauthorized | Falta el token o no es válido |
403 | Missing required scope: argenpropapi:connect | Tu aplicación no tiene el scope de ese portal |
404 | Connection not found | Ese cliente no tiene conexión con ese portal |
409 | portal account already connected | Esa cuenta de portal ya está conectada por otra aplicación |
503 | Connection 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.