Willkommen zur Quote3D Dokumentation! ⏳

Grundlegende Konzepte

Diese Seite führt in die grundlegenden Ideen und Muster ein, die die Plattform antreiben. Ein Verständnis dieser Konzepte hilft Ihnen, das Beste aus der API herauszuholen und robuste Integrationen für 3D-Druck-Workflows zu erstellen.

API-Basisroute

Senden Sie Anfragen für externe API-Aufrufe direkt an https://api.quote3d.com/v2/... (zum Beispiel GET https://api.quote3d.com/v2/user).

Legen Sie in Ihrer Software https://api.quote3d.com als API-Host/Basis-URL fest und rufen Sie v2-Pfade wie /v2/user, /v2/file und /v2/quotes auf.

Authentifizierung & Sicherheit

Alle API-Endpunkte erfordern eine Authentifizierung mithilfe Ihres Quote3D-API-Tokens. Verwenden Sie für externe Aufrufe die Basisroute https://api.quote3d.com/v2. Senden Sie diesen entweder als Authorization: Bearer <token> oder X-API-Token. Generieren Sie Tokens in Ihrem Quote3D-Dashboard und halten Sie diese geheim.

Hinweis: Bewahren Sie Ihre API-Token sicher auf. Geben Sie sie niemals öffentlich preis oder committen Sie sie in die Versionskontrolle.

Kontoverwaltung

Verwalten Sie Ihr Konto, Uploads und Nutzungsstatistiken über dedizierte Endpunkte:

  • GET /v2/user Rufen Sie Ihre Kontodetails ab
  • GET /v2/user/uploads Zeigen Sie alle in Ihr Konto hochgeladenen Dateien an. Diese werden vom neuesten zum ältesten sortiert.
  • GET /v2/quota Erhalten Sie Ihre aktuellen Quotenbegrenzungen und die Nutzung für Angebote und Speicherplatz.
  • GET /v2/usage Erhalten Sie detaillierte Nutzungsanalysen, einschließlich Endpunktstatistiken, Materialverbrauch und zeitbasierten Trends

3. Dateiverwaltung

Laden Sie Ihre 3D-Modelldateien hoch, laden Sie sie herunter und verwalten Sie sie (STL, 3MF, OBJ-Formate):

  • Erhalten Sie eine temporäre upload_id, um eine neue Datei über den öffentlichen Upload-Pfad hochzuladen.: GET /v2/file/upload-id - Erhalten Sie eine temporäre upload_id, um eine neue Datei über den öffentlichen Upload-Pfad hochzuladen.
  • Dieser Pfad erfordert KEINE Authentifizierung. Verwenden Sie diesen auf Ihrer Client-Seite, um Dateien direkt in unseren Speicher hochzuladen.: POST /v2/file/public/{upload_id} - Dieser Pfad erfordert KEINE Authentifizierung. Verwenden Sie diesen auf Ihrer Client-Seite, um Dateien direkt in unseren Speicher hochzuladen.

    Die Verwendung des öffentlichen Upload-Pfads ermöglicht es Ihnen, das Routing großer Dateien über Ihren Backend-Server zu vermeiden. Dies verhindert die Offenlegung Ihres API-Tokens und reduziert die Serverlast.

  • Laden Sie eine Datei von Ihrer Serverseite hoch (erfordert Authentifizierung, verwenden Sie diese, wenn Sie von Ihrem Backend hochladen möchten): POST /v2/fileLaden Sie eine Datei von Ihrer Serverseite hoch (erfordert Authentifizierung, verwenden Sie diese, wenn Sie von Ihrem Backend hochladen möchten)
  • Laden Sie eine Datei unter Verwendung ihrer file_id herunter: GET /v2/file/{file_id}Laden Sie eine Datei unter Verwendung ihrer file_id herunter
  • Löschen Sie eine Datei, die Sie nicht mehr benötigen: DELETE /v2/file/{file_id}Löschen Sie eine Datei, die Sie nicht mehr benötigen

4. Teileinformationen & Technische Analyse

Überprüfen Sie, ob Ihre Modelle druckbar sind, erhalten Sie Teilabmessungen und erweiterte technische Metriken:

  • POST /v2/printability/{file_id} Sofort-Analyse – Überprüfen Sie Maße, Volumen, Oberfläche und geometrische Integrität (offene Kanten/Non-Manifold) vor der Angebotserstellung.

Quote3D geht über einfache Maßkontrollen hinaus; es analysiert die Manifold-Integrität des Modells und bewertet das für den 3D-Druck kritische Haftungsrisiko. Diese Metriken sind sowohl in Printability- als auch in Quote-Antworten enthalten.

5. Angebotsoperationen

