Basılabilirliği Analiz Et API'si

Bir 3D modeli FDM basılabilirliği açısından analiz edin — su geçirmezlik, hacim, delikler, manifold olmayan kenarlar ve bozuk yüzeyler.


POST/openapi/v1/print/analyze

Basılabilirlik Analizi Görevi Oluşturma

Bu uç nokta yeni bir basılabilirlik analizi görevi oluşturur. Görev, bir 3D modeli değerlendirir ve basılabilirlik metriklerini raporlar.

Girdi görevinin zaten önbelleğe alınmış basılabilirlik bilgisi varsa, döndürülen görev hemen hazır olur ve üzerinde yapılan ilk GET isteği, worker'a gitmeden analiz sonucunu döndürür.

Parametreler

  • Name
    model_url
    Type
    string
    Zorunlu
    Description

    Analiz edilecek 3D modelin URL'si. Desteklenen formatlar: .glb, .gltf, .obj, .fbx, .stl. Maksimum dosya boyutu: 100 MB. http, https veya data: URL'si kullanılmalıdır (data URL'leri uzantı kontrollerini atlar).

Dönüş Değerleri

Yanıtın result özelliği, yeni oluşturulan basılabilirlik analizi görevinin id değerini içerir.

Hata Durumları

  • Name
    400 - Bad Request
    Description

    İstek kabul edilemedi. Yaygın nedenler:

    • Eksik parametre: ne input_task_id ne de model_url sağlanmadı.
    • Geçersiz UUID: input_task_id geçerli bir UUID değil.
    • Geçersiz model URL'si: model_url hatalı biçimlendirilmiş, desteklenmeyen bir şema kullanıyor veya desteklenmeyen bir dosya uzantısına sahip.
    • Model dosyası çok büyük: model_url gövdesi 100 MB'ı aştı.
    • Görev başarılı değil: referans verilen görev hâlâ beklemede, işlem sürüyor veya başarısız oldu.
  • Name
    401 - Unauthorized
    Description

    Kimlik doğrulama başarısız oldu. Lütfen API anahtarınızı kontrol edin.

  • Name
    403 - Forbidden
    Description

    Görev mevcut ancak başka bir kullanıcıya ait.

  • Name
    404 - Not Found
    Description

    Yaygın nedenler:

    • Görev mevcut değil veya silinmiş.
    • Görev, Meshy 6'dan daha eski bir model kullanıyor veya mode'u bir 3D asset üretmiyor.
    • Temel alınan model dosyası artık depolamada mevcut değil.
  • Name
    429 - Too Many Requests
    Description

    Bekleyen görev kotanızı veya hız sınırınızı aştınız.

Request

POST
/openapi/v1/print/analyze
# Analyze an existing task
curl https://api.meshy.ai/openapi/v1/print/analyze \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578"
  }'

# Or analyze a model URL directly
curl https://api.meshy.ai/openapi/v1/print/analyze \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
    "model_url": "https://example.com/model.glb"
  }'

Response

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

GET/openapi/v1/print/analyze/:id

Basılabilirliği Analiz Et Görevini Getir

Bu uç nokta, kimliğine göre bir basılabilirlik analizi görevini getirir.

Parametreler

  • Name
    id
    Type
    path
    Description

    Getirilecek basılabilirlik analizi görevinin kimliği.

Döndürülenler

Basılabilirliği Analiz Et Görevi Nesnesi. Görev SUCCEEDED durumuna ulaşana kadar printability alanı null olur.

Request

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

Response

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "print-analyze",
  "status": "SUCCEEDED",
  "progress": 100,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "expires_at": 1715725401000,
  "task_error": null,
  "printability": {
    "_version": "v1",
    "status": "warning",
    "issue_count": 1,
    "error_count": 0,
    "warning_count": 1,
    "metrics": {
      "is_watertight": true,
      "volume": 1.316167354292668,
      "non_manifold_edges": 0,
      "degenerate_faces": 43242,
      "holes": 0
    },
    "evaluated_at": 1700000001000
  },
  "consumed_credits": 0
}

DELETE/openapi/v1/print/analyze/:id

Bir Basılabilirliği Analiz Et Görevini Sil

Bu uç nokta, bir basılabilirliği analiz et görevini ve önbelleğe alınmış sonucunu kalıcı olarak siler. Bu işlem geri alınamaz.

Yol Parametreleri

  • Name
    id
    Type
    path
    Description

    Silinecek basılabilirliği analiz et görevinin kimliği.

Görev Durumu

Hâlâ PENDING durumunda olan bir görev silinir ve oluşturma sırasında tüketilen kredi iade edilir.

