Espacios

Actualizar un almacén o espacio

Actualiza el registro de un almacén o espacio (envía solo los campos que cambian).

PATCH
/api/v1/spaces/{spaceId}

Ejemplos de petición

curl https://app.filmo.io/api/v1/spaces/spac_8f2a1c \
  --request PATCH \
  --header "Authorization: Bearer $FILMO_API_KEY" \
  --header "Idempotency-Key: $(uuidgen 2>/dev/null || cat /proc/sys/kernel/random/uuid)" \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "Almacén Vallecas",
  "building": "Nave 4",
  "location": {
    "address": "Calle del Estor 8",
    "city": "Madrid",
    "postalCode": "28038",
    "country": "ES",
    "lat": 40.3897,
    "lng": -3.6512
  },
  "area": 420,
  "isWarehouse": true,
  "tags": [
    "Madrid",
    "Almacén"
  ]
}'
{
  "data": {
    "id": "space_9f3a2b",
    "name": "Example space",
    "internalReference": "2026-0001",
    "isWarehouse": true,
    "collectionId": "collection_9f3a2b",
    "collectionName": "Example collection name",
    "building": "Example building",
    "floor": 1,
    "location": {
      "address": "Example address",
      "city": "Madrid",
      "postalCode": "28001",
      "country": "ES",
      "lat": 1,
      "lng": 1
    },
    "createdAt": "2026-09-01T08:00:00.000Z",
    "updatedAt": "2026-09-01T08:00:00.000Z",
    "description": "Example text.",
    "capacity": 1,
    "area": 1,
    "dimensions": "Example dimensions",
    "amenities": [
      "Example amenities"
    ],
    "equipments": [
      "Example equipments"
    ],
    "pricingSettings": {
      "type": "periodPrice",
      "price": "120.00",
      "period": "hour"
    },
    "insuranceEnabled": true,
    "discountEnabled": true,
    "depositValue": "120.00",
    "bufferBefore": 1,
    "bufferBeforeUnit": "hour",
    "bufferAfter": 1,
    "bufferAfterUnit": "hour",
    "customFields": {
      "example": "example"
    }
  }
}

Generado a partir del esquema

tags reemplaza la lista completa, y un nombre de etiqueta que no existe la CREA. Los costes de mantenimiento del espacio NO forman parte del contrato público y no se pueden escribir aquí; para la tarifa está el endpoint de precios. Si otro espacio de la cuenta ya tiene ese name (sin distinguir mayúsculas y minúsculas) o esa internalReference, responde 409 conflict con errors[0].path en el campo. Devuelve el espacio actualizado en detalle.

Autorizaciones

Clave de API como Bearer, con el permiso de abajo. spaces:write

Cabeceras

Idempotency-Keystring

Identificador único de la petición, elegido por el cliente (sirve un UUID). Entre 1 y 255 caracteres: una cabecera vacía se rechaza con 400 validation_error, porque el cliente se creería protegido. Repetir la misma clave con el MISMO cuerpo en 24 h devuelve la respuesta guardada sin volver a ejecutar, con la cabecera Idempotent-Replay: true. Con un cuerpo DISTINTO devuelve 422. Es la forma segura de reintentar tras un tiempo de espera de red.

Límites: longitud mín. 1, longitud máx. 255

Ejemplo:"9f1c2f4e-3a5b-4f6d-8e7a-0b1c2d3e4f5a"

If-Matchstring

Bloqueo optimista: el ETag que leíste del recurso (o *). Si el recurso ha cambiado desde entonces, la escritura se rechaza con 412 precondition_failed antes de hacer nada; léelo de nuevo y reintenta. Sin la cabecera, la escritura siempre se realiza.

Ejemplo:"\"3sT3d9pBvZq4h2N0w8x1YkLmQ7c\""

Parámetros de ruta

spaceIdstringObligatorio

Identificador del espacio.

Límites: longitud mín. 1

Cuerpo

application/json

Esquema del cuerpo: SpaceUpdateBody

namestring

Nombre del espacio.

Límites: longitud mín. 1

internalReferencestring | null

Referencia interna, única dentro de la cuenta; null la borra.

descriptionstring | null

Descripción del espacio; null la borra.

buildingstring | null

Edificio al que pertenece el espacio; null lo borra.

locationobject

Ubicación del espacio. Las coordenadas son obligatorias si se envía el objeto.

Mostrar atributos hijos
location.addressstring

Calle y número.

location.citystring

Ciudad.

location.postalCodestring

Código postal.

location.countrystring

País.

location.latnumberObligatorio

Latitud en grados decimales.

location.lngnumberObligatorio

Longitud en grados decimales.

capacitynumber | null

Capacidad máxima en personas; null la borra.

Límites: mín. 0

dimensionsstring | null

Dimensiones en texto libre; null las borra.

areanumber | null

Superficie en metros cuadrados; null la borra.

Límites: mín. 0

floornumber | null

Planta en la que está el espacio; null la borra.

isWarehouseboolean

true si es un almacén que gestiona stock; false si es un espacio alquilable.

tagsstring[]

Etiquetas por identificador o por nombre; un nombre que no existe CREA la etiqueta. Reemplaza la lista completa.

collectionIdstring | null

Colección a la que pertenece el espacio; null lo saca de cualquier colección.

Límites: longitud mín. 1

Respuesta

application/json

Respuesta correcta.

Esquema de la respuesta: SpaceDetailDto

