Conceptos: 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 tiempoGET /v2/configLas tecnologías activas de la cuenta, sus impresoras, sus materiales con sus colores (en stock o no) y sus valores de precio por defecto: todo lo que ofrece el widget. Los tokens de widget también pueden leerlo.
3. Gestión de archivos
Suba, descargue y gestione sus archivos de modelo 3D (formatos STL, 3MF, OBJ, STEP):
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, OBJ o STEP válido, o si supera el límite de tamaño de archivo de la plataforma (50 MB por defecto). Los archivos STEP (.step/.stp) se teselan en el servidor con la misma configuración que usa OrcaSlicer (desviación lineal de 0,003 mm, desviación angular de 0,5 rad); todos los cuerpos de un ensamblaje se combinan y las longitudes se convierten a milímetros. 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 todas las tecnologías.
- 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', 'SLS', 'SLM' o 'MJF' ('RESIN' se acepta como un alias para 'SLA', y 'DMLS' y 'LPBF' para 'SLM'). 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) |
| mjf_layer_time | number | MJF: segundos por capa. La tasa de construcción publicada por HP es exactamente área del lecho x espesor de capa / tiempo de capa, así que este único número fija todo el tiempo de construcción; la geometría XY nunca interviene. La ficha técnica de la 4200 indica 7,55 s con una capa de 0,08 mm. |
| mjf_layer_thickness | number | MJF: espesor de capa (mm). HP entrega la serie 4200/5200 con 0,08 mm. |
| mjf_preheat_time | integer | MJF: tiempo de precalentamiento antes de iniciar la construcción (minutos). Se comparte entre todas las piezas de la construcción y se factura a prorrata. |
| mjf_cooling_time | integer | MJF: tiempo de enfriamiento tras la construcción (minutos). El pastel de polvo debe enfriarse antes de desempacar; se comparte entre todas las piezas y se factura a prorrata. |
| mjf_power | number | MJF: consumo medio de potencia de la máquina (W), usado en la línea de coste energético. |
| mjf_bb_multiplier | number | MJF: multiplicador sobre la parte del volumen de construcción (pastel) que se cobra a una pieza. 0 = no se cobra a la pieza por el polvo que desplaza en el pastel. |
| mjf_part_spacing | number | MJF: separación mínima entre piezas en el pastel de polvo (mm). Determina cuántas piezas caben en una construcción y, por tanto, la parte por pieza del precalentamiento, el enfriamiento y el polvo. |
| slm_laser_speed | number | SLM: velocidad de escaneo del láser (mm/s). La identidad de tasa de construcción del fabricante es espesor de capa x velocidad de escaneo x distancia de hatch x número de láseres, así que estos cuatro campos fijan juntos el tiempo de escaneo. |
| slm_hatch_spacing | number | SLM: distancia entre líneas de escaneo adyacentes (mm). |
| slm_layer_thickness | number | SLM: espesor de capa (mm). Las máquinas de lecho de polvo metálico suelen trabajar entre 0,02 y 0,06 mm. |
| slm_laser_count | integer | SLM: número de láseres. Un divisor de todo el término de escaneo, exactamente como en la fórmula de tasa de construcción del fabricante. NO acorta el recubrimiento de polvo. |
| slm_contour_count | integer | SLM: número de pasadas de contorno (borde) alrededor del perfil de cada capa. 0 = sin pasada de contorno. |
| slm_contour_speed | number | SLM: velocidad de la pasada de contorno (mm/s); normalmente más lenta que la velocidad de hatch. |
| slm_jump_speed | number | SLM: velocidad de reposicionamiento (salto) del láser entre vectores de escaneo (mm/s). |
| slm_recoat_time | number | SLM: segundos que necesita el recubridor por capa. La cifra de tasa de construcción del fabricante EXCLUYE el recubrimiento, así que, a diferencia del SLS, este valor no se puede deducir de una tasa publicada: mídalo en la máquina. |
| slm_preheat_time | integer | SLM: tiempo de precalentamiento de la cámara y de purga con gas inerte (minutos), compartido por todas las piezas de la placa. |
| slm_cooldown_time | integer | SLM: tiempo de enfriamiento tras la construcción (minutos), compartido por todas las piezas de la placa. |
| slm_power | number | SLM: consumo medio de potencia de la máquina (W), usado en la línea de coste energético. |
| slm_part_spacing | number | SLM: separación mínima entre piezas en la placa de construcción (mm). Las piezas SLM no se pueden apilar en Z -cada pieza va soldada a la placa-, así que este valor determina directamente el anidado en la placa y el número de piezas por construcción. |
| slm_build_plate_cost | number | SLM: coste de la placa de construcción por ciclo, repartido entre las piezas de ese ciclo. 0 = no se cobra. |
| slm_plate_removal_cost | number | SLM: coste de separar las piezas de la placa (electroerosión por hilo o sierra de cinta) por ciclo, repartido entre las piezas de ese ciclo. 0 = no se cobra. |
| slm_stress_relief_cost | number | SLM: coste del ciclo de horno de alivio de tensiones por construcción, repartido entre las piezas de ese ciclo. 0 = no se cobra. |
| slm_inert_gas_flow | number | SLM: consumo de argón o nitrógeno (litros por minuto) durante la construcción. 0 = no se cobra. |
| slm_inert_gas_cost_per_liter | number | SLM: precio de un litro de gas inerte, en la moneda del presupuesto. 0 = no se cobra. |
| slm_support_removal_cost_per_cm3 | number | SLM: coste de la retirada manual de soportes por cm3 de soporte. Los soportes metálicos soportan carga y calor y se cortan, no se despegan. 0 = no se cobra. |
| 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 | Nombre del color (p. ej., 'White', 'Black', '#FFFFFF'). Nota: en las tecnologías basadas en volumen (SLA, SLS, SLM, MJF) el color solo se aplica si 'post_processing' está fijado en 'painting' o '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). |
| mjf_refresh_factor | number | Ratio de renovación del polvo MJF (p. ej., 0,2 = 20 % de polvo nuevo). HP publica un ratio distinto por polvo, medido de forma diferente al ratio SLS del mismo polímero. Omítalo para recurrir a sls_refresh_factor. |
| mjf_fusing_agent_ml_per_cm3 | number | MJF: agente de fusión consumido por cm3 de volumen de pieza fusionada (mL/cm3). Medición del taller; 0 deja el coste de agentes fuera del presupuesto. |
| mjf_detail_agent_ml_per_cm2 | number | MJF: agente de detalle consumido por cm2 de área de contorno fusionada (mL/cm2). La misma medición, pero sobre el área de contorno; 0 lo deja fuera. |
| mjf_agent_cost_per_liter | number | MJF: precio del agente por litro en la moneda del presupuesto. 0 desactiva la línea de coste de agentes. |
| metal_powder_loss_factor | number | SLM: pérdida de tamizado y manipulación como fracción del volumen de pieza más soportes (0,05 = 5 %). El polvo metálico no utilizado se tamiza y se reutiliza, así que -a diferencia de SLS y MJF- el polvo circundante NO se factura. |
| 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, 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_rate | number | Tax rate percentage (0-100) |
| fixed_fee | number | Fixed fee per quote |
| minimum_price | number | Precio mínimo del presupuesto: un mínimo antes de impuestos para todo el presupuesto. Un presupuesto más barato se eleva hasta él; uno más caro no cambia. Por defecto, su precio mínimo para la tecnología del presupuesto; 0 = ninguno. |
| energy_cost_per_kwh | number | Energy cost per kWh |
| hollowing | string | Específico de SLA, SLS y MJF: 'solid', '2mm' o '3mm'. En SLA el valor por defecto es '2mm' cuando el vaciado SLA está activado en sus ajustes; en SLS y MJF se aplica lo mismo con su propio ajuste. Se ignora en FDM, donde la cavidad la define fill_density, y en SLM, donde una cavidad sellada atraparía polvo que no se puede evacuar. Las piezas SLS y MJF se vacían SIN orificio de evacuación: el polvo no fusionado permanece dentro, se factura a la densidad del lecho de polvo en lugar de la densidad sólida, y no es recuperable. |
| post_processing | string | Tecnologías basadas en volumen (SLA, SLS, SLM, MJF): 'standard', 'sanding', 'painting' o 'painted' (por defecto: 'standard'). El valor se registra en el presupuesto y se tarifica con las tarifas de postprocesado por tecnología de los Ajustes globales. Las tarifas SLM son más altas en toda la banda porque incluso 'standard' cubre el corte de la pieza de la placa de construcción y la limpieza de la superficie. |
| 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. |
| mjf_post_processing_fee_standard | number | MJF: tarifa aplicada cuando post_processing es 'standard'. |
| mjf_post_processing_fee_sanding | number | MJF: tarifa aplicada cuando post_processing es 'sanding'. |
| mjf_post_processing_fee_painting | number | MJF: tarifa aplicada cuando post_processing es 'painting'. |
| mjf_post_processing_fee_painted | number | MJF: tarifa aplicada cuando post_processing es 'painted'. |
| slm_post_processing_fee_standard | number | SLM: tarifa aplicada cuando post_processing es 'standard'. |
| slm_post_processing_fee_sanding | number | SLM: tarifa aplicada cuando post_processing es 'sanding'. |
| slm_post_processing_fee_painting | number | SLM: tarifa aplicada cuando post_processing es 'painting'. |
| slm_post_processing_fee_painted | number | SLM: tarifa aplicada cuando post_processing es 'painted'. |
| mjf_min_build_fill | number | MJF: parte mínima de la construcción que paga un pedido. 0 = la construcción se comparte con otros pedidos, 1 = el pedido paga la construcción completa. |
| 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 webhookPOST /v2/webhooks/{webhook_id}/deliveries/{delivery_id}/resend- Volver a enviar una entrega anterior, por ejemplo después de arreglar tu endpoint
Eventos admitidos: quote.completed, quote.failed, file.uploaded, file.deleted, job.status_changed, widget.added_to_cart, usage.alert. 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. Catálogo y stock
Gestiona las impresoras, materiales, colores, el stock por color, los precios y las tecnologías propios de la cuenta con un token de servidor. El widget lee el mismo catálogo, así que un cambio llega al formulario de presupuesto al momento. Los tokens de widget se rechazan y estas llamadas no cuentan para la cuota mensual de peticiones:
GET /v2/store/catalog- Todo lo que ofrece la cuenta, con el estado de preparación por tecnología y los colores que se agotanGET /v2/store/catalog/schema- Los formularios de impresora, material y precios del panel, con límites, unidades y textos de ayuda en el idioma pedidoPOST /v2/store/catalog/adopt- Copiar impresoras y materiales globales a la cuenta, con los colores, el precio y el stock inicial que elijasPOST /v2/store/catalog/materials- Crear un material, opcionalmente a partir de uno globalGET · PATCH · DELETE /v2/store/catalog/materials/{id}- Leer, cambiar o borrar un material, incluidos sus ajustes de stockPUT /v2/store/catalog/materials/{id}/colors- Sustituir la lista de colores de un material; se conserva el stock de los colores existentesGET · PATCH · DELETE /v2/store/catalog/printers/{id}- Leer, cambiar o borrar una impresoraGET · PATCH · DELETE /v2/store/catalog/pricing- Leer, cambiar o restablecer los precios; cambiar la moneda cambia la de la cuenta sin convertir los importesGET · PUT /v2/store/catalog/technologies- Qué tecnologías permite el plan y cuáles están activasGET · POST /v2/store/stock/movements- Registrar una entrada, un recuento o una merma, y listar el historial de stockPOST /v2/store/stock/orders- Descontar, devolver o comprobar el material de un pedido pagado, como mucho una vez por presupuesto
Los cuerpos PATCH llevan values y updated_at. values usa los mismos nombres de campo snake_case que la lista del catálogo (un nombre que el formulario no tiene se rechaza con 400); si el perfil cambió desde que lo leíste, la llamada responde 409 con error_key stale.
10. 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
- Tu plan fija un cupo de presupuestos, que se restablece en cada periodo de facturación, y un cupo de almacenamiento, que nunca se restablece y solo se libera al eliminar archivos
- 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.
11. Respuestas y errores
Las respuestas correctas tienen dos formas. Las llamadas de presupuesto, trabajo, detalle de presupuesto guardado, webhook, analítica, uso, cuota y configuración envuelven su contenido con success: true y el resultado en data. Las llamadas de archivo, ID de subida, usuario, subidas, lista de presupuestos, imprimibilidad y Catálogo y stock devuelven sus campos en el nivel superior. La referencia de la API muestra el esquema exacto de cada llamada. Las descargas de archivos y las exportaciones CSV devuelven el contenido del archivo tal cual.
{
"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
Todos los errores tienen la misma forma: una lista detail que nombra el parámetro o campo (loc, msg, code), un error_code como AUTH_001, un error_summary y, cuando es útil, recovery_suggestions y documentation_url. Decide según el estado HTTP y el error_code, no según el texto, que puede cambiar.
| 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 puede hacer esta llamada: una restricción de alcance, un origen o una dirección IP que no está en la lista del token (AUTH_004), o una asignación del plan agotada (RATE_002, con las cabeceras X-Quota-*). |
| 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.
12. 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