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/userObtén los detalles de tu cuentaGET /v2/user/uploadsLista todos los archivos que has subido a tu cuenta. Estos se listan del más reciente al más antiguo.GET /v2/quotaObtén tus límites de cuota actuales y uso para cotizaciones y almacenamientoGET /v2/usageObté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/file— Sube 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}/async— Endpoint 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/quotes— Recupera 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ámetro | Tipo | Descripción |
|---|---|---|
| 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 tu Perfil de Impresora si no se proporcionan.
| Parámetro | Tipo | Descripción |
|---|---|---|
| bed_size_x | number | Build volume X dimension (mm) |
| bed_size_y | number | Build volume Y dimension (mm) |
| bed_size_z | number | Build volume Z dimension (mm) |
| nozzle_diameter | number | Nozzle diameter (mm) |
| nozzle_count | number | Number of nozzles |
| print_speed | number | Default print speed (mm/s) |
| max_print_speed | number | Maximum print speed (mm/s) |
| travel_speed | number | Travel speed (mm/s) |
| first_layer_speed | number | First layer speed (mm/s) |
| layer_height | number | Layer height (mm) |
| min_layer_height | number | Minimum layer height (mm) |
| max_layer_height | number | Maximum layer height (mm) |
| perimeters | number | Number of perimeters/walls |
| top_solid_layers | number | Top solid layers count |
| bottom_solid_layers | number | Bottom solid layers count |
| min_wall_count | number | Minimum wall count |
| max_wall_count | number | Maximum wall count |
| fill_density | number | Infill density (0-100%) |
| infill_pattern | string | Infill pattern. Options: rectilinear, alignedrectilinear, zigzag, crosszag, lockedzag, line, grid, triangles, trihexagon, cubic, adaptivecubic, supportcubic, honeycomb, honeycomb3d, lateralhoneycomb, gyroid, monotonic, monotonicline, lightning. Default: rectilinear |
| support_material | boolean | Enable support material |
| support_overhang_angle | number | Support overhang angle (degrees) |
| support_density | number | Support density (0-100%) |
| acceleration_print | number | Print acceleration (mm/s²) |
| acceleration_travel | number | Travel acceleration (mm/s²) |
| acceleration_retraction | number | Retraction acceleration (mm/s²) |
| jerk_print | number | Print jerk (mm/s) |
| jerk_travel | number | Travel jerk (mm/s) |
| jerk_retraction | number | Retraction jerk (mm/s) |
| min_hotend_temp | number | Minimum hotend temperature (°C) |
| max_hotend_temp | number | Maximum hotend temperature (°C) |
| min_bed_temp | number | Minimum bed temperature (°C) |
| max_bed_temp | number | Maximum bed temperature (°C) |
| hourly_cost | number | Machine hourly cost |
| 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/s) |
| sla_retract_speed | number | SLA: Velocidad de retracción (mm/s) |
| sla_cleaning_cost | number | SLA: Costo fijo de limpieza por impresión (IPA, consumibles) |
| ESPECÍFICO PARA SLS | ||
| sls_laser_speed | number | SLS: Velocidad del láser (mm/s) |
| sls_hatch_spacing | number | SLS: Distancia entre líneas de escaneo (mm) |
| sls_layer_thickness | number | SLS: Grosor de la capa (mm) |
| sls_layer_recoat_time | number | SLS: Tiempo de recubrimiento de la capa (segundos) |
| sls_preheat_time | number | SLS: Tiempo de precalentamiento (segundos) |
| sls_cooling_time | number | SLS: Tiempo de enfriamiento (segundos) |
| sla_light_off_delay | number | SLA: Light-off delay for each layer (seconds). |
| sla_transition_layer_count | number | SLA: Number of transition layers. |
| sla_drain_holes | array | SLA: Drainage holes configuration to prevent suction cups. |
| sls_bb_multiplier | number | SLS Bounding Box cost multiplier. |
| max_volumetric_flow | number | Maximum volumetric flow rate in mm³/s. |
material_config
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ámetro | Tipo | Descripción |
|---|---|---|
| filament_type | string | Filament type (PLA, ABS, PETG, etc.) |
| color | string | Opcional: Nombre del color (p. ej., 'Blanco', 'Negro', '#FFFFFF'). Nota: Para las tecnologías SLA/SLS, el color solo se aplica si 'post_processing' se establece en 'painted'. |
| density | number | Material density (g/cm³) |
| diameter | number | Filament diameter (mm) |
| powder_bulk_density | number | SLS: Bulk density of loose powder in g/cm³. Used for reusable powder and refresh calculations. |
| temperature | number | Print temperature (°C) |
| print_temp_min | number | Minimum print temperature (°C) |
| print_temp_max | number | Maximum print temperature (°C) |
| bed_temperature | number | Bed temperature (°C) |
| bed_temp_min | number | Minimum bed temperature (°C) |
| bed_temp_max | number | Maximum bed temperature (°C) |
| fan_speed | number | Fan speed (0-100%) |
| min_fan_speed | number | Minimum fan speed (0-100%) |
| retraction_distance | number | Retraction distance (mm) |
| retraction_speed | number | Retraction speed (mm/s) |
| price_per_kg | number | Price per kilogram |
| price_per_gram | number | Price per gram |
| support_cost_multiplier | number | Support material cost multiplier |
| sls_refresh_factor | number | SLS Powder Refresh cost factor (e.g. 1.2). |
| max_volumetric_flow | number | Material specific volumetric flow limit in mm³/s. |
| min_layer_time | number | Minimum layer time in seconds for cooling. |
quote_config
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ámetro | Tipo | Descripción |
|---|---|---|
| currency | string | Currency code (USD, TRY, EUR, GBP, JPY, CNY, RUB). Defaults to your dashboard preference. |
| tax_rate | number | Tax rate percentage (0-100) |
| fixed_fee | number | Fixed fee per quote |
| energy_cost_per_kwh | number | Energy cost per kWh |
| hollowing | string | Específico para SLA/Resina: 'sólido', '2mm' o '3mm' (Predeterminado: 'sólido') |
| post_processing | string | Específico para SLA/SLS: 'standard', 'sanding', 'painting' o 'painted' (Predeterminado: 'standard') |
| enable_batch_system | boolean | Enable/disable batch calculation system (default: true) |
| material_wastage_factor | number | Factor for calculating material wastage (e.g. 1.10 for 10% wastage). |
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:
- 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
Recibe notificaciones en tiempo real cuando se producen eventos en tu cuenta:
POST /v2/webhooks- Crear un nuevo punto final de webhookGET /v2/webhooks- Listar todos tus webhooksGET /v2/webhooks/{webhook_id}- Obtener los detalles del webhook y las estadísticas de entregaPUT /v2/webhooks/{webhook_id}- Actualizar la configuración del webhookDELETE /v2/webhooks/{webhook_id}- Eliminar un webhook
Eventos admitidos: quote.completed, quote.failed, 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 materialesGET /v2/analytics/popular- Visualiza tus 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- 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: