Saltar al contenido
pic2CAD

Para desarrolladores

De imagen a CAD, desde tu propio código

Convierte tus imágenes en bloques CAD, listos como DXF, SVG y PNG, directamente desde tus propios scripts y herramientas. 0.75 € planos por conversión, tu primera clave viene con 5 gratis, y es su propio monedero prepago, separado de tus créditos de la web.

Empieza en 3 pasos

1. Crea tu clave

Abre /account/api y crea una clave. Solo pide un correo, nada más, y te da 5 conversiones gratis para probarlo.

2. Envía una imagen

Haz un POST con un JPEG, PNG o WebP de hasta 10 MB. Una imagen por solicitud, 0.75 € por conversión.

3. Consulta y descarga

Comprueba el resultado cada 3 a 5 segundos. Cuando esté listo, descarga el DXF, el SVG y el PNG, gratis y tantas veces como quieras.

curl
curl -X POST https://pic2cad.ai/api/v1/convert \
  -H "Authorization: Bearer p2c_live_..." \
  -F "image_file=@chair.jpg"

Referencia técnica

Con todo lo de arriba ya puedes empezar. Abre una sección de abajo solo si necesitas el detalle.

El ciclo completo en tres llamadas: iniciar una conversión, consultarla, descargar el archivo.

curl
curl -X POST https://pic2cad.ai/api/v1/convert \
  -H "Authorization: Bearer $PIC2CAD_API_KEY" \
  -F "image_file=@chair.jpg"
# -> 202 { "id": "cm3x...", "status": "processing", "balance_eur": 24.25, ... }
#    X-Api-Charge-Cents: 75

curl https://pic2cad.ai/api/v1/conversions/cm3x... \
  -H "Authorization: Bearer $PIC2CAD_API_KEY"
# -> { "id": "cm3x...", "status": "complete", "files": { "dxf": "..." }, ... }

curl -L -o chair.dxf \
  https://pic2cad.ai/api/v1/conversions/cm3x.../files/dxf \
  -H "Authorization: Bearer $PIC2CAD_API_KEY"
python
import os, time, requests

API = "https://pic2cad.ai/api/v1"
HEAD = {"Authorization": f"Bearer {os.environ['PIC2CAD_API_KEY']}"}

with open("chair.jpg", "rb") as f:
    job = requests.post(f"{API}/convert", headers=HEAD,
                        files={"image_file": f}).json()

while True:
    time.sleep(5)
    state = requests.get(f"{API}/conversions/{job['id']}", headers=HEAD).json()
    if state["status"] != "processing":
        break

if state["status"] == "complete":
    dxf = requests.get(state["files"]["dxf"], headers=HEAD)
    open("chair.dxf", "wb").write(dxf.content)
else:
    print(state["error"]["message"])
node
import fs from "node:fs/promises";

const API = "https://pic2cad.ai/api/v1";
const head = { Authorization: `Bearer ${process.env.PIC2CAD_API_KEY}` };

const form = new FormData();
form.append("image_file", new Blob([await fs.readFile("chair.jpg")]), "chair.jpg");

const job = await fetch(`${API}/convert`, { method: "POST", headers: head, body: form })
  .then((r) => r.json());

let state;
do {
  await new Promise((r) => setTimeout(r, 5000));
  state = await fetch(`${API}/conversions/${job.id}`, { headers: head }).then((r) => r.json());
} while (state.status === "processing");

if (state.status === "complete") {
  const dxf = await fetch(state.files.dxf, { headers: head });
  await fs.writeFile("chair.dxf", Buffer.from(await dxf.arrayBuffer()));
}

Inicia una conversión. Devuelve 202 con el id de la conversión al momento; el trabajo se ejecuta en segundo plano. Envía la imagen como multipart/form-data en el campo image_file, con cualquier opción como campo de formulario adicional.

