Upload Template

Promote a Platform-Storage file_id into a permanent template.

Caller uploads the hand photo via the regular /api/uploads/presign path first (or via Platform Storage uploadFile()), gets a file_id, then posts it here with the structured discriminators.

Returns 404 when the file_id is unknown to the SDK or owned by a different user. Returns the freshly-persisted template row so the frontend can drop it into the picker without re-fetching the list.

Standalone callers post a raw hand_s3_key (from /api/uploads/standalone-presign) instead of a file_id — see _resolve_hand_image.

post/api/hand-templates/upload

Request

  • Base URL: https://api.tintin-x.com (the document declares no server; this is the origin it was published from)
  • URL: https://api.tintin-x.com/api/hand-templates/upload
  • Auth: HTTP bearer

Request body

labelstring required
pose'single_hand' | 'two_hands_layered' | 'fist_flat_dual' | 'holding_prop' required
skin_tone'fair' | 'light' | 'medium' | 'tan' | 'deep' required
aspect_ratio'1:1' | '4:5' | '3:4' | '16:9' required
background'white' | 'gradient' | 'extended'
hand_s3_keystring nullable

Response

Successful Response

idstring uuid required
slugstring required
labelstring required
pose'single_hand' | 'two_hands_layered' | 'fist_flat_dual' | 'holding_prop' required
skin_tone'fair' | 'light' | 'medium' | 'tan' | 'deep' required
aspect_ratio'1:1' | '4:5' | '3:4' | '16:9' required
background'white' | 'gradient' | 'extended' required
prop_slugstring nullable
hand_urlstring required
preview_urlstring nullable
source'admin' | 'upload' | 'ai_gen' required
is_activeboolean required
gen_promptstring nullable
owner_user_idstring uuid nullable
preprocess_readyboolean
created_atstring date-time required
updated_atstring date-time required

Changes

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