---
title: "Hunyuan3D-2.1"
method: POST
path: "/generate/3d/tencent/hunyuan3d-2.1"
tags: ["3D"]
---

# Hunyuan3D-2.1

`POST /generate/3d/tencent/hunyuan3d-2.1`

## Request

- Base URL: `https://api.krea.ai`
- URL: `https://api.krea.ai/generate/3d/tencent/hunyuan3d-2.1`
- Auth: HTTP bearer

High quality 3D model generator

## Headers

- `X-Webhook-URL` string, uri

## Request body

- object
  - `prompt` string
  - `seed` number
  - `input_mode` 'image' | 'text'
  - `generate_texture` boolean
  - `image_urls` string[]: Input image URLs for image-to-3D generation. Required unless input_mode is "text"; omit or pass an empty array for text-to-3D.

## Response `200`

The resulting job data. This will be returned in a pending state until the job is completed. See [`/jobs/{id}`](#tag/default/get/jobs/{id}) for retrieving the results.

- object
  - `job_id` string, uuid, required
  - `status` 'backlogged' | 'queued' | 'scheduled' | 'processing' | 'sampling' | 'intermediate-complete' | 'completed' | 'failed' | 'cancelled', required
  - `created_at` string, date-time, required
  - `completed_at` unknown, required
  - `result` unknown, required
  - `error` object
    - `code` string, required: Why the job failed. `invalid_request` means the request broke a rule, such as a media limit or a file that cannot be read or downloaded. `validation_failed` means a value is outside its parameter's schema. For both codes, change the parameter named in `param` before you resubmit. Other codes are `content_policy`, `model_unavailable`, `insufficient_balance`, `timeout`, `auto_cancelled`, `provider_error`, `internal`, and `node_app_node_failed`. Treat an unknown code as `internal`.
    - `message` string
    - `param` string: The request parameter to change, present with `invalid_request` and `validation_failed`.
  - `progress` number, nullable

## Other responses

- `400`: The request body is invalid.
- `401`: You are not authenticated.
- `402`: You have run out of credits.
- `429`: You have reached the maximum number of concurrent jobs.

## Changes

> 692 revisions in range; 1 not diffed.

- **2026-10-31** `b1a86d2f0043`: 1 info
  - added the optional property `error/param` to the response with the `200` status
- **2026-10-07** `72e9383c3fb2`: 1 info
  - added the optional property `progress` to the response with the `200` status
- **2026-09-05** `27a8a554d4fd`: 1 info
  - the `created_at` response's property pattern was changed from `^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$` to `^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$` for the status `200`

[Operation history](https://skmtc.dev/krea/apis/krea-api/changes/generate/3d/tencent/hunyuan3d-2.1/post.md)

---

[API](https://skmtc.dev/krea/apis/krea-api.md) - [All operations](https://skmtc.dev/krea/apis/krea-api/llms.txt) - [OpenAPI document](https://skmtc.dev/krea/apis/krea-api/revisions/d542993c14d6?raw)
