Producing product images without running a photo studioAll articles

Producing product images without running a photo studio

For new parts there is often no usable photo. This case shows the ordered route of image generation — and where the line to an evidenced picture runs.

Published: 2026-09-12Reading time: 4 mintapinomahub API & workflows
API & processesOE numberAPIMarketplaces

A new part enters the range and has no image. A listing without an image sells badly, a third-party manufacturer image is legally delicate, and an own photo studio only pays off at volume. For used parts this does not apply — there the part lies on the bench and can be photographed.

Producing product images without running a photo studioInput: an OE number and, for this ordered mode, no photo of your own 1. Order the images (POST /vision/part/generate): A job with a jobId; generation runs on, the call does not wait 2. Collect the job (GET /vision/part/generation-jobs/{jobId}): Finished views under their own addresses once the job completes 3. Place the new part (POST /vision/part/composite): The part against a background that suits the channel 4. Remove identifiers (POST /vision/identifiers/redact): Instance-bound numbers vanish before the image goes public Output: an image set marked as generated, carrying no foreign identifier Generation without a reference is an ordered mode and labelled as such — not an evidenced picture of the stocked item.Producing product images without running a photo studioInput: an OE number and, for this ordered mode, no photo of your own01Order the imagesPOST /vision/part/generateA job with a jobId; generation runs on, the call does not wait02Collect the jobGET /vision/part/generation-jobs/{jobId}Finished views under their own addresses once the job completes03Place the new partPOST /vision/part/compositeThe part against a background that suits the channel04Remove identifiersPOST /vision/identifiers/redactInstance-bound numbers vanish before the image goes publicOutput: an image set marked as generated, carrying no foreign identifierGeneration without a reference is an ordered mode and labelled as such — not an evidenced picture of the stockeditem.
Four calls from the job to a publishable image set. The label “generated” stays attached.

An explicit exception to the house rule that only evidenced content is emitted applies here: generation without a reference image is a service that is ordered. Precisely for that reason the result must be labelled as generated and must not appear as a photo of the stocked piece.

SurfaceRoles
HubParts trading, Platform and marketplace, Vehicle trading

What this case requires

  • A reliable OE number. Generation follows the number you give. A wrong number generates a wrong part, and that only surfaces at the buyer.
  • The explicit decision to generate. If you have a photo of your own, cutting it out is the right route.
  • A label in your own system. A generated image has to stay recognisable as such, even after passing through three systems.
  • Patience for a job. Generation runs asynchronously; the call returns a jobId and does not wait.

The sequence

The table names the responsible call per stage and what exists afterwards. The reasoning for why a stage cannot be skipped follows below it.

The call chain of this use case
StageCallWhat exists afterwards
Order the imagesPOST /vision/part/generateA job with a jobId; generation runs on, the call does not wait
Collect the jobGET /vision/part/generation-jobs/{jobId}Finished views under their own addresses once the job completes
Place the new partPOST /vision/part/compositeThe part against a background that suits the channel
Remove identifiersPOST /vision/identifiers/redactInstance-bound numbers vanish before the image goes public

Why each stage is needed

  1. Order the images. POST /vision/part/generate takes the OE number and starts the job. The default for sourceMode is references_required; generation without a reference is ordered explicitly with knowledge_only. The response is a jobId, not an image — generation takes time, and a blocking call would be useless in a catalogue import.
  2. Collect the job. GET /vision/part/generation-jobs/{jobId} returns the finished views under retrievable addresses. Only here is it settled which perspectives actually came out.
  3. Place the part on a background. POST /vision/part/composite places a new part into a background image. Marketplaces and your own shop demand different image worlds; this step serves them.
  4. Remove identifiers. POST /vision/identifiers/redact anonymises instance-bound identifiers in part images. A serial number or a printed device identifier does not belong in a public listing — it identifies one individual piece.
Order image generation for an OE number
curl -X POST \
  -H 'X-Api-Key: <API_KEY>' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: bilder-8k0959455k' \
  -d '{"oeNumber":"8K0959455K","sourceMode":"knowledge_only","angles":["front","left_45","right_45"]}' \
  'https://api.tapinomahub.com/vision/part/generate'

What you end up with

What remains is an image set usable in the catalogue, still labelled as generated and carrying no identifier of somebody else’s individual piece. For new parts that is the workable route; for used parts your own photo stays the right starting point.

Where to find this in the documentation

The binding field lists, error codes and sample responses live in this surface’s OpenAPI contract at docs.tapinomahub.com (tapinoma-hub). All use cases arranged by surface and role: overview of the use cases.

Frequently asked

Does generation not contradict the principle of inventing nothing?

No, because it is explicitly ordered. What is forbidden is filling a gap so that it looks like a measurement. A view labelled as generated does not claim to be a photograph.

When do I cut out instead?

Whenever you have a photo of your own. That is what POST /vision/part/remove/bg is for; it takes the retrievable address of your photo as imageUrl.

Do I have to make the label visible in the listing?

How you declare a symbolic image follows from the channel and from competition law. Technically the origin stays recognisable; declaring it to the buyer is up to you.