lowpoly는 2026. 10. 30.에 지원 종료됩니다. 요청 오류를 피하려면 해당 날짜 전에 모델을 전환하세요.

다색 프린트 API

3D 모델을 3D 프린팅을 위한 다색 3MF 포맷으로 변환하며, 최대 16가지 색상까지 구성 가능한 컬러 팔레트를 제공합니다.


POST/openapi/v1/print/multi-color

다중 색상 3D 프린트 작업 생성

이 엔드포인트는 새로운 다중 색상 3D 프린트 작업을 생성합니다. 이 작업은 3D 모델을 3D 프린팅에 적합한 다중 색상 3MF 파일로 변환합니다.

이 작업은 백그라운드에서 실행됩니다. 일반적으로 소요되는 시간은 처리 시간을 참고하세요.

파라미터

  • Name
    model_url
    Type
    string
    필수
    Description

    공개적으로 접근 가능한 .glb 또는 .fbx 모델의 URL, 또는 GLB의 base64 data: URL(data:model/gltf-binary;base64,...)입니다. .fbx는 반드시 http 또는 https URL로 전송해야 합니다.

    최대 파일 크기: http 또는 https URL의 경우 400MB, data: URI의 경우 100MB입니다.

    100MB를 초과하는 파일은 최대 8,000,000개의 면을 가질 수 있습니다. 면은 삼각형 단위로 계산되며, 쿼드는 2개로 계산되고 두 번 이상 그려진 메시는 복사본마다 한 번씩 계산됩니다. 100MB를 초과하는 경우, FBX 파일은 바이너리 FBX 7.1 이상이어야 하며, GLB 파일은 Draco 압축을 사용하지 않아야 합니다.

  • Name
    max_colors
    Type
    integer
    기본값 4
    Description

    출력 팔레트의 최대 색상 수입니다.

    유효 범위: 1에서 16까지.

  • Name
    style
    Type
    string
    기본값 realistic
    Description

    생성된 3MF 파일의 시각적 색상 스타일입니다.

    사용 가능한 값:

    • realistic: 모델의 텍스처에서 직접 색상을 샘플링하여 정교하고 사실적인 디테일을 표현합니다. 파일 크기가 더 커집니다.
    • cartoon: 색상을 깔끔하고 균일한 영역으로 단순화하여 스타일화된 느낌을 줍니다. 파일 크기가 더 작아집니다.

    입력에는 반드시 색상 정보가 있어야 합니다: realistic은 모든 메시 부분에 UV 좌표가 있는 단일 기본 색상 텍스처가 필요하며, cartoon은 정점별 색상도 허용합니다. 텍스처가 없는(흰색) 모델은 거부됩니다 — model_missing_texture를 참고하세요.

  • Name
    max_depth
    Type
    integer
    기본값 4
    Description

    텍스처 색상을 메시에 샘플링하는 데 사용되는 세분화 깊이입니다. 값이 높을수록 더 세밀한 색상 디테일을 포착하지만 파일 크기가 커집니다. realistic 스타일에만 적용되며 cartoon에서는 무시됩니다.

    유효 범위: 3에서 6까지.

  • Name
    printer_brand
    Type
    string
    기본값 bambu
    Description

    3MF에 기록될 슬라이서 프리셋의 프린터 브랜드로, 이를 통해 해당 브랜드의 슬라이서에서 파일을 열면 일치하는 프린터, 필라멘트 및 프로세스 프로필이 적용됩니다. 각 브랜드는 0.4mm 노즐을 사용하는 기본 프린터를 사용합니다.

    사용 가능한 값: bambu, anycubic, creality, elegoo, flashforge, prusa, qidi, snapmaker, ankermake.

반환값

응답의 result 속성에는 새로 생성된 3D 프린트 작업의 id가 포함됩니다.

실패 모드

  • Name
    400 - Bad Request
    Description

    요청이 허용되지 않았습니다. 일반적인 원인:

    • 파라미터 누락: model_url 또는 input_task_id 중 하나가 반드시 제공되어야 합니다.
    • 잘못된 모델 형식: model_url이 지원되지 않는 확장자를 가진 파일을 가리킵니다(.glb 및 .fbx만 지원됩니다).
    • URL에 접근할 수 없음: model_url을 다운로드할 수 없습니다.
    • 모델 파일이 너무 큼: model_url 파일이 400MB(http 또는 https URL) 또는 100MB(data: URI)를 초과합니다.
    • 면이 너무 많음: model_url 파일이 100MB를 초과하며 8,000,000개 이상의 면을 가지고 있습니다. 면 수를 줄인 후 파일을 다시 보내세요.
    • 100MB를 초과하는 ASCII FBX: model_url 파일이 100MB를 초과하는 ASCII FBX입니다. 바이너리 FBX 또는 GLB로 보내세요.
    • 읽을 수 없는 모델 파일: model_url 파일이 100MB를 초과하며 헤더를 읽을 수 없습니다. 예를 들어 Draco로 압축된 GLB이거나 7.1 이전 버전의 바이너리 FBX인 경우입니다.
    • 모델 헤더가 너무 복잡함: model_url 파일이 100MB를 초과하며 헤더에 확인해야 할 메시, 노드 또는 레코드가 너무 많습니다. 파일 내 객체 수를 줄인 후 다시 보내세요.
    • 잘못된 입력 작업: input_task_id는 반드시 성공한 작업을 참조해야 합니다.
    • 잘못된 max_colors: 값은 1에서 16 사이여야 합니다.
    • 잘못된 style: 값은 realistic 또는 cartoon이어야 합니다.
    • 잘못된 max_depth: 값은 3에서 6 사이여야 합니다.
    • 잘못된 printer_brand: 값은 위에 나열된 브랜드 중 하나여야 합니다.
    • 색상 소스 없음: 입력 모델에 기본 색상 텍스처가 없고(realistic은 모든 메시 부분에 UV가 있는 단일 텍스처가 필요함) 정점 색상도 없습니다(cartoon은 둘 중 하나를 허용함). 먼저 모델에 텍스처를 적용하거나, 정점 색상이 있는 모델에는 cartoon을 사용하세요. .fbx 업로드는 작업이 이를 정규화한 후 확인되며, 이 경우 대신 model_missing_texture 오류로 실패합니다.
  • Name
    401 - Unauthorized
    Description

    인증에 실패했습니다. API 키를 확인해 주세요.

  • Name
    402 - Payment Required
    Description

    이 작업을 수행하기에 크레딧이 부족합니다.

  • Name
    429 - Too Many Requests
    Description

    속도 제한을 초과했습니다.

Request

POST
/openapi/v1/print/multi-color
# Convert a 3D model to a multi-color 3MF with a Creality slicer preset
curl https://api.meshy.ai/openapi/v1/print/multi-color \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
    "max_colors": 8,
    "printer_brand": "creality"
  }'

Response

{
  "result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}

GET/openapi/v1/print/multi-color/:id

다중 색상 3D 프린트 작업 조회

이 엔드포인트는 ID로 다중 색상 3D 프린트 작업을 조회합니다.

파라미터

  • Name
    id
    Type
    path
    Description

    조회할 3D 프린트 작업의 ID입니다.

반환값

3D 프린트 작업 객체입니다.

Request

GET
/openapi/v1/print/multi-color/a43b5c6d-7e8f-901a-234b-567c890d1e2f
curl https://api.meshy.ai/openapi/v1/print/multi-color/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "print-multi-color",
  "model_urls": {
      "3mf": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.3mf?Expires=***"
},
  "progress": 100,
  "status": "SUCCEEDED",
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": null,
"consumed_credits": 10
}

DELETE/openapi/v1/print/multi-color/:id

다중 색상 3D 프린트 작업 삭제

이 엔드포인트는 관련된 모든 모델과 데이터를 포함하여 다중 색상 3D 프린트 작업을 영구적으로 삭제합니다. 이 작업은 되돌릴 수 없습니다.

경로 매개변수

  • Name
    id
    Type
    path
    Description

    삭제할 다중 색상 3D 프린트 작업의 ID입니다.

작업 상태

아직 PENDING 상태인 작업은 삭제되며, 생성 시 소모된 크레딧은 환불됩니다.

이미 IN_PROGRESS 상태인 작업은 삭제할 수 없습니다. 요청은 409 Conflict로 거부되며 작업은 계속 실행됩니다. 워커가 이미 시작한 작업에 대한 크레딧은 환불되지 않으므로, 실행 중에 삭제하면 크레딧과 결과물 모두를 잃게 됩니다. SUCCEEDED, FAILED 또는 CANCELED 상태가 될 때까지 기다린 후 삭제하세요.

최종 상태(SUCCEEDED, FAILED 또는 CANCELED)에 있는 작업은 환불 없이 삭제됩니다.

반환값

성공 시 200 OK를, 작업이 IN_PROGRESS 상태일 때는 409 Conflict를 반환합니다.

Request

DELETE
/openapi/v1/print/multi-color/a43b5c6d-7e8f-901a-234b-567c890d1e2f
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/print/multi-color/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS — the task is left running:
{
  "message": "Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."
}

GET/openapi/v1/print/multi-color

List Multi-Color 3D Print Tasks

이 엔드포인트를 사용하면 멀티컬러 3D 프린트 작업 목록을 조회할 수 있습니다.

Parameters

Optional attributes

  • Name
    page_num
    Type
    integer
    Description

    페이지네이션을 위한 페이지 번호입니다. 1부터 시작하며 기본값은 1입니다.

  • Name
    page_size
    Type
    integer
    Description

    페이지 크기 제한입니다. 기본값은 10개 항목입니다. 최대 허용치는 100개 항목입니다.

  • Name
    sort_by
    Type
    string
    Description

    정렬 기준 필드입니다. 사용 가능한 값:

    • +created_at: 생성 시간 오름차순으로 정렬합니다.
    • -created_at: 생성 시간 내림차순으로 정렬합니다.

