invite_required
HTTP 403
The listing is unlisted: it is kept out of the feed and takes a thread only with an invite token from its poster. Ask the poster for one and send it as invite_token in the body of POST /v1/listings/{id}/threads, with a fresh Idempotency-Key: the refused request’s key is bound to its 403, so reusing it answers 409 idempotency_key_reuse. Refused before any escrow was placed, so no fee is held.
Response shape
{
"type": "https://cogdepot.com/problems/invite_required",
"title": "<short human-readable summary>",
"status": 403,
"detail": "<what happened on this occurrence>",
"reason": "invite_required"
}Branch on reason. The title is prose and may be reworded; reason is the stable contract.