questionnaires

Refine Visuals

Submit a refinement request for a specific render.

Supports three types of refinement inputs (all optional, but at least one required):

  1. Comment/note: Text feedback describing desired changes
  2. Annotated image: Original render with circles/marks showing WHERE to make changes
  3. Reference image: Separate image showing WHAT the user wants (style, color, design reference)

These can be used together or separately.

This endpoint:

  • Validates the job is in 'awaiting_review' status
  • Validates refinement count hasn't exceeded limit (max per side, tracked separately for 3D vs 2D)
  • Uploads images to storage (if provided)
  • Triggers regeneration of the specified render

asset=3d (default) — Clothing: refining front also regenerates back 3D when pair_mode=paired; refining back can sync front when paired. Use pair_mode=single to update only the selected side. Stored 2D flat URLs are cleared whenever 3D is refined so Phase 2 can rebuild flats from the latest 3Ds.

asset=2d: refines outer technical 2D flats only. Separate per-side limit. Clothing paired refresh (front↔back) is controlled by pair_mode. Inner 2D, POM overlays, and BOM callout images are cleared when 2D is refined; 3D URLs are not modified.

Returns updated job status.

Allowed callers: session owner (the designer) or an admin.

post/questionnaires/jobs/{job_id}/refine

Request

  • Base URL
    https://api.threadchain.pro (the document declares no server; this is the origin it was published from)
  • Auth
    OAuth 2
    Password
    Token URL: auth/token

Path parameters

job_idstring uuid required

Query parameters

background_tasksunknown

Request body multipart/form-data

sidestring required

'front' or 'back'

commentstring

Optional: Refinement instructions/notes

annotated_imagestring binary nullable

Optional: Original render with circles/marks showing WHERE to change

reference_imagestring binary nullable

Optional: Reference image showing WHAT to change to

reference_imagesstring[] nullable

Optional: up to 4 reference images (Prompt Me); the first is the main one

assetstring

Which asset to refine: '3d' (review-phase 3D renders) or '2d' (outer technical flats).

refine_modestring

Which refine prompt to use: 'oval' (circled regions), 'freehand' (drawn marks), 'reference' (reference image as target), 'text' (notes only).

pair_modestring

Whether to refresh the opposite side for consistency: 'single' (this side only) or 'paired' (multi-turn sync of front/back). Clothing only.

from_techpackboolean

Edit 3D from an active tech pack: update 3D renders only; preserve workspace assets.

erase_artworkboolean

Eraser sub-tool was used to build the mask: prune Artwork Table rows for this side on completion.

Response

Successful Response

job_idstring uuid required
session_idstring uuid required
status'queued' | 'processing' | 'awaiting_size_studio' | 'awaiting_review' | 'awaiting_3d_start' | 'awaiting_3d_review' | 'awaiting_construction' | 'workspace_active' | 'completed' | 'failed' required
progressinteger required
brand_idstring uuid nullable
manufacturer_idsstring[]
result_urlstring nullable
preview_urlstring nullable
front_3d_urlstring nullable
back_3d_urlstring nullable
left_3d_urlstring nullable
right_3d_urlstring nullable
front_2d_urlstring nullable
back_2d_urlstring nullable
left_2d_urlstring nullable
right_2d_urlstring nullable
inner_front_2d_urlstring nullable
inner_back_2d_urlstring nullable
pom_overlay_outer_front_urlstring nullable
pom_overlay_outer_back_urlstring nullable
pom_overlay_inner_front_urlstring nullable
pom_overlay_inner_back_urlstring nullable
bom_callout_giq_outer_front_urlstring nullable
bom_callout_giq_outer_back_urlstring nullable
bom_callout_giq_inner_front_urlstring nullable
bom_callout_giq_inner_back_urlstring nullable
bom_callout_nogiq_outer_front_urlstring nullable
bom_callout_nogiq_outer_back_urlstring nullable
bom_callout_nogiq_inner_front_urlstring nullable
bom_callout_nogiq_inner_back_urlstring nullable
refinement_count_frontinteger
refinement_count_backinteger
refinement_count_leftinteger
refinement_count_rightinteger
refinement_count_2d_frontinteger
refinement_count_2d_backinteger
refinement_count_2d_leftinteger
refinement_count_2d_rightinteger
share_codestring nullable
public_share_view_countinteger
last_public_share_view_atstring date-time nullable
error_messagestring nullable
released_atstring date-time nullable
created_atstring date-time required
started_atstring date-time nullable
completed_atstring date-time nullable
manufacturer_completed_atstring date-time nullable
download_urlstring nullable
refinement_payloadobject nullable
flat2d_regenerate_countinteger
flat2d_regenerate_payloadobject nullable
techpack_import_statusstring nullable
techpack_import_stepstring nullable
generation_stepstring nullable
techpack_import_incompleteboolean nullable
techpack_import_unresolved_requiredinteger nullable
techpack_import_draft_acknowledgedboolean nullable
entitlementsobject nullable

Changes

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