Sobre: SpaceDetailResponse. meta.warnings solo aparece cuando la operación está obsoleta.

Cabeceras: X-Request-Id · RateLimit-Limit · RateLimit-Remaining · RateLimit-Reset · ETag · Idempotent-Replay

dataobject

Detalle de un almacén o espacio alquilable.

Mostrar atributos hijos
data.idstring

Identificador único del espacio.

data.namestring

Nombre del espacio.

data.internalReferencestring | null

Referencia interna del espacio, útil para casarla con sistemas externos; null si no tiene.

data.isWarehouseboolean

true si el espacio es un almacén que gestiona stock y puede ser el almacén principal de un pedido; false si es un espacio alquilable.

data.collectionIdstring | null

Identificador de la colección a la que pertenece; null si no está en ninguna.

data.collectionNamestring | null

Ruta completa de la colección, por ejemplo "Estudios > Fotografía"; null si no aplica.

data.buildingstring | null

Edificio en el que se encuentra; null si no aplica.

data.floornumber | null

Planta en la que se encuentra; null si no aplica.

data.locationobject

Ubicación física del espacio.

Mostrar atributos hijos
data.location.addressstring | null

Dirección postal; null si no se ha registrado.

data.location.citystring | null

Municipio; null si no está registrado.

data.location.postalCodestring | null

Código postal; null si no se ha registrado.

data.location.countrystring | null

País; null si no consta.

data.location.latnumber | null

Latitud en grados decimales; null si no está geolocalizado.

data.location.lngnumber | null

Longitud en grados decimales; null si no está geolocalizado.

data.createdAtstring<date-time>

Fecha de creación en ISO 8601 UTC.

data.updatedAtstring<date-time>

Fecha de la última modificación en ISO 8601 UTC.

data.descriptionstring | null

Descripción del espacio; null si no tiene.

data.capacitynumber | null

Capacidad en personas; null si no está definida.

data.areanumber | null

Superficie en metros cuadrados; null si no está definida.

data.dimensionsstring | null

Dimensiones en texto libre; null si no están definidas.

data.amenitiesstring[]

Servicios adicionales disponibles (wifi, proyector...).

data.equipmentsstring[]

Equipamiento fijo disponible en el espacio.

data.pricingSettingsobject | null

Precios de alquiler del espacio; null si no está configurado. Los mismos campos que acepta PATCH /pricing.

Mostrar atributos hijos
data.pricingSettings.typestring | null

Modo de precio; null si no está configurado.

Opciones disponibles: periodPrice, fixedPrice, pricingStructure

data.pricingSettings.pricestring | null

Precio base de alquiler como cadena decimal; null si no está configurado.

Límites: patrón ^-?\d+\.\d{2}$

data.pricingSettings.periodstring | null

Unidad de periodo del precio; null si no está configurada.

Opciones disponibles: hour, day, week, month

data.insuranceEnabledboolean

Si el espacio admite seguro.

data.discountEnabledboolean

Si el espacio admite descuento.

data.depositValuestring | null

Importe de la fianza como cadena decimal; null si no está definido.

Límites: patrón ^-?\d+\.\d{2}$

data.bufferBeforenumber | null

Margen de tiempo reservado ANTES del alquiler; null si no hay.

data.bufferBeforeUnitstring | null

Unidad del margen previo; null si no hay.

Opciones disponibles: hour, day

data.bufferAfternumber | null

Margen de tiempo reservado DESPUÉS del alquiler; null si no hay.

data.bufferAfterUnitstring | null

Unidad del margen posterior; null si no hay.

Opciones disponibles: hour, day

data.customFieldsobject<string, any>

Valores de los campos personalizados por identificador de campo personalizado; las definiciones están en /api/v1/custom-fields.

metaobject

Información adicional sobre la respuesta.

Mostrar atributos hijos
meta.warningsobject[]

Avisos del ciclo de vida; solo aparecen cuando la operación está obsoleta.

Mostrar atributos hijos
meta.warnings.codestring

Código de aviso estable.

Opciones disponibles: deprecated

meta.warnings.messagestring

Para personas: qué está obsoleto, hasta cuándo y qué usar.

meta.warnings.sunsetstring

Día (YYYY-MM-DD) en que la operación deja de estar disponible.

meta.warnings.replacementstring | null

operationId de la operación que hay que usar en su lugar, o null si no hay ninguna.

Errores

EstadoCódigosSignificado
400validation_errorConsulta o cuerpo mal formados. errors[] enumera cada campo erróneo con su código estable.
404not_foundNo existe o queda fuera del alcance de la clave de API.
409conflictEl estado actual del recurso impide la operación, ya hay en curso una petición con esa Idempotency-Key, u otra escritura condicional (If-Match) retuvo el recurso durante más de cinco segundos. errors[0].code indica cuál: in_progress y lock_timeout se resuelven reintentando; invalid_state no, porque el estado del recurso prohíbe la operación.
412precondition_failedLa etiqueta de entidad If-Match no coincide con la representación actual. Vuelve a leer el recurso y reintenta.
422idempotency_key_reusedLa misma clave se usó antes con un cuerpo distinto. Cambia la clave.

401, 403, 429, 500 los puede devolver cualquier operación. Errores

Obsolescencia

Esta operación no está obsoleta. Las obsolescencias se anuncian con la cabecera Deprecation y una fecha de retirada. Política de versiones

  • Catálogo e inventario

    Espacio

    Almacén o espacio alquilable de la cuenta.