*MCP › Reference › Catalog & inventory › Spaces*

# Update the pricing of a space

> Sets the rental rate of the space, the deposit, whether it allows insurance and discount, and the time margins that block it around the booking.

The internal cost, the external cost and the tax configuration are NOT part of the public contract. Note: the public record of a space does not emit its commercial policy, so what you write here cannot be read back through the API. Returns the updated space in detail.

TOOL `filmo_spaces_update_pricing` · `spaces:write` · 120/min · Server annotation: Idempotent

## Arguments

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `spaceId` | string | Yes | Space identifier. |
| `pricingSettings` | object | No | Rental pricing of the space, the three fields together; null clears it. |
| `pricingSettings.type` | string | Yes | Pricing mode. `periodPrice`, `fixedPrice`, `pricingStructure` |
| `pricingSettings.price` | string | Yes | Base rental price, as a decimal string. |
| `pricingSettings.period` | string | Yes | Period unit of the price. `hour`, `day`, `week`, `month` |
| `insuranceEnabled` | boolean | No | Whether the space allows insurance. |
| `depositValue` | string | No | Security deposit amount, as a decimal string; null clears it. |
| `discountEnabled` | boolean | No | Whether the space allows a discount. |
| `bufferBefore` | number | No | Time buffer reserved BEFORE the rental; null clears it together with its unit. |
| `bufferBeforeUnit` | string | No | Unit of the preceding buffer; null only together with `bufferBefore: null`. `hour`, `day` |
| `bufferAfter` | number | No | Time buffer reserved AFTER the rental; null clears it together with its unit. |
| `bufferAfterUnit` | string | No | Unit of the following buffer; null only together with `bufferAfter: null`. `hour`, `day` |
| `idempotencyKey` | string | No | Idempotency key chosen by the client (a UUID is recommended). Repeating the same key with the same arguments within 24 h returns the stored response without executing again; with different arguments it responds 422. It is the safe way to retry after a network failure. |
| `ifMatch` | string | No | Optimistic locking: the meta.etag you got from the detail read of this resource (or "*"). If the resource changed since, the call fails with 412 precondition_failed before writing anything; read it again and retry. Omit it to write unconditionally. |

## Result

On success the result carries `structuredContent` with `data` and `meta`. These are the attributes of `data`.

| Name | Type | Description |
| --- | --- | --- |
| `id` | string | Unique space identifier. |
| `name` | string | Space name. |
| `internalReference` | string | Internal reference of the space, useful for matching with external systems; null if it has none. |
| `isWarehouse` | boolean | true if the space is a warehouse that manages stock and can be the main warehouse of an order; false if it is a rentable space. |
| `collectionId` | string | Identifier of the collection it belongs to; null if it is in none. |
| `collectionName` | string | Full collection path, for example "Estudios > Fotografía"; null if not applicable. |
| `building` | string | Building it is located in; null if not applicable. |
| `floor` | number | Floor it is located on; null if not applicable. |
| `location` | object | Physical location of the space. |
| `location.address` | string | Postal address; null if not recorded. |
| `location.city` | string | Municipality; null if not recorded. |
| `location.postalCode` | string | Postal code; null if not recorded. |
| `location.country` | string | Country; null if not recorded. |
| `location.lat` | number | Latitude in decimal degrees; null if not geolocated. |
| `location.lng` | number | Longitude in decimal degrees; null if not geolocated. |
| `createdAt` | string<date-time> | Creation date in ISO 8601 UTC. |
| `updatedAt` | string<date-time> | Last modification date in ISO 8601 UTC. |
| `description` | string | Space description; null if it has none. |
| `capacity` | number | Capacity in people; null if not defined. |
| `area` | number | Area in square metres; null if not defined. |
| `dimensions` | string | Dimensions as free text; null if not defined. |
| `amenities` | string[] | Additional services available (wifi, projector...). |
| `equipments` | string[] | Fixed equipment available in the space. |
| `pricingSettings` | object | Rental pricing of the space; null if not configured. The same fields that PATCH /pricing accepts. |
| `pricingSettings.type` | string | Pricing mode; null if not configured. `periodPrice`, `fixedPrice`, `pricingStructure` |
| `pricingSettings.price` | string | Base rental price as a decimal string; null if not configured. |
| `pricingSettings.period` | string | Period unit of the price; null if not configured. `hour`, `day`, `week`, `month` |
| `insuranceEnabled` | boolean | Whether the space allows insurance. |
| `discountEnabled` | boolean | Whether the space allows a discount. |
| `depositValue` | string | Security deposit amount as a decimal string; null if not set. |
| `bufferBefore` | number | Time buffer reserved BEFORE the rental; null if none. |
| `bufferBeforeUnit` | string | Unit of the preceding buffer; null if none. `hour`, `day` |
| `bufferAfter` | number | Time buffer reserved AFTER the rental; null if none. |
| `bufferAfterUnit` | string | Unit of the following buffer; null if none. `hour`, `day` |
| `customFields` | object<string, any> | Custom field values by custom field identifier; the definitions are in `/api/v1/custom-fields`. |

*Call · filmo_spaces_update_pricing*

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "filmo_spaces_update_pricing",
    "arguments": {
      "spaceId": "spac_8f2a1c"
    }
  }
}
```

*Result (generated from the schema)*

```json
{
  "structuredContent": {
    "data": {
      "id": "id_8f2a1c",
      "name": "Example",
      "internalReference": "<internalReference>",
      "isWarehouse": true,
      "collectionId": "coll_8f2a1c",
      "collectionName": "Example",
      "building": "<building>",
      "floor": 1,
      "location": {
        "address": "<address>",
        "city": "<city>",
        "postalCode": "<postalCode>",
        "country": "ES",
        "lat": 1,
        "lng": 1
      },
      "createdAt": "2026-09-01T08:00:00Z",
      "updatedAt": "2026-09-01T08:00:00Z",
      "description": "<description>",
      "capacity": 1,
      "area": 1,
      "dimensions": "<dimensions>",
      "amenities": [
        "<amenities>"
      ],
      "equipments": [
        "<equipments>"
      ],
      "pricingSettings": {
        "type": "periodPrice",
        "price": "1234.50",
        "period": "hour"
      },
      "insuranceEnabled": true,
      "discountEnabled": true,
      "depositValue": "1234.50",
      "bufferBefore": 1,
      "bufferBeforeUnit": "hour",
      "bufferAfter": 1,
      "bufferAfterUnit": "hour",
      "customFields": {
        "key": "<key>"
      }
    },
    "meta": {
      "idempotencyKey": "<the key you sent, or the one the server generated>",
      "rateLimit": {
        "limit": 120,
        "remaining": 119,
        "reset": 42
      }
    }
  }
}
```

## The same operation by REST

This tool runs [`PATCH /api/v1/spaces/{spaceId}/pricing`](https://docs.filmo.io/rest-api/endpoint-reference/spaces/update-the-pricing-of-a-space).

---

Canonical URL: https://docs.filmo.io/mcp/tools/spaces/filmo-spaces-update-pricing  
Last updated: 2026-10-25