API
Mandás un archivo y una dirección, y Craftshop lo imprime, lo controla y lo despacha, avisándote por webhook en cada etapa.
Vista previa
PróximamenteCrear un pedido
curl https://api.craftshoplabs.com/v1/orders \
-H "Authorization: Bearer $CRAFTSHOP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MOD-0020",
"quantity": 1,
"material": "PETG Negro",
"ship_to": {
"name": "Ana Gómez",
"address": "Av. Corrientes 1234, Piso 3",
"city": "Ciudad Autónoma de Buenos Aires",
"postal_code": "C1043AAZ",
"country": "AR"
}
}'const response = await fetch('https://api.craftshoplabs.com/v1/orders', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.CRAFTSHOP_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'MOD-0020',
quantity: 1,
material: 'PETG Negro',
ship_to: {
name: 'Ana Gómez',
address: 'Av. Corrientes 1234, Piso 3',
city: 'Ciudad Autónoma de Buenos Aires',
postal_code: 'C1043AAZ',
country: 'AR',
},
}),
})
const order = await response.json()import os
import requests
api_key = os.environ["CRAFTSHOP_API_KEY"]
response = requests.post(
"https://api.craftshoplabs.com/v1/orders",
headers={"Authorization": f"Bearer {api_key}"},
json={
"model": "MOD-0020",
"quantity": 1,
"material": "PETG Negro",
"ship_to": {
"name": "Ana Gómez",
"address": "Av. Corrientes 1234, Piso 3",
"city": "Ciudad Autónoma de Buenos Aires",
"postal_code": "C1043AAZ",
"country": "AR",
},
},
)
order = response.json()let api_key = std::env::var("CRAFTSHOP_API_KEY")?;
let order: serde_json::Value = reqwest::Client::new()
.post("https://api.craftshoplabs.com/v1/orders")
.bearer_auth(api_key)
.json(&serde_json::json!({
"model": "MOD-0020",
"quantity": 1,
"material": "PETG Negro",
"ship_to": {
"name": "Ana Gómez",
"address": "Av. Corrientes 1234, Piso 3",
"city": "Ciudad Autónoma de Buenos Aires",
"postal_code": "C1043AAZ",
"country": "AR"
}
}))
.send()
.await?
.json()
.await?;const craftshop = new Craftshop({ apiKey: process.env.CRAFTSHOP_API_KEY })
const order = await craftshop.orders.create({
model: 'MOD-0020',
quantity: 1,
material: 'PETG Negro',
shipTo: {
name: 'Ana Gómez',
address: 'Av. Corrientes 1234, Piso 3',
city: 'Ciudad Autónoma de Buenos Aires',
postalCode: 'C1043AAZ',
country: 'AR',
},
}){
"type": "job.status_changed",
"job": "JOB-0142",
"order": "ord_7Hq2mX",
"status": "qc_passed",
"occurred_at": "2026-09-30T11:08:00-03:00"
}Qué hace
Endpoints para modelos y pedidos
Subís modelos, creás pedidos y consultás su estado con claves de API por organización.
Un webhook por etapa
En cola, imprimiendo, QC y enviado: cada cambio te llega como un evento, igual que lo muestra la app.
Un sandbox para probar
Probás el recorrido completo sin fabricar nada. La documentación, los SDKs y una CLI llegan después, generados del mismo contrato.
Dónde entra en el recorrido
Es otra puerta de entrada: en lugar de una venta en tu tienda, un pedido por API que sigue el mismo recorrido.
- Tienda (parte de este producto)
- Modelo
- Muestra de oro
- Trabajos (parte de este producto)
- Control de calidad (parte de este producto)
- Despacho (parte de este producto)
Hoy y lo que viene
Qué funciona hoy
- La app ya funciona sobre la capa de servicios que la API va a exponer.
- Pedidos, trabajos y envíos con un evento registrado en cada cambio.
Qué viene
- Claves de API por organización y endpoints para modelos y pedidos.
- Webhooks por etapa y un sandbox.
- Documentación, SDKs y una CLI.
Otros productos
- Agentes (MCP)Próximamente
Craftshop va a tener un servidor MCP: un agente como Claude entra con tu cuenta, dentro de una organización, y usa las mismas funciones que la app.
- Cotizador instantáneoPróximamente
Subís un archivo, ves el precio y el plazo al momento, pagás y Craftshop lo fabrica y te lo manda. Para makers, estudios de diseño y prototipos o series cortas.
Empezá con lo que ya funciona.
Creás tu marca, elegís quién imprime y conectás Shopify. Lo que viene se suma a la misma cuenta, sin cambiar cómo trabajás.