Zaten IN_PROGRESS durumunda olan bir görev silinemez: istek 409 Conflict ile reddedilir ve görev çalışmaya devam eder. Çalıştırıcının (worker) zaten başlattığı bir görev için kredi iade edilmez, bu nedenle çalışma sırasında silmek hem krediyi hem de sonucu kaybetmenize neden olur. SUCCEEDED, FAILED veya CANCELED durumuna ulaşmasını bekleyin, ardından silin.

Bitiş durumundaki (SUCCEEDED, FAILED veya CANCELED) bir görev iade yapılmadan silinir.

Döndürülenler

Başarılı olduğunda 200 OK, görev IN_PROGRESS durumundayken ise 409 Conflict döner.

Request

DELETE
/openapi/v1/print/analyze/a43b5c6d-7e8f-901a-234b-567c890d1e2f
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/print/analyze/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/analyze

List Analyze Printability Tasks

Bu uç nokta, basılabilirlik analizi görevlerinin bir listesini almanıza olanak tanır.

Parametreler

Opsiyonel alanlar

  • Name
    page_num
    Type
    integer
    Description

    Sayfalama için sayfa numarası. 1 değerinden başlar ve varsayılan olarak 1 değerini alır.

  • Name
    page_size
    Type
    integer
    Description

    Sayfa boyutu sınırı. Varsayılan olarak 10 öğedir. İzin verilen maksimum değer 100 öğedir.

  • Name
    sort_by
    Type
    string
    Description

    Sıralanacak alan. Kullanılabilir değerler:

    • +created_at: Oluşturulma zamanına göre artan sırada sıralar.
    • -created_at: Oluşturulma zamanına göre azalan sırada sıralar.

Dönüş Değerleri

Basılabilirliği Analiz Etme Görevi Nesnelerinin sayfalanmış bir listesini döndürür.

Request

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

Response

[
  {
    "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
    "type": "print-analyze",
    "status": "SUCCEEDED",
    "progress": 100,
    "preceding_tasks": 0,
    "created_at": 1699999999000,
    "started_at": 1700000000000,
    "finished_at": 1700000001000,
    "expires_at": 1715725401000,
    "task_error": null,
    "printability": {
      "_version": "v1",
      "status": "warning",
      "issue_count": 1,
      "error_count": 0,
      "warning_count": 1,
      "metrics": {
        "is_watertight": true,
        "volume": 1.316167354292668,
        "non_manifold_edges": 0,
        "degenerate_faces": 43242,
        "holes": 0
      },
      "evaluated_at": 1700000001000
    },
    "consumed_credits": 0
  }
]

GET/openapi/v1/print/analyze/:id/stream

Bir Basılabilirliği Analiz Et Görevini Akışa Aktar

Bu uç nokta, Server-Sent Events (SSE) kullanarak bir basılabilirlik analizi görevi için gerçek zamanlı güncellemeleri akışa aktarır.

Parametreler

  • Name
    id
    Type
    path
    Description

    Akışa aktarılacak basılabilirlik analizi görevi için benzersiz tanımlayıcı.

Döndürülenler

Server-Sent Events olarak Basılabilirliği Analiz Et Görev Nesneleri akışı döndürür.

Her kare, o aşama için tam görev nesnesini taşır — bu, Get uç noktasının döndürdüğü ile aynı yapıdır — bu nedenle görev PENDING veya IN_PROGRESS durumundayken çıktı alanları henüz doldurulmamıştır (null, [] veya {}) ve finished_at değeri null'dır. printability bloğu yalnızca görev SUCCEEDED durumuna ulaştığında gönderilir.

Request

GET
/openapi/v1/print/analyze/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream
curl -N https://api.meshy.ai/openapi/v1/print/analyze/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.
// Every frame is the full task object; fields not yet populated are null / empty.
// The PENDING frame below is abbreviated to the fields that change.
event: message
data: {
  "id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
  "type": "print-analyze",
  "status": "SUCCEEDED",
  "progress": 100,
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "expires_at": 1715725401000,
  "task_error": null,
  "printability": {
    "_version": "v1",
    "status": "warning",
    "issue_count": 1,
    "error_count": 0,
    "warning_count": 1,
    "metrics": {
      "is_watertight": true,
      "volume": 1.316167354292668,
      "non_manifold_edges": 0,
      "degenerate_faces": 43242,
      "holes": 0
    },
    "evaluated_at": 1700000001000
  },
  "consumed_credits": 0
}

Basılabilirliği Analiz Et Görev Nesnesi

  • Name
    id
    Type
    string
    Description

    Görev için benzersiz tanımlayıcı. Uygulama detayı olarak görev id'leri için k-sıralanabilir bir UUID kullansak da, id'nin formatı hakkında herhangi bir varsayımda bulunmamalısınız.

  • Name
    type
    Type
    string
    Description

    Basılabilirliği analiz et görevinin türü. Değer print-analyze şeklindedir.

  • Name
    status
    Type
    string
    Description

    Görevin durumu. Olası değerler PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED değerlerinden biridir.

  • Name
    progress
    Type
    integer
    Description

    Görevin progress değeri. Görev henüz başlamadıysa bu özellik 0 olur. Görev başarılı olduğunda bu değer 100 olur.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Önceki görevlerin sayısı.

  • Name
    created_at
    Type
    timestamp
    Description

    Görevin oluşturulduğu zaman damgası, milisaniye cinsinden.

  • Name
    started_at
    Type
    timestamp
    Description

    Görevin başladığı zaman damgası, milisaniye cinsinden. Görev henüz başlamadıysa bu özellik 0 olur.

  • Name
    finished_at
    Type
    timestamp
    Description

    Görevin bittiği zaman damgası, milisaniye cinsinden. Görev henüz bitmediyse bu özellik 0 olur.

  • Name
    expires_at
    Type
    timestamp
    Description

    Görev sonucunun sistemden kaldırılacağı zaman damgası, milisaniye cinsinden. Görev henüz bitmediyse 0 olur.

  • Name
    task_error
    Type
    object
    Description

    Görev başarısız olduysa hata bilgisi. Görev başarısız olmadıysa bu özellik null olur. Daha fazla ayrıntı için Hatalar bölümüne bakın.

    • Name
      message
      Type
      string
      Description

      Neyin yanlış gittiğini açıklayan hata mesajı.

  • Name
    printability
    Type
    object
    Description

    Basılabilirlik değerlendirme sonucu. Görev SUCCEEDED durumuna ulaşana kadar null olur.

    • Name
      _version
      Type
      string
      Description

      Basılabilirlik sonucunun şema sürümü. Şu anda v1.

    • Name
      status
      Type
      string
      Description

      Genel durum. Aşağıdakilerden biri:

      • healthy: hata veya uyarı yok.
      • warning: en az bir uyarı var, hata yok.
      • error: en az bir hata var.
      • unknown: model analiz edilemedi.
    • Name
      issue_count
      Type
      integer
      Description

      Toplam sorun sayısı, error_count + warning_count değerine eşittir.

    • Name
      error_count
      Type
      integer
      Description

      Hata düzeyindeki sorunların sayısı. Model su geçirmez olmadığında, pozitif olmayan hacme sahip olduğunda veya manifold olmayan kenarlar içerdiğinde hatalar oluşturulur.

    • Name
      warning_count
      Type
      integer
      Description

      Uyarı düzeyindeki sorunların sayısı. Model bozuk yüzeyler veya delikler içerdiğinde uyarılar oluşturulur.

    • Name
      metrics
      Type
      object
      Description

      Değerlendirici tarafından döndürülen ham geometri ölçümleri.

      • Name
        is_watertight
        Type
        boolean
        Description

        Ağın sınır kenarları yoksa (yani kapalıysa) true olur.

      • Name
        volume
        Type
        number
        Description

        Modelin metreküp cinsinden hacmi.

      • Name
        non_manifold_edges
        Type
        integer
        Description

        Manifold olmayan kenarların sayısı.

      • Name
        degenerate_faces
        Type
        integer
        Description

        Bozuk yüzeylerin sayısı (sıfır alanlı veya geçersiz yüzeyler).

      • Name
        holes
        Type
        integer
        Description

        Ağdaki deliklerin (sınır döngülerinin) sayısı.

    • Name
      evaluated_at
      Type
      timestamp
      Description

      Analizin hesaplandığı zaman damgası, epoch'tan bu yana geçen milisaniye cinsinden.

  • Name
    consumed_credits
    Type
    integer
    Description

    Her zaman 0. Bu uç nokta ücretsizdir.

The Analyze Printability Task Object

{
  "id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
  "type": "print-analyze",
  "status": "SUCCEEDED",
  "progress": 100,
  "preceding_tasks": 0,
  "created_at": 1699999999000,
  "started_at": 1700000000000,
  "finished_at": 1700000001000,
  "expires_at": 1715725401000,
  "task_error": null,
  "printability": {
    "_version": "v1",
    "status": "warning",
    "issue_count": 1,
    "error_count": 0,
    "warning_count": 1,
    "metrics": {
      "is_watertight": true,
      "volume": 1.316167354292668,
      "non_manifold_edges": 0,
      "degenerate_faces": 43242,
      "holes": 0
    },
    "evaluated_at": 1700000001000
  },
  "consumed_credits": 0
}