Conceptos clave: archivos, presupuestos y trabajos
Esta página introduce las ideas y patrones fundamentales que impulsan la plataforma. Comprender estos conceptos le ayudará a aprovechar al máximo la API y a construir integraciones robustas para flujos de trabajo de impresión 3D.
Ruta base de la API
Para llamadas externas a la API, envíe las solicitudes directamente a https://api.quote3d.com/v2/... (por ejemplo, GET https://api.quote3d.com/v2/user).
En su software, configure https://api.quote3d.com como el host de la API o URL base y llame a las rutas v2 como /v2/user, /v2/file y /v2/quotes.
1. Autenticación y Seguridad
Todos los endpoints requieren autenticación con su token de API de Quote3D, con una excepción: la ruta pública de subida documentada en Gestión de archivos. Para llamadas externas, use la ruta base https://api.quote3d.com/v2. Envíe el token como Authorization: Bearer YOUR_TOKEN o como X-API-Token. Genere los tokens desde su panel de Quote3D y manténgalos en secreto.
Los tokens pueden tener alcances definidos. Un token de acceso total llega a todos los endpoints, mientras que un token con alcance de widget está restringido a los endpoints que el widget incrustado necesita. Cualquier llamada fuera del alcance de un token devolverá un error 403. Puede ver y cambiar el alcance de un token en la página de Tokens de su panel de control.
Recordatorio: Mantenga sus API tokens seguros. Nunca los comparta públicamente ni los incluya en el control de versiones.
2. Gestión de Cuenta
Administre su cuenta, cargas y estadísticas de uso a través de endpoints dedicados:
GET /v2/userRecupere los datos de su cuenta, su plan y sus cuotas mensuales: aquí se encuentran quotes_used, quotes_limit, storage_used, storage_limit y reset_dateGET /v2/user/uploadsListe todos los archivos que ha subido a su cuenta. Estos se listan del más reciente al más antiguo.GET /v2/quotaRecupere sus límites de frecuencia: el límite global más un desglose por endpoint con las llamadas restantes y los tiempos de reinicio, junto con sus recuentos de solicitudes de hoy, este mes, este año y de siempreGET /v2/usageObtenga análisis de uso detallados incluyendo estadísticas de endpoints, uso de materiales y tendencias basadas en el tiempo
3. Gestión de archivos
Suba, descargue y gestione sus archivos de modelo 3D (formatos STL, 3MF, OBJ):
GET /v2/file/upload-id— Obtenga un upload_id temporal para subir un nuevo archivo con la ruta de subida pública.POST /v2/file/public/{upload_id}— Esta ruta NO requiere autenticación. Utilícela en su lado del cliente para subir archivos directamente a nuestro almacenamiento.Utilizar la ruta de Subida Pública le permite evitar enrutar archivos grandes a través de su servidor backend. Esto previene exponer su token de API y reduce la carga del servidor.
POST /v2/file— Suba un archivo desde su lado del servidor (requiere autenticación, utilice esto cuando quiera subir desde su backend)GET /v2/file/{file_id}— Descargue un archivo utilizando su file_idDELETE /v2/file/{file_id}— Elimine un archivo que ya no necesita
La subida se rechazará si el archivo no es un modelo STL, 3MF u OBJ válido, o si supera el límite de tamaño de archivo de la plataforma (50 MB por defecto). Ambas rutas de subida aplican las mismas comprobaciones.
Cómo se almacenan sus archivos
Los modelos subidos se almacenan de forma cifrada y nunca son accesibles públicamente — no existe ningún enlace que sirva un archivo almacenado directamente. El campo file_path en las respuestas es la ruta de descarga autenticada (GET /v2/file/{file_id}), no una ubicación en el disco, así que trátelo como un endpoint en lugar de una URL que pueda compartir. Eliminar un archivo lo elimina del almacenamiento, no solo de sus listados.
4. Información de la pieza y análisis técnico
Verifique si sus modelos son imprimibles, obtenga dimensiones de la pieza y métricas técnicas avanzadas:
POST /v2/printability/{file_id}Análisis Instantáneo – Verifique medidas, volumen, área de superficie e integridad geométrica (bordes abiertos/non-manifold) antes de generar un presupuesto.
Quote3D va más allá de las simples verificaciones de dimensiones; analiza la integridad manifold del modelo y evalúa el riesgo de adhesión a la cama, crítico para la impresión 3D. Estas métricas se proporcionan tanto en las respuestas de Printability como de Quote.
5. Operaciones de Cotización
Genere cotizaciones instantáneas para sus impresiones 3D y gestione el historial de cotizaciones:
POST /v2/file/quote/{file_id}— Inicia el cálculo asíncrono de un presupuesto para un modelo 3D. Devuelve un ID de trabajo; utilice el endpoint de trabajos para obtener el resultado completado.POST /v2/file/quote/{file_id}/async— Endpoint asíncrono alternativo para generar presupuestos. Devuelve un ID de trabajo que puede usar para verificar el estado y obtener el resultado completado.GET /v2/jobs/{job_id}— Verifique el estado de un trabajo de cotización asíncrono. Devuelve el porcentaje de progreso y el estado de finalización.GET /v2/quotes— Recupere todo su historial de cotizaciones con soporte de paginaciónGET /v2/quotes/{quote_id}— Obtenga información detallada sobre una cotización específicaDELETE /v2/quotes/{quote_id}— Elimina una cotización de su historial
Flujo de trabajo asíncrono: POST /v2/file/quote/{file_id} devuelve primero un ID de trabajo. Usa GET /v2/jobs/{job_id} para el resultado compacto completado, y GET /v2/quotes/{quote_id} para la carga útil detallada de la cotización almacenada cuando esté disponible.
Parámetros de Solicitud de Cotización
Al generar una cotización, puede proporcionar una configuración personalizada en el cuerpo de la solicitud. Cualquier parámetro que no especifique se tomará automáticamente de la configuración de su Perfil de Rebanado en el Panel de Control. Esto le permite anular configuraciones específicas por cotización mientras mantiene los valores predeterminados para otras.
Importante: Si no proporciona un parámetro en su solicitud, la API utilizará el valor de su Perfil de Rebanado en el Panel de Control (Perfil de Impresora, Perfil de Material o Configuración Global). Asegúrese de configurar sus perfiles predeterminados en el Panel de Control para obtener cotizaciones consistentes. También puede configurar todos sus parámetros en un Perfil de Impresora específico en el Panel de Control y simplemente pasar su 'printer_id' en su solicitud para aplicar esos ajustes instantáneamente sin pasarlos individualmente.
Precedencia de configuración: Los valores enviados en la solicitud de la API V2 anulan los valores del perfil de usuario seleccionado; cualquier campo que aún falte recurrirá a los perfiles predeterminados de usuario/globales.
Las tablas a continuación cubren los parámetros que las integraciones suelen anular con más frecuencia. No son la lista completa; el motor de cotización acepta muchos más campos de impresora, material y precios, y cada uno de ellos puede configurarse una vez en sus Perfiles de laminado del Dashboard en lugar de enviarse en cada solicitud. Configure sus perfiles allí y envíe solo lo que varía por cotización; la lista completa de campos se encuentra en el esquema OpenAPI.
Request Validation
Los campos numéricos de printer_config, material_config y quote_config se comprueban contra sus límites antes de encolar el trabajo. Un valor fuera de rango, un número no finito (NaN, Infinity), un tipo incorrecto o un número negativo donde solo tienen sentido el cero y los valores superiores se rechaza con HTTP 400 y un VALIDATION_ERROR que indica el campo exacto. El cero se sigue aceptando allí donde tiene sentido: una velocidad o aceleración de 0 para un rol concreto significa «usar el valor predeterminado de la impresora», la misma convención que utiliza OrcaSlicer.
- Límites de temperatura: las temperaturas del material (temperature y bed_temperature, tanto si se envían en la petición como si se leen del Perfil de material) se comprueban contra los valores min_hotend_temp / max_hotend_temp y min_bed_temp / max_bed_temp de la impresora. Un material que necesita más calor del que puede aportar la impresora seleccionada se rechaza en lugar de cotizarse. Solo FDM: las tecnologías de resina y polvo no tienen boquilla ni cama caliente. Deje los límites de la impresora sin definir para omitir la comprobación.
- Tecnologías habilitadas: si ha restringido las tecnologías en su Configuración global, se rechaza toda solicitud de cotización de una tecnología deshabilitada. Deje el ajuste vacío para aceptar las tres.
- Campos de precio del material: price_per_gram es el valor que cobra el motor. Al guardar un Perfil de material, price_per_kg se recalcula automáticamente a partir de él (y price_per_gram se deriva de price_per_kg cuando solo se indica el precio por kilogramo), de modo que ambos nunca pueden discrepar.
Parámetros Raíz
| Parámetro | Tipo | Descripción |
|---|---|---|
| technology | string | Opcional. Tecnología de producción: 'FDM', 'SLA' o 'SLS' ('RESIN' se acepta como un alias para 'SLA'). Determina qué parámetros específicos de la tecnología se aplican y cómo se empaquetan las piezas para la producción por lotes. Si se omite, se utiliza la tecnología de la impresora seleccionada, recurriendo a 'FDM' por defecto. |
| printer_id | string | Opcional. ID de una impresora específica para usar en lugar de la impresora predeterminada. |
| quantity | number | Opcional. El número total de copias a producir (Predeterminado: 1). |
Lógica de Cantidad y Producción por Lotes
Nuestro sistema utiliza un algoritmo de empaquetado avanzado basado en la 'cantidad' especificada:
- Tecnología FDM: Las piezas se colocan lado a lado en la placa de construcción (ejes X e Y) según el espacio disponible.
- Tecnología SLA: Las piezas se posicionan lado a lado en el recipiente de resina (ejes X e Y).
- Tecnología SLS: Las piezas se pueden apilar en todos los ejes (X, Y y Z) para utilizar completamente la capacidad de la cama de polvo.
Gracias a este empaquetado optimizado, si múltiples piezas pueden caber en un solo lote, los costos fijos generales como el precalentamiento, el enfriamiento y los cambios de capa solo se aplican por cada lote requerido. Esto asegura precios altamente realistas y rentables para pedidos al por mayor.
printer_config
Parámetros de configuración de la impresora. Todos los campos son opcionales y utilizarán los valores predeterminados de su Perfil de Impresora si no se proporcionan.
| Parámetro | Tipo | Descripción |
|---|---|---|
| nozzle_diameter | number | FDM nozzle diameter (mm). Drives extrusion width, so it changes both print time and material use. |
| support_material | boolean | Enable support generation. When omitted, the profile value is used. |
| 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) |
| 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 | Patrón de relleno (infill). Predeterminado: rectilinear. Básico (rectilinear, alignedrectilinear, zigzag, crosszag, lockedzag, line, grid), Triángulo (triangles, trihexagon), Cúbico (cubic, adaptivecubic, supportcubic), Panal (honeycomb, honeycomb3d, lateralhoneycomb), Avanzado (gyroid), Especial (monotonic, monotonicline), De llenado de espacio (hilbertcurve, archimedeanchords, octagramspiral). hilbertcurve, archimedeanchords y octagramspiral son aceptados pero no tienen un generador propio; se citan como rectilinear. Los valores se comparan sin distinguir mayúsculas de minúsculas y se ignoran los separadores, por lo que tri-hexagon y Zig Zag funcionan; también se acepta la ortografía de OrcaSlicer 3dhoneycomb. lightning, quartercubic, laterallattice, crosshatch, concentric, tpmsd y tpmsfk no son compatibles y devuelven un error 400. |
| support_overhang_angle | number | Support overhang angle (degrees) |
| support_density | number | Support density (0-100%) |
| brim_enabled | boolean | Enable brim generation for FDM quotes |
| brim_width | number | Brim width in millimeters when brim is enabled |
| acceleration_print | number | Print acceleration (mm/s²) |
| acceleration_travel | number | Travel acceleration (mm/s²) |
| acceleration_retraction | number | Retraction acceleration (mm/s²) |
| acceleration_outer_wall | number | Outer wall acceleration (mm/s²). 0 uses acceleration_print. |
| acceleration_inner_wall | number | Inner wall acceleration (mm/s²). 0 uses acceleration_print. |
| acceleration_sparse_infill | number | Sparse infill acceleration (mm/s²). 0 uses acceleration_print. |
| acceleration_solid_infill | number | Solid infill acceleration (mm/s²). 0 uses acceleration_print. |
| acceleration_top_surface | number | Top surface acceleration (mm/s²). 0 uses acceleration_print. |
| acceleration_bridge | number | Bridge acceleration (mm/s²). 0 uses acceleration_print. |
| acceleration_first_layer | number | First layer acceleration (mm/s²). 0 uses acceleration_print. |
| retraction_minimum_travel | number | Travel moves shorter than this do not retract (mm). Reference default 1. |
| z_hop_mm | number | Nozzle lift before a travel move (mm). 0 disables it. Reference default 0.4. |
| bed_exclude_x | number | Unusable bed edge margin on X (mm), removed from the packing area. |
| bed_exclude_y | number | Unusable bed edge margin on Y (mm), removed from the packing area. |
| 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 |
| ESPECÍFICO DE SLA | ||
| sla_exposure_time | number | SLA: Tiempo de exposición por capa (segundos) |
| sla_bottom_exposure_time | number | SLA: Tiempo de exposición base (segundos) |
| sla_bottom_layer_count | number | SLA: Número de capas inferiores |
| sla_lift_distance | number | SLA: Distancia de elevación (mm) |
| sla_lift_speed | number | SLA: Velocidad de elevación (mm/min) |
| sla_retract_speed | number | SLA: Velocidad de retracción (mm/min) |
| sla_cleaning_cost | number | SLA: Costo fijo de limpieza por impresión (IPA, consumibles) |
| sla_pad_enabled | boolean | SLA: imprimir el modelo sobre una base/raft. Desactivado por defecto; la resina de la base se cuenta como material de soporte. |
| sla_pad_wall_thickness | number | SLA: grosor de la pared de la base en mm. Alias: sla_pad_height. |
| sla_pad_wall_height | number | SLA: altura de la pared de la base en mm (borde elevado alrededor de la cavidad de la base). |
| sla_pad_wall_slope | number | SLA: inclinación de la pared de la base en grados (45-90). La base se estrecha hacia abajo con este ángulo. |
| sla_pad_brim_size | number | SLA: tamaño del brim de la base en mm. Alias: sla_pad_expansion. |
| sla_pad_max_merge_distance | number | SLA: los puntos de contacto de los soportes más cercanos que esta distancia se fusionan en una sola isla de la base (mm). |
| sla_support_head_front_diameter | number | SLA: diámetro frontal (punta) de la cabeza del soporte en mm. |
| sla_support_head_penetration | number | SLA: profundidad con la que la cabeza del soporte se hunde en la superficie del modelo (mm). |
| sla_support_head_width | number | SLA: longitud de la varilla de la cabeza del soporte en mm. |
| sla_support_pillar_diameter | number | SLA: diámetro del pilar de soporte en mm. Determina la mayor parte del volumen de resina del soporte. |
| sla_support_base_diameter | number | SLA: diámetro de la base (pie) del pilar de soporte en mm. |
| sla_support_base_height | number | SLA: altura de la base (pie) del pilar de soporte en mm. |
| sla_support_object_elevation | number | SLA: elevación del objeto sobre la plataforma de impresión en mm. También añade capas impresas, por lo que afecta al tiempo de impresión. Se aplica solo cuando se generan soportes. |
| sla_support_critical_angle | number | SLA: pendiente del puente en grados utilizada al trazar los soportes. No es lo mismo que support_overhang_angle. |
| sla_support_max_pillar_link_distance | number | SLA: los pilares que estén más alejados que este valor no estarán entrelazados (mm). |
| sla_support_max_bridge_length | number | SLA: puente lateral más largo que un cabezal de soporte puede realizar para llegar a la plataforma (mm). |
| sla_support_max_bridges_on_pillar | number | SLA: cuántos puentes acepta un solo pilar. |
| sla_support_points_density | number | SLA: densidad de puntos de soporte como porcentaje, 100 = normal. NO es la misma cantidad que support_density, que es el porcentaje de relleno de soporte FDM. |
| sla_elephant_foot_compensation | number | SLA: Cuánto se retraen las primeras capas para compensar el ensanchamiento en la base. Valor de referencia 0.2 en todas las impresoras SLA incluidas. 0 lo desactiva. |
| sla_elephant_foot_min_width | number | SLA: Los contornos más estrechos que este se dejan sin cambios para que no se pierdan los detalles finos. Valor de referencia 0.2. |
| sla_faded_layers | number | SLA: Número de capas sobre las cuales la compensación se desvanece hasta cero. Esto NO es el número de capas inferiores; el perfil MSLA de referencia utiliza 8. |
| ESPECÍFICO PARA SLS | ||
| sls_laser_speed | number | SLS: Velocidad del láser (mm/s) |
| sls_hatch_spacing | number | SLS: Espaciado de la trama (mm) |
| sls_layer_thickness | number | SLS: Grosor de la capa (mm) |
| sls_layer_recoat_time | number | SLS: Tiempo de recubrimiento de la capa (segundos) |
| sls_preheat_time | number | SLS: Tiempo de precalentamiento (min) |
| sls_cooling_time | number | SLS: Tiempo de enfriamiento (min) |
| 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: recargo por espacio de máquina por equivalente de gramo del espacio de construcción que ocupa una pieza. El espacio es la caja de volumen mínimo de la pieza más su parte de los huecos de polvo y los bordes inutilizables de la cámara, por lo que no cambia cuando el modelo llega rotado. 0 desactiva el recargo. |
| sls_contour_count | number | SLS: número de pasadas de contorno (borde) que el láser traza alrededor del contorno de cada capa. 0 desactiva la pasada de contorno. |
| sls_contour_speed | number | SLS: velocidad de escaneo de contorno en mm/s. 0 significa que el contorno se escanea a la velocidad sls_laser_speed. |
| sls_jump_speed | number | SLS: velocidad de salto del galvo en mm/s para los movimientos de reposicionamiento sin sinterización entre vectores de escaneo. 0 realiza los saltos a la velocidad sls_laser_speed, un límite superior. |
| sls_part_spacing | number | SLS: separación mínima de polvo alrededor de una pieza en mm, aplicada tanto entre piezas como a la pared de la cámara. Determina cuántas piezas caben en una construcción, por lo que influye tanto en la proporción de espacio de máquina como en la división de costes fijos. 0 utiliza el valor predeterminado del motor de 3 mm. |
| max_volumetric_flow | number | Maximum volumetric flow rate in mm³/s. |
material_config
Parámetros de configuración del material. Todos los campos son opcionales y utilizarán los valores predeterminados de su Perfil de Material si no se proporcionan.
Integración del Perfil de Material: El parámetro filament_type debe coincidir con un nombre de material de su Perfil de Material en el Panel de Control. Cuando especifica un filament_type (por ejemplo, "PLA", "ABS", "PETG"), la API carga automáticamente todas las propiedades de ese Perfil de Material, incluyendo densidad, temperaturas, ajustes de retracción y precios.
Precisión de los precios: el coste del material se calcula a partir de price_per_gram. Basta con definir price_per_kg o price_per_gram en el Perfil de material: el otro valor se mantiene sincronizado automáticamente. Aun así puede sobrescribir el precio en cada petición indicando price_per_gram o price_per_kg en material_config.
Ejemplo: Si tiene un perfil de material "PLA" en su Panel de Control con price_per_kg: 20.0 y price_per_gram: 0.02, simplemente puede enviar {"filament_type": "PLA"} en su solicitud, y todos los precios se calcularán automáticamente.
| Parámetro | Tipo | Descripción |
|---|---|---|
| filament_type | string | Filament type (PLA, ABS, PETG, etc.) |
| color | string | Opcional: Nombre del color (p. ej., 'Blanco', 'Negro', '#FFFFFF'). Nota: Para las tecnologías SLA/SLS, el color solo se aplica si 'post_processing' se establece en 'painted'. |
| density | number | Material density (g/cm³) |
| diameter | number | Filament diameter (mm) |
| filament_flow_ratio | number | Multiplicador del ratio de flujo FDM. 1.0 significa un flujo del 100%. Los valores solicitados anulan el Perfil de material de usuario seleccionado; si no se encuentran, se utiliza el valor del perfil global antes del valor predeterminado de 1.0. |
| 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) |
| slow_down_min_speed | number | Lower speed bound for layer cooling (mm/s). Reference default 20. |
| retraction_minimum_travel | number | Overrides the printer value for this material (mm). |
| z_hop_mm | number | Overrides the printer value for this material (mm). |
| 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 rate ratio (e.g. 0.3 = 30% fresh powder). |
| 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
Parámetros de configuración de precios de la cotización. Todos los campos son opcionales y utilizarán los valores predeterminados de su Configuración Global si no se proporcionan. La moneda predeterminada es la de su panel de control (por ejemplo, 'USD', 'TRY', 'EUR').
| Parámetro | Tipo | Descripción |
|---|---|---|
| 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 | Específico de SLA/SLS: 'solid', '2mm' o '3mm'. Para SLA, el valor predeterminado es '2mm' cuando el vaciado (hollowing) de SLA está habilitado en la configuración; para SLS, el valor predeterminado es '2mm' cuando el vaciado de SLS está habilitado. Las piezas de SLS se vacían SIN un agujero de escape, por lo que el polvo no sinterizado permanece en el interior: se factura según la densidad del lecho de polvo y no es recuperable. Una pieza cuyas paredes sean ya más delgadas que el doble del grosor de pared configurado se deja sólida. |
| post_processing | string | Específico de SLA/SLS: 'standard', 'sanding', 'painting' o 'painted' (predeterminado: 'standard'). El valor queda registrado en el presupuesto; 'painted' es además lo que hace que el color solicitado se aplique a las piezas SLA/SLS. |
| sla_post_processing_fee_standard | number | SLA standard post-processing fee per part. Overrides the settings value; post_processing selects which one applies. |
| sla_post_processing_fee_sanding | number | SLA sanding post-processing fee per part. Overrides the settings value; post_processing selects which one applies. |
| sla_post_processing_fee_painting | number | SLA painting post-processing fee per part. Overrides the settings value; post_processing selects which one applies. |
| sla_post_processing_fee_painted | number | SLA painted post-processing fee per part. Overrides the settings value; post_processing selects which one applies. |
| sls_post_processing_fee_standard | number | SLS standard post-processing fee per part. Overrides the settings value; post_processing selects which one applies. |
| sls_post_processing_fee_sanding | number | SLS sanding post-processing fee per part. Overrides the settings value; post_processing selects which one applies. |
| sls_post_processing_fee_painting | number | SLS painting post-processing fee per part. Overrides the settings value; post_processing selects which one applies. |
| sls_post_processing_fee_painted | number | SLS painted post-processing fee per part. Overrides the settings value; post_processing selects which one applies. |
| enable_batch_system | boolean | Enable/disable batch calculation system (default: true) |
| sls_min_build_fill | number | SLS: llenado mínimo de construcción como una fracción entre 0 y 1. El pedido se factura como si hubiera llenado al menos esta proporción de una ejecución de construcción; 0 comparte la construcción con otros trabajos, 1 factura una construcción completa. Se ignora cuando enable_batch_system es falso. |
| material_wastage_factor | number | Factor for calculating material wastage (e.g. 1.10 for 10% wastage). |
| volume_discount_tiers | array | Quantity discount tiers, e.g. [{"minVolume": 100, "discount": 5}]. Falls back to your Global Settings tiers. |
Consejo: Las cotizaciones se guardan automáticamente en su cuenta. Puede acceder a ellas en cualquier momento a través de los puntos finales del historial de cotizaciones.
6. Perfiles de Impresora y Presupuesto
Configure los ajustes de la impresora y los precios para obtener presupuestos precisos. Puede administrar sus perfiles predeterminados en la sección Perfiles de Rebanado del Panel de Control, que se utilizarán automáticamente cuando no especifique parámetros en las solicitudes de API.
Tipos de perfil
- Perfil de Impresora - Configure los ajustes de su impresora (tamaño de la cama, diámetro de la boquilla, velocidad de impresión, altura de capa, aceleración, jerk, temperaturas, etc.) para que coincidan con su impresora real. Establezca esto como su perfil predeterminado en el Panel de Control y se utilizará para todas las solicitudes de presupuesto a menos que anule parámetros específicos.
- Perfil de Material - Establezca las propiedades del material (tipo de filamento, densidad, diámetro, temperaturas, velocidad del ventilador, ajustes de retracción, precios) para cada material que utilice. La API utilizará automáticamente el perfil de material que coincida con el filament_type que especifique en la solicitud.
- Configuración Global - Configure la configuración global de cotización, como la tasa de impuestos, las tarifas fijas, los costos de energía y la moneda predeterminada. Estos ajustes se aplican a todas las cotizaciones a menos que se anulen en la solicitud.
Mejor Práctica: Configure sus perfiles predeterminados en la sección Perfiles de Rebanado del Panel de Control. De esta manera, puede realizar solicitudes de presupuesto simples sin especificar todos los parámetros, y la API utilizará automáticamente sus valores predeterminados configurados. Aún puede anular cualquier parámetro por solicitud cuando sea necesario.
Cómo Funcionan las Mezclas de Perfiles
Cuando realiza una solicitud de presupuesto, la API combina los parámetros de su solicitud con sus perfiles del Panel de Control utilizando esta prioridad:
- Parámetros de Solicitud - Los valores que proporciona explícitamente en la solicitud de API tienen la prioridad más alta
- Perfil de Usuario - Si tiene un perfil específico del usuario establecido como predeterminado, se utiliza a continuación
- Perfil Global - Si no existe un perfil de usuario, el sistema recurre a los valores predeterminados globales
Esto significa que puede anular solo los parámetros que necesita (por ejemplo, solo layer_height o fill_density) mientras mantiene todos los demás ajustes de sus perfiles del Panel de Control.
7. Webhooks
Reciba notificaciones en tiempo real cuando se producen eventos en su cuenta:
POST /v2/webhooks- Crear un nuevo punto final de webhookGET /v2/webhooks- Listar todos sus webhooksGET /v2/webhooks/{webhook_id}- Obtener los detalles del webhook y las estadísticas de entregaPUT /v2/webhooks/{webhook_id}- Actualizar la configuración del webhookDELETE /v2/webhooks/{webhook_id}- Eliminar un webhook
Eventos admitidos: quote.completed, quote.failed, file.uploaded, file.deleted, job.status_changed, widget.added_to_cart. Los webhooks incluyen firmas HMAC-SHA256 para la verificación de seguridad.
Referencia de webhooks: estructura del payload, verificación de la firma, reintentos y reenvío
8. Analítica e Informes
Obtenga información sobre el uso de su API y las estadísticas de cotizaciones:
GET /v2/analytics/quotes- Obtenga estadísticas completas de cotizaciones, incluyendo el total de cotizaciones, precios promedio y tendencias de uso de materialesGET /v2/analytics/popular- Visualice sus materiales y configuraciones de impresora más popularesGET /v2/analytics/cost-trends- Analiza las tendencias de costos a lo largo del tiempo (agrupación diaria, semanal o mensual)GET /v2/analytics/export- Exporte sus cotizaciones y datos de uso como CSV o JSON
9. Limitación de Velocidad y Cuotas
Quote3D utiliza la limitación de velocidad para asegurar un uso justo y la estabilidad del sistema:
- Los límites de velocidad se aplican por token de API y varían según el endpoint
- La información sobre los límites de velocidad se incluye en las cabeceras de la respuesta:
X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset,X-RateLimit-Window - Cuando se alcanza el límite de velocidad, recibirá una respuesta 429 Too Many Requests con una cabecera Retry-After
- Las cuotas mensuales para cotizaciones y almacenamiento se basan en su plan de suscripción
- Los límites son configurables por despliegue, así que lea los valores actuales en lugar de codificarlos de forma fija. Tanto los encabezados de respuesta anteriores como este endpoint los informan:
GET /v2/quota
Mejor Práctica: Implemente un retroceso exponencial al manejar errores de limitación de velocidad para evitar sobrecargar la API.
10. Respuestas y errores
Cada respuesta JSON utiliza el mismo sobre (envelope). Una llamada exitosa devuelve success: true con el payload del endpoint bajo data, para que su cliente pueda leer una estructura consistente en todas partes. Las descargas de archivos y las exportaciones CSV son la excepción: devuelven el cuerpo del archivo sin procesar en lugar del sobre.
{
"success": true,
"data": { "...": "endpoint-specific payload" }
}Paginación y ordenación
Los endpoints de listado como /v2/quotes y /v2/user/uploads están paginados con los parámetros de consulta limit y offset (por defecto 50 resultados, máximo 100). Junto con los resultados, devuelven un objeto de paginación que contiene total, limit, offset, has_more, page y total_pages, por lo que se recomienda usar has_more en lugar de recalcular el final de la lista por su cuenta. La ordenación utiliza un único parámetro repetible en el formato field:direction, por ejemplo ?sort=created_at:desc&sort=total_price:asc; las cargas (uploads) se ordenan por defecto de la más reciente a la más antigua.
Respuestas de error
Los fallos devuelven success: false con un mensaje de error legible para humanos y el código de estado HTTP correspondiente. Siempre realice la bifurcación basándose en el código de estado en lugar del texto del mensaje, que puede ser modificado.
| Estado | Significado |
|---|---|
| 400 | El cuerpo de la solicitud o un parámetro de consulta no es válido: un campo mal formado, un formato de archivo no compatible o un modelo que no se ajusta a la impresora seleccionada. |
| 401 | Falta el token de la API, está mal formado, ha expirado o ha sido revocado. |
| 403 | El token es válido pero no tiene permiso para realizar esta llamada; generalmente se debe a una restricción de alcance (scope) o a una dirección IP bloqueada. |
| 404 | El archivo, presupuesto, trabajo o webhook solicitado no existe o no pertenece a su cuenta. |
| 429 | Se ha excedido el límite de tasa (rate limit). Lea el encabezado Retry-After y espere antes de reintentar. |
| 500 | Un error inesperado en el servidor. Es seguro reintentar con backoff; si persiste, póngase en contacto con el soporte técnico proporcionando la marca de tiempo (timestamp). |
Los presupuestos asíncronos son diferentes: el encolamiento del trabajo tiene éxito con un 202, y un cálculo que falle posteriormente se presenta como un estado de error con un mensaje de error en el endpoint del trabajo, no como un error HTTP. Inspeccione siempre el estado del trabajo, no solo el código de estado que recibió al iniciarlo.
11. API RESTful y versionada
- Todos los endpoints están versionados (ej., /v2/)
- Utiliza métodos HTTP estándar:
GET,POST,PUT,DELETE - Descrita mediante un esquema OpenAPI 3.0.3 que puede importar en sus propias herramientas
- Los cambios incompatibles y las incorporaciones se registran en el registro de cambios de la API