Gemstones

Update Gem Records

PATCH /api/v1/gems/{gem_id}/records (LNK-RECORDS)

Record the owner's own facts about their piece: measurements, carat weight, lab report, notes. True partial patch — an omitted field is left untouched, an explicit null clears just that field. Returns the updated block, or null once the last recorded field is cleared.

Owner-only. Dual-owner resolution follows GET /{gem_id}/details and PUT /{gem_id} (LNK-DETAILSANON / LNK-GEMRENAME): user_id when authenticated OR device_id via X-Device-Id, with the owner filter inside the query so a foreign gem 404s without leaking that it exists. Note the sibling PATCH /{gem_id}/investment still fetches first and 403s — it leaks existence; this route deliberately does not copy that.

These values remain owner claims. Weight, quantity and scope changes recalculate valuation; when evidence pricing is enabled, measurement edits also trigger a separate evidence valuation. Scan estimates stay separate.

patch/api/v1/gems/{gem_id}/records

Request

  • Base URL: https://api.gemstoneaiapp.com (the document declares no server; this is the origin it was published from)
  • URL: https://api.gemstoneaiapp.com/api/v1/gems/{gem_id}/records
  • Auth: none declared

Path parameters

gem_idinteger required

Headers

X-Device-Idinteger nullable
authorizationstring nullable

Request body

length_mmnumber nullable
width_mmnumber nullable
depth_mmnumber nullable
caratnumber nullable
stone_quantityinteger nullable
carat_scope'per_stone' | 'total' nullable
lab_namestring nullable
certificate_numberstring nullable
notesstring nullable
reference_numberstring nullable
watch_yearinteger nullable
box_papers'full_set' | 'papers' | 'box' | 'none' nullable
watch_condition'unworn' | 'excellent' | 'good' | 'worn' nullable

Response

Successful Response

length_mmnumber nullable
width_mmnumber nullable
depth_mmnumber nullable
caratnumber nullable
stone_quantityinteger nullable
carat_scope'per_stone' | 'total' nullable
lab_namestring nullable
certificate_numberstring nullable
notesstring nullable
reference_numberstring nullable
watch_yearinteger nullable
box_papers'full_set' | 'papers' | 'box' | 'none' nullable
watch_condition'unworn' | 'excellent' | 'good' | 'worn' nullable
updated_atstring date-time nullable

Changes

No recorded changes to this operation across all 1 revision of this API.