Cargando...

Documentación API

Documentación completa de las APIs REST de LayerHub para integración y desarrollo.

Base URL
/api/
Formato
JSON
Autenticación
Sesión PHP

Autenticación

POST /api/auth.php?action=login

Iniciar sesión de usuario.

{ "email": "usuario@ejemplo.com", "password": "contraseña" }
POST /api/auth.php?action=register

Registrar nuevo usuario.

{ "nombre": "Juan Pérez", "email": "usuario@ejemplo.com", "password": "contraseña" }

Explorar

GET /api/explorar.php?action=listar

Obtener lista de todos los modelos STL disponibles.

{ "success": true, "data": [ { "id": 12345678, "nombre": "Pieza Mecánica", "precio": 5000, "likes": 42 ... } ] }
POST /api/explorar.php?action=subir

Subir nuevo modelo STL (Multipart/form-data).

Calculadora

GET /api/api.php?action=listar

Obtener cotizaciones guardadas.

POST /api/api.php?action=guardar

Guardar nueva cotización.

{ "nombre": "Proyecto B", "material_id": 3, "impresora_id": 1, "peso_gramos": 200, "tiempo_horas": 10, "costo_material": 4000 ... }

Materiales

GET /api/materiales.php

Obtener todos los materiales (predefinidos + usuario).

POST /api/materiales.php

Crear nuevo material.

{ "nombre": "PETG Transparente", "tipo": "PETG", "precio_kilo": 25000, "color": "#00FF00" }
DELETE /api/materiales.php?id={id}

Eliminar material.

Impresoras

GET /api/impresoras.php

Obtener todas las impresoras (predefinidas + usuario).

POST /api/impresoras.php

Crear nueva impresora.

{ "nombre": "Prusa MK4", "consumo_kw": 0.4, "desgaste_hora": 600 }
DELETE /api/impresoras.php?id={id}

Eliminar impresora.

Estadísticas

GET /api/stats.php?action=all

Obtener KPIs, gráficos y actividad reciente para el dashboard.

{ "success": true, "kpis": { "total_quotes": 42, "total_revenue": 210000, "avg_margin": 30 }, "charts": { "financial": {...}, "materials": {...}, "printers": {...} }, "recent_activity": [...] }

Perfil

GET /api/perfil.php?action=get&username={username}

Obtener perfil de un usuario. Si se omite username, devuelve el perfil propio.

GET /api/perfil.php?action=modelos&user_id={id}

Modelos publicados por un usuario.

POST /api/perfil.php?action=update

Actualizar perfil propio. Acepta multipart/form-data para subir avatar y banner.

{ "nombre": "Juan Pérez", "biografia": "Maker apasionado", "ubicacion": "Santiago, Chile", "sitio_web": "https://ejemplo.com", "twitter": "@usuario", "instagram": "@usuario" }
POST /api/perfil.php?action=follow

Seguir a un usuario.

{ "user_id": 12345678 }
POST /api/perfil.php?action=unfollow

Dejar de seguir a un usuario.

{ "user_id": 12345678 }

Colecciones

POST /api/colecciones.php?action=crear

Crear nueva colección de modelos.

{ "nombre": "Mis favoritos", "descripcion": "Modelos que me gustan", "visibilidad": "PUBLIC" }
GET /api/colecciones.php?action=listar&user_id={id}

Listar colecciones de un usuario. Si se omite user_id, devuelve las del usuario autenticado.

GET /api/colecciones.php?action=detalle&id={id}

Detalle de una colección con todos sus modelos.

POST /api/colecciones.php?action=agregar_item

Agregar un modelo a una colección.

{ "coleccion_id": 11111111, "modelo_id": 22222222 }
POST /api/colecciones.php?action=eliminar_item

Quitar un modelo de una colección.

{ "coleccion_id": 11111111, "modelo_id": 22222222 }
POST /api/colecciones.php?action=eliminar

Eliminar una colección completa.

{ "id": 11111111 }

Comentarios y Valoraciones

GET /api/comentarios.php?action=listar&modelo_id={id}

Listar comentarios y valoración promedio de un modelo.

{ "success": true, "comentarios": [{ "id": 1, "comentario": "Excelente!", "autor": "Juan", "fecha_formateada": "18/02/2026 12:30" }], "valoracion": { "promedio": 4.5, "total": 12, "usuario": 5 } }
POST /api/comentarios.php?action=crear

Publicar comentario en un modelo. Otorga +1 crédito al comentador.

{ "modelo_id": 12345678, "comentario": "Imprimí en PLA+ y quedó perfecto" }
POST /api/comentarios.php?action=valorar

Valorar un modelo de 1 a 5 estrellas (upsert — actualiza si ya valoró).

{ "modelo_id": 12345678, "valoracion": 4 }
POST /api/comentarios.php?action=borrar

Borrar comentario propio.

{ "id": 99 }

Wallet (LayerCoins)

Sistema de créditos: Registro +100 · Like recibido +1 · Comentario +1 · Make subido +10 · Modelo subido +50 · Venta de modelo: precio en créditos.

GET /api/wallet.php?action=balance

Obtener saldo actual de créditos del usuario autenticado.

{ "success": true, "balance": 250 }
GET /api/wallet.php?action=history&limit=20&offset=0

Historial paginado de transacciones del usuario.

{ "success": true, "data": [ { "tipo": "GANANCIA", "origen": "LIKE", "monto": 1, "descripcion": "Like en tu modelo", "fecha": "2026-02-18 12:00:00" }, { "tipo": "GASTO", "origen": "COMPRA", "monto": -50, "descripcion": "Compra de modelo", "fecha": "2026-02-17 10:00:00" } ] }

Print Match

Marketplace para conectar usuarios que necesitan imprimir con makers que tienen impresoras disponibles.

GET /api/jobs.php?action=list&filter=open

Listar pedidos. filter: open (abiertos) o my_requests (mis pedidos).

GET /api/jobs.php?action=get&id={id}

Detalle de un pedido con todas sus ofertas.

POST /api/jobs.php?action=create

Crear pedido de impresión. Usa multipart/form-data para adjuntar el archivo STL.

titulo=Soporte escritorio&material=PLA&color=Negro&presupuesto=5000&archivo=[archivo.stl]
POST /api/jobs.php?action=bid

Enviar oferta para un pedido (solo makers).

{ "pedido_id": 11111111, "precio": 4500, "dias_entrega": 3, "mensaje": "Puedo imprimirlo en 3 días" }
POST /api/jobs.php?action=accept_bid

Aceptar una oferta (solo el dueño del pedido). El pedido pasa a estado EN_PROCESO.

{ "oferta_id": 99, "pedido_id": 11111111 }
POST /api/jobs.php?action=complete

Marcar pedido como completado. Transfiere los créditos al maker automáticamente.

{ "pedido_id": 11111111 }
GET /api/jobs.php?action=stats

Estadísticas globales del marketplace (makers activos, pedidos completados, tiempo promedio).

Notificaciones

GET /api/notificaciones.php?action=listar&limit=10

Listar notificaciones del usuario autenticado con conteo de no leídas.

{ "success": true, "notifications": [ { "id": 1, "type": "LIKE", "message": "Juan dio like a tu modelo", "link": "modelo.php?id=123", "is_read": false, "fecha": "18/02 12:30" } ], "unread": 3 }
POST /api/notificaciones.php?action=marcar

Marcar notificación(es) como leídas. Si id es 0 o se omite, marca todas.

{ "id": 0 }

Makes

Los "makes" son fotos de impresiones realizadas por la comunidad a partir de un modelo publicado.

GET /api/makes.php?action=listar&modelo_id={id}

Listar todas las fotos de impresión de un modelo.

POST /api/makes.php?action=subir

Subir foto de impresión. Usa multipart/form-data. Otorga +10 créditos al maker.

modelo_id=12345678&descripcion=Impreso en PLA negro&imagen=[archivo.jpg|png|webp]

Feed

GET /api/feed.php?action=obtener

Feed de actividad de los usuarios seguidos. Devuelve las últimas 20 acciones (uploads, likes, makes).

{ "success": true, "feed": [ { "type": "UPLOAD", "actor_name": "María", "target_name": "Soporte escritorio", "time_ago": "hace 3 h" }, { "type": "LIKE", "actor_name": "Carlos", "target_name": "Figura dragón", "time_ago": "hace 1 d" } ], "following_count": 5 }

Potencia tu Impresión 3D

Únete a la red más avanzada de makers en Chile. Sube modelos, comparte y obtén cotizaciones automáticas al instante.

Empezar Ahora