Hyper3DHyper3D Docs
API Specification

Rodin Gen-2.5

Generate 3D assets from images or text with Rodin Gen-2.5.

POST
/api/v2/rodin

Authorization

bearer
headerAuthorizationBearer <token>

Request Body

multipart/form-data
  1. body
images*array<>
Items1 <= items <= 5
prompt?string
Lengthlength <= 1024
seed?integer
Range0 <= value <= 65535
mesh_mode?string
Default"Raw"
Value in"Quad""Raw"
geometry_file_format?string
Default"glb"
Value in"glb""usdz""fbx""obj""stl"
material?string
Default"PBR"
Value in"PBR""Shaded""All""Hybrid""None"
quality?string
Default"medium"
Value in"high""medium""low""extra-low"
quality_override?integer
Range500 <= value <= 2000000
tier*string
Default"Regular"
Value in"Gen-2.5-Extreme-Low""Gen-2.5-Low""Gen-2.5-Medium""Gen-2.5-High""Gen-2.5-Extreme-High"
bbox_condition?array<>
Items3 <= items <= 3
addons?array<>
Default[]
TAPose?boolean
Defaultfalse
use_original_alpha?boolean
Defaultfalse
preview_render?boolean
Defaultfalse
hd_texture?boolean
Defaultfalse
texture_mode?string
Value in"legacy""extreme-low""low""medium""high""extreme-high"
is_micro?boolean
Defaultfalse
geometry_instruct_mode?string
Default"creative"
Value in"faithful""creative"
texture_delight?boolean
Defaultfalse
uhd_texture?boolean
Defaultfalse
image_label?array<>
Default[]
is_symmetric?string
Default"unknown"
Value in"symmetric""balanced""asymmetric""unknown"
soft?boolean
Defaultfalse
detail_level?integer
Range1 <= value <= 3
quad_normal?boolean
Defaultfalse

Response Body

application/json
  1. response
error?string
Value in"NO_SUCH_TASK""ASSET_NOT_AVAILABLE""IMAGE_LABEL_LENGTH_TOO_LONG""INVALID_REQUEST""API_NO_ACTIVE_SUBSCRIPTION""API_SUBSCRIPTION_PLAN_TOO_LOW""API_PARALLELISM_LIMIT_REACHED""API_INSUFFICIENT_FUNDS""API_OBJECT_NOT_FOUND_ON_IMAGE""IMAGE_CONTENT_VIOLATION""PERMISSION_DENIED""API_UNKNOWN"
message?string

Success message or detailed error information.

uuid?string

Unique identifier for the submitted generation task.

Formatuuid
submit_time?string

Server time when the task was submitted.

Formatdate-time
jobs?
consumed?number

Credits consumed by this request.

prompt?string

The prompt actually used for generation.

Example Request
curl -X POST 'https://api.hyper3d.com/api/v2/rodin' \  -F 'tier=Gen-2.5-Extreme-Low'
Example Response
{  "error": "NO_SUCH_TASK",  "message": "Submitted.",  "uuid": "123e4567-e89b-12d3-a456-426614174000",  "submit_time": "2019-08-24T14:15:22Z",  "jobs": {    "uuids": [      "52faea01-729e-4195-85e8-6050a65315e3"    ],    "subscription_key": "string"  },  "consumed": 0.5,  "prompt": "string"}

Input

Image-to-3D

Submit one to five images. The first image is used for material generation. prompt is optional; when omitted, the service derives guidance from the images.

curl --fail-with-body --request POST 'https://api.hyper3d.com/api/v2/rodin' \
  --header "Authorization: Bearer ${RODIN_API_KEY}" \
  --form 'images=@./input.png' \
  --form 'tier=Gen-2.5-Medium' \
  --form 'mesh_mode=Raw' \
  --form 'quality=medium'

Text-to-3D

Submit a prompt and omit images.

curl --fail-with-body --request POST 'https://api.hyper3d.com/api/v2/rodin' \
  --header "Authorization: Bearer ${RODIN_API_KEY}" \
  --form 'prompt=A small wooden treasure chest with brass trim' \
  --form 'tier=Gen-2.5-Medium' \
  --form 'mesh_mode=Raw' \
  --form 'quality=medium'

Tier

tier is required

Always send a Gen-2.5 tier explicitly. If tier is omitted, the endpoint falls back to Regular and generates a Gen-1/1.5 asset.

tier selects the generation family and how much detail the model resolves. It is independent of the mesh and texture controls below: any tier can be combined with any mesh_mode, quality, or texture_mode the schema allows.

TierIntended use
Gen-2.5-Extreme-LowQuick generation of simple assets.
Gen-2.5-LowClean assets and small hard-surface props.
Gen-2.5-MediumBalanced structure and detail.
Gen-2.5-HighRicher structure and smoother surfaces.
Gen-2.5-Extreme-HighHigh-frequency detail reproduction.
This tier also returns an additional mesh with up to 10M of faces.

Geometry generation modes

geometry_instruct_mode selects how the input guides geometry generation. faithful emphasizes matching the image and prompt, though results vary.

Experimental option: faithful

faithful may be discontinued and is not recommended for production use. For routine generation, omit geometry_instruct_mode to use the default.

Fast mode

When the submitted task meets all of the following conditions, Fast mode is triggered and resulting in faster generation.

  • tier is not Gen-2.5-Extreme-High.
  • geometry_file_format is glb \ fbx \ usdz.
  • mesh_mode is Raw.
  • quality_override <= 20000.

Texture mode

texture_mode selects the texture generation effort level. The default value of texture_mode depends on the selected tier.

TierDefault texture_mode
Gen-2.5-Extreme-Lowextreme-low
Gen-2.5-Lowlow
Gen-2.5-Mediummedium
Gen-2.5-Highhigh
Gen-2.5-Extreme-Highhigh

Texture resolution

The texture resolution is jointly determined by texture_mode, uhd_texture, and addons.

HighPack increases pack texture resolution as shown below. For Gen-2.5, it does not change geometry or generate an additional high-poly model.

texture_modeaddonsuhd_textureresolution
extreme-low, low, medium, high[]false2K
true4K
HighPackfalse4K
true8K
extreme-high[]false6K
true6K
HighPackfalse12K
true12K

Pricing

ItemCharge
Base Gen-2.5 generation0.5 credits
tier=Gen-2.5-Extreme-High+0.5 credits
texture_mode=extreme-high+2.0 credits

Charges are additive. Base generation costs only 0.5 credits, and parameters not listed above do not incur additional charges.

Response and lifecycle

{
  "message": "Submitted.",
  "uuid": "123e4567-e89b-12d3-a456-426614174000",
  "jobs": {
    "uuids": ["223e4567-e89b-12d3-a456-426614174000"],
    "subscription_key": "subscription-key-from-generation-response"
  },
  "consumed": 0.5
}

Use jobs.subscription_key for Check Status and top-level uuid for Download Results. HTTP 201 means the endpoint handled the request; acceptance requires an absent or empty error and a non-empty top-level uuid. HTTP 400 indicates invalid fields/files, 401 indicates invalid authentication, and 429 indicates throttling.