CampoTipoPor defectoQué hace
image_filefilerequiredLa imagen, como multipart/form-data. JPEG, PNG o WebP, hasta 10 MB.
titlestringProject NNNombre de la conversión. Se convierte en el nombre del archivo al descargarlo.
detailedbooleantrueMáximo detalle. Pon false para un trazo simplificado sin detalle facial.
modestringaccurateaccurate conserva la pose y la perspectiva de tu imagen. elevation redibuja el sujeto como un bloque ortográfico plano para planos.
viewstringautoSolo en modo elevation: auto, front, side, back, top. Se ignora en modo accurate.
aspectstring3:4Encuadre del dibujo: 1:1, 3:4, 4:3, 9:16, 16:9.
height_mminteger1700 / 1000Altura real del sujeto en milímetros. El DXF sale a esa escala. Si se omite, el modo elevation usa 1700 por defecto y el modo accurate, 1000 (un bloque de referencia fijo).
json
{
  "id": "cm3x...",
  "status": "processing",
  "balance_eur": 24.25,
  "conversions_remaining": 32
}

La cabecera X-Api-Charge-Cents indica lo que esta solicitud ha descontado de tu saldo de API, en céntimos: 75 para una conversión normal.

Consulta esto hasta que status sea un estado final. Puede ser processing, complete o failed. El objeto files solo aparece cuando los tres formatos están listos.

json
{
  "id": "cm3x...",
  "status": "complete",
  "title": "Oak chair",
  "files": {
    "dxf": "https://pic2cad.ai/api/v1/conversions/cm3x.../files/dxf",
    "svg": "https://pic2cad.ai/api/v1/conversions/cm3x.../files/svg",
    "png": "https://pic2cad.ai/api/v1/conversions/cm3x.../files/png"
  },
  "balance_eur": 24.25,
  "conversions_remaining": 32
}

Una conversión fallida lleva un objeto error, y los 0.75 € ya están de vuelta en tu saldo.

json
{
  "id": "cm3x...",
  "status": "failed",
  "title": "Oak chair",
  "error": {
    "code": "unprocessable_picture",
    "message": "We couldn't turn this picture into a drawing. Your balance was refunded ..."
  },
  "balance_eur": 25.00,
  "conversions_remaining": 33
}

Formatos: dxf, svg, png. La misma clave Bearer que todo lo demás. Las URL no caducan nunca y descargar es siempre gratis, así que puedes pedir el mismo dibujo tantas veces como necesites.

FormatoQué obtienes
dxfEl entregable CAD: R2018, splines, Outer / Inner / Fill en capas separadas, en milímetros a la escala que pediste.
svgVector plano, se abre en Illustrator o InDesign para cambiar el grosor de línea y el color.
pngSilueta recortada con fondo transparente: contorno negro, relleno blanco.

Pedir un archivo antes de que la conversión termine devuelve 409 conversion_not_ready. Cada descarga incluye un nombre de archivo Content-Disposition construido a partir del título de la conversión.

Quién eres y cuánto saldo de API te queda. Llámalo una vez al arrancar, y luego síguelo con balance_eur y conversions_remaining en cada respuesta de conversión, que son siempre los valores de referencia.

curl
curl https://pic2cad.ai/api/v1/account \
  -H "Authorization: Bearer $PIC2CAD_API_KEY"

{
  "email": "you@studio.com",
  "balance_eur": 24.25,
  "conversions_remaining": 32,
  "price_per_conversion_eur": 0.75,
  "auto_top_up": { "enabled": true, "below_eur": 5, "amount_eur": 25 }
}

auto_top_up refleja lo que has configurado en tu cuenta: mientras enabled sea true, el saldo se recarga solo antes de agotarse. No informa nada sobre tus créditos ni tu suscripción de la web, porque ninguno de los dos paga conversiones de la API.

Todo error devuelve el mismo formato, y no se guarda nada de una solicitud fallida.

