# list_rate_modifiers

List catalog rate modifier rules with cursor pagination (max 25 per page). Optionally filter by `buildingId`,
`workspaceId`, `attribute` (FLOOR/ZONE/ORIENTATION), `operator`, `enabled`, or `nameContains`, and sort by
name/delta/createdAt/updatedAt (ASC/DESC).

<!-- INPUT_BLOCK_START -->

## Input

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `first` | `number` | No | Number of results to return (forward pagination). Maximum 25. Use with "after" for paging. |
| `after` | `string` | No | Cursor for forward pagination. Pass the "endCursor" from previous page's pageInfo. |
| `last` | `number` | No | Number of results to return (backward pagination). Maximum 25. Use with "before" for reverse paging. |
| `before` | `string` | No | Cursor for backward pagination. Pass the "startCursor" from previous page's pageInfo. |
| `filters` | `RateModifiersFilterInput` | No | Optional filters applied to the rate modifiers list. Combine multiple filter groups with and/or. Example: { "buildingId": { "in": ["1","2"] }, "attribute": { "eq": "FLOOR" } }. - [RateModifiersFilterInput](#ratemodifiersfilterinput) |
| `sort` | `RateModifiersSortKey[]` | No | Optional multi-key sort order, applied in array order. Example: [{ "name": "ASC" }, { "createdAt": "DESC" }]. - [RateModifiersSortKey](#ratemodifierssortkey) |

### RateModifiersFilterInput

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `and` | `RateModifiersFilterInput[]` | No | |
| `or` | `RateModifiersFilterInput[]` | No | |
| `buildingId` | `RateModifierIdFilter` | No | [RateModifierIdFilter](#ratemodifieridfilter) |
| `workspaceId` | `RateModifierIdFilter` | No | [RateModifierIdFilter](#ratemodifieridfilter) |
| `attribute` | `RateModifierAttributeFilter` | No | [RateModifierAttributeFilter](#ratemodifierattributefilter) |
| `operator` | `RateModifierOperatorFilter` | No | [RateModifierOperatorFilter](#ratemodifieroperatorfilter) |
| `enabled` | `RateModifierBooleanFilter` | No | [RateModifierBooleanFilter](#ratemodifierbooleanfilter) |
| `name` | `RateModifierStringFilter` | No | [RateModifierStringFilter](#ratemodifierstringfilter) |

### RateModifiersSortKey

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | `SortDirection` | No | Sort by name - [SortDirection](#sortdirection) |
| `delta` | `SortDirection` | No | Sort by delta - [SortDirection](#sortdirection) |
| `createdAt` | `SortDirection` | No | Sort by creation date - [SortDirection](#sortdirection) |
| `updatedAt` | `SortDirection` | No | Sort by last update date - [SortDirection](#sortdirection) |

### RateModifierIdFilter

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `eq` | `string` | No | Equals this ID |
| `in` | `string[]` | No | Matches any of these IDs |
| `neq` | `string` | No | Does not equal this ID |
| `nin` | `string[]` | No | Matches none of these IDs |

### RateModifierAttributeFilter

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `eq` | `RateModifierAttribute` | No | Matches this attribute - [RateModifierAttribute](#ratemodifierattribute) |
| `in` | `RateModifierAttribute[]` | No | Matches any of these attributes - [RateModifierAttribute](#ratemodifierattribute) |

### RateModifierOperatorFilter

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `eq` | `RateModifierOperator` | No | Matches this operator - [RateModifierOperator](#ratemodifieroperator) |
| `in` | `RateModifierOperator[]` | No | Matches any of these operators - [RateModifierOperator](#ratemodifieroperator) |

### RateModifierBooleanFilter

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `eq` | `boolean` | No | Equals this value |
| `neq` | `boolean` | No | Does not equal this value |

### RateModifierStringFilter

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `eq` | `string` | No | Equals this value |
| `in` | `string[]` | No | Matches any of these values |
| `neq` | `string` | No | Does not equal this value |
| `nin` | `string[]` | No | Matches none of these values |
| `contains` | `string` | No | Case-insensitive substring match |

### SortDirection

| Value | Description |
| --- | --- |
| `ASC` | Ascending (A→Z, oldest first) |
| `DESC` | Descending (Z→A, newest first) |

### RateModifierAttribute

| Value | Description |
| --- | --- |
| `FLOOR` | Rule matches against unit floors |
| `FLOOR_SIZE` | Rule matches against unit floor sizes (in square metres) |
| `ZONE` | Rule matches against unit zones |
| `ORIENTATION` | Rule matches against unit orientations |

### RateModifierOperator

| Value | Description |
| --- | --- |
| `EQ` | Equal to |
| `NEQ` | Not equal to |
| `GT` | Greater than |
| `GTE` | Greater than or equal to |
| `LT` | Less than |
| `LTE` | Less than or equal to |
| `IN` | In the set of values |
| `NIN` | Not in the set of values |

<!-- INPUT_BLOCK_END -->

<!-- OUTPUT_BLOCK_START -->

## Output

| Field | Type | Description |
| --- | --- | --- |
| `content` | `ContentItem[]` | Array of content items returned by the tool - [ContentItem](#contentitem) |
| `isError` | `boolean` | Whether the tool execution resulted in an error |

### ContentItem

| Field | Type | Description |
| --- | --- | --- |
| `type` | `'text'` | Content type (currently only 'text' is supported) |
| `text` | `string` | The text content to display |

<!-- OUTPUT_BLOCK_END -->
