Change a listing's price
Changes the per-card price of a listed inventory line. The price is the only thing this endpoint changes — how many cards are for sale is a property of the line itself: list more via POST /v1/inventory/{inventoryId}/listing or take some off sale via DELETE /v1/inventory/{inventoryId}/listing.
If the new price makes this line identical to another of your listed lines (same product, finish, condition, language, grading, and price, neither line carrying a customId), the two merge; the response is the surviving line.
Send an Idempotency-Key header to make retries safe: the same key returns the same response for 24 hours.
Requires the listings:write scope.
- Type: stringinventory
Id min length:1requiredThe listed inventory line. Returned by
GET /v1/listings. Path parameter.
- Type: objectpricerequired
The new per-card price. The currency must match the listing's currency.
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
curl 'https://public-api.cardnexus.com/v1/inventory/{inventoryId}/listing' \
--request PATCH \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"price": {
"amount": 14.99,
"currency": "USD"
}
}'
{
"id": "665f3a2b1c8d4e9f7a6b5c4d",
"customId": "YRG|5555-5DS1-2EX-006-f-2-2008-08-01",
"comment": "Slight edge wear on the back corner",
"notes": "Bought at the March show",
"location": "Shelf A",
"tags": [
"Trade binder",
"Graded pile"
],
"productId": 50212,
"game": "ygo",
"finish": "Standard",
"condition": "NM",
"language": "en",
"quantity": 5,
"graded": null,
"forSale": true,
"listing": {
"price": {
"amount": 42.5,
"currency": "EUR"
}
},
"updatedAt": "2026-06-01T17:40:02.000Z"
}