json
{
  "errors": [
    {
      "code": "insufficient_api_balance",
      "title": "Insufficient API balance",
      "detail": "..."
    }
  ]
}
HTTPCódigoSignificado
401unauthorizedClave ausente, no válida o revocada.
402insufficient_api_balanceSaldo de API insuficiente. Recarga desde tu cuenta.
403account_suspendedLa cuenta está suspendida.
404not_foundEsa conversión no existe en tu cuenta.
409conversion_not_readyArchivos pedidos antes de que la conversión terminara.
413payload_too_largeLa imagen pesa más de 10 MB.
422invalid_imageImagen no decodificable o no compatible.
422invalid_parametersUn valor de parámetro está fuera de rango.
429rate_limitedBaja el ritmo. Respeta Retry-After.
500internal_errorHa fallado por nuestra parte. No se ha cobrado nada.

Guía de reintentos: espera de forma exponencial ante un 5xx, respeta los segundos de Retry-After ante un 429, y no reintentes un 4xx sin cambiarlo.

10 conversiones por minuto y clave, 120 por minuto en los endpoints de lectura. Cada respuesta lleva X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset; un 429 añade Retry-After. Los límites son por clave, así que usar claves separadas para entornos separados evita que un trabajo por lotes deje sin margen a tu aplicación.

Preguntas frecuentes

DXF, SVG, PNG de una sola conversión. El DXF es R2018 con splines en las capas Outer, Inner y Fill, el SVG es vector plano, y el PNG tiene fondo transparente.
No. Son dos monederos separados. Los créditos y las suscripciones de la web nunca pagan conversiones de la API, y el saldo de la API nunca lo gasta la aplicación del navegador. Recarga tu saldo de API desde tu cuenta.
No. Si una conversión falla por nuestra parte, los 0.75 € vuelven directos a tu saldo. Aparte de eso no hay reintentos gratis: cada llamada que haces se cobra, así que un reintento cuesta lo mismo que cualquier otra conversión.
Las conversiones devuelven 402 insufficient_api_balance hasta que recargues. Recarga cuando quieras, desde 10 € hasta 100 €, o activa la recarga automática para que un trabajo por lotes nunca se pare a medias.

Úsala con Claude u otro agente de IA

¿Estás construyendo un script o un agente que debería llamar a pic2CAD por su cuenta? Hay dos formas de conectarlo, elige la que soporte tu agente.

Conecta el servidor de pic2CAD a Claude

Ejecuta esto una vez y Claude podrá convertir imágenes, consultarlas y descargar los archivos por su cuenta. Funciona igual con cualquier otro agente que hable MCP.

terminal
claude mcp add --transport http pic2cad https://pic2cad.ai/api/mcp --header "Authorization: Bearer YOUR_API_KEY"

Si tu agente no soporta MCP

Pega esto en Claude o en cualquier agente de código con IA: tiene la dirección base, cómo autenticarse, las cuatro llamadas que necesita, y cómo consultar una conversión, para que pueda manejar la API sin que le expliques nada más.

prompt
You can convert pictures into CAD-ready files (DXF, SVG, PNG) using the pic2CAD API.

Base URL: https://pic2cad.ai/api/v1
Auth: send this header on every request: Authorization: Bearer YOUR_API_KEY

Calls available:
1. POST /convert: send a picture (multipart/form-data, field "image_file") to start a conversion. Returns an id.
2. GET /conversions/{id}: check status ("processing", "complete", or "failed"). Poll every 3 to 5 seconds until it is no longer "processing".
3. GET /conversions/{id}/files/{format}: download a finished file once status is "complete". format is "dxf", "svg", or "png".
4. GET /account: check remaining balance and how many conversions it still pays for.

Keep YOUR_API_KEY private: never print it, log it, share it, or commit it to a file.
Al crear una clave de API aceptas los términos y la licencia. ¿Necesitas más volumen o algo a medida? Habla con nosotros. ¿Dudas? pic2cad@gmail.com