API Documentation

Documentación para desarrolladores

Versión: v1 | Base URL: https://api.m4kers.com/api/v1

🔑

Autenticación Requerida

La mayoría de endpoints requieren autenticación vía Bearer token.

AUTH

Autenticación

Authorization: Bearer <your_token>

Obtén tu token iniciando sesión:

POST /auth/login{"email": "[email protected]","password": "your_password"}

✓ Respuesta

{"token": "eyJhbGciOiJIUzI1NiIs...","user": {"id": 123, "username": "maker"}}
MODELS

Modelos 3D

GET/models

Listar todos los modelos (páginado)

GET/models/:slug

Obtener detalles de un modelo

POST/models

Crear un nuevo modelo (requiere autenticación)

{"title": "Mi Modelo","description": "Descripción...","category": "figures","license": "CC-BY","visibility": "public"}
PUT/models/:id

Actualizar un modelo (solo propietario)

DELETE/models/:id

Eliminar un modelo (solo propietario)

SHOP

Marketplace

GET/marketplace

Listar productos del marketplace

POST/marketplace

Crear un listing (solo makers)

{"title": "Figura impresa","description": "...","price": 25.00,"currency": "EUR","materials": ["PLA", "PETG"]}
PUT/listings/:id

Actualizar un listing

ORDERS

Pedidos

POST/orders/checkout

Procesar checkout y crear pedido

{"items": [{"listingId": 456, "quantity": 1}],"currency": "EUR"}
GET/orders

Listar mis pedidos (como buyer)

PATCH/orders/:id/status

Actualizar estado del pedido (solo maker)

{"status": "PROCESSING"}
QUOTES

Presupuestos

POST/quotes

Solicitar presupuesto de impresión

{"makerId": 789,"message": "Necesito imprimir este modelo...","modelSlug": "figura-voronoi"}
GET/quotes

Listar mis presupuestos

POST/quotes/:id/messages

Responder a un presupuesto (solo maker)

{"message": "Puedo hacerlo por 30€","price": 30.00,"currency": "EUR"}
ERRORS

Códigos de Error

400

Bad Request

Solicitud inválida

401

Unauthorized

Token inválido o ausente

403

Forbidden

Sin permisos

404

Not Found

Recurso no existe

429

Rate Limited

Demasiadas solicitudes

500

Server Error

Error del servidor

Formato de respuesta de error:

{"error": "Validation failed","message": "Invalid input data","details": {"field": "email"}}
💬

¿Necesitas ayuda?

Contacta con nuestro equipo de soporte: [email protected]