Hyper3DHyper3D Docs
API Specification

Download Results

Get signed download URLs after all jobs are complete.

POST
/api/v2/download
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api/v2/download" \  -H "Content-Type: application/json" \  -d '{    "task_uuid": "123e4567-e89b-12d3-a456-426614174000"  }'
{  "error": "NO_SUCH_TASK",  "list": [    {      "url": "string",      "name": "string"    }  ]}

Identifier

Send the generation response's top-level uuid as task_uuid. This differs from the jobs.subscription_key used by Check Status.

Examples Input

curl --fail-with-body --request POST 'https://api.hyper3d.com/api/v2/download' \
  --header "Authorization: Bearer ${RODIN_API_KEY}" \
  --header 'Content-Type: application/json' \
  --data '{"task_uuid":"123e4567-e89b-12d3-a456-426614174000"}'
import os

import requests

api_key = os.environ["RODIN_API_KEY"]
response = requests.post(
    "https://api.hyper3d.com/api/v2/download",
    headers={"Authorization": f"Bearer {api_key}"},
    json={"task_uuid": "123e4567-e89b-12d3-a456-426614174000"},
    timeout=30,
)
response.raise_for_status()
print(response.json())

Response

{
  "list": [
    {
      "name": "model.glb",
      "url": "https://example.invalid/download/model.glb"
    }
  ]
}

Availability and errors

Call this endpoint only after every job is Done; the endpoint does not promise to reject an incomplete task. HTTP 201 returns the files currently available, 400 indicates an invalid request, 401 indicates invalid authentication, and 429 indicates throttling. Download URLs can expire, so fetch files promptly rather than storing the URLs.