---
title: "Withdraw a feed listing"
method: DELETE
path: "/listing-feed/listings/{externalRef}"
tags: ["Listing feed"]
---

# Withdraw a feed listing

`DELETE /listing-feed/listings/{externalRef}`

## Request

- Base URL: `https://platform-api.homejourney.sg/v1`
- URL: `https://platform-api.homejourney.sg/v1/listing-feed/listings/{externalRef}`
- Auth: HTTP bearer

Withdraws a feed listing at once, with no review, when the authenticated client has `listings.write`: it leaves search and every channel, and any revision in review closes. Withdrawing a withdrawn listing returns it unchanged. Sending the listing again later starts a new review. External URL: `/v1/listing-feed/listings/{externalRef}`. Current Next.js implementation path: `/api/platform/v1/listing-feed/listings/[externalRef]`. This mutating route requires `Idempotency-Key`.

## Path parameters

- `externalRef` string, required

## Headers

- `X-Correlation-Id` string
- `Idempotency-Key` string, required

## Response `200`

The withdrawn listing.

- ListingFeedListingResponse
  - `listing` ListingFeedListing, required
    - `object` 'listing_feed_listing', required
    - `external_ref` string, required: The partner's own listing reference.
    - `status` 'in_review' | 'published' | 'rejected' | 'withdrawn' | 'expired', required: A published listing stays `published` while a later revision is in review, rejected or expired; `revision_status` reports that revision.
    - `listing_id` string, uuid, nullable, required: The Homejourney listing, once published.
    - `revision` integer, nullable, required
    - `revision_status` 'in_review' | 'approved' | 'rejected' | 'superseded' | 'expired' | 'null', nullable, required
    - `reason_codes` string[], required: Why the latest revision was rejected.
    - `hidden_reasons` string[], required: Why a published listing is not currently shown in search.
    - `updated_at` string, date-time, required
  - `livemode` boolean, required
  - `request_id` string, required

## Other responses

- `400`: Request validation failed.
- `401`: Missing or invalid platform API key.
- `403`: Credential, environment, or scope is not allowed.
- `404`: Platform API feature or resource is not available.
- `409`: Idempotency key is in progress or conflicts with an earlier request body.
- `429`: Rate limit exceeded.
- `500`: Unexpected platform API failure.

---

[API](https://skmtc.dev/homejourney/apis/homejourney-platform-api.md) · [All operations](https://skmtc.dev/homejourney/apis/homejourney-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/homejourney/apis/homejourney-platform-api/revisions/a2c6fe063db1?raw)