Returns

The 3D Print Task Objects의 페이지네이션된 목록을 반환합니다.

Request

GET
/openapi/v1/print/multi-color
curl https://api.meshy.ai/openapi/v1/print/multi-color?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response

[
  {
    "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
    "type": "print-multi-color",
    "model_urls": {
      "3mf": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.3mf?Expires=***"
    },
    "progress": 100,
    "status": "SUCCEEDED",
    "preceding_tasks": 0,
    "created_at": 1699999999000,
    "started_at": 1700000000000,
    "finished_at": 1700000001000,
    "task_error": null,
  "consumed_credits": 10
  }
]

GET/openapi/v1/print/multi-color/:id/stream

다중 색상 3D 프린트 작업 스트리밍

이 엔드포인트는 Server-Sent Events(SSE)를 사용하여 다중 색상 3D 프린트 작업에 대한 실시간 업데이트를 스트리밍합니다.

파라미터

  • Name
    id
    Type
    path
    Description

    스트리밍할 다중 색상 3D 프린트 작업의 고유 식별자입니다.

반환값

Server-Sent Events 형태로 3D 프린트 작업 객체의 스트림을 반환합니다.

PENDING 또는 IN_PROGRESS 상태의 작업의 경우, 응답 스트림에는 필요한 progress 및 status 필드만 포함됩니다.

Request

GET
/openapi/v1/print/multi-color/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream
curl -N https://api.meshy.ai/openapi/v1/print/multi-color/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Response Stream

// Error event example
event: error
data: {
  "status_code": 404,
  "message": "Task not found"
}

// Message event examples illustrate task progress.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
event: message
data: {
  "id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
  "type": "print-multi-color",
  "model_urls": {
    "3mf": "https://assets.meshy.ai/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/model.3mf?Expires=***"
  },
  "progress": 100,
  "status": "SUCCEEDED",
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": null,
"consumed_credits": 10
}

3D 프린트 작업(Task) 객체

  • Name
    id
    Type
    string
    Description

    작업의 고유 식별자입니다. 구현 세부 사항으로 작업 id에 k-sortable UUID를 사용하고 있지만, id의 형식에 대해 어떠한 가정도 해서는 안 됩니다.

  • Name
    type
    Type
    string
    Description

    3D 프린트 작업의 유형입니다. 값은 print-multi-color입니다.

  • Name
    model_urls
    Type
    object
    Description

    Meshy가 생성한 3D 모델 파일을 다운로드할 수 있는 URL입니다. 해당 포맷이 생성되지 않은 경우 빈 문자열을 반환하는 대신 해당 포맷에 대한 속성이 생략됩니다.

    • Name
      3mf
      Type
      string
      Description

      다중 색상 3MF 파일을 다운로드할 수 있는 URL입니다.

  • Name
    progress
    Type
    integer
    Description

    작업의 progress입니다. 작업이 아직 시작되지 않은 경우 이 속성은 0입니다. 작업이 성공하면 100이 됩니다.

  • Name
    status
    Type
    string
    Description

    작업의 상태입니다. 가능한 값은 PENDING, IN_PROGRESS, SUCCEEDED, FAILED 중 하나입니다.

  • Name
    preceding_tasks
    Type
    integer
    Description

    선행 작업의 수입니다.

  • Name
    created_at
    Type
    timestamp
    Description

    작업이 생성된 시점의 타임스탬프이며, 밀리초 단위입니다.

  • Name
    started_at
    Type
    timestamp
    Description

    작업이 시작된 시점의 타임스탬프이며, 밀리초 단위입니다. 작업이 아직 시작되지 않은 경우 이 속성은 0입니다.

  • Name
    finished_at
    Type
    timestamp
    Description

    작업이 완료된 시점의 타임스탬프이며, 밀리초 단위입니다. 작업이 아직 완료되지 않은 경우 이 속성은 0입니다.

  • Name
    task_error
    Type
    object
    Description

    실패한 작업에 대한 오류 세부 정보입니다. 전체 task_error 객체 참조는 오류를 참고하세요.

  • Name
    consumed_credits
    Type
    integer
    Description

    이 작업에서 소비된 크레딧 수입니다. 작업 상태가 PENDING, IN_PROGRESS, 또는 SUCCEEDED일 때 존재합니다. FAILED 작업의 경우 0을 반환합니다(실패 시 크레딧이 환불됩니다).

The 3D Print Task Object

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "print-multi-color",
  "model_urls": {
      "3mf": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.3mf?Expires=***"
},
  "progress": 100,
  "status": "SUCCEEDED",
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "task_error": null,
"consumed_credits": 10
}