Erstellen Sie sofortige Angebote für Ihre 3D-Drucke und verwalten Sie den Angebotsverlauf:

  • Starten Sie die asynchrone Angebotsberechnung für ein 3D-Modell. Es wird eine Job-ID zurückgegeben; verwenden Sie den Jobs-Endpunkt, um das vollständige Ergebnis abzurufen.: POST /v2/file/quote/{file_id}Starten Sie die asynchrone Angebotsberechnung für ein 3D-Modell. Es wird eine Job-ID zurückgegeben; verwenden Sie den Jobs-Endpunkt, um das vollständige Ergebnis abzurufen.
  • Alternativer asynchroner Angebotsendpunkt. Gibt eine Job-ID zurück, die Sie verwenden können, um den Status zu überprüfen und das vollständige Ergebnis abzurufen.: POST /v2/file/quote/{file_id}/asyncAlternativer asynchroner Angebotsendpunkt. Gibt eine Job-ID zurück, die Sie verwenden können, um den Status zu überprüfen und das vollständige Ergebnis abzurufen.
  • Überprüfen Sie den Status eines asynchronen Angebotsauftrags. Gibt den Fortschritt in Prozent und den Abschlussstatus zurück.: GET /v2/jobs/{job_id}Überprüfen Sie den Status eines asynchronen Angebotsauftrags. Gibt den Fortschritt in Prozent und den Abschlussstatus zurück.
  • Rufen Sie Ihren gesamten Angebotsverlauf mit Unterstützung für Paginierung ab.: GET /v2/quotesRufen Sie Ihren gesamten Angebotsverlauf mit Unterstützung für Paginierung ab.
  • Rufen Sie detaillierte Informationen zu einem bestimmten Angebot ab.: GET /v2/quotes/{quote_id}Rufen Sie detaillierte Informationen zu einem bestimmten Angebot ab.
  • Entfernen Sie ein Angebot aus Ihrem Verlauf: DELETE /v2/quotes/{quote_id}Entfernen Sie ein Angebot aus Ihrem Verlauf

Asynchroner Workflow: POST /v2/file/quote/{file_id} gibt zuerst eine Job-ID zurück. Verwenden Sie GET /v2/jobs/{job_id} für das kompakte, abgeschlossene Ergebnis und GET /v2/quotes/{quote_id} für die gespeicherte, detaillierte Angebots-Payload, wenn verfügbar.

Anfrageparameter für Angebote

Beim Erstellen eines Angebots können Sie eine benutzerdefinierte Konfiguration im Anfragekörper angeben. Alle Parameter, die Sie nicht angeben, werden automatisch aus Ihren Slice-Profileinstellungen im Dashboard übernommen. Dies ermöglicht es Ihnen, bestimmte Einstellungen pro Angebot zu überschreiben, während Sie die Standardeinstellungen für andere beibehalten.

Wichtig: Wenn Sie einen Parameter in Ihrer Anfrage nicht angeben, verwendet die API den Wert aus Ihrem Slice-Profil im Dashboard (Druckerprofil, Materialprofil oder globale Einstellungen). Stellen Sie sicher, dass Sie Ihre Standardprofile im Dashboard für konsistente Angebote einrichten. Sie können auch alle Ihre Parameter in einem bestimmten Druckerprofil im Dashboard konfigurieren und einfach dessen 'printer_id' in Ihrer Anfrage übergeben, um diese Einstellungen sofort anzuwenden, ohne sie einzeln übergeben zu müssen.

Konfigurationspriorität: Werte, die in der V2 API-Anfrage gesendet werden, überschreiben die Werte des ausgewählten Benutzerprofils; alle noch fehlenden Felder fallen dann auf die Benutzer-/globalen Standardprofile zurück.

Stammparameter

ParameterTypBeschreibung
printer_idstringOptional. ID eines bestimmten Druckers, der anstelle des Standarddruckers verwendet werden soll.
quantitynumberOptional. Die Gesamtanzahl der zu produzierenden Kopien (Standard: 1).

Logik für Menge und Batch-Produktion

Unser System verwendet einen fortschrittlichen Packalgorithmus basierend auf der angegebenen 'quantity':

  • FDM-Technologie: Teile werden nebeneinander auf der Bauplatte (X- und Y-Achse) platziert, soweit der Platz es zulässt.
  • SLA-Technologie: Teile werden nebeneinander im Harzbehälter (X- und Y-Achse) positioniert.
  • SLS-Technologie: Teile können in allen Achsen (X, Y und Z) gestapelt werden, um die Kapazität des Pulverbettes voll auszunutzen.

Dank dieser optimierten Packung, können mehrere Teile in einen einzigen Batch passen, werden fixe Gemeinkosten wie Vorheizen, Abkühlen und Schichtwechsel nur pro benötigtem Batch angewendet. Dies gewährleistet eine hochrealistische und kosteneffiziente Preisgestaltung für Großbestellungen.

