प्रिंट-योग्यता विश्लेषण API

FDM प्रिंट-योग्यता के लिए किसी 3D मॉडल का विश्लेषण करें — वॉटरटाइटनेस, वॉल्यूम, होल्स, नॉन-मैनिफोल्ड किनारे, और डिजेनरेट फेस।


POST/openapi/v1/print/analyze

Create an Analyze Printability Task

यह एंडपॉइंट एक नया analyze-printability टास्क बनाता है। यह टास्क एक 3D मॉडल का मूल्यांकन करता है और उसके प्रिंट-योग्यता मेट्रिक्स की रिपोर्ट देता है।

यदि इनपुट टास्क के पास पहले से ही कैश्ड प्रिंट-योग्यता है, तो लौटाया गया टास्क तुरंत तैयार होता है और इस पर पहला GET वर्कर से गुजरे बिना ही विश्लेषण परिणाम लौटा देगा।

पैरामीटर

  • Name
    model_url
    Type
    string
    आवश्यक
    Description

    विश्लेषण करने के लिए 3D मॉडल का URL। समर्थित प्रारूप: .glb, .gltf, .obj, .fbx, .stl। अधिकतम फ़ाइल आकार: 100 MB। इसे http, https, या data: URL का उपयोग करना चाहिए (data URL एक्सटेंशन जांच को बायपास कर देते हैं)।

रिटर्न

प्रतिक्रिया के result प्रॉपर्टी में नए बनाए गए analyze-printability टास्क का id होता है।

विफलता मोड

  • Name
    400 - Bad Request
    Description

    अनुरोध स्वीकार्य नहीं था। सामान्य कारण:

    • पैरामीटर गायब: न तो input_task_id और न ही model_url दिया गया था।
    • अमान्य UUID: input_task_id एक मान्य UUID नहीं है।
    • अमान्य मॉडल URL: model_url गलत तरीके से बना है, किसी असमर्थित स्कीम का उपयोग करता है, या इसमें असमर्थित फ़ाइल एक्सटेंशन है।
    • मॉडल फ़ाइल बहुत बड़ी है: model_url बॉडी 100 MB से अधिक हो गई।
    • टास्क सफल नहीं हुआ: संदर्भित टास्क अभी भी लंबित है, प्रगति में है, या असफल हो गया है।
  • Name
    401 - Unauthorized
    Description

    प्रमाणीकरण विफल हो गया। कृपया अपनी API की जांचें।

  • Name
    403 - Forbidden
    Description

    टास्क मौजूद है लेकिन किसी अन्य उपयोगकर्ता के स्वामित्व में है।

  • Name
    404 - Not Found
    Description

    सामान्य कारण:

    • टास्क मौजूद नहीं है या हटाया जा चुका है।
    • टास्क Meshy 6 से पुराने मॉडल का उपयोग करता है, या इसका mode कोई 3D asset उत्पन्न नहीं करता।
    • अंतर्निहित मॉडल फ़ाइल अब स्टोरेज में उपलब्ध नहीं है।
  • Name
    429 - Too Many Requests
    Description

    आपने अपनी pending-task कोटा या रेट लिमिट पार कर ली है।

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

Analyze Printability Task को प्राप्त करें

यह एंडपॉइंट किसी analyze-printability task को उसकी ID के द्वारा प्राप्त करता है।

पैरामीटर

  • Name
    id
    Type
    path
    Description

    प्राप्त करने के लिए analyze-printability task की ID।

रिटर्न वैल्यू

Analyze Printability Task Object। printability फ़ील्ड तब तक null रहती है जब तक टास्क SUCCEEDED तक नहीं पहुँच जाता।

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

प्रिंट-योग्यता विश्लेषण टास्क हटाएं

यह एंडपॉइंट किसी प्रिंट-योग्यता विश्लेषण टास्क और उसके कैश किए गए परिणाम को स्थायी रूप से हटा देता है। यह क्रिया अपरिवर्तनीय है।

