Removal
Remove one listing with a reason — sold, rented, withdrawn, expired or error — and what each reason does.
Removal is a POST with a JSON body (a DELETE would have to carry its data in the query, and many HTTP stacks drop DELETE bodies):
http
POST /api/partners/v1/connections/9b1d6c2e-4f3a-4c8e-9a71-2d5e8f0b3c44/listings/REAA-12345/removejson
{ "reason": "sold" }Answer:
json
200 { "item": { "position": 0, "external_id": "REAA-12345", "result": "removed", "candidate_id": "c7e…", "listing_id": "e19…", "public_url": null, "failure_code": null, "details": null, "warnings": [] } }With the reference client: node nk-partner.mjs remove <connection> REAA-12345 --reason=sold. Reference: remove.
Reasons#
reason |
Sale listing | Rental listing |
|---|---|---|
sold |
marked sold | — |
rented |
— | marked rented |
withdrawn |
archived | archived |
error |
archived | archived |
expired |
expired | expired |
Moderation is never touched by a removal.
When it takes effect#
- Never went live (only staged): removed at once.
- Otherwise: recorded now, applied by the next worker tick, within a minute. The webhook
item.removedcarries the finalstatus(sold,rented,deletedorexpired).
Errors#
- An
external_idwe never staged on this connection → 404listing_not_found. - A paused or revoked connection → 409
connection_not_active.
Coming back#
Removing is not final. Pushing the same external_id again with state: "active" revives the listing — unless staff rejected or removed it in moderation (moderation_blocked). A removed listing never answers unchanged.
To remove many listings at once — everything your export no longer contains — use Reconcile.
Last updated