The Quote object
The parked analysis a fresh create or an order answers - the plan, the model verdict, the price and the token that commits it.
A fresh products.create (and products.order) parks: nothing is written, and the answer is
a quote with a resume_token that commits it. See Quote and commit.
ProductParkedResponse
JavaScript: ProductParked · Python: viewrium.ProductParked
The quote a fresh create returns: the analysis, the image plan, the model verdict and the price. Nothing has been created or charged. Send resume_token back to POST /v1/products before expires_at (7 days) to commit it.
status"parked"optionalAlways parked.
Default "parked"
resume_tokenstringrequiredPost this back as resume_token on POST /v1/products to commit. Redeemable exactly once, until expires_at.
expires_atdatetimerequiredWhen resume_token stops being accepted.
formstringrequiredThe product's shape class from the analysis: regular (most furniture), wall (hung or mounted on a wall), cylindrical (near rotationally symmetric), character (has a face or front, e.g. a figure) or painting.
titlestringoptionalnullableThe title, from the draft or the product page.
descriptionstringoptionalnullableThe description, from the draft or the product page.
subjectstringoptionalThe analysis's short description of the item as photographed.
Default ""
wall_mountedbooleanoptionalWhether the product hangs on a wall.
Default false
Real-world dimensions in cm, from the draft or the product page.
display_unitDimensionUnitoptionalnullableThe unit the dimensions are shown in. They are always stored and returned in cm.
One of "mm", "cm", "m", "in", "ft"
The analysis's structured read of the product: the risks it found and why.
warningsstring[]optionalWarning codes that flag a concern without blocking. Today the only one is source_quality_poor (the photographs are blurred, dim or hide the item).
The image positions as they will be committed, in page order.
Whether a 3D model can be built, what blocks it, and the views it would be built from.
What the order costs, in credits.
generate_unseenbooleanoptionalWhether views no photograph shows will be generated anyway. The request's override, else the organization's preference.
Default false
force_modelbooleanoptionalWhether the 3D model is built even when a risk check would block it. The request's override, else the organization's preference.
Default false
What the painting inspection found. Form painting only.
ModelDimensions
JavaScript: no alias - an element of the type that holds it · Python: viewrium.ModelDimensions
Real-world dimensions. Responses are always in cm.
heightnumberoptionalnullableThe product's height: in cm in a response, in the request's unit in a request.
widthnumberoptionalnullableThe product's width: in cm in a response, in the request's unit in a request.
depthnumberoptionalnullableThe product's depth: in cm in a response, in the request's unit in a request.
PlannedView
JavaScript: PlannedView · Python: viewrium.PlannedView
One image position as it will be produced, with why it is planned this way.
viewstringrequiredThe page position, e.g. front, side, back, angle, front-elevated, detail. An extra standing in for a position carries a suffix such as side-2.
kindstringrequiredwanted: a catalog position the product was planned for. extra: an additional viewpoint used to fill an empty position.
One of "wanted", "extra"
stands_forstringrequiredThe catalog position this image fills: view itself for a wanted image, the position an extra substitutes for.
statusstringrequiredplanned will be produced; skipped will not.
One of "planned", "skipped"
evidencestringrequiredHow well the photographs cover this view: seen (a clean photo shows it), pinned (a photo shows it but is not clean, or photos on both sides bracket it), implied (a rotationally symmetric product's far side), unseen (nothing shows it).
reason_codestringrequiredWhy the position is planned this way: seen_reuse, seen_edit, seen_generate, pinned_exact, pinned, implied, unseen_skipped, unseen_generated, extra_fill, exhausted or model_view.
reasonstringrequiredThe planner's factual sentence behind reason_code.
deliverablebooleanrequiredTrue when you receive and pay for this image; false for a view only the 3D model needs.
routestringoptionalnullableHow the image is made: reuse ships the photograph as it is, edit edits a photograph, generate creates the view from reference photos. Null for a skipped position.
One of "reuse", "edit", "generate"
photointegeroptionalnullableThe 0-based index of the submitted photograph used for this position. Null when none is.
pinsinteger[]optionalThe indexes of the reference photographs a generated view is conditioned on.
azimuthstringrequiredCamera bearing around the product, in 45-degree steps: front, front-right, right, back-right, back, back-left, left, front-left.
tiltstringrequiredCamera elevation: level sees the sides only, above sees the sides and the top, overhead sees only the top.
flaggedbooleanoptionalTrue when the view could not be confirmed against the photographs (a view generated with unseen evidence).
Default false
ModelPlanResponse
JavaScript: ModelPlan · Python: viewrium.ModelPlan
Whether the 3D model can be built, what blocks it, and the views it would be built from - including the ones no photograph shows.
orderedbooleanrequiredWhether the order includes the 3D model.
allowedbooleanrequiredWhether the model can be built. False when something blocks it, unless force_model is on.
blocked_bystring[]optionalWhat refuses the model: missing_3d_view, transparent, geometry_risk, texture_risk, unseen_views, painting_unusable.
viewsstring[]optionalThe views the model is built from, in submission order.
unseen_viewsstring[]optionalThe model views that would be invented because no photograph shows them. Two or more block the model.
ProductCost
JavaScript: ProductCost · Python: viewrium.ProductCost
What the order costs, in credits (1 credit = $1.00): 1 per deliverable image and a flat 10 for a model.
imagesintegerrequiredHow many deliverable images are priced.
image_creditsintegerrequiredCredits for the images: 1 each.
model_creditsintegerrequiredCredits for the 3D model: a flat 10, or 0 when it is not ordered.
total_creditsintegerrequiredimage_credits + model_credits. 1 credit = $1.00.
PaintingInspection
JavaScript: PaintingInspection · Python: viewrium.PaintingInspection
What the painting analysis found: whether a front-facing, unobscured photograph of the whole artwork exists, whether it is framed, and why.
usablebooleanrequiredWhether a front-facing, unobscured photograph of the whole artwork was found. An unusable one blocks the model.
framedbooleanrequiredWhether the artwork is framed.
reasonstringrequiredThe inspection's explanation.
suggested_dimensions_ofPaintingDimensionsOfoptionalThe suggested meaning of the stated size: frame only when the piece is framed and the size reads as the framed size.
One of "canvas", "frame"
Default "canvas"
ProductOrderParkedResponse
JavaScript: ProductOrderParked · Python: viewrium.ProductOrderParked
The quote for adding to an existing product: what will be added and what it costs. Nothing has been charged. Send resume_token to POST /v1/products to commit it.
status"parked"optionalAlways parked.
Default "parked"
resume_tokenstringrequiredPost this back as resume_token on POST /v1/products to commit. Redeemable exactly once, until expires_at.
expires_atdatetimerequiredWhen resume_token stops being accepted.
What this order adds.
The analysis's structured read of the product: the risks it found and why.
The image positions as they will be committed, in page order.
Whether a 3D model can be built, what blocks it, and the views it would be built from.
What the order costs, in credits.
warningsstring[]optionalWarning codes that flag a concern without blocking. Today the only one is source_quality_poor (the photographs are blurred, dim or hide the item).
generate_unseenbooleanoptionalWhether views no photograph shows will be generated anyway. The request's override, else the organization's preference.
Default false
force_modelbooleanoptionalWhether the 3D model is built even when a risk check would block it. The request's override, else the organization's preference.
Default false
ProductOrder
JavaScript: no alias - an element of the type that holds it · Python: viewrium.ProductOrder
What to produce: the catalog images, the 3D model, or both.
imagesbooleanoptionalOrder the catalog images.
Default true
modelbooleanoptionalOrder the 3D model.
Default false