Planos

API de planos

Convierte un boceto, foto o escaneo de un plano en un plano 2D limpio y editable con una sola llamada. 5 créditos por plano, guardado en el inmueble que elijas.

Envía un boceto, una foto o un escaneo de un plano y recibe un plano 2D limpio. Pedra lee las paredes, puertas, ventanas y nombres de las estancias, las endereza y dibuja un plano con las medidas escritas en el dibujo. El plano se guarda en un inmueble, así que tus usuarios pueden abrirlo en Pedra y editarlo como si lo hubieran dibujado ellos.

Coste

5 créditos por plano, cobrados solo cuando sale un plano. Una lectura que falla es gratis. Si la cuenta tiene menos de 5 créditos, la llamada se rechaza antes de empezar, con un 403 que lo indica.

Dónde se guarda el plano

Igual que las imágenes y los vídeos: envía propertyId para añadir el plano a uno de tus inmuebles (de list_properties o create_property). Si no lo envías, Pedra crea un inmueble nuevo con el nombre de propertyName. La respuesta siempre incluye el propertyId y un appUrl que lo abre en Pedra.

Crear un plano

POST/api/create_floor_plan

Leer un dibujo tarda entre 1 y 3 minutos. Por defecto la llamada espera y devuelve el plano terminado (la conexión se mantiene abierta mientras trabaja). Envía "waitForCompletion": false para recibir un floorPlanId al instante y consultar floor_plan_status.

apiKeystringobligatorio
Tu API key.
imageUrlstringobligatorio
El boceto, foto o escaneo del plano: una URL pública o una data URL en base64. JPEG, PNG o WebP, hasta 12 MB.
propertyIdstring
Inmueble donde guardar el plano. Si no lo envías, se crea uno nuevo.
propertyNamestring
Nombre del inmueble nuevo, cuando no se envía propertyId. Por defecto, el nombre del plano.
namestring
Nombre del plano, impreso debajo, p. ej. "Planta baja".
Default: Floor plan
unitsstring
Unidades de las medidas.
Values: metric imperial
Default: metric
waitForCompletionboolean
false devuelve un floorPlanId al instante; consulta floor_plan_status para el resultado.
Default: true
curl -X POST https://app.pedra.ai/api/create_floor_plan \
  -H "Content-Type: application/json" \
  -d '{
    "apiKey": "YOUR_API_KEY",
    "imageUrl": "https://example.com/sketches/calle-mayor-12.jpg",
    "propertyId": "196e742a-5b0d-4c9e-8a3f-7e2b1c6d9f04",
    "name": "Ground floor"
  }'

Respuesta

JSON
{
  "message": "Floor plan created",
  "floorPlanId": "Ae6pgFD6yZyyhpzZH",
  "propertyId": "196e742a-5b0d-4c9e-8a3f-7e2b1c6d9f04",
  "name": "Ground floor",
  "status": "ready",
  "imageUrl": "https://img.pedra.ai/floorplan-source-QiqMn78cKtNHk4LpF",
  "appUrl": "https://app.pedra.ai/?projectId=196e742a-5b0d-4c9e-8a3f-7e2b1c6d9f04",
  "creditsUsed": 5
}
# 1. Start the conversion (returns at once with "status": "processing")
curl -X POST https://app.pedra.ai/api/create_floor_plan \
  -H "Content-Type: application/json" \
  -d '{
    "apiKey": "YOUR_API_KEY",
    "imageUrl": "https://example.com/sketches/calle-mayor-12.jpg",
    "propertyName": "Calle Mayor 12",
    "waitForCompletion": false
  }'

# 2. Poll every 10 seconds until "status" is "ready" (or "failed")
curl -X POST https://app.pedra.ai/api/floor_plan_status \
  -H "Content-Type: application/json" \
  -d '{ "apiKey": "YOUR_API_KEY", "floorPlanId": "FLOOR_PLAN_ID" }'
JSON
{
  "message": "Floor plan conversion started",
  "floorPlanId": "Ae6pgFD6yZyyhpzZH",
  "propertyId": "196e742a-5b0d-4c9e-8a3f-7e2b1c6d9f04",
  "name": "Ground floor",
  "status": "processing",
  "appUrl": "https://app.pedra.ai/?projectId=196e742a-5b0d-4c9e-8a3f-7e2b1c6d9f04"
}

Estado del plano

POST/api/floor_plan_status

Devuelve "processing", "ready" (con imageUrl) o "failed". Nunca gasta créditos.

apiKeystringobligatorio
Tu API key.
floorPlanIdstringobligatorio
Id devuelto por create_floor_plan.
curl -X POST https://app.pedra.ai/api/floor_plan_status \
  -H "Content-Type: application/json" \
  -d '{ "apiKey": "YOUR_API_KEY", "floorPlanId": "FLOOR_PLAN_ID" }'

Respuesta

JSON
{
  "floorPlanId": "Ae6pgFD6yZyyhpzZH",
  "propertyId": "196e742a-5b0d-4c9e-8a3f-7e2b1c6d9f04",
  "name": "Ground floor",
  "status": "ready",
  "imageUrl": "https://img.pedra.ai/floorplan-source-QiqMn78cKtNHk4LpF",
  "appUrl": "https://app.pedra.ai/?projectId=196e742a-5b0d-4c9e-8a3f-7e2b1c6d9f04",
  "creditsUsed": 5
}

Cómo obtener un buen plano

  • Escribe al menos una medida real en el dibujo (el largo de una pared o la superficie total). Sin ella, la distribución sale bien pero sin medidas.
  • Pon nombre a cada estancia. Los nombres pasan al plano tal como están escritos.
  • Fotografía la hoja desde arriba, plana y con buena luz. Las imágenes se reducen a 2400 px en el lado largo, así que un archivo más grande no aporta nada.

Errores

  • 400 falta imageUrl o la URL no es una imagen.
  • 403 no hay créditos suficientes (hacen falta 5).
  • 404 API key desconocida, o un propertyId / floorPlanId que no es de esta cuenta.
  • 409 el inmueble ya tiene 30 planos.
  • 500 no se pudo leer el dibujo. No se cobra nada y no queda ningún plano.

Desde ChatGPT o Claude

Los mismos endpoints son las herramientas pedra_create_floor_plan y pedra_get_floor_plan del servidor MCP de Pedra. Adjunta una foto del boceto en el chat y pide el plano.