/collection/items/{id}/codesKeeps a code the catalog doesn’t know on the copy (yours to search and scan at once) and sends it for review; once approved, it matches for everyone. Check it first: a code the catalog knows changes what the copy is instead (repoint). 30 codes a day.
collector.addCopyCode()collection:writeIdempotency-KeyX-Request-Ididstring (uuid)requiredobject
textstringrequired1–60 characters
addOnstring or nullat most 5 characters
formatstring or nullat most 20 characters
kindenum or nullupcisbnissndistributornotestring or nullat most 1000 characters
201CreatedThe code, on the copy.
object
invalid_requestinvalid_jsoninvalid_idempotency_keyinvalid_code
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.
invalid_code: Not a valid barcode, ISBN, ISSN or code (check digits).
unauthorized: Not signed in (no session or token, or an expired one).
not_found: Nothing at that address.
idempotency_in_progressalready_addedalready_knownknown_elsewherealready_proposed
idempotency_in_progress: The first request with this key is still running.
already_added: The copy already has this code.
already_known: The catalog knows this code: change the copy to it instead.
known_elsewhere: Another edition has this code.
already_proposed: This code is already waiting for review.
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_blocked
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).
internal: Something went wrong on our side (quote the requestId).