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/userRufen Sie Ihre Kontodetails abGET /v2/user/uploadsZeigen Sie alle in Ihr Konto hochgeladenen Dateien an. Diese werden vom neuesten zum ältesten sortiert.GET /v2/quotaErhalten Sie Ihre aktuellen Quotenbegrenzungen und die Nutzung für Angebote und Speicherplatz.GET /v2/usageErhalten 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/file— Laden 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}/async— 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. - Ü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/quotes— Rufen 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
| Parameter | Typ | Beschreibung |
|---|---|---|
| printer_id | string | Optional. ID eines bestimmten Druckers, der anstelle des Standarddruckers verwendet werden soll. |
| quantity | number | Optional. 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
| bed_size_x | number | Build volume X dimension (mm) |
| bed_size_y | number | Build volume Y dimension (mm) |
| bed_size_z | number | Build volume Z dimension (mm) |
| nozzle_diameter | number | Nozzle diameter (mm) |
| nozzle_count | number | Number of nozzles |
| print_speed | number | Default print speed (mm/s) |
| max_print_speed | number | Maximum print speed (mm/s) |
| travel_speed | number | Travel speed (mm/s) |
| first_layer_speed | number | First layer speed (mm/s) |
| layer_height | number | Layer height (mm) |
| min_layer_height | number | Minimum layer height (mm) |
| max_layer_height | number | Maximum layer height (mm) |
| perimeters | number | Number of perimeters/walls |
| top_solid_layers | number | Top solid layers count |
| bottom_solid_layers | number | Bottom solid layers count |
| min_wall_count | number | Minimum wall count |
| max_wall_count | number | Maximum wall count |
| fill_density | number | Infill density (0-100%) |
| infill_pattern | string | Infill pattern. Options: rectilinear, alignedrectilinear, zigzag, crosszag, lockedzag, line, grid, triangles, trihexagon, cubic, adaptivecubic, supportcubic, honeycomb, honeycomb3d, lateralhoneycomb, gyroid, monotonic, monotonicline, lightning. Default: rectilinear |
| support_material | boolean | Enable support material |
| support_overhang_angle | number | Support overhang angle (degrees) |
| support_density | number | Support density (0-100%) |
| acceleration_print | number | Print acceleration (mm/s²) |
| acceleration_travel | number | Travel acceleration (mm/s²) |
| acceleration_retraction | number | Retraction acceleration (mm/s²) |
| jerk_print | number | Print jerk (mm/s) |
| jerk_travel | number | Travel jerk (mm/s) |
| jerk_retraction | number | Retraction jerk (mm/s) |
| min_hotend_temp | number | Minimum hotend temperature (°C) |
| max_hotend_temp | number | Maximum hotend temperature (°C) |
| min_bed_temp | number | Minimum bed temperature (°C) |
| max_bed_temp | number | Maximum bed temperature (°C) |
| hourly_cost | number | Machine hourly cost |
| SLA-SPEZIFISCH | ||
| sla_exposure_time | number | SLA: Belichtungszeit pro Schicht (Sekunden) |
| sla_bottom_exposure_time | number | SLA: Basis-Belichtungszeit (Sekunden) |
| sla_bottom_layer_count | number | SLA: Anzahl der Bodenschichten |
| sla_lift_distance | number | SLA: Hubdistanz (mm) |
| sla_lift_speed | number | SLA: Hubgeschwindigkeit (mm/s) |
| sla_retract_speed | number | SLA: Rückzugsgeschwindigkeit (mm/s) |
| sla_cleaning_cost | number | SLA: Feste Reinigungskosten pro Druck (IPA, Verbrauchsmaterialien) |
| SLS-spezifisch | ||
| sls_laser_speed | number | SLS: Lasergeschwindigkeit (mm/s) |
| sls_hatch_spacing | number | SLS: Abstand zwischen den Linien (mm) |
| sls_layer_thickness | number | SLS: Schichthöhe (mm) |
| sls_layer_recoat_time | number | SLS: Schichtbeschichtungszeit (Sekunden) |
| sls_preheat_time | number | SLS: Vorheizzeit (Sekunden) |
| sls_cooling_time | number | SLS: Abkühlzeit (Sekunden) |
| sla_light_off_delay | number | SLA: Light-off delay for each layer (seconds). |
| sla_transition_layer_count | number | SLA: Number of transition layers. |
| sla_drain_holes | array | SLA: Drainage holes configuration to prevent suction cups. |
| sls_bb_multiplier | number | SLS Bounding Box cost multiplier. |
| max_volumetric_flow | number | Maximum 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.
| Parameter | Typ | Beschreibung |
|---|---|---|
| filament_type | string | Filament type (PLA, ABS, PETG, etc.) |
| color | string | Optional: Farbname (z.B. 'Weiß', 'Schwarz', '#FFFFFF'). Hinweis: Bei SLA/SLS-Technologien wird die Farbe nur angewendet, wenn 'post_processing' auf 'painted' eingestellt ist. |
| density | number | Material density (g/cm³) |
| diameter | number | Filament diameter (mm) |
| powder_bulk_density | number | SLS: Bulk density of loose powder in g/cm³. Used for reusable powder and refresh calculations. |
| temperature | number | Print temperature (°C) |
| print_temp_min | number | Minimum print temperature (°C) |
| print_temp_max | number | Maximum print temperature (°C) |
| bed_temperature | number | Bed temperature (°C) |
| bed_temp_min | number | Minimum bed temperature (°C) |
| bed_temp_max | number | Maximum bed temperature (°C) |
| fan_speed | number | Fan speed (0-100%) |
| min_fan_speed | number | Minimum fan speed (0-100%) |
| retraction_distance | number | Retraction distance (mm) |
| retraction_speed | number | Retraction speed (mm/s) |
| price_per_kg | number | Price per kilogram |
| price_per_gram | number | Price per gram |
| support_cost_multiplier | number | Support material cost multiplier |
| sls_refresh_factor | number | SLS Powder Refresh cost factor (e.g. 1.2). |
| max_volumetric_flow | number | Material specific volumetric flow limit in mm³/s. |
| min_layer_time | number | Minimum 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").
| Parameter | Typ | Beschreibung |
|---|---|---|
| currency | string | Currency code (USD, TRY, EUR, GBP, JPY, CNY, RUB). Defaults to your dashboard preference. |
| tax_rate | number | Tax rate percentage (0-100) |
| fixed_fee | number | Fixed fee per quote |
| energy_cost_per_kwh | number | Energy cost per kWh |
| hollowing | string | SLA/Resin-spezifisch: 'solid', '2mm' oder '3mm' (Standard: 'solid') |
| post_processing | string | SLA/SLS-spezifisch: 'standard', 'sanding', 'painting' oder 'painted' (Standard: 'standard') |
| enable_batch_system | boolean | Enable/disable batch calculation system (default: true) |
| material_wastage_factor | number | Factor 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:
- Anfrageparameter – Werte, die Sie explizit in der API-Anfrage angeben, haben die höchste Priorität
- Benutzerprofil – Wenn Sie ein benutzerspezifisches Profil als Standard festgelegt haben, wird dieses als Nächstes verwendet
- 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 erstellenGET /v2/webhooks- Ihre Webhooks auflistenGET /v2/webhooks/{webhook_id}- Webhook-Details und Lieferstatistiken abrufenPUT /v2/webhooks/{webhook_id}- Webhook-Einstellungen aktualisierenDELETE /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: