¡Bienvenido a la Documentación de Quote3D! ⏳

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/user Recupere los datos de su cuenta, su plan y sus cuotas mensuales: aquí se encuentran quotes_used, quotes_limit, storage_used, storage_limit y reset_date
  • GET /v2/user/uploads Liste todos los archivos que ha subido a su cuenta. Estos se listan del más reciente al más antiguo.
  • GET /v2/quota Recupere 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 siempre
  • GET /v2/usage Obtenga 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-idObtenga 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/fileSuba 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_id
  • DELETE /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}/asyncEndpoint 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/quotesRecupere todo su historial de cotizaciones con soporte de paginación
  • GET /v2/quotes/{quote_id}Obtenga información detallada sobre una cotización específica
  • DELETE /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ámetroTipoDescripción
technologystringOpcional. 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_idstringOpcional. ID de una impresora específica para usar en lugar de la impresora predeterminada.
quantitynumberOpcional. 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ámetroTipoDescripción
nozzle_diameternumberFDM nozzle diameter (mm). Drives extrusion width, so it changes both print time and material use.
support_materialbooleanEnable support generation. When omitted, the profile value is used.
bed_size_xnumberBuild volume X dimension (mm)
bed_size_ynumberBuild volume Y dimension (mm)
bed_size_znumberBuild volume Z dimension (mm)
print_speednumberDefault print speed (mm/s)
max_print_speednumberMaximum print speed (mm/s)
travel_speednumberTravel speed (mm/s)
first_layer_speednumberFirst layer speed (mm/s)
layer_heightnumberLayer height (mm)
min_layer_heightnumberMinimum layer height (mm)
max_layer_heightnumberMaximum layer height (mm)
perimetersnumberNumber of perimeters/walls
top_solid_layersnumberTop solid layers count
bottom_solid_layersnumberBottom solid layers count
min_wall_countnumberMinimum wall count
max_wall_countnumberMaximum wall count
fill_densitynumberInfill density (0-100%)
infill_patternstringPatró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_anglenumberSupport overhang angle (degrees)
support_densitynumberSupport density (0-100%)
brim_enabledbooleanEnable brim generation for FDM quotes
brim_widthnumberBrim width in millimeters when brim is enabled
acceleration_printnumberPrint acceleration (mm/s²)
acceleration_travelnumberTravel acceleration (mm/s²)
acceleration_retractionnumberRetraction acceleration (mm/s²)
acceleration_outer_wallnumberOuter wall acceleration (mm/s²). 0 uses acceleration_print.
acceleration_inner_wallnumberInner wall acceleration (mm/s²). 0 uses acceleration_print.
acceleration_sparse_infillnumberSparse infill acceleration (mm/s²). 0 uses acceleration_print.
acceleration_solid_infillnumberSolid infill acceleration (mm/s²). 0 uses acceleration_print.
acceleration_top_surfacenumberTop surface acceleration (mm/s²). 0 uses acceleration_print.
acceleration_bridgenumberBridge acceleration (mm/s²). 0 uses acceleration_print.
acceleration_first_layernumberFirst layer acceleration (mm/s²). 0 uses acceleration_print.
retraction_minimum_travelnumberTravel moves shorter than this do not retract (mm). Reference default 1.
z_hop_mmnumberNozzle lift before a travel move (mm). 0 disables it. Reference default 0.4.
bed_exclude_xnumberUnusable bed edge margin on X (mm), removed from the packing area.
bed_exclude_ynumberUnusable bed edge margin on Y (mm), removed from the packing area.
jerk_printnumberPrint jerk (mm/s)
jerk_travelnumberTravel jerk (mm/s)
jerk_retractionnumberRetraction jerk (mm/s)
min_hotend_tempnumberMinimum hotend temperature (°C)
max_hotend_tempnumberMaximum hotend temperature (°C)
min_bed_tempnumberMinimum bed temperature (°C)
max_bed_tempnumberMaximum bed temperature (°C)
hourly_costnumberMachine hourly cost
ESPECÍFICO DE SLA
sla_exposure_timenumberSLA: Tiempo de exposición por capa (segundos)
sla_bottom_exposure_timenumberSLA: Tiempo de exposición base (segundos)
sla_bottom_layer_countnumberSLA: Número de capas inferiores
sla_lift_distancenumberSLA: Distancia de elevación (mm)
sla_lift_speednumberSLA: Velocidad de elevación (mm/min)
sla_retract_speednumberSLA: Velocidad de retracción (mm/min)
sla_cleaning_costnumberSLA: Costo fijo de limpieza por impresión (IPA, consumibles)
sla_pad_enabledbooleanSLA: imprimir el modelo sobre una base/raft. Desactivado por defecto; la resina de la base se cuenta como material de soporte.
sla_pad_wall_thicknessnumberSLA: grosor de la pared de la base en mm. Alias: sla_pad_height.
sla_pad_wall_heightnumberSLA: altura de la pared de la base en mm (borde elevado alrededor de la cavidad de la base).
sla_pad_wall_slopenumberSLA: inclinación de la pared de la base en grados (45-90). La base se estrecha hacia abajo con este ángulo.
sla_pad_brim_sizenumberSLA: tamaño del brim de la base en mm. Alias: sla_pad_expansion.
sla_pad_max_merge_distancenumberSLA: 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_diameternumberSLA: diámetro frontal (punta) de la cabeza del soporte en mm.
sla_support_head_penetrationnumberSLA: profundidad con la que la cabeza del soporte se hunde en la superficie del modelo (mm).
sla_support_head_widthnumberSLA: longitud de la varilla de la cabeza del soporte en mm.
sla_support_pillar_diameternumberSLA: diámetro del pilar de soporte en mm. Determina la mayor parte del volumen de resina del soporte.
sla_support_base_diameternumberSLA: diámetro de la base (pie) del pilar de soporte en mm.
sla_support_base_heightnumberSLA: altura de la base (pie) del pilar de soporte en mm.
sla_support_object_elevationnumberSLA: 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_anglenumberSLA: pendiente del puente en grados utilizada al trazar los soportes. No es lo mismo que support_overhang_angle.
sla_support_max_pillar_link_distancenumberSLA: los pilares que estén más alejados que este valor no estarán entrelazados (mm).
sla_support_max_bridge_lengthnumberSLA: puente lateral más largo que un cabezal de soporte puede realizar para llegar a la plataforma (mm).
sla_support_max_bridges_on_pillarnumberSLA: cuántos puentes acepta un solo pilar.
sla_support_points_densitynumberSLA: 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_compensationnumberSLA: 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_widthnumberSLA: 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_layersnumberSLA: 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_speednumberSLS: Velocidad del láser (mm/s)
sls_hatch_spacingnumberSLS: Espaciado de la trama (mm)
sls_layer_thicknessnumberSLS: Grosor de la capa (mm)
sls_layer_recoat_timenumberSLS: Tiempo de recubrimiento de la capa (segundos)
sls_preheat_timenumberSLS: Tiempo de precalentamiento (min)
sls_cooling_timenumberSLS: Tiempo de enfriamiento (min)
sla_light_off_delaynumberSLA: Light-off delay for each layer (seconds).
sla_transition_layer_countnumberSLA: Number of transition layers.
sla_drain_holesarraySLA: Drainage holes configuration to prevent suction cups.
sls_bb_multipliernumberSLS: 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_countnumberSLS: 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_speednumberSLS: velocidad de escaneo de contorno en mm/s. 0 significa que el contorno se escanea a la velocidad sls_laser_speed.
sls_jump_speednumberSLS: 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_spacingnumberSLS: 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_flownumberMaximum 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ámetroTipoDescripción
filament_typestringFilament type (PLA, ABS, PETG, etc.)
colorstringOpcional: 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'.
densitynumberMaterial density (g/cm³)
diameternumberFilament diameter (mm)
filament_flow_rationumberMultiplicador 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_densitynumberSLS: Bulk density of loose powder in g/cm³. Used for reusable powder and refresh calculations.
temperaturenumberPrint temperature (°C)
print_temp_minnumberMinimum print temperature (°C)
print_temp_maxnumberMaximum print temperature (°C)
bed_temperaturenumberBed temperature (°C)
bed_temp_minnumberMinimum bed temperature (°C)
bed_temp_maxnumberMaximum bed temperature (°C)
fan_speednumberFan speed (0-100%)
min_fan_speednumberMinimum fan speed (0-100%)
retraction_distancenumberRetraction distance (mm)
retraction_speednumberRetraction speed (mm/s)
slow_down_min_speednumberLower speed bound for layer cooling (mm/s). Reference default 20.
retraction_minimum_travelnumberOverrides the printer value for this material (mm).
z_hop_mmnumberOverrides the printer value for this material (mm).
price_per_kgnumberPrice per kilogram
price_per_gramnumberPrice per gram
support_cost_multipliernumberSupport material cost multiplier
sls_refresh_factornumberSLS powder refresh rate ratio (e.g. 0.3 = 30% fresh powder).
max_volumetric_flownumberMaterial specific volumetric flow limit in mm³/s.
min_layer_timenumberMinimum 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ámetroTipoDescripción
currencystringCurrency code (USD, TRY, EUR, GBP, JPY, CNY, RUB). Defaults to your dashboard preference.
tax_ratenumberTax rate percentage (0-100)
fixed_feenumberFixed fee per quote
energy_cost_per_kwhnumberEnergy cost per kWh
hollowingstringEspecí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_processingstringEspecí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_standardnumberSLA standard post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sla_post_processing_fee_sandingnumberSLA sanding post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sla_post_processing_fee_paintingnumberSLA painting post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sla_post_processing_fee_paintednumberSLA painted post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sls_post_processing_fee_standardnumberSLS standard post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sls_post_processing_fee_sandingnumberSLS sanding post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sls_post_processing_fee_paintingnumberSLS painting post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
sls_post_processing_fee_paintednumberSLS painted post-processing fee per part. Overrides the settings value; post_processing selects which one applies.
enable_batch_systembooleanEnable/disable batch calculation system (default: true)
sls_min_build_fillnumberSLS: 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_factornumberFactor for calculating material wastage (e.g. 1.10 for 10% wastage).
volume_discount_tiersarrayQuantity 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:

  1. Parámetros de Solicitud - Los valores que proporciona explícitamente en la solicitud de API tienen la prioridad más alta
  2. Perfil de Usuario - Si tiene un perfil específico del usuario establecido como predeterminado, se utiliza a continuación
  3. 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 webhook
  • GET /v2/webhooks - Listar todos sus webhooks
  • GET /v2/webhooks/{webhook_id} - Obtener los detalles del webhook y las estadísticas de entrega
  • PUT /v2/webhooks/{webhook_id} - Actualizar la configuración del webhook
  • DELETE /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 materiales
  • GET /v2/analytics/popular - Visualice sus materiales y configuraciones de impresora más populares
  • GET /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.

EstadoSignificado
400El 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.
401Falta el token de la API, está mal formado, ha expirado o ha sido revocado.
403El 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.
404El archivo, presupuesto, trabajo o webhook solicitado no existe o no pertenece a su cuenta.
429Se ha excedido el límite de tasa (rate limit). Lea el encabezado Retry-After y espere antes de reintentar.
500Un 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