Docs

Fotos y planos

Última actualización: 2026-10-034 min de lectura

Las dos herramientas reciben un archivo como multipart/form-data.

Mejora de fotos

POST /photo/enhance: ámbito tools:photo, trabajo. Una foto por solicitud.

Partes del formulario:

ParteDescripción
imagela foto: obligatorio; JPEG, PNG o WebP de hasta 25 MB
masksolo cleanup: una máscara PNG, el blanco marca la zona a cambiar
dataopciones como una cadena JSON: obligatorio

Opciones en data:

CampoDescripción
modeenhance: luz, color, nitidez; cleanup: eliminar cosas; staging: amueblar una habitación vacía. Por defecto cleanup
promptobligatorio para cleanup y staging (de 3 a 500 caracteres): qué eliminar o cómo amueblar; opcional para enhance
intensitylight, medium (por defecto), strong
roomTypeliving, bedroom, kitchen, bathroom, dining, office, outdoor
furnitureStylepara staging: modern, scandinavian, industrial, luxury, minimalist, coastal
autoMaskcleanup sin máscara propia: encontrar la zona automáticamente
seedun número para un resultado reproducible
negativePromptqué evitar, hasta 300 caracteres
objectId, objectTypesu inmueble al que pertenece la foto (property o complex)
curl -X POST https://developers.grem.capital/api/v1/photo/enhance \
  -H "Authorization: Bearer gsk_live_xxx" \
  -F 'data={"mode":"cleanup","prompt":"quitar la silla y las cajas"}' \
  -F "[email protected]"

Una máscara con enhance o staging se rechaza: allí no tiene efecto, y no se cobra nada. El precio depende del modo. Rechazos: una máscara fuera de cleanup: 422 con code: MASK_NOT_SUPPORTED; otro tipo de archivo o un archivo de más de 25 MB: 422 con code: JOB_CREATE_FAILED; una clave desconocida en data: 400. La respuesta de inicio lleva sku y priceMinor: lo que se cobra por la llamada (falta si la cubre la cuota del plan).

202 con jobId. El trabajo terminado (GET /photo/enhance/jobs/{id}):

CampoDescripción
resultsvariantes del resultado
results[].variantnúmero de variante
results[].urldirección de la imagen
results[].width, results[].heighttamaño
metadata.erroren un trabajo fallido: el motivo, como texto genérico

Archivo de una variante: GET /artifacts/v1/ai/photo-enhancement/jobs/{jobId}/download/{variant}. Eventos: photo.completed / photo.failed.

Limpieza de planos

POST /floorplan/create: ámbito tools:floorplan. Una foto o un escaneo de un plano se convierte en un plano limpio con nombres de estancias y superficies. Se procesa al momento: el 202 ya contiene el resultado.

ParteDescripción
filela imagen del plano (JPEG, PNG, WebP, HEIC; hasta 20 MB): obligatorio; también se acepta el nombre image
objectIdadjuntar el resultado a su inmueble
objectTypeproperty, rental o complex
curl -X POST https://developers.grem.capital/api/v1/floorplan/create \
  -H "Authorization: Bearer gsk_live_xxx" \
  -F "[email protected]"

Respuesta:

CampoDescripción
jobIdid del trabajo
statusdone: nombres aceptados automáticamente; review: resultado listo, conviene revisar los nombres; rejected: la imagen no es un plano; failed: fallo
statecompleted para done y review, failed para rejected y failed
roomsestancias: label, area (m², si están rotuladas), stable (la etiqueta se leyó igual en cada pasada), placement (dónde está la etiqueta en el plano limpio)
totalAreasuperficie total, m², si las superficies figuran en el plano
cleanedFileIdla imagen del plano limpio
sourceFileIdel plano que usted subió

Informe: GET /artifacts/v1/ai/floor-plan/jobs/{id}/report.pdf. Volver a obtener el resultado: GET /floorplan/create/jobs/{id}. Eventos: floorplan.completed / floorplan.failed. Si la imagen no es un plano, no se cobra nada.

Artículos relacionados

¿Le resultó útil este artículo?