printer_config

Druckerkonfigurationsparameter. Alle Felder sind optional und verwenden Ihre Standardwerte aus dem Druckerprofil, falls nicht angegeben.

ParameterTypBeschreibung
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-SPEZIFISCH
sla_exposure_timenumberSLA: Belichtungszeit pro Schicht (Sekunden)
sla_bottom_exposure_timenumberSLA: Basis-Belichtungszeit (Sekunden)
sla_bottom_layer_countnumberSLA: Anzahl der Bodenschichten
sla_lift_distancenumberSLA: Hubdistanz (mm)
sla_lift_speednumberSLA: Hubgeschwindigkeit (mm/s)
sla_retract_speednumberSLA: Rückzugsgeschwindigkeit (mm/s)
sla_cleaning_costnumberSLA: Feste Reinigungskosten pro Druck (IPA, Verbrauchsmaterialien)
SLS-spezifisch
sls_laser_speednumberSLS: Lasergeschwindigkeit (mm/s)
sls_hatch_spacingnumberSLS: Abstand zwischen den Linien (mm)
sls_layer_thicknessnumberSLS: Schichthöhe (mm)
sls_layer_recoat_timenumberSLS: Schichtbeschichtungszeit (Sekunden)
sls_preheat_timenumberSLS: Vorheizzeit (Sekunden)
sls_cooling_timenumberSLS: Abkühlzeit (Sekunden)
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

Materialkonfigurationsparameter. Alle Felder sind optional und verwenden Ihre Standardwerte aus dem Materialprofil, falls nicht angegeben.

Materialprofilintegration: Der Parameter filament_type sollte mit einem Materialnamen aus Ihrem Materialprofil im Dashboard übereinstimmen. Wenn Sie einen filament_type (z. B. "PLA", "ABS", "PETG") angeben, lädt die API automatisch alle Eigenschaften aus diesem Materialprofil, einschließlich Dichte, Temperaturen, Retraktionseinstellungen und Preise.

Preisgenauigkeit: Für genaue Kostenberechnungen stellen Sie sicher, dass Sie sowohl price_per_kg als auch price_per_gram in Ihrem Materialprofil festlegen. Die API verwendet diese Werte, um die Materialkosten basierend auf dem tatsächlichen Filamentgewicht zu berechnen, das beim Druck verwendet wird. Wenn diese Werte nicht in Ihrem Profil festgelegt sind, können Sie sie in der API-Anfrage überschreiben.

Beispiel: Wenn Sie ein "PLA"-Materialprofil in Ihrem Dashboard mit price_per_kg: 20.0 und price_per_gram: 0.02 haben, können Sie einfach {"filament_type": "PLA"} in Ihrer Anfrage senden, und alle Preise werden automatisch berechnet.

ParameterTypBeschreibung
filament_typestringFilament type (PLA, ABS, PETG, etc.)
colorstringOptional: Farbname (z.B. 'Weiß', 'Schwarz', '#FFFFFF'). Hinweis: Bei SLA/SLS-Technologien wird die Farbe nur angewendet, wenn 'post_processing' auf 'painted' eingestellt ist.
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

Konfigurationsparameter für die Angebotsberechnung. Alle Felder sind optional und verwenden Ihre Standardwerte aus den globalen Einstellungen, falls nicht angegeben. Die Währung ist standardmäßig auf Ihre Dashboard-Präferenz eingestellt (z. B. "USD", "TRY", "EUR").

ParameterTypBeschreibung
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/Resin-spezifisch: 'solid', '2mm' oder '3mm' (Standard: 'solid')
post_processingstringSLA/SLS-spezifisch: 'standard', 'sanding', 'painting' oder 'painted' (Standard: 'standard')
enable_batch_systembooleanEnable/disable batch calculation system (default: true)
material_wastage_factornumberFactor for calculating material wastage (e.g. 1.10 for 10% wastage).

Tipp: Angebote werden automatisch in Ihrem Konto gespeichert. Sie können jederzeit über die Angebotsverlaufs-Endpunkte darauf zugreifen.

6. Drucker- & Angebotsprofile

Konfigurieren Sie Druckereinstellungen und Preise, um genaue Angebote zu erhalten. Sie können Ihre Standardprofile im Dashboard im Bereich 'Slice-Profile' verwalten, die automatisch verwendet werden, wenn Sie in API-Anfragen keine Parameter angeben.

