Quote3D Dokümantasyonuna Hoş Geldiniz! ⏳

Temel Kavramlar: Dosyalar, Teklifler ve İşler

Bu sayfa, platformu güçlendiren temel fikirleri ve kalıpları tanıtır. Bu kavramları anlamak, API'den en iyi şekilde yararlanmanıza ve 3D baskı iş akışları için sağlam entegrasyonlar oluşturmanıza yardımcı olacaktır.

API Taban Yolu

Harici API çağrıları için istekleri doğrudan https://api.quote3d.com/v2/... adresine gönderin (örneğin, GET https://api.quote3d.com/v2/user).

Yazılımınızda https://api.quote3d.com adresini API ana bilgisayarı/temel URL olarak ayarlayın ve /v2/user, /v2/file ve /v2/quotes gibi v2 yollarını çağırın.

1. Kimlik Doğrulama ve Güvenlik

Her uç nokta Quote3D API token'ınızla kimlik doğrulaması gerektirir; tek istisna Dosya Yönetimi altında belgelenen genel yükleme rotasıdır. Harici çağrılar için https://api.quote3d.com/v2 temel rotasını kullanın. Token'ı ister Authorization: Bearer YOUR_TOKEN ister X-API-Token olarak gönderin. Token'ları Quote3D panelinizden oluşturun ve gizli tutun.

Token'lar kapsamlandırılabilir. Tam erişimli bir token her uç noktaya ulaşır, widget kapsamlı bir token ise yalnızca gömülü widget'ın ihtiyaç duyduğu uç noktalarla sınırlıdır. Bir token'ın kapsamı dışındaki her çağrı 403 döndürür. Bir token'ın kapsamını panelinizin Token'lar sayfasından görüp değiştirebilirsiniz.

Hatırlatma: API token'larınızı güvende tutun. Asla herkese açık olarak paylaşmayın veya sürüm kontrolüne kaydetmeyin.

2. Hesap Yönetimi

Hesabınızı, yüklemelerinizi ve kullanım istatistiklerinizi özel uç noktalar aracılığıyla yönetin:

  • GET /v2/user Hesap bilgilerinizi, planınızı ve aylık kotalarınızı getirir — quotes_used, quotes_limit, storage_used, storage_limit ve reset_date burada bulunur
  • GET /v2/user/uploads Hesabınıza yüklediğiniz tüm dosyaları listeleyin. Bunlar en yeni en eskiye doğru sıralanır.
  • GET /v2/quota Hız limiti kotalarınızı getirir — genel limitin yanı sıra kalan çağrı ve sıfırlanma zamanlarıyla uç nokta bazlı döküm — bugün, bu ay, bu yıl ve tüm zamanlar için istek sayılarınızla birlikte
  • GET /v2/usage Endpoint istatistikleri, malzeme kullanımı ve zamana dayalı trendler dahil detaylı kullanım analitiklerini alın
  • GET /v2/config Hesabın açık teknolojileri, yazıcıları, renkleriyle (stokta olan ya da olmayan) malzemeleri ve fiyat varsayılanları; yani widget'ın sunduğu her şey. Widget kapsamlı token'lar da okuyabilir.

3. Dosya Yönetimi

