Check and disconnect
These endpoints are common to both ways of connecting: it does not matter whether the account was connected with a link or with the credential.
| Method | Path | What it does |
|---|---|---|
GET | /connections | Lists a client's connections |
GET | /connections/{portal} | Returns one connection |
DELETE | /connections/{portal} | Unlinks the connection |
Check status, not whether the connection exists. The list also returns revoked ones: we keep the record so the client can reconnect. If your code does if (connections.length > 0) it will treat a disconnected client as connected.
status: "active" → connected. "revoked" or 404 → not.
GET /connections
Lists the client's connections. It only returns the portals you have scope for: if you work with Argenprop and your client also has a connection to another portal, that one does not appear.
curl https://property-api.mapaprop.com/connections \
-H "Authorization: Bearer <TU_TOKEN>" \
-H "x-client-ref: cliente-42"
200 response: { "connections": [ ... ] }, with the same fields as the POST.
GET /connections/{portal}
Returns one connection. 404 if that client does not have it.
DELETE /connections/{portal}
Disconnects the connection: we delete the stored credential and the account stops receiving inquiries from the portal through us.
We do not touch the listings published on the portal. The listings belong to your client and stay online exactly as they were. Disconnecting cuts off our access, nothing more. If your client wants to take their listings down, they have to do it on the portal.
It is idempotent: disconnecting something already disconnected responds 200 all the same.
{ "status": "revoked", "alreadyRevoked": false, "externalListingsUntouched": true }
Errors
| Code | error | What happened |
|---|---|---|
400 | portal is required / portal must be a non-empty string | The portal is missing or is not text |
400 | Invalid JSON body | The body is not valid JSON |
400 | clientRef is required (header x-client-ref, query or body) | The client is not identified |
400 | (several, with field) | A field does not meet the format or exceeds a maximum |
401 | Unauthorized | The token is missing or is not valid |
403 | Missing required scope: argenpropapi:connect | Your application does not have the scope for that portal |
404 | Connection not found | That client has no connection with that portal |
409 | portal account already connected | That portal account is already connected by another application |
503 | Connection storage is temporarily unavailable (encryption backend) | A temporary problem on our side. Retry |
A 403 tells you exactly which scope is missing, and that text includes the portal just as you sent it. If you see Missing required scope: argenprop:connect instead of argenpropapi:connect, the problem is the portal value, not your permissions.