पथ पैरामीटर

  • Name
    id
    Type
    path
    Description

    हटाए जाने वाले प्रिंट-योग्यता विश्लेषण टास्क की ID।

टास्क स्टेटस

जो टास्क अभी भी PENDING है, वह हटा दिया जाता है और बनाते समय खर्च हुए क्रेडिट वापस कर दिए जाते हैं।

जो टास्क पहले से ही IN_PROGRESS है, उसे हटाया नहीं जा सकता: अनुरोध को 409 Conflict के साथ अस्वीकार कर दिया जाता है और टास्क चलता रहता है। जिस टास्क को वर्कर पहले ही शुरू कर चुका है, उसके क्रेडिट वापस नहीं किए जा सकते, इसलिए बीच में इसे हटाने से आपके क्रेडिट और परिणाम दोनों नष्ट हो जाएंगे। इसके SUCCEEDED, FAILED या CANCELED स्थिति तक पहुँचने की प्रतीक्षा करें, फिर इसे हटाएं।

अंतिम स्थिति (SUCCEEDED, FAILED या CANCELED) में मौजूद टास्क बिना किसी रिफंड के हटा दिया जाता है।

रिटर्न

सफल होने पर 200 OK लौटाता है, या जब टास्क IN_PROGRESS हो तो 409 Conflict लौटाता है।

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

प्रिंट-योग्यता विश्लेषण कार्यों की सूची

यह एंडपॉइंट आपको प्रिंट-योग्यता विश्लेषण कार्यों की सूची प्राप्त करने की अनुमति देता है।

पैरामीटर

वैकल्पिक विशेषताएं

  • Name
    page_num
    Type
    integer
    Description

    पेजिनेशन के लिए पेज नंबर। शुरुआत और डिफ़ॉल्ट 1 है।

  • Name
    page_size
    Type
    integer
    Description

    पेज साइज़ सीमा। डिफ़ॉल्ट 10 आइटम है। अधिकतम अनुमत 100 आइटम है।

  • Name
    sort_by
    Type
    string
    Description

    सॉर्ट करने के लिए फ़ील्ड। उपलब्ध मान:

    • +created_at: निर्माण समय के अनुसार आरोही क्रम में सॉर्ट करें।
    • -created_at: निर्माण समय के अनुसार अवरोही क्रम में सॉर्ट करें।

रिटर्न

यह प्रिंट-योग्यता विश्लेषण कार्य ऑब्जेक्ट्स की एक पेजिनेटेड सूची लौटाता है।

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

प्रिंट-योग्यता विश्लेषण टास्क को स्ट्रीम करें

यह एंडपॉइंट Server-Sent Events (SSE) का उपयोग करके एक analyze-printability टास्क के लिए रीयल-टाइम अपडेट स्ट्रीम करता है।

पैरामीटर

  • Name
    id
    Type
    path
    Description

    स्ट्रीम करने के लिए analyze-printability टास्क का यूनीक पहचानकर्ता।

रिटर्न

Server-Sent Events के रूप में प्रिंट-योग्यता विश्लेषण टास्क ऑब्जेक्ट्स की एक स्ट्रीम लौटाता है।

प्रत्येक फ्रेम उस चरण के लिए पूरा टास्क ऑब्जेक्ट वहन करता है — वही आकार जो Get एंडपॉइंट लौटाता है — इसलिए जब तक टास्क PENDING या IN_PROGRESS में है, तब तक आउटपुट फ़ील्ड्स बस अभी तक भरे नहीं गए होते (null, [] या {}) और finished_at null होता है। printability ब्लॉक तभी भेजा जाता है जब टास्क SUCCEEDED तक पहुँचता है।

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
}

प्रिंट-योग्यता विश्लेषण टास्क ऑब्जेक्ट

  • Name
    id
    Type
    string
    Description

    टास्क के लिए यूनीक आइडेंटिफायर। हालांकि हम टास्क id के लिए इम्प्लीमेंटेशन डिटेल के रूप में k-sortable UUID का उपयोग करते हैं, आपको id के फॉर्मैट के बारे में कोई भी धारणा नहीं बनानी चाहिए।

  • Name
    type
    Type
    string
    Description

    analyze-printability टास्क का प्रकार। इसका मान print-analyze है।

  • Name
    status
    Type
    string
    Description

    टास्क की स्थिति। संभावित मान PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED में से एक हैं।

  • Name
    progress
    Type
    integer
    Description

    टास्क की progress। यदि टास्क अभी शुरू नहीं हुआ है, तो यह प्रॉपर्टी 0 होगी। एक बार टास्क सफल हो जाने पर, यह 100 हो जाएगी।

  • 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
    expires_at
    Type
    timestamp
    Description

    वह टाइमस्टैंप जब टास्क परिणाम सिस्टम से एक्सपायर हो जाएगा, मिलीसेकंड में। यदि टास्क अभी समाप्त नहीं हुआ है, तो 0।

  • Name
    task_error
    Type
    object
    Description

    यदि टास्क विफल हो गया है तो एरर की जानकारी। यदि टास्क विफल नहीं हुआ है तो यह प्रॉपर्टी null होती है। अधिक जानकारी के लिए एरर देखें।

    • Name
      message
      Type
      string
      Description

      एरर मैसेज जो बताता है कि क्या गलत हुआ।

  • Name
    printability
    Type
    object
    Description

    प्रिंट-योग्यता मूल्यांकन परिणाम। जब तक टास्क SUCCEEDED तक नहीं पहुंचता, यह null रहता है।

    • Name
      _version
      Type
      string
      Description

      प्रिंट-योग्यता परिणाम का स्कीमा वर्शन। वर्तमान में v1।

    • Name
      status
      Type
      string
      Description

      समग्र स्थिति। इनमें से एक:

      • healthy: कोई एरर नहीं और कोई चेतावनी नहीं।
      • warning: कम से कम एक चेतावनी, कोई एरर नहीं।
      • error: कम से कम एक एरर।
      • unknown: मॉडल का विश्लेषण नहीं किया जा सका।
    • Name
      issue_count
      Type
      integer
      Description

      समस्याओं की कुल संख्या, जो error_count + warning_count के बराबर है।

    • Name
      error_count
      Type
      integer
      Description

      एरर-स्तर की समस्याओं की संख्या। एरर तब उठाए जाते हैं जब मॉडल वाटरटाइट नहीं है, इसका वॉल्यूम शून्य से कम या बराबर है, या इसमें नॉन-मैनिफोल्ड किनारे हैं।

    • Name
      warning_count
      Type
      integer
      Description

      चेतावनी-स्तर की समस्याओं की संख्या। चेतावनियां तब उठाई जाती हैं जब मॉडल में डिजेनरेट फेस या होल होते हैं।

    • Name
      metrics
      Type
      object
      Description

      एवैल्युएटर द्वारा लौटाए गए रॉ ज्यामिति मेट्रिक्स।

      • Name
        is_watertight
        Type
        boolean
        Description

        true जब मेश में कोई बाउंड्री किनारे नहीं होते हैं (यानी, बंद है)।

      • Name
        volume
        Type
        number
        Description

        मॉडल का वॉल्यूम क्यूबिक मीटर में।

      • Name
        non_manifold_edges
        Type
        integer
        Description

        नॉन-मैनिफोल्ड किनारों की संख्या।

      • Name
        degenerate_faces
        Type
        integer
        Description

        डिजेनरेट फेस (शून्य-क्षेत्र या अमान्य फेस) की संख्या।

      • Name
        holes
        Type
        integer
        Description

        मेश में होल (बाउंड्री लूप) की संख्या।

    • Name
      evaluated_at
      Type
      timestamp
      Description

      एपॉक के बाद से मिलीसेकंड में, विश्लेषण की गणना किए जाने का टाइमस्टैंप।

  • Name
    consumed_credits
    Type
    integer
    Description

    हमेशा 0। यह एंडपॉइंट फ्री है।

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
}