Skip to content
ThingBloom

ThingBloom for Developers

From your image
to the next object.

Bring the 3D generation and preparation flow to your product. Send an image, track the work and receive the files.

Manage my keys

A workflow inside your product.

Create a key on this page and use it on your application server. Define THINGBLOOM_API_KEY with your key. Never place the key on public pages or distributed applications.

Generations require an active subscription and use the same studio credit balance. The cost per model is on the plans page. The cost of physical printing is separate.

1. Upload an image.

Use a clean image of the object, with the shape and colors you want to preserve. The API receives the uploaded file and returns its identifier; It is not necessary to make the image public. Use a single PNG, JPG, WebP, or HEIC file up to 10 MB.

curl "https://thingbloom.com/api/v1/uploads" \
  -H "Authorization: Bearer $THINGBLOOM_API_KEY" \
  -F "file=@objeto.png"

2. Start generation.

Send the image identifier and object characteristics. The response confirms receipt and includes an identifier to track the work. Processing continues in the background.

curl "https://thingbloom.com/api/v1/generations" \
  -H "Authorization: Bearer $THINGBLOOM_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: exemplo-vaso-00000001" \
  -d '{
    "imageId": "ID_RETORNADO_PELO_UPLOAD",
    "title": "Meu vaso",
    "colorCount": 2,
    "material": "pla",
    "maxDimensionMm": 100,
    "purpose": "decorative",
    "palette": ["#F5F5F5", "#0086D6"],
    "rightsConfirmed": true
  }'
FieldValue
rightsConfirmedRequired: true. Confirms that you are authorized to use the image and request this generation.
paletteOptional. List of #RRGGBB colors, as many as colorCount. Without this list, the colors are taken from the image.
imageIdID of the image uploaded by your account
titleObject name, optional
colorCount1, 2, 3 or 4 colors
materialpla or petg
maxDimensionMmLargest dimension of the object, between 20 and 220 mm
purposedecorative or functional

3. View and download.

Query the received identifier until processing finishes. Download addresses are available in the result when the respective file is ready.

curl "https://thingbloom.com/api/v1/generations/ID_DA_GERACAO" \
  -H "Authorization: Bearer $THINGBLOOM_API_KEY"

Download the files using the same API key. GLB allows you to visualize the model in 3D; STL contains the geometry; 3MF preserves the print-ready data available in that result.

curl "https://thingbloom.com/api/v1/generations/ID_DA_GERACAO/files/3mf" \
  -H "Authorization: Bearer $THINGBLOOM_API_KEY" \
  --output modelo.3mf

Replace 3mf with glb or stl to get another format. Color and preparation do not replace compatibility with the equipment and material used for manufacturing.

Safe retries.

Use a unique Idempotency-Key with 16 to 160 characters for each generation. If the connection drops, repeat the same request with the same key and the same parameters. Create a new key only for a new generation.

  • The state can be queued, running, succeeded or paused. When paused, retryable:true lets you repeat the same POST with the same key to resume the saved work. retryable:false asks you to keep following the existing request; an uncertain billing confirmation never triggers another automatic generation.
  • Check the progress with intervals between requests; do not create another generation to check the status of the previous one.
  • After a temporary rate-limit response, respect Retry-After before trying again.
  • A key only has access to the images, jobs, and files of the account it belongs to.
  • Store the job ID with your application’s order so you can resume tracking after an interruption.

Your API keys.

Create a key for your server. The full key is shown only once; keep it somewhere safe.

Loading your keys…