API 레퍼런스
3D 모델
이 엔드포인트의 모델(1)
POST
/v1/model3d/tasksGET
/v1/model3d/tasks/{task_id}비동기 3D 생성 및 후처리입니다. operation 필드 하나로 작업 내용을 정합니다. 텍스트, 이미지 한 장 또는 여러 뷰로 모델을 만든 뒤 텍스처링, 분할, 리토폴로지, 리깅을 할 수 있습니다. 제출하면 task_id가 반환되며, 작업 본문에 모델 URL이 나타날 때까지 폴링하세요.
#요청 파라미터
modelstring필수목록에 있는 3D 모델 ID(예: tripo-3d).
operationstring필수text_to_model · image_to_model · multiview_to_model · texture · smart_segment · retopology · rig · animate.
promptstring선택만들 대상. text_to_model에서 사용합니다.
inputstring선택image_to_model에서는 공개 이미지 URL을, texture, smart_segment, retopology, rig, animate에서는 완료된 3D 모델의 task_id를 넣습니다.
inputsobject[]선택multiview_to_model: [{"front": url}, {"left": url}, …] — 정면 뷰와 다른 뷰 하나 이상.
textureboolean선택모델과 함께 텍스처를 생성합니다.
pbrboolean선택PBR 머티리얼을 생성합니다.
texture_promptobject선택texture: {"text": "weathered bronze"}로 새 표면을 설명합니다.
face_limitinteger선택retopology: 결과물의 최대 면 수.
quadboolean선택retopology: 삼각형 대신 쿼드 메시를 사용합니다.
animationstring선택animate: 리깅된 모델에 적용할 애니메이션.
#관련 오류
- 404 not_found알 수 없는 task_id이거나, 후속 단계의 입력 작업이 없거나 아직 완료되지 않았습니다.
- 401Bearer 토큰이 유효하지 않거나 없습니다. 이 경로에는 error.code가 없으므로 상태 코드로 판단하세요.
- 402 insufficient_user_quota지갑 잔액이 사전 차감 추정액보다 부족합니다.
- 429키별 속도 제한입니다. 본문은 비어 있으며 Retry-After만큼 기다리세요. insufficient_user_quota가 포함된 429는 속도 제한이 아니라 일일 지출 한도입니다.
- 503 model_not_found알 수 없는 모델이거나, 현재 이 모델을 제공하는 정상 채널이 없습니다.
#요청 예시
# 1. make a model from text
curl https://www.aisplice.store/v1/model3d/tasks \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "tripo-3d", "operation": "text_to_model", "prompt": "A small ceramic fox", "texture": true}'
# 2. poll until status is completed; the file is in url
curl https://www.aisplice.store/v1/model3d/tasks/$TASK_ID -H "Authorization: Bearer sk-YOUR_KEY"
# 3. texture it: pass the finished task_id as input
curl https://www.aisplice.store/v1/model3d/tasks \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "tripo-3d", "operation": "texture", "input": "'$TASK_ID'", "texture_prompt": {"text": "weathered bronze"}}'#응답
response.json
// POST /v1/model3d/tasks
{"task_id": "task_xxx", "status": "queued"}
// GET /v1/model3d/tasks/{task_id} — after completion
{"task_id": "task_xxx", "status": "completed", "url": "https://…/model.glb", "output": {"model_url": "https://…/model.glb"}}아직 해결되지 않았나요?
요청 ID나 오류 메시지를 보내 주시면 확인해 드리겠습니다.