API और MCP
मॉडल से ड्रॉइंग तक, HTTP पर
पूरा REST API वर्कफ़्लो — एक सेशन, फ़ाइलें, कॉन्फ़िगरेशन, एक प्रीव्यू, एक्सपोर्ट, डाउनलोड — और वही प्रोग्राम cURL, JavaScript, TypeScript और Python में।
शुरू करने से पहले
- एक Occlusia खाता और एक API कुंजी, जो आपके खाते में API कुंजियाँ के अंतर्गत बनती है। कुंजी को एक एनवायरनमेंट वेरिएबल में रखें: उदाहरण
OCCLUSIA_API_KEYपढ़ते हैं। - एक मॉडल: SketchUp 2021 या बाद के संस्करण में सहेजी गई
.skpफ़ाइल, एक.ifc, एक.fbxया एक.occsफ़ाइल, अधिकतम 512 MB। - आपका ग्राफ़िक मानक एक कॉन्फ़िगरेशन के रूप में, जो Occlusia Studio से Export › Configuration (.occc) के साथ एक्सपोर्ट किया गया हो — या कोई नहीं, और मॉडल डिफ़ॉल्ट सेटिंग से बनाया जाता है।
- क्रेडिट, या शुरुआती पहुँच का खाता: मॉडल खोलने और हर एक्सपोर्ट में क्रेडिट लगते हैं (API और MCP, इसकी लागत क्या है)।
छह चरण
- 01
सेशन खोलें
POST /sessionsआपका अपना इंजन शुरू करता है, आपके खाते में साइन इन, और उसकाidलौटाता है। एक खाते में एक समय में 3 सेशन होते हैं; एक सेशन 15 मिनट उपयोग न होने पर, या 8 घंटे बाद समाप्त हो जाता है। - 02
फ़ाइलें अपलोड करें
PUT /sessions/{id}/files/{name}, फ़ाइल को रॉ बॉडी के रूप में भेजकर: मॉडल, और उसका कॉन्फ़िगरेशन। नाम सेशन में फ़ाइल का नाम है, सर्वर पर कोई पाथ नहीं। - 03
खोलें और कॉन्फ़िगर करें
model.openकमांड{"path": "house.skp"}के साथ मॉडल खोलता है और उसके व्यूsectionsमें लौटाता है।{"path": "standard.occc"}के साथconfig.setकॉन्फ़िगरेशन लागू करता है; फ़ॉर्मेट तोड़ने वाला कॉन्फ़िगरेशन पूरा अस्वीकार कर दिया जाता है, हर त्रुटि के साथ। - 04
ज़रूरत हो तो देखें
preview.renderएक व्यू को PNG, JPEG या स्वयं SVG के रूप में लौटाता है, अपनी लंबी भुजा पर 2048 पिक्सल तक। एक्सपोर्ट को इसकी ज़रूरत नहीं। - 05
एक्सपोर्ट
export, एकformatके साथ —svg,dxf,pdf,pngयाjpg—, बनाने के लिएsections— एक व्यू का नाम, या उनकी सूची — औरout: एक ड्रॉइंग के लिए फ़ाइल, कई के लिए फ़ोल्डर।mergedउनका एक PDF बनाता है। - 06
डाउनलोड करें, फिर सेशन समाप्त करें
GET /sessions/{id}/files/{name}वह डाउनलोड करता है जो एक्सपोर्ट ने लिखा;DELETE /sessions/{id}सेशन समाप्त करता है, और उसकी फ़ाइलें उसके साथ हटा दी जाती हैं।
वही प्रोग्राम चार भाषाओं में
एक मॉडल अंदर, उसका पहला व्यू DXF के रूप में बाहर, और सेशन समाप्त, चाहे कोई चरण विफल हो। हर भाषा अस्वीकृति पर अपने स्टेटस और त्रुटि की बॉडी के साथ रुकती है।
KEY=occ_sk_… # Account › API keys
API=https://api.occlusia.app/v1/engine
AUTH="Authorization: Bearer $KEY"
JSON="Content-Type: application/json"
# 1. A session: an engine of your own, with its own files
S=$(curl -s -X POST $API/sessions -H "$AUTH" | jq -r .id)
# 2. The model and your graphic standard
curl -T house.skp $API/sessions/$S/files/house.skp -H "$AUTH"
curl -T standard.occc $API/sessions/$S/files/standard.occc -H "$AUTH"
# 3. Open the model (1 credit), apply the configuration (free)
curl $API/sessions/$S/commands/model.open -H "$AUTH" -H "$JSON" -d '{"path":"house.skp"}'
curl $API/sessions/$S/commands/config.set -H "$AUTH" -H "$JSON" -d '{"path":"standard.occc"}'
# 4. Export one view as DXF (1 credit per drawing)
curl $API/sessions/$S/commands/export -H "$AUTH" -H "$JSON" \
-d '{"format":"dxf","sections":"Section A-A","out":"section-a.dxf"}'
# 5. Download it, then end the session: its files are deleted with it
curl -o section-a.dxf $API/sessions/$S/files/section-a.dxf -H "$AUTH"
curl -X DELETE $API/sessions/$S -H "$AUTH"उदाहरण मॉडल का पहला व्यू एक्सपोर्ट करते हैं। sections.list सबकी सूची देता है और बताता है कि कौन-सा सक्रिय है; objects.list, annotations.list और levels.list मॉडल के बाकी हिस्से की सूची देते हैं।
व्यू और फ़ॉर्मेट चुनना
"sections": "Section A-A"एक व्यू एक्सपोर्ट करता है;["Section A-A", "Ground floor plan"]कई, हर एकoutफ़ोल्डर में अपनी फ़ाइल के रूप में — या"merged": trueके साथ एक PDF।pageहर व्यू का PDF पेज तय करता है —format,orientation,scale_modefitयाcustomअपनेscale_denominator(1:N),margins_mmके साथ —,pagesएक बार में एक व्यू;imagePNG या JPEG का आकार या स्केल, रेज़ोल्यूशन, बैकग्राउंड और क्वालिटी तय करता है।export.configहर व्यू का पेज सेटअप पढ़ता है, औरexport.setupउसे बिना एक्सपोर्ट किए बदलता है, जैसा एक्सपोर्ट डायलॉग करता है।- एक्सपोर्ट उन फ़ाइलों को लौटाता है जो उसने लिखीं और उसकी लागत;
GET /sessions/{id}/filesसेशन की फ़ाइलों की सूची देता है।
कॉन्फ़िगरेशन फ़ाइल के बिना स्टाइल करना
कॉन्फ़िगरेशन में रहने वाली हर सेटिंग एक बार में एक कमांड से भी सेट की जा सकती है: ऑब्जेक्ट के लिए object.set, हैच प्रीसेट के लिए object.apply_preset, DXF लेयर के लिए layers.create और layers.update, व्यू के लिए section.set, नोट और स्पॉट एलिवेशन के लिए annotation.set और level.set। engine.schema हर सेटिंग और उसके मान की सूची देता है; config.get पूरा कॉन्फ़िगरेशन लौटाता है, जिसे .occc फ़ाइल के रूप में रखा जा सके।
लंबे एक्सपोर्ट: जॉब और इवेंट
PDF का सेट मिनटों ले सकता है। उसकी कमांड Prefer: respond-async के साथ भेजें: वह तुरंत 202 और एक जॉब लौटाती है, और GET /sessions/{id}/jobs/{job} बताता है कि जॉब चल रहा है, अपने परिणाम के साथ पूरा हुआ है, या अपनी त्रुटि के साथ विफल हुआ है। GET /sessions/{id}/events इंजन जो कर रहा है उसे सर्वर-सेंट इवेंट के रूप में स्ट्रीम करता है: progress, message, export, job, ended।
त्रुटियाँ और पुनः प्रयास
- हर अस्वीकृति
{"error": {"code", "message"}}है, एक स्थिर कोड और उसके साथ जाने वाले HTTP स्टेटस के साथ। cloud_limitयाrate_limitedके साथ429, औरbusyके साथ503,Retry-Afterलिए होते हैं: उतनी देर प्रतीक्षा करें, फिर वही अनुरोध दोबारा भेजें।- कमांड के साथ एक
Idempotency-Keyभेजें: उत्तर खो जाने के बाद पुनः प्रयास का उत्तर पहली बार के रन से दिया जाता है — न दोबारा चलता है, न दो बार शुल्क लगता है। - हर उत्तर
X-Request-Idलिए होता है: किसी अनुरोध के बारे में कोई भी प्रश्न पूछते समय इसे दें।
संदर्भ
- GET /v1/engine
- इंजन का संस्करण और बिल्ड, बिना कुंजी के।
- GET /v1/engine/openapi.json
- पूरा API OpenAPI में।
- GET /v1/engine/commands
- हर कमांड, अपने पैरामीटर के साथ JSON Schema के रूप में।
हर रूट, सीमा और त्रुटि कोड API और MCP में, REST API के अंतर्गत सूचीबद्ध है।