Profiltypen

  • Druckerprofil – Konfigurieren Sie Ihre Druckereinstellungen (Bettgröße, Düsendurchmesser, Druckgeschwindigkeit, Schichthöhe, Beschleunigung, Jerk, Temperaturen usw.), um sie an Ihren tatsächlichen Drucker anzupassen. Legen Sie dieses als Ihr Standardprofil im Dashboard fest, und es wird für alle Angebotsanfragen verwendet, es sei denn, Sie überschreiben bestimmte Parameter.
  • Materialprofil – Legen Sie Materialeigenschaften (Filamenttyp, Dichte, Durchmesser, Temperaturen, Lüftergeschwindigkeit, Retraktionseinstellungen, Preise) für jedes von Ihnen verwendete Material fest. Die API verwendet automatisch das Materialprofil, das dem von Ihnen in der Anfrage angegebenen filament_type entspricht.
  • Globale Einstellungen – Konfigurieren Sie globale Angebotseinstellungen wie Mehrwertsteuersatz, feste Gebühren, Energiekosten und Standardwährung. Diese Einstellungen gelten für alle Angebote, es sei denn, sie werden in der Anfrage überschrieben.

Best Practice: Richten Sie Ihre Standardprofile im Dashboard-Slice-Profile-Bereich ein. Auf diese Weise können Sie einfache Angebotsanfragen stellen, ohne alle Parameter anzugeben, und die API verwendet automatisch Ihre konfigurierten Standardwerte. Sie können bei Bedarf weiterhin jeden Parameter pro Anfrage überschreiben.

Wie die Profilzusammenführung funktioniert

Wenn Sie eine Angebotsanfrage stellen, führt die API Ihre Anfrageparameter mit Ihren Dashboard-Profilen zusammen, wobei diese Priorität gilt:

  1. Anfrageparameter – Werte, die Sie explizit in der API-Anfrage angeben, haben die höchste Priorität
  2. Benutzerprofil – Wenn Sie ein benutzerspezifisches Profil als Standard festgelegt haben, wird dieses als Nächstes verwendet
  3. Globales Profil – Wenn kein Benutzerprofil vorhanden ist, greift das System auf globale Standardwerte zurück

Das bedeutet, dass Sie nur die Parameter überschreiben können, die Sie benötigen (z. B. nur layer_height oder fill_density), während alle anderen Einstellungen aus Ihren Dashboard-Profilen beibehalten werden.

7. Webhooks

Echtzeitbenachrichtigungen erhalten, wenn Ereignisse in Ihrem Konto auftreten:

  • POST /v2/webhooks - Einen neuen Webhook-Endpunkt erstellen
  • GET /v2/webhooks - Ihre Webhooks auflisten
  • GET /v2/webhooks/{webhook_id} - Webhook-Details und Lieferstatistiken abrufen
  • PUT /v2/webhooks/{webhook_id} - Webhook-Einstellungen aktualisieren
  • DELETE /v2/webhooks/{webhook_id} - Webhook entfernen

Unterstützte Ereignisse: quote.completed, quote.failed, job.status_changed, widget.added_to_cart, file.uploaded. Webhooks enthalten HMAC-SHA256-Signaturen zur Sicherheitsüberprüfung.

8. Analysen & Berichte

Erhalten Sie Einblicke in Ihre API-Nutzung und Angebotsstatistiken:

  • GET /v2/analytics/quotes - Erhalten Sie umfassende Angebotsstatistiken, einschließlich der Gesamtzahl der Angebote, durchschnittliche Preise und Trends bei der Materialverwendung.
  • GET /v2/analytics/popular - Sehen Sie Ihre beliebtesten Materialien und Drucker-Konfigurationen.
  • GET /v2/analytics/cost-trends - Analysieren Sie Kostentrends im Zeitverlauf (tägliche, wöchentliche oder monatliche Gruppierung).
  • GET /v2/analytics/export - Exportieren Sie Ihre Angebote und Nutzungsdaten als CSV oder JSON.

9. Ratenbegrenzung und Kontingente

Quote3D verwendet Ratenbegrenzung, um eine faire Nutzung und Systemstabilität zu gewährleisten.

  • Ratenbegrenzungen werden pro API-Token angewendet und variieren je nach Endpunkt.
  • Informationen zur Ratenbegrenzung sind in den Antwort-Headern enthalten. X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset
  • Wenn die Ratenbegrenzung erreicht ist, erhalten Sie eine 429 Too Many Requests-Antwort mit einem Retry-After-Header.
  • Monatliche Kontingente für Angebote und Speicherplatz basieren auf Ihrem Abonnementplan

Best Practice: Implementieren Sie einen exponentiellen Backoff beim Umgang mit Ratenbegrenzungsfehlern, um eine Überlastung der API zu vermeiden.

10. RESTful, versionierte API

  • Alle Endpunkte sind versioniert (z.B. /v2/)
  • Verwendet standardmäßige HTTP-Methoden:
  • Folgt den OpenAPI 3.1.0 Standards für Schema und Dokumentation
  • API-Änderungsprotokoll verfügbar unter: