Subir una foto de villa
POST /api/v1/properties/{propertyId}/photo
Sube una foto y la asocia a la villa. El cuerpo es multipart/form-data.
La imagen se comprime en el servidor, con los mismos niveles que aplica la aplicación en el navegador. Una llamada que viene de un script no ha pasado por ningún navegador: sin esta pasada, la API guardaría un original a resolución completa donde la pantalla habría guardado uno ligero.
Autorización
| Rol en la organización | Este endpoint |
|---|---|
owner | Permitido |
admin | Permitido |
member | Rechazado — 403 |
Campos del formulario
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
file | archivo | sí | image/jpeg, image/png o image/webp |
level | enum | no | light (1600px, q82), balanced (1200px, q72, por defecto), strong (900px, q60) |
Ejemplo
bash
curl -X POST -H "x-api-key: $VILLASLOT_API_KEY" \
-F "file=@villa-suar.jpg" -F "level=balanced" \
"https://villaslot.app/api/v1/properties/1f0a…/photo"Respuesta
200 OK— la villa, con su nuevaphotoUrl.
Qué rechaza
403 Forbidden— el portador de la clave es unmember.422 Unprocessable Entity— ningún campofile, un archivo vacío o unleveldesconocido.401 Unauthorized— clave ausente o no válida, o clave cuyo portador ha dejado la organización.404 Not Found— identificador desconocido, o identificador que pertenece a otra organización. Los dos son deliberadamente indistinguibles.429 Too Many Requests— más de 120 peticiones en un minuto para esta clave.
Notas
- Un archivo que no se puede recodificar, o cuya recodificación sería más pesada que el original, se guarda tal como se recibe. La subida nunca falla por la compresión.
- Un PNG o un WebP con transparencia conserva su formato; todo lo demás se recodifica a JPEG.