Quote3D Dokümantasyonuna Hoş Geldiniz! ⏳

Temel Kavramlar

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

Tüm API uç noktaları, Quote3D API token'ınızı kullanarak kimlik doğrulaması gerektirir. Harici çağrılar için https://api.quote3d.com/v2 temel rotasını kullanın. Bunu ya Authorization: Bearer <token> ya da X-API-Token olarak gönderin. Token'ları Quote3D panelinizden oluşturun ve gizli tutun.

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 alın
  • 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 Fiyat teklifleri ve depolama için mevcut kota limitlerinizi ve kullanımınızı alın
  • GET /v2/usage Endpoint istatistikleri, malzeme kullanımı ve zamana dayalı trendler dahil detaylı kullanım analitiklerini alın

3. Dosya Yönetimi

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

  • Yeni bir dosya yüklemek için geçici bir upload_id almak için genel yükleme rotasını kullanın.: 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.
  • Bu rota kimlik doğrulaması gerektirmez. Dosyaları doğrudan depolama alanımıza yüklemek için istemci tarafınızda 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.

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

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:

  • 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}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.
  • 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.: POST /v2/file/quote/{file_id}/asyncAlternatif asenkron fiyat teklifi endpoint'i. Durumunu kontrol etmek ve tamamlanan sonucu almak için kullanabileceğiniz bir iş kimliği döndürür.
  • Asenkron fiyat teklifi işinin durumunu kontrol edin. İlerleme yüzdesi ve tamamlanma durumu 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.
  • Sayfalama desteği ile tüm fiyat teklifi geçmişinizi alın: GET /v2/quotesSayfalama desteği ile tüm fiyat teklifi geçmişinizi alın
  • Belirli bir fiyat teklifi hakkında detaylı bilgi alın: GET /v2/quotes/{quote_id}Belirli bir fiyat teklifi hakkında detaylı bilgi alın
  • Geçmişinizden bir fiyat teklifini kaldırı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.

Kök Parametreler

ParametreTürAçıklama
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
bed_size_xnumberBuild volume X dimension (mm)
bed_size_ynumberBuild volume Y dimension (mm)
bed_size_znumberBuild volume Z dimension (mm)
nozzle_diameternumberNozzle diameter (mm)
nozzle_countnumberNumber of nozzles
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_patternstringInfill pattern. Options: rectilinear, alignedrectilinear, zigzag, crosszag, lockedzag, line, grid, triangles, trihexagon, cubic, adaptivecubic, supportcubic, honeycomb, honeycomb3d, lateralhoneycomb, gyroid, monotonic, monotonicline, lightning. Default: rectilinear
support_materialbooleanEnable support material
support_overhang_anglenumberSupport overhang angle (degrees)
support_densitynumberSupport density (0-100%)
acceleration_printnumberPrint acceleration (mm/s²)
acceleration_travelnumberTravel acceleration (mm/s²)
acceleration_retractionnumberRetraction acceleration (mm/s²)
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/s)
sla_retract_speednumberSLA: Geri çekme hızı (mm/s)
sla_cleaning_costnumberSLA: Baskı başına sabit temizlik maliyeti (IPA, sarf malzemeleri)
SLS ÖZELLİKLERİ
sls_laser_speednumberSLS: Lazer hızı (mm/s)
sls_hatch_spacingnumberSLS: Tarama aralığı (mm)
sls_layer_thicknessnumberSLS: Katman kalınlığı (mm)
sls_layer_recoat_timenumberSLS: Toz serme süresi (saniye)
sls_preheat_timenumberSLS: Ön ısıtma süresi (saniye)
sls_cooling_timenumberSLS: Soğuma süresi (saniye)
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 Bounding Box cost multiplier.
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: Doğru maliyet hesaplamaları için, Malzeme Profilinizde hem price_per_kg hem de price_per_gram değerlerini ayarladığınızdan emin olun. API, baskıda kullanılan gerçek filament ağırlığına göre malzeme maliyetlerini hesaplamak için bu değerleri kullanır. Profilinizde bu değerler ayarlanmamışsa, API isteğinde bunları 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ı (örn. 'Beyaz', 'Siyah', '#FFFFFF'). Not: SLA/SLS teknolojileri için renk, yalnızca 'post_processing' değeri 'painted' olarak ayarlandığında uygulanır.
densitynumberMaterial density (g/cm³)
diameternumberFilament diameter (mm)
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)
price_per_kgnumberPrice per kilogram
price_per_gramnumberPrice per gram
support_cost_multipliernumberSupport material cost multiplier
sls_refresh_factornumberSLS Powder Refresh cost factor (e.g. 1.2).
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 (USD, TRY, EUR, GBP, JPY, CNY, RUB). Defaults to your dashboard preference.
tax_ratenumberTax rate percentage (0-100)
fixed_feenumberFixed fee per quote
energy_cost_per_kwhnumberEnergy cost per kWh
hollowingstringSLA/Reçineye özel: 'solid' (tam dolu), '2mm' veya '3mm' (Varsayılan: 'solid')
post_processingstringSLA/SLS'ye özel: 'standard', 'sanding', 'painting' veya 'painted' (Varsayılan: 'standard')
enable_batch_systembooleanEnable/disable batch calculation system (default: true)
material_wastage_factornumberFactor for calculating material wastage (e.g. 1.10 for 10% wastage).

İ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

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

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. 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
  • Hız sınırlandığında, Retry-After başlığı ile birlikte 429 Too Many Requests yanıtı alırsınız.
  • Aylık fiyat teklifi ve depolama kotası abonelik planınıza göre belirlenir.

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

10. RESTful, Versiyonlu API

  • Tüm endpoint'ler versiyonludur (örn. /v2/)
  • Standart HTTP yöntemleri kullanılır:
  • Şema ve dokümantasyon için OpenAPI 3.1.0 standartlarını takip eder
  • API değişiklik günlüğü şu adreste mevcuttur: