¡Bienvenido a la Documentación de Quote3D! ⏳

Conceptos Fundamentales

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 de la API requieren autenticación mediante su token de API de Quote3D. Para llamadas externas, utilice la ruta base https://api.quote3d.com/v2. Envíelo ya sea como Authorization: Bearer <token> o X-API-Token. Genere los tokens desde su panel de control de Quote3D y manténgalos en secreto.

Recordatorio: Mantén tus API tokens seguros. Nunca los compartas públicamente ni los incluyas en el control de versiones.

2. Gestión de Cuenta

Administra tu cuenta, cargas y estadísticas de uso a través de endpoints dedicados:

  • GET /v2/user Obtén los detalles de tu cuenta
  • GET /v2/user/uploads Lista todos los archivos que has subido a tu cuenta. Estos se listan del más reciente al más antiguo.
  • GET /v2/quota Obtén tus límites de cuota actuales y uso para cotizaciones y almacenamiento
  • GET /v2/usage Obtén análisis de uso detallados incluyendo estadísticas de endpoints, uso de materiales y tendencias basadas en el tiempo

3. Gestión de archivos

Sube, descarga y gestiona tus archivos de modelo 3D (formatos STL, 3MF, OBJ):

  • Obtén un upload_id temporal para subir un nuevo archivo con la ruta de subida pública.: GET /v2/file/upload-id - Obtén un upload_id temporal para subir un nuevo archivo con la ruta de subida pública.
  • Esta ruta NO requiere autenticación. Utilízala en tu lado del cliente para subir archivos directamente a nuestro almacenamiento.: POST /v2/file/public/{upload_id} - Esta ruta NO requiere autenticación. Utilízala en tu lado del cliente para subir archivos directamente a nuestro almacenamiento.

    Utilizar la ruta de Subida Pública te permite evitar enrutar archivos grandes a través de tu servidor backend. Esto previene exponer tu token de API y reduce la carga del servidor.

  • Sube un archivo desde tu lado del servidor (requiere autenticación, utiliza esto cuando quieras subir desde tu backend): POST /v2/fileSube un archivo desde tu lado del servidor (requiere autenticación, utiliza esto cuando quieras subir desde tu backend)
  • Descarga un archivo utilizando su file_id: GET /v2/file/{file_id}Descarga un archivo utilizando su file_id
  • Elimina un archivo que ya no necesitas: DELETE /v2/file/{file_id}Elimina un archivo que ya no necesitas

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

Genera cotizaciones instantáneas para tus impresiones 3D y gestiona el historial de cotizaciones:

  • Inicia el cálculo asíncrono de un presupuesto para un modelo 3D. Devuelve un ID de trabajo; utiliza el endpoint de trabajos para obtener el resultado completado.: POST /v2/file/quote/{file_id}Inicia el cálculo asíncrono de un presupuesto para un modelo 3D. Devuelve un ID de trabajo; utiliza el endpoint de trabajos para obtener el resultado completado.
  • Endpoint asíncrono alternativo para generar presupuestos. Devuelve un ID de trabajo que puedes usar para verificar el estado y obtener el resultado completado.: POST /v2/file/quote/{file_id}/asyncEndpoint asíncrono alternativo para generar presupuestos. Devuelve un ID de trabajo que puedes usar para verificar el estado y obtener el resultado completado.
  • Verifica el estado de un trabajo de cotización asíncrono. Devuelve el porcentaje de progreso y el estado de finalización.: GET /v2/jobs/{job_id}Verifica el estado de un trabajo de cotización asíncrono. Devuelve el porcentaje de progreso y el estado de finalización.
  • Recupera todo tu historial de cotizaciones con soporte de paginación: GET /v2/quotesRecupera todo tu historial de cotizaciones con soporte de paginación
  • Obtén información detallada sobre una cotización específica: GET /v2/quotes/{quote_id}Obtén información detallada sobre una cotización específica
  • Elimina una cotización de tu historial: DELETE /v2/quotes/{quote_id}Elimina una cotización de tu 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, puedes proporcionar una configuración personalizada en el cuerpo de la solicitud. Cualquier parámetro que no especifiques se tomará automáticamente de la configuración de tu Perfil de Rebanado en el Panel de Control. Esto te permite anular configuraciones específicas por cotización mientras mantienes los valores predeterminados para otras.

Importante: Si no proporcionas un parámetro en tu solicitud, la API utilizará el valor de tu Perfil de Rebanado en el Panel de Control (Perfil de Impresora, Perfil de Material o Configuración Global). Asegúrate de configurar tus perfiles predeterminados en el Panel de Control para obtener cotizaciones consistentes. También puedes configurar todos tus parámetros en un Perfil de Impresora específico en el Panel de Control y simplemente pasar su 'printer_id' en tu 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.

Parámetros Raíz

ParámetroTipoDescripción
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 tu Perfil de Impresora si no se proporcionan.

