/collection/items/bulkThe library’s bulk tools, for up to 500 copies a request: update (status, sold date and price, for trade, asking price, location), retag (add and remove tags) or delete (also removes their photos). More than one copy needs Pro. A write that fails after earlier batches went through reports them in error.details.saved.
collector.bulkCopies()collection:writeIdempotency-KeyX-Request-Idobject or object or object
Option 1: object
action"update"requiredidsarray of string (uuid)required1–500 items
patchobjectrequiredstatusenumownedwishlistsoldsold_onstring (date) or nullsale_price_centsinteger or null0–2000000000
for_tradebooleanasking_price_centsinteger or null0–2000000000
locationstring or nullat most 480 characters
Option 2: object
action"retag"requiredidsarray of string (uuid)required1–500 items
addarray of stringat most 30 items · default []
removearray of stringat most 30 items · default []
Option 3: object
action"delete"requiredidsarray of string (uuid)required1–500 items
200OKHow many copies changed.
object
changedintegerrequiredCopies changed (or deleted).
invalid_requestinvalid_jsoninvalid_idempotency_key
invalid_request: The query or body doesn’t match the schema (see errors[]).
invalid_json: The body isn’t JSON.
invalid_idempotency_key: The Idempotency-Key isn’t 1–255 visible ASCII characters.
unauthorized: Not signed in (no session or token, or an expired one).
feature_required: Changing more than one copy needs Pro.
idempotency_in_progress: The first request with this key is still running.
payload_too_large: The body is over 1,048,576 bytes, this operation’s limit.
idempotency_key_reused: This key was used for a different request.
rate_limitedtemporarily_blockedquota_exceeded
rate_limited: Over the caller’s limit: the per-minute burst or the per-day quota (RateLimit headers; wait Retry-After seconds).
temporarily_blocked: Too many refused requests in a row: blocked for a while (Retry-After says how long).
quota_exceeded: Over this operation’s daily quota (the "bulk" bucket).
internal: Something went wrong on our side (quote the requestId).