3D model dosyalarınızı (STL, 3MF, OBJ, STEP formatları) yükleyin, indirin ve yönetin:

  • GET /v2/file/upload-id — Yeni bir dosya yüklemek için geçici bir upload_id almak için genel yükleme rotasını kullanın.
  • POST /v2/file/public/{upload_id} — Bu rota kimlik doğrulaması gerektirmez. Dosyaları doğrudan depolama alanımıza yüklemek için istemci tarafınızda kullanın.

    Public Upload rotasını kullanmak, büyük dosyaları backend sunucunuz üzerinden yönlendirmekten kaçınmanızı sağlar. Bu, API token'ınızı açığa çıkarmayı önler ve sunucu yükünü azaltır.

  • POST /v2/file — Sunucu tarafınızdan bir dosya yükleyin (kimlik doğrulama gerektirir, backend'den yüklemek istediğinizde kullanın)
  • GET /v2/file/{file_id} — file_id kullanarak bir dosyayı indirin
  • DELETE /v2/file/{file_id} — Artık ihtiyacınız olmayan bir dosyayı silin

Dosya geçerli bir STL, 3MF, OBJ veya STEP modeli değilse ya da platform dosya boyutu limitini (varsayılan 50 MB) aşıyorsa yükleme reddedilir. STEP dosyaları (.step/.stp) sunucuda OrcaSlicer ile aynı ayarlarla (doğrusal sapma 0,003 mm, açısal sapma 0,5 rad) üçgenlere bölünür; bir montajdaki tüm gövdeler birleştirilir ve uzunluklar milimetreye çevrilir. Her iki yükleme rotası da aynı kontrolleri uygular.

Dosyalarınızın nasıl saklandığı

Yüklenen modeller şifrelenmiş olarak saklanır ve asla herkese açık şekilde erişilemez — saklanan bir dosyayı doğrudan sunan bir bağlantı bulunmamaktadır. Yanıtlardaki file_path alanı, disk üzerindeki bir konum değil, kimlik doğrulaması yapılmış indirme yoludur (GET /v2/file/{file_id}); bu nedenle bunu paylaşabileceğiniz bir URL yerine bir uç nokta olarak değerlendirin. Bir dosyayı silmek, onu sadece listelemelerinizden değil, depolama alanından da kaldırır.

4. Parça Bilgisi ve Teknik Analiz

Modellerinizin yazdırılabilir olup olmadığını kontrol edin, parça boyutlarını ve gelişmiş teknik metrikleri alın:

  • POST /v2/printability/{file_id} Anlık Analiz - Fiyat teklifi oluşturmadan önce yüklenen dosyanın ölçümlerini, hacmini, yüzey alanını ve geometri bütünlüğünü (çatlak/açık kenar) kontrol edin.

Quote3D, sadece boyut kontrolü yapmaz; modelin geometri hatlarını (manifold integrity) ve 3D baskı için kritik olan yatak tutunma riskini (adhesion risk) analiz eder. Bu veriler hem Printability hem de Quote yanıtlarında sağlanır.

5. Fiyat Teklifi İşlemleri

3D baskılarınız için anında fiyat teklifleri oluşturun ve fiyat teklifi geçmişini yönetin:

  • POST /v2/file/quote/{file_id} — Bir 3D model için asenkron fiyat teklifi hesaplamasını başlatın. Bir iş kimliği döndürür; tamamlanan sonucu jobs endpoint'i üzerinden alırsınız.
  • POST /v2/file/quote/{file_id}/async — Alternatif asenkron fiyat teklifi endpoint'i. Durumunu kontrol etmek ve tamamlanan sonucu almak için kullanabileceğiniz bir iş kimliği döndürür.
  • GET /v2/jobs/{job_id} — Asenkron fiyat teklifi işinin durumunu kontrol edin. İlerleme yüzdesi ve tamamlanma durumu döndürür.
  • GET /v2/quotes — Sayfalama desteği ile tüm fiyat teklifi geçmişinizi alın
  • GET /v2/quotes/{quote_id} — Belirli bir fiyat teklifi hakkında detaylı bilgi alın
  • DELETE /v2/quotes/{quote_id} — Geçmişinizden bir fiyat teklifini kaldırın

Asenkron akış: POST /v2/file/quote/{file_id} önce bir iş kimliği döndürür. Tamamlanmış sonuç için GET /v2/jobs/{job_id} kullanın; mevcut olduğunda ayrıntılı ve kaydedilmiş teklif sonucu için ise GET /v2/quotes/{quote_id} endpoint'ini kullanın.

Fiyat Teklifi İstek Parametreleri

Fiyat teklifi oluştururken, istek gövdesinde özel yapılandırma sağlayabilirsiniz. Belirtmediğiniz parametreler otomatik olarak Dashboard Slice Profile ayarlarınızdan alınacaktır. Bu, diğerleri için varsayılanları korurken fiyat teklifi başına belirli ayarları geçersiz kılmanıza olanak tanır.

Önemli: İsteğinizde bir parametre sağlamazsanız, API Dashboard Slice Profile'dan (Yazıcı Profili, Malzeme Profili veya Global Ayarlar) değeri kullanacaktır. Tutarlı fiyat teklifleri için Dashboard'da varsayılan profillerinizi ayarladığınızdan emin olun. Ayrıca tüm parametrelerinizi Dashboard'daki belirli bir Yazıcı Profilinde ayarlayabilir ve sadece yazdırmak istediğiniz yazıcının 'printer_id' parametresini göndererek, ayarları tek tek girmeye gerek kalmadan kolayca hesaplama yaptırabilirsiniz.

Yapılandırma önceliği: V2 API isteğinde gönderilen değerler seçili kullanıcı profili değerlerini ezer; hâlâ eksik kalan alanlar ise kullanıcı/global varsayılan profillere düşer.

Aşağıdaki tablolar entegrasyonların en sık geçersiz kıldığı parametreleri kapsar. Tam liste değildir — teklif motoru çok daha fazla yazıcı, malzeme ve fiyatlandırma alanı kabul eder ve bunların her biri her istekte gönderilmek yerine Panel Dilimleme Profillerinizde bir kez ayarlanabilir. Profillerinizi orada yapılandırın ve yalnızca teklife göre değişenleri gönderin; alanların tam listesi OpenAPI şemasındadır.

İstek Doğrulaması

printer_config, material_config ve quote_config içindeki sayısal alanlar, iş kuyruğa alınmadan önce sınır kontrolünden geçer. Aralığın dışındaki bir değer, sonlu olmayan bir sayı (NaN, Infinity), yanlış bir tür veya yalnızca sıfır ve üzerinin mantıklı olduğu durumlarda negatif bir sayı, HTTP 400 hatası ve tam alanı belirten bir VALIDATION_ERROR ile reddedilir. Sıfır, anlamlı olduğu her yerde kabul edilir; örneğin, role özel 0 hızı veya ivmesi, OrcaSlicer’ın kullandığı kurala benzer şekilde "yazıcı varsayılanını kullan" anlamına gelir.

  • Sıcaklık limitleri: malzeme sıcaklıkları (istekte gönderilen veya Material Profile’dan okunan temperature ve bed_temperature), yazıcının min_hotend_temp / max_hotend_temp ve min_bed_temp / max_bed_temp değerlerine göre kontrol edilir. Seçilen yazıcının sağlayabileceğinden daha fazla ısı gerektiren bir malzeme, teklif oluşturulmak yerine reddedilir. Yalnızca FDM için geçerlidir; reçine ve toz teknolojilerinde nozul veya ısıtılmış tabla bulunmaz. Kontrolü atlamak için yazıcı limitlerini boş bırakın.
  • Etkin teknolojiler: Global Settings kısmında teknolojileri kısıtladıysanız, devre dışı bırakılmış bir teknoloji için yapılan teklif isteği reddedilir. Tüm teknolojileri kabul etmek için ayarı boş bırakın.
  • Malzeme fiyat alanları: price_per_gram, motorun ücretlendirdiği değerdir. Bir Material Profile kaydettiğinizde, price_per_kg otomatik olarak ondan yeniden hesaplanır (ve yalnızca kilogram fiyatı sağlandığında price_per_gram, price_per_kg’den türetilir), böylece bu iki değer asla birbiriyle çelişmez.

Kök Parametreler

ParametreTürAçıklama
technologystringİsteğe bağlı. Üretim teknolojisi: 'FDM', 'SLA', 'SLS', 'SLM' veya 'MJF' ('RESIN', 'SLA' için; 'DMLS' ve 'LPBF', 'SLM' için takma ad olarak kabul edilir). Hangi teknolojiye özgü parametrelerin geçerli olacağını ve parçaların toplu üretim için nasıl yerleştirileceğini belirler. Belirtilmezse seçili yazıcının teknolojisi kullanılır, o da yoksa 'FDM' varsayılır.
printer_idstringİsteğe bağlı. Varsayılan yazıcı yerine kullanılacak belirli bir yazıcının kimliği (ID).
quantitynumberİsteğe bağlı. Üretilmek istenen toplam parça adedi (Varsayılan: 1).

Üretim Adedi ve Toplu Üretim Mantığı

Sistemimiz, belirtilen 'quantity' (adet) değerine göre gelişmiş bir yerleştirme algoritması kullanır:

  • FDM Teknolojisi: Parçalar, yazıcının tabla genişliği (X ve Y) elverdiği ölçüde yan yana dizilir.
  • SLA Teknolojisi: Parçalar, reçine havuzunda X ve Y eksenlerinde yan yana konumlandırılır.
  • SLS Teknolojisi: Parçalar hem X, hem Y, hem de Z ekseninde (üst üste) konumlandırılarak toz yatağının tam kapasite kullanılması sağlanır.

Bu optimize edilmiş dizilim sayesinde, birden fazla parça tek bir operasyonda (batch) üretilebiliyorsa, ön ısıtma, soğuma veya katman değiştirme gibi sabit zaman/maliyet maliyetleri yalnızca gerekli operasyon (batch) sayısı kadar hesaplanır ve kullanıcıya çok daha gerçekçi ve ekonomik bir fiyat sunulur.

printer_config

Yazıcı yapılandırma parametreleri. Tüm alanlar isteğe bağlıdır ve sağlanmazsa varsayılan Yazıcı Profili değerlerinizi kullanacaktır.

ParametreTürAçıklama
nozzle_diameternumberFDM nozzle diameter (mm). Drives extrusion width, so it changes both print time and material use.
support_materialbooleanEnable support generation. When omitted, the profile value is used.
bed_size_xnumberBuild volume X dimension (mm)
bed_size_ynumberBuild volume Y dimension (mm)
bed_size_znumberBuild volume Z dimension (mm)
print_speednumberDefault print speed (mm/s)
max_print_speednumberMaximum print speed (mm/s)
travel_speednumberTravel speed (mm/s)
first_layer_speednumberFirst layer speed (mm/s)
layer_heightnumberLayer height (mm)
min_layer_heightnumberMinimum layer height (mm)
max_layer_heightnumberMaximum layer height (mm)
perimetersnumberNumber of perimeters/walls
top_solid_layersnumberTop solid layers count
bottom_solid_layersnumberBottom solid layers count
min_wall_countnumberMinimum wall count
max_wall_countnumberMaximum wall count
fill_densitynumberInfill density (0-100%)
infill_patternstringDolgu deseni. Varsayılan: rectilinear. Temel (rectilinear, alignedrectilinear, zigzag, crosszag, lockedzag, line, grid), Üçgen (triangles, trihexagon), Kübik (cubic, adaptivecubic, supportcubic), Bal Peteği (honeycomb, honeycomb3d, lateralhoneycomb), Gelişmiş (gyroid), Özel (monotonic, monotonicline), Alan Dolduran (hilbertcurve, archimedeanchords, octagramspiral). hilbertcurve, archimedeanchords, octagramspiral kabul edilir ancak kendilerine ait bir oluşturucuları yoktur; bunlar rectilinear olarak tanımlanır. Değerler, ayraçlar yoksayılarak büyük/küçük harf duyarsız şekilde eşleştirilir, bu nedenle tri-hexagon ve Zig Zag ifadelerinin her ikisi de çalışır; OrcaSlicer yazımı olan 3dhoneycomb de kabul edilir. lightning, quartercubic, laterallattice, crosshatch, concentric, tpmsd, tpmsfk desteklenmez ve 400 hatası döndürür.
support_overhang_anglenumberSupport overhang angle (degrees)
support_densitynumberSupport density (0-100%)
brim_enabledbooleanEnable brim generation for FDM quotes
brim_widthnumberBrim width in millimeters when brim is enabled
acceleration_printnumberPrint acceleration (mm/s²)
acceleration_travelnumberTravel acceleration (mm/s²)
acceleration_retractionnumberRetraction acceleration (mm/s²)
acceleration_outer_wallnumberOuter wall acceleration (mm/s²). 0 uses acceleration_print.
acceleration_inner_wallnumberInner wall acceleration (mm/s²). 0 uses acceleration_print.
acceleration_sparse_infillnumberSparse infill acceleration (mm/s²). 0 uses acceleration_print.
acceleration_solid_infillnumberSolid infill acceleration (mm/s²). 0 uses acceleration_print.
acceleration_top_surfacenumberTop surface acceleration (mm/s²). 0 uses acceleration_print.
acceleration_bridgenumberBridge acceleration (mm/s²). 0 uses acceleration_print.
acceleration_first_layernumberFirst layer acceleration (mm/s²). 0 uses acceleration_print.
retraction_minimum_travelnumberTravel moves shorter than this do not retract (mm). Reference default 1.
z_hop_mmnumberNozzle lift before a travel move (mm). 0 disables it. Reference default 0.4.
bed_exclude_xnumberUnusable bed edge margin on X (mm), removed from the packing area.
bed_exclude_ynumberUnusable bed edge margin on Y (mm), removed from the packing area.
jerk_printnumberPrint jerk (mm/s)
jerk_travelnumberTravel jerk (mm/s)
jerk_retractionnumberRetraction jerk (mm/s)
min_hotend_tempnumberMinimum hotend temperature (°C)
max_hotend_tempnumberMaximum hotend temperature (°C)
min_bed_tempnumberMinimum bed temperature (°C)
max_bed_tempnumberMaximum bed temperature (°C)
hourly_costnumberMachine hourly cost
SLA'ya özgü
sla_exposure_timenumberSLA: Katman başına ışıklama süresi (saniye)
sla_bottom_exposure_timenumberSLA: Alt katman ışıklama süresi (saniye)
sla_bottom_layer_countnumberSLA: Alt katman sayısı
sla_lift_distancenumberSLA: Kaldırma mesafesi (mm)
sla_lift_speednumberSLA: Kaldırma hızı (mm/dk)
sla_retract_speednumberSLA: Geri çekme hızı (mm/dk)
sla_cleaning_costnumberSLA: Baskı başına sabit temizlik maliyeti (IPA, sarf malzemeleri)
sla_pad_enabledbooleanSLA: modeli bir pad/raft üzerine yazdırın. Varsayılan olarak kapalıdır; pad reçinesi destek malzemesiyle birlikte sayılır.
sla_pad_wall_thicknessnumberSLA: mm cinsinden pad duvar kalınlığı. Takma ad: sla_pad_height.
sla_pad_wall_heightnumberSLA: mm cinsinden pad duvar yüksekliği (pad boşluğu etrafındaki yükseltilmiş kenar).
sla_pad_wall_slopenumberSLA: derece cinsinden pad duvar eğimi (45-90). Pad, bu açıyla aşağı doğru daralır.
sla_pad_brim_sizenumberSLA: mm cinsinden pad brim boyutu. Takma ad: sla_pad_expansion.
sla_pad_max_merge_distancenumberSLA: bundan daha yakın olan destek ayakları tek bir pad adasında birleştirilir (mm).
sla_support_head_front_diameternumberSLA: destek başlığı ön (uç) çapı mm cinsinden.
sla_support_head_penetrationnumberSLA: destek başlığının model yüzeyine ne kadar derin gömüldüğü (mm).
sla_support_head_widthnumberSLA: destek başlığı çubuğu uzunluğu mm cinsinden.
sla_support_pillar_diameternumberSLA: destek sütunu çapı mm cinsinden. Destek reçine hacminin büyük bir kısmını oluşturur.
sla_support_base_diameternumberSLA: destek sütunu tabanı (ayak) çapı mm cinsinden.
sla_support_base_heightnumberSLA: destek sütunu tabanı (ayak) yüksekliği mm cinsinden.
sla_support_object_elevationnumberSLA: mm cinsinden inşa tablası üzerindeki nesne yüksekliği. Ayrıca basılan katmanları da ekler, bu nedenle baskı süresini etkiler. Yalnızca destekler oluşturulduğunda uygulanır.
sla_support_critical_anglenumberSLA: Destekler yönlendirilirken kullanılan derece cinsinden köprü eğimi. support_overhang_angle ile aynı şey değildir.
sla_support_max_pillar_link_distancenumberSLA: Bu mesafeden daha uzak olan sütunlar çapraz olarak bağlanmaz (mm).
sla_support_max_bridge_lengthnumberSLA: Bir destek kafasının tablaya ulaşmak için yapabileceği en uzun yan köprü (mm).
sla_support_max_bridges_on_pillarnumberSLA: Tek bir sütunun kaç köprü kabul edebileceği.
sla_support_points_densitynumberSLA: Yüzde olarak destek noktası yoğunluğu, 100 = normal. FDM destek dolgu yüzdesi olan support_density ile aynı değer değildir.
sla_elephant_foot_compensationnumberSLA: Taban genişlemesini gidermek için ilk katmanların ne kadar içeri çekileceği. Tüm paket dahilindeki SLA yazıcılar için referans değer 0.2'dir. 0 devre dışı bırakır.
sla_elephant_foot_min_widthnumberSLA: İnce detayların silinmemesi için bu değerden daha dar olan konturlar olduğu gibi bırakılır. Referans değer 0.2.
sla_faded_layersnumberSLA: Kompanzasyonun kaç katman boyunca sıfıra doğru azalacağı. Bu, taban katman sayısı DEĞİLDİR; referans MSLA profili 8 kullanır.
SLS ÖZELLİKLERİ
sls_laser_speednumberSLS: Lazer hızı (mm/s)
sls_hatch_spacingnumberSLS: Tarama aralığı (mm)
mjf_layer_timenumberMJF: katman başına saniye. HP'nin yayınladığı üretim hızı tam olarak yatak alanı x katman kalınlığı / katman süresidir, bu nedenle bu tek sayı tüm üretim süresini belirler; XY geometrisi buna asla dahil olmaz. 4200 veri sayfası, 0,08 mm katmanda 7,55 saniye olduğunu belirtir.
mjf_layer_thicknessnumberMJF: katman kalınlığı (mm). HP, 4200/5200 serilerinde 0,08 mm ile gönderim yapmaktadır.
mjf_preheat_timeintegerMJF: üretim başlamadan önceki ön ısıtma süresi (dakika). Üretimdeki her parça tarafından paylaşılır ve orantılı olarak faturalandırılır.
mjf_cooling_timeintegerMJF: baskı sonrası soğuma süresi (dakika). Toz keki, parçalar çıkarılmadan önce soğumalıdır; tüm parçalar tarafından paylaşılır ve orantılı olarak faturalandırılır.
mjf_powernumberMJF: enerji maliyet kalemi için kullanılan ortalama makine güç tüketimi (W).
mjf_bb_multipliernumberMJF: bir parçanın ücretlendirildiği baskı hacmi (kek) payı çarpanı. 0 = parça, kek içinde kapladığı toz için ücretlendirilmez.
mjf_part_spacingnumberMJF: toz kekindeki parçalar arasındaki minimum boşluk (mm). Bir baskıya kaç parçanın sığacağını ve dolayısıyla ön ısıtma, soğuma ve tozun parça başına düşen payını belirler.
slm_laser_speednumberSLM: lazer tarama hızı (mm/s). Tedarikçinin baskı hızı formülü; katman kalınlığı x tarama hızı x hatch mesafesi x lazer sayısı şeklindedir, dolayısıyla bu dört alan tarama süresini birlikte belirler.
slm_hatch_spacingnumberSLM: bitişik tarama çizgileri arasındaki mesafe (mm).
slm_layer_thicknessnumberSLM: katman kalınlığı (mm). Metal toz yatağı makineleri genellikle 0,02-0,06 mm aralığında çalışır.
slm_laser_countintegerSLM: lazer sayısı. Tıpkı üreticinin üretim hızı formülünde olduğu gibi, tüm tarama teriminin bir bölenidir. Yeniden kaplama süresini KISALTMAZ.
slm_contour_countintegerSLM: her dilim ana hattı etrafındaki kontur (sınır) geçiş sayısı. 0 = kontur geçişi yok.
slm_contour_speednumberSLM: kontur geçiş hızı (mm/s); genellikle dolgu hızından daha yavaştır.
slm_jump_speednumberSLM: tarama vektörleri arasındaki lazer yeniden konumlandırma (atlama) hızı (mm/s).
slm_recoat_timenumberSLM: sericinin katman başına ihtiyaç duyduğu saniye. Üreticinin üretim hızı rakamı yeniden kaplamayı HARİÇ TUTAR, bu nedenle SLS’nin aksine bu değer yayınlanmış bir üretim hızından türetilemez; bunu makine üzerinde ölçün.
slm_preheat_timeintegerSLM: yapı odası ön ısıtma ve inert gaz tahliye süresi (dakika), plakadaki her parça için ortaktır.
slm_cooldown_timeintegerSLM: üretim sonrası soğuma süresi (dakika), plakadaki her parça için ortaktır.
slm_powernumberSLM: ortalama makine güç tüketimi (W), enerji maliyeti satırı için kullanılır.
slm_part_spacingnumberSLM: yapı plakası üzerindeki parçalar arasındaki minimum boşluk (mm). SLM parçaları Z ekseninde üst üste istiflenemez - her parça plakaya kaynaklanmıştır - bu nedenle bu değer, plaka yerleşimini ve üretim başına parça sayısını doğrudan etkiler.
slm_build_plate_costnumberSLM: çalışma başına yapı plakası maliyeti, o çalışmadaki parçalar arasında paylaştırılır. 0 = ücretlendirilmez.
slm_plate_removal_costnumberSLM: parçaların plakadan ayrılma maliyeti (tel erozyon veya şerit testere) çalışma başına, o çalışmadaki parçalar arasında paylaştırılır. 0 = ücretlendirilmez.
slm_stress_relief_costnumberSLM: Çalışma başına gerilim giderme fırın döngüsü maliyeti, bu çalışmadaki parçalar arasında paylaştırılır. 0 = ücretlendirilmez.
slm_inert_gas_flownumberSLM: Üretim sırasında argon veya azot tüketimi (litre/dakika). 0 = ücretlendirilmez.
slm_inert_gas_cost_per_liternumberSLM: Teklif para birimi cinsinden bir litre inert gaz fiyatı. 0 = ücretlendirilmez.
slm_support_removal_cost_per_cm3numberSLM: Destek başına cm3 başına manuel destek temizleme maliyeti. Metal destekler yük ve ısı taşıyıcıdır; soyulmaz, kesilerek alınır. 0 = ücretlendirilmez.
sls_layer_thicknessnumberSLS: Katman kalınlığı (mm)
sls_layer_recoat_timenumberSLS: Toz serme süresi (saniye)
sls_preheat_timenumberSLS: Ön ısıtma süresi (dk)
sls_cooling_timenumberSLS: Soğuma süresi (dk)
sla_light_off_delaynumberSLA: Light-off delay for each layer (seconds).
sla_transition_layer_countnumberSLA: Number of transition layers.
sla_drain_holesarraySLA: Drainage holes configuration to prevent suction cups.
sls_bb_multipliernumberSLS: bir parçanın kapladığı baskı yuvasının gram eşdeğeri başına makine alanı ek ücreti. Yuva, parçanın minimum hacimli kutusu ile toz boşluklarındaki payının ve kullanılamayan hazne kenarlarının toplamıdır, bu nedenle model döndürülmüş olarak gelse bile değişmez. 0, ek ücreti devre dışı bırakır.
sls_contour_countnumberSLS: lazerin her dilim ana hattı etrafında izlediği kontur (sınır) geçiş sayısı. 0, kontur geçişini devre dışı bırakır.
sls_contour_speednumberSLS: mm/s cinsinden kontur tarama hızı. 0, konturun sls_laser_speed hızında tarandığı anlamına gelir.
sls_jump_speednumberSLS: tarama vektörleri arasındaki sinterleme yapmayan yeniden konumlandırma hareketleri için mm/s cinsinden galvo sıçrama hızı. 0, üst sınır olan sls_laser_speed hızında sıçramalar yapar.
sls_part_spacingnumberSLS: bir parçanın etrafındaki mm cinsinden minimum toz boşluğu; hem parçalar arasına hem de hazne duvarına uygulanır. Bir baskıya kaç parçanın sığacağını belirler, dolayısıyla hem makine alanı payını hem de sabit maliyet paylaşımını etkiler. 0, motorun varsayılan değeri olan 3 mm’yi kullanır.
max_volumetric_flownumberMaximum volumetric flow rate in mm³/s.

material_config

Malzeme yapılandırma parametreleri. Tüm alanlar isteğe bağlıdır ve sağlanmazsa varsayılan Malzeme Profili değerlerinizi kullanacaktır.

Malzeme Profili Entegrasyonu: filament_type parametresi Dashboard Malzeme Profilinizden bir malzeme adıyla eşleşmelidir. Bir filament_type (örn. "PLA", "ABS", "PETG") belirttiğinizde, API otomatik olarak o Malzeme Profilinden tüm özellikleri yükler, yoğunluk, sıcaklıklar, geri çekme ayarları ve fiyatlandırma dahil.

Fiyatlandırma doğruluğu: malzeme maliyeti price_per_gram üzerinden hesaplanır. Malzeme Profilinde price_per_kg veya price_per_gram değerlerinden yalnız birini girmeniz yeterlidir — diğeri sizin için eşitlenir. Fiyatı istek bazında price_per_gram veya price_per_kg alanlarını material_config içinde göndererek yine de geçersiz kılabilirsiniz.

Örnek: Dashboard'unuzda price_per_kg: 20.0 ve price_per_gram: 0.02 ile bir "PLA" malzeme profiliniz varsa, isteğinizde sadece {"filament_type": "PLA"} gönderebilirsiniz ve tüm fiyatlandırma otomatik olarak hesaplanacaktır.

ParametreTürAçıklama
filament_typestringFilament type (PLA, ABS, PETG, etc.)
colorstringRenk adı (ör. 'White', 'Black', '#FFFFFF'). Not: hacim tabanlı teknolojilerde (SLA, SLS, SLM, MJF) renk yalnızca 'post_processing' değeri 'painting' veya 'painted' olduğunda uygulanır.
densitynumberMaterial density (g/cm³)
diameternumberFilament diameter (mm)
filament_flow_rationumberFDM akış oranı çarpanı. 1.0, %100 akış anlamına gelir. Talep edilen değerler seçilen kullanıcı Malzeme Profili'nin üzerine yazar; değer eksikse, varsayılan 1.0 değerinden önce global profil değeri kullanılır.
powder_bulk_densitynumberSLS: Bulk density of loose powder in g/cm³. Used for reusable powder and refresh calculations.
temperaturenumberPrint temperature (°C)
print_temp_minnumberMinimum print temperature (°C)
print_temp_maxnumberMaximum print temperature (°C)
bed_temperaturenumberBed temperature (°C)
bed_temp_minnumberMinimum bed temperature (°C)
bed_temp_maxnumberMaximum bed temperature (°C)
fan_speednumberFan speed (0-100%)
min_fan_speednumberMinimum fan speed (0-100%)
retraction_distancenumberRetraction distance (mm)
retraction_speednumberRetraction speed (mm/s)
slow_down_min_speednumberLower speed bound for layer cooling (mm/s). Reference default 20.
retraction_minimum_travelnumberOverrides the printer value for this material (mm).
z_hop_mmnumberOverrides the printer value for this material (mm).
price_per_kgnumberPrice per kilogram
price_per_gramnumberPrice per gram
support_cost_multipliernumberSupport material cost multiplier
sls_refresh_factornumberSLS powder refresh rate ratio (e.g. 0.3 = 30% fresh powder).
mjf_refresh_factornumberMJF toz yenileme oranı (örneğin 0,2 = %20 taze toz). HP, aynı polimer için SLS oranından farklı şekilde ölçülen, toz başına ayrı bir oran yayınlar. sls_refresh_factor değerine dönmek için boş bırakın.
mjf_fusing_agent_ml_per_cm3numberMJF: Eritilmiş parça hacminin cm3 başına tüketilen eritme ajanı miktarı (mL/cm3). Atölye ölçümüdür; 0, ajan maliyetini teklifin dışında bırakır.
mjf_detail_agent_ml_per_cm2numberMJF: Kaynaştırılmış sınır alanının cm2’si başına tüketilen detaylandırma ajanı (mL/cm2). Atölye ölçümüdür; 0 değeri bunu hariç tutar.
mjf_agent_cost_per_liternumberMJF: Teklif para birimi cinsinden litre başına ajan fiyatı. 0 değeri ajan maliyet satırını devre dışı bırakır.
metal_powder_loss_factornumberSLM: Parça artı destek hacminin bir oranı olarak eleme ve taşıma kaybı (0,05 = %5). Kullanılmayan metal toz elekten geçirilir ve yeniden kullanılır, bu nedenle — SLS ve MJF’nin aksine — çevreleyen toz faturalandırılmaz.
max_volumetric_flownumberMaterial specific volumetric flow limit in mm³/s.
min_layer_timenumberMinimum layer time in seconds for cooling.

quote_config

Fiyat teklifi fiyatlandırma yapılandırma parametreleri. Tüm alanlar isteğe bağlıdır ve sağlanmazsa varsayılan Global Ayarlar değerlerinizi kullanacaktır. Para birimi varsayılan olarak dashboard tercihinizden (örn. 'USD', 'TRY', 'EUR') alınır.

ParametreTürAçıklama
currencystringCurrency code, one of TRY, USD, EUR, GBP, JPY, CNY, RUB, CAD, AUD, CHF, SEK, NOK, DKK, SGD, HKD, NZD, MXN, BRL, INR; case does not matter. Defaults to your dashboard preference.
tax_ratenumberTax rate percentage (0-100)
fixed_feenumberFixed fee per quote
minimum_pricenumberAsgari teklif tutarı: teklifin tamamı için vergi öncesi taban. Daha ucuz teklif bu tutara yükseltilir, daha pahalısı değişmez. Varsayılanı teklifin teknolojisi için girdiğiniz asgari tutardır; 0 = yok.
energy_cost_per_kwhnumberEnergy cost per kWh
hollowingstringSLA, SLS ve MJF'e özgü: 'solid', '2mm' veya '3mm'. SLA'da ayarlarınızda SLA boşaltma açıksa varsayılan '2mm' olur; SLS ve MJF için de kendi ayarlarıyla aynısı geçerlidir. FDM'de yok sayılır (boşluk fill_density ile belirlenir), SLM'de de yok sayılır (kapalı bir boşluk, tahliye edilemeyecek tozu hapseder). SLS ve MJF parçaları tahliye deliği OLMADAN boşaltılır: sinterlenmemiş toz içeride kalır, katı yoğunluk yerine toz yatağı yoğunluğuyla faturalanır ve geri kazanılamaz.
post_processingstringHacim tabanlı teknolojiler (SLA, SLS, SLM, MJF): 'standard', 'sanding', 'painting' veya 'painted' (varsayılan: 'standard'). Değer teklife kaydedilir ve Global Ayarlar'daki teknoloji başına son işlem ücretlerinden fiyatlandırılır. SLM ücretleri bandın tamamında daha yüksektir, çünkü 'standard' bile parçanın yapı plakasından kesilmesini ve yüzey temizliğini kapsar.
sla_post_processing_fee_standardnumberSLA standard post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sla_post_processing_fee_sandingnumberSLA sanding post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sla_post_processing_fee_paintingnumberSLA painting post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sla_post_processing_fee_paintednumberSLA painted post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sls_post_processing_fee_standardnumberSLS standard post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sls_post_processing_fee_sandingnumberSLS sanding post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sls_post_processing_fee_paintingnumberSLS painting post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sls_post_processing_fee_paintednumberSLS painted post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
mjf_post_processing_fee_standardnumberMJF: post_processing 'standard' olduğunda uygulanan ücret.
mjf_post_processing_fee_sandingnumberMJF: post_processing 'sanding' olduğunda uygulanan ücret.
mjf_post_processing_fee_paintingnumberMJF: post_processing 'painting' olduğunda uygulanan ücret.
mjf_post_processing_fee_paintednumberMJF: post_processing 'painted' olduğunda uygulanan ücret.
slm_post_processing_fee_standardnumberSLM: post_processing 'standard' olduğunda uygulanan ücret.
slm_post_processing_fee_sandingnumberSLM: post_processing 'sanding' olduğunda uygulanan ücret.
slm_post_processing_fee_paintingnumberSLM: post_processing 'painting' olduğunda uygulanan ücret.
slm_post_processing_fee_paintednumberSLM: post_processing 'painted' olduğunda uygulanan ücret.
mjf_min_build_fillnumberMJF: bir siparişin ödediği minimum baskı payı. 0 = baskı diğer siparişlerle paylaşılır, 1 = sipariş tüm baskı ücretini öder.
enable_batch_systembooleanEnable/disable batch calculation system (default: true)
sls_min_build_fillnumberSLS: 0 ile 1 arasında bir oran olarak minimum baskı doluluğu. Sipariş, bir baskı oturumunun en az bu payını doldurmuş gibi faturalandırılır — 0, baskıyı diğer işlerle paylaşır; 1, tüm baskıyı faturalandırır. enable_batch_system false olduğunda yoksayılır.
material_wastage_factornumberFactor for calculating material wastage (e.g. 1.10 for 10% wastage).
volume_discount_tiersarrayQuantity discount tiers, e.g. [{"minVolume": 100, "discount": 5}]. Falls back to your Global Settings tiers.

İpucu: Fiyat teklifleri otomatik olarak hesabınıza kaydedilir. Bunlara fiyat teklifi geçmişi API uç noktaları aracılığıyla istediğiniz zaman erişebilirsiniz.

6. Yazıcı ve Fiyat Teklifi Profilleri

Doğru fiyat teklifleri almak için yazıcı ayarlarını ve fiyatlandırmayı yapılandırın. API isteklerinde parametre belirtmediğinizde otomatik olarak kullanılacak olan varsayılan profillerinizi Dashboard Slice Profiles bölümünde yönetebilirsiniz.

Profil Türleri

  • Yazıcı Profili - Gerçek yazıcınıza uyacak şekilde yazıcı ayarlarınızı (yatak boyutu, nozul çapı, baskı hızı, katman yüksekliği, ivme, jerk, sıcaklıklar, vb.) yapılandırın. Bunu Dashboard'da varsayılan profil olarak ayarlayın ve belirli parametreleri geçersiz kılmadığınız sürece tüm fiyat teklifi istekleri için kullanılacaktır.
  • Malzeme Profili - Kullandığınız her malzeme için malzeme özelliklerini (filament türü, yoğunluk, çap, sıcaklıklar, fan hızı, geri çekme ayarları, fiyatlandırma) ayarlayın. API, istekte belirttiğiniz filament_type ile eşleşen malzeme profilini otomatik olarak kullanacaktır.
  • Global Ayarlar - Vergi oranı, sabit ücretler, enerji maliyetleri ve varsayılan para birimi gibi global fiyat teklifi ayarlarını yapılandırın. Bu ayarlar, istekte geçersiz kılınmadığı sürece tüm fiyat tekliflerine uygulanır.

En İyi Uygulama: Dashboard Slice Profiles bölümünde varsayılan profillerinizi ayarlayın. Bu şekilde, tüm parametreleri belirtmeden basit fiyat teklifi istekleri yapabilirsiniz ve API otomatik olarak yapılandırılmış varsayılanlarınızı kullanacaktır. Gerektiğinde herhangi bir parametreyi istek başına hala geçersiz kılabilirsiniz.

Profil Birleştirmenin Nasıl Çalıştığı

Fiyat teklifi isteği yaptığınızda, API istek parametrelerinizi Dashboard profillerinizle şu öncelikle birleştirir:

  1. İstek Parametreleri - API isteğinde açıkça belirttiğiniz değerler en yüksek önceliğe sahiptir.
  2. Kullanıcı Profili - Eğer varsayılan olarak ayarlanmış kullanıcıya özel bir profiliniz varsa, sonraki olarak kullanılır.
  3. Global Profil - Eğer kullanıcı profili yoksa, sistem global varsayılanlara döner.

Bu, ihtiyacınız olan parametreleri (örn. sadece layer_height veya fill_density) geçersiz kılarken, Dashboard profillerinizden diğer tüm ayarları koruyabileceğiniz anlamına gelir.

7. Web Kancaları

Hesabınızda bir olay gerçekleştiğinde gerçek zamanlı bildirimler alın:

  • POST /v2/webhooks - Yeni bir web kancası uç noktası oluşturun
  • GET /v2/webhooks - Tüm web kancalarınızı listeleyin
  • GET /v2/webhooks/{webhook_id} - Web kancası ayrıntılarını ve teslimat istatistiklerini alın
  • PUT /v2/webhooks/{webhook_id} - Web kancası ayarlarını güncelleyin
  • DELETE /v2/webhooks/{webhook_id} - Bir web kancasını kaldırın
  • POST /v2/webhooks/{webhook_id}/deliveries/{delivery_id}/resend - Geçmiş bir gönderimi yeniden yollayın; örneğin uç noktanızı düzelttikten sonra

Desteklenen olaylar şunları içerir: quote.completed, quote.failed, file.uploaded, file.deleted, job.status_changed, widget.added_to_cart, usage.alert. Web kancaları, güvenlik doğrulaması için HMAC-SHA256 imzaları içerir.

Webhook referansı: yük yapısı, imza doğrulama, yeniden denemeler ve yeniden teslimat

8. Analitik ve Raporlama

API kullanımınız ve fiyat teklifi istatistikleriniz hakkında bilgi edinin:

  • GET /v2/analytics/quotes - Toplam fiyat teklifleri, ortalama fiyatlar ve malzeme kullanım trendleri dahil kapsamlı fiyat teklifi istatistiklerini edinin.
  • GET /v2/analytics/popular - En popüler malzemelerinizi ve yazıcı yapılandırmalarınızı görüntüleyin.
  • GET /v2/analytics/cost-trends - Maliyet trendlerini zaman içinde analiz edin (günlük, haftalık veya aylık gruplama).
  • GET /v2/analytics/export - Fiyat tekliflerinizi ve kullanım verilerinizi CSV veya JSON olarak dışa aktarın.

9. Katalog ve Stok

Hesabın kendi yazıcılarını, malzemelerini, renklerini, renk stoğunu, fiyatlandırmasını ve teknolojilerini sunucu token'ıyla yönetin. Widget aynı kataloğu okur, yani değişiklik teklif formuna hemen yansır. Widget kapsamlı token'lar reddedilir ve bu çağrılar aylık istek kotasından düşmez:

  • GET /v2/store/catalog - Hesabın sunduğu her şey; teknoloji başına hazırlık durumu ve azalan renklerle
  • GET /v2/store/catalog/schema - Paneldeki yazıcı, malzeme ve fiyatlandırma formları; sınırlar, birimler ve istenen dildeki yardım metinleriyle
  • POST /v2/store/catalog/adopt - Global yazıcı ve malzemeleri, seçtiğiniz renkler, fiyat ve başlangıç stoğuyla hesaba kopyalayın
  • POST /v2/store/catalog/materials - İsterseniz bir global malzemeden başlayarak yeni malzeme oluşturun
  • GET · PATCH · DELETE /v2/store/catalog/materials/{id} - Tek bir malzemeyi stok ayarlarıyla birlikte okuyun, değiştirin ya da silin
  • PUT /v2/store/catalog/materials/{id}/colors - Bir malzemenin renk listesini değiştirin; mevcut renklerin stoğu korunur
  • GET · PATCH · DELETE /v2/store/catalog/printers/{id} - Tek bir yazıcıyı okuyun, değiştirin ya da silin
  • GET · PATCH · DELETE /v2/store/catalog/pricing - Fiyatlandırma ayarlarını okuyun, değiştirin ya da sıfırlayın; para birimini değiştirmek hesabın para birimini değiştirir, tutarlar çevrilmez
  • GET · PUT /v2/store/catalog/technologies - Planın hangi teknolojilere izin verdiği ve hangilerinin açık olduğu
  • GET · POST /v2/store/stock/movements - Stok girişi, sayım ya da fire kaydedin ve stok geçmişini listeleyin
  • POST /v2/store/stock/orders - Ödenmiş bir siparişin malzemesini düşün, geri ekleyin ya da yeterli mi diye bakın; teklif başına en fazla bir kez

PATCH gövdesi values ve updated_at taşır. values, katalog listesindeki snake_case alan adlarını kullanır (formda olmayan ad 400 ile reddedilir); profil siz okuduktan sonra değiştiyse çağrı error_key stale ile 409 döner.

10. Hız Sınırlama ve Kotlar

Quote3D, adil kullanım ve sistem kararlılığını sağlamak için hız sınırlaması kullanır:

  • Hız limitleri API token başına uygulanır ve endpoint'e göre değişir
  • Hız limiti bilgileri yanıt başlıklarında bulunur: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-RateLimit-Window
  • Hız sınırlandığında, Retry-After başlığı ile birlikte 429 Too Many Requests yanıtı alırsınız.
  • Planınız her fatura döneminde sıfırlanan bir teklif hakkı ve hiç sıfırlanmayan, yalnız dosya silinince boşalan bir depolama alanı belirler.
  • Limitler dağıtım başına yapılandırılabilir, bu yüzden değerleri koda gömmek yerine güncel değerleri okuyun. Hem yukarıdaki yanıt başlıkları hem de bu uç nokta bunları raporlar: GET /v2/quota

En İyi Uygulama: Hız limiti hatalarını işlerken API'yi bunaltmaktan kaçınmak için üstel geri çekme uygulayın.

11. Yanıtlar ve Hatalar

Başarılı yanıtların iki biçimi var. Teklif, iş, kayıtlı teklif ayrıntısı, webhook, analitik, kullanım, kota ve config çağrıları yükü success: true ile sarar ve sonucu data altına koyar. Dosya, yükleme kimliği, kullanıcı, yüklemeler, teklif listesi, basılabilirlik ve Katalog ve Stok çağrıları alanlarını en üst düzeyde döndürür. Her çağrının tam şeması API başvurusundadır. Dosya indirmeleri ve CSV dışa aktarımları ham dosya gövdesini döndürür.

{
  "success": true,
  "data": { "...": "endpoint-specific payload" }
}

Sayfalama ve Sıralama

/v2/quotes ve /v2/user/uploads gibi liste uç noktaları limit ve offset sorgu parametreleriyle sayfalanır (varsayılan 50 sonuç, en fazla 100). Sonuçların yanında total, limit, offset, has_more, page ve total_pages barındıran bir pagination nesnesi döndürürler; bu yüzden listenin sonunu kendiniz hesaplamak yerine has_more değerini tercih edin. Sıralama, field:direction biçiminde tek ve tekrarlanabilir bir parametre kullanır, örneğin ?sort=created_at:desc&sort=total_price:asc; yüklemeler varsayılan olarak en yeniden başlar.

Hata Yanıtları

Her hata aynı biçimdedir: parametreyi ya da alanı adıyla gösteren bir detail listesi (loc, msg, code), AUTH_001 gibi bir error_code, bir error_summary ve gerektiğinde recovery_suggestions ile documentation_url. Değişebilecek metne değil, HTTP durum koduna ve error_code'a göre dallanın.

DurumAnlamı
400İstek gövdesi veya bir sorgu parametresi geçersiz — hatalı biçimlendirilmiş bir alan, desteklenmeyen bir dosya biçimi ya da seçili yazıcıya sığmayan bir model.
401API token'ı eksik, hatalı biçimlendirilmiş, süresi dolmuş veya iptal edilmiş.
403Token geçerli ama bu çağrıya izni yok: bir kapsam kısıtlaması, token'ın listesinde olmayan bir origin ya da IP adresi (AUTH_004) veya tükenmiş bir plan hakkı (RATE_002, X-Quota-* başlıklarıyla).
404İstenen dosya, teklif, iş veya webhook mevcut değil ya da hesabınıza ait değil.
429Bir hız limiti aşıldı. Retry-After başlığını okuyun ve yeniden denemeden önce geri çekilin.
500Beklenmeyen bir sunucu tarafı hatası. Geri çekilerek yeniden denemek güvenlidir; sürerse zaman damgasıyla birlikte desteğe başvurun.

Asenkron teklifler farklıdır: işin kuyruğa alınması 202 ile başarılı olur ve sonrasında başarısız olan bir hesaplama, HTTP hatası olarak değil, iş uç noktasında bir hata mesajıyla failed durumu olarak ortaya çıkar. Yalnızca başlatırken aldığınız durum koduna değil, her zaman iş durumuna bakın.

12. RESTful, Sürümlenmiş API

  • Tüm endpoint'ler versiyonludur (örn. /v2/)
  • Standart HTTP yöntemleri kullanılır: GET, POST, PUT, DELETE
  • Kendi araçlarınıza aktarabileceğiniz bir OpenAPI 3.0.3 şemasıyla tanımlanmıştır
  • Kırıcı değişiklikler ve eklemeler şurada kayıt altına alınır: API değişiklik günlüğü