ParámetroTipoDescripción
bed_size_xnumberBuild volume X dimension (mm)
bed_size_ynumberBuild volume Y dimension (mm)
bed_size_znumberBuild volume Z dimension (mm)
nozzle_diameternumberNozzle diameter (mm)
nozzle_countnumberNumber of nozzles
print_speednumberDefault print speed (mm/s)
max_print_speednumberMaximum print speed (mm/s)
travel_speednumberTravel speed (mm/s)
first_layer_speednumberFirst layer speed (mm/s)
layer_heightnumberLayer height (mm)
min_layer_heightnumberMinimum layer height (mm)
max_layer_heightnumberMaximum layer height (mm)
perimetersnumberNumber of perimeters/walls
top_solid_layersnumberTop solid layers count
bottom_solid_layersnumberBottom solid layers count
min_wall_countnumberMinimum wall count
max_wall_countnumberMaximum wall count
fill_densitynumberInfill density (0-100%)
infill_patternstringInfill pattern. Options: rectilinear, alignedrectilinear, zigzag, crosszag, lockedzag, line, grid, triangles, trihexagon, cubic, adaptivecubic, supportcubic, honeycomb, honeycomb3d, lateralhoneycomb, gyroid, monotonic, monotonicline, lightning. Default: rectilinear
support_materialbooleanEnable support material
support_overhang_anglenumberSupport overhang angle (degrees)
support_densitynumberSupport density (0-100%)
acceleration_printnumberPrint acceleration (mm/s²)
acceleration_travelnumberTravel acceleration (mm/s²)
acceleration_retractionnumberRetraction acceleration (mm/s²)
jerk_printnumberPrint jerk (mm/s)
jerk_travelnumberTravel jerk (mm/s)
jerk_retractionnumberRetraction jerk (mm/s)
min_hotend_tempnumberMinimum hotend temperature (°C)
max_hotend_tempnumberMaximum hotend temperature (°C)
min_bed_tempnumberMinimum bed temperature (°C)
max_bed_tempnumberMaximum bed temperature (°C)
hourly_costnumberMachine hourly cost
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/s)
sla_retract_speednumberSLA: Velocidad de retracción (mm/s)
sla_cleaning_costnumberSLA: Costo fijo de limpieza por impresión (IPA, consumibles)
ESPECÍFICO PARA SLS
sls_laser_speednumberSLS: Velocidad del láser (mm/s)
sls_hatch_spacingnumberSLS: Distancia entre líneas de escaneo (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 (segundos)
sls_cooling_timenumberSLS: Tiempo de enfriamiento (segundos)
sla_light_off_delaynumberSLA: Light-off delay for each layer (seconds).
sla_transition_layer_countnumberSLA: Number of transition layers.
sla_drain_holesarraySLA: Drainage holes configuration to prevent suction cups.
sls_bb_multipliernumberSLS Bounding Box cost multiplier.
max_volumetric_flownumberMaximum volumetric flow rate in mm³/s.

material_config

Parámetros de configuración del material. Todos los campos son opcionales y utilizarán los valores predeterminados de tu 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 tu Perfil de Material en el Panel de Control. Cuando especificas 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: Para cálculos de costos precisos, asegúrate de establecer tanto price_per_kg como price_per_gram en tu Perfil de Material. La API utiliza estos valores para calcular los costos del material en función del peso real del filamento utilizado en la impresión. Si estos valores no están configurados en tu perfil, puedes anularlos en la solicitud de la API.

Ejemplo: Si tienes un perfil de material "PLA" en tu Panel de Control con price_per_kg: 20.0 y price_per_gram: 0.02, simplemente puedes enviar {"filament_type": "PLA"} en tu 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)
powder_bulk_densitynumberSLS: Bulk density of loose powder in g/cm³. Used for reusable powder and refresh calculations.
temperaturenumberPrint temperature (°C)
print_temp_minnumberMinimum print temperature (°C)
print_temp_maxnumberMaximum print temperature (°C)
bed_temperaturenumberBed temperature (°C)
bed_temp_minnumberMinimum bed temperature (°C)
bed_temp_maxnumberMaximum bed temperature (°C)
fan_speednumberFan speed (0-100%)
min_fan_speednumberMinimum fan speed (0-100%)
retraction_distancenumberRetraction distance (mm)
retraction_speednumberRetraction speed (mm/s)
price_per_kgnumberPrice per kilogram
price_per_gramnumberPrice per gram
support_cost_multipliernumberSupport material cost multiplier
sls_refresh_factornumberSLS Powder Refresh cost factor (e.g. 1.2).
max_volumetric_flownumberMaterial specific volumetric flow limit in mm³/s.
min_layer_timenumberMinimum layer time in seconds for cooling.

quote_config

Parámetros de configuración de precios de la cotización. Todos los campos son opcionales y utilizarán los valores predeterminados de tu Configuración Global si no se proporcionan. La moneda predeterminada es la de tu 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 para SLA/Resina: 'sólido', '2mm' o '3mm' (Predeterminado: 'sólido')
post_processingstringEspecífico para SLA/SLS: 'standard', 'sanding', 'painting' o 'painted' (Predeterminado: 'standard')
enable_batch_systembooleanEnable/disable batch calculation system (default: true)
material_wastage_factornumberFactor for calculating material wastage (e.g. 1.10 for 10% wastage).

Consejo: Las cotizaciones se guardan automáticamente en tu cuenta. Puedes 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

Recibe notificaciones en tiempo real cuando se producen eventos en tu cuenta:

  • POST /v2/webhooks - Crear un nuevo punto final de webhook
  • GET /v2/webhooks - Listar todos tus 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, job.status_changed, widget.added_to_cart, file.uploaded. Los webhooks incluyen firmas HMAC-SHA256 para la verificación de seguridad.

8. Analítica e Informes

Obtén información sobre el uso de tu API y las estadísticas de cotizaciones:

  • GET /v2/analytics/quotes - Obtén estadísticas completas de cotizaciones, incluyendo el total de cotizaciones, precios promedio y tendencias de uso de materiales
  • GET /v2/analytics/popular - Visualiza tus 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 - Exporta tus 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
  • 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

Mejor Práctica: Implemente un retroceso exponencial al manejar errores de limitación de velocidad para evitar sobrecargar la API.

10. API RESTful con versiones

  • Todos los endpoints están versionados (ej., /v2/)
  • Utiliza métodos HTTP estándar:
  • Sigue los estándares OpenAPI 3.1.0 para el esquema y la documentación
  • El registro de cambios de la API está disponible en: