openapi: 3.0.4 info: title: Mews Booking Engine API (Distributor) Account notes Rules API version: v1 description: The Mews Booking Engine API (historically the Distributor API, served from /api/distributor/v1) lets developers build guest-facing booking engines that create reservations directly in Mews. It exposes enterprise configuration, availability, pricing, products, vouchers, payment cards, and reservation group creation for front-end client consumption. x-generated-from: documentation x-source-url: https://api.mews.com/Swagger/distributor/swagger.json x-last-validated: '2026-06-02' servers: - url: https://api.mews.com description: Production - url: https://api.mews-demo.com description: Demo / sandbox security: - MewsClientToken: [] MewsAccessToken: [] tags: - name: Rules paths: /api/connector/v1/rules/getAll: post: tags: - Rules summary: Mews Get All Rules description: 'Returns all rules applied with the reservations. Note this operation uses [Pagination](https://mews-systems.gitbook.io/connector-api/guidelines/pagination/) and supports [Portfolio Access Tokens](https://mews-systems.gitbook.io/connector-api/concepts/multi-property).' operationId: rules_getAll requestBody: content: application/json: schema: $ref: '#/components/schemas/RuleFilterParameters' example: ClientToken: E0D439EE522F44368DC78E1BFB03710C-D24FB11DBE31D4621C4817E028D9E1D AccessToken: C66EF7B239D24632943D115EDE9CB810-EA00F8FD8294692C940F6B5A8F9453D Client: Sample Client 1.0.0 EnterpriseIds: - 3fa85f64-5717-4562-b3fc-2c963f66afa6 - 4d0201db-36f5-428b-8d11-4f0a65e960cc ServiceIds: - bd26d8db-86da-4f96-9efc-e5a4654a4a94 UpdatedUtc: StartUtc: '2023-10-01T00:00:00Z' EndUtc: '2023-10-31T00:00:00Z' Extent: RuleActions: true Rates: true RateGroups: true ResourceCategories: true BusinessSegments: true Limitation: Count: 10 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RuleResult' example: Rules: - Id: 13638b12-53f1-4b35-baab-ac1e006ed8cb ServiceId: bd26d8db-86da-4f96-9efc-e5a4654a4a94 Conditions: RateId: Value: 8a13f4e8-0274-4bcc-b2d4-ac1c00d1cd3f ConditionType: Equals RateGroupId: null BusinessSegmentId: null ResourceCategoryId: null ResourceCategoryType: null Origin: Value: Connector ConditionType: NotEquals TravelAgencyId: null MinimumTimeUnitCount: null MaximumTimeUnitCount: null CreatedUtc: '2023-10-01T11:48:57Z' UpdatedUtc: '2023-10-28T11:48:57Z' RuleActions: - Id: 307e75a6-2cc8-4226-a600-ac1e006fbdb9 RuleId: 13638b12-53f1-4b35-baab-ac1e006ed8cb Data: Discriminator: Product Value: ProductId: 122fd92d-c561-4995-8ebc-ac1c00d1eaa8 ActionType: Add Rates: - Id: 8a13f4e8-0274-4bcc-b2d4-ac1c00d1cd3f GroupId: e4a9d8d1-5793-4d35-954e-ac1c00d1eaa8 ServiceId: ea80bbca-372f-4550-8e48-ac1c00d1cd20 BaseRateId: null IsActive: true IsEnabled: true IsPublic: true Name: Fully Flexible ShortName: FF ExternalNames: {} RateGroups: [] ResourceCategories: [] BusinessSegments: [] Cursor: 13638b12-53f1-4b35-baab-ac1e006ed8cb '400': description: Error caused by the client app, e.g. in case of malformed request or invalid identifier of a resource. In most cases, such an error signifies a bug in the client app (consumer of the API). content: application/json: schema: $ref: '#/components/schemas/ConnectorApiExceptionResult' examples: RulesGetAll400Example: summary: Default rules_getAll 400 response x-microcks-default: true value: Message: string RequestId: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 Details: string '401': description: Error caused by usage of invalid ClientToken, AccessToken, or you may not have the necessary permission to use the endpoint. content: application/json: schema: $ref: '#/components/schemas/ConnectorApiExceptionResult' examples: RulesGetAll401Example: summary: Default rules_getAll 401 response x-microcks-default: true value: Message: string RequestId: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 Details: string '403': description: Server error that should be reported to the end user of the client app. Happens for example when the server-side validation fails or when a business-logic check is violated. content: application/json: schema: $ref: '#/components/schemas/ConnectorApiExceptionResult' examples: RulesGetAll403Example: summary: Default rules_getAll 403 response x-microcks-default: true value: Message: string RequestId: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 Details: string '408': description: Error caused by heavy request that takes too long to process (typically tens of seconds). To get around this, request data in smaller batches. For more information, see [Request timeouts](https://mews-systems.gitbook.io/connector-api/guidelines/requests#request-timeouts) content: application/json: schema: $ref: '#/components/schemas/ConnectorApiExceptionResult' examples: RulesGetAll408Example: summary: Default rules_getAll 408 response x-microcks-default: true value: Message: string RequestId: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 Details: string '204': description: Server has successfully fulfilled the request and there is no additional information to send back. content: application/json: schema: $ref: '#/components/schemas/ConnectorApiExceptionResult' examples: RulesGetAll204Example: summary: Default rules_getAll 204 response x-microcks-default: true value: Message: string RequestId: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 Details: string '429': description: Error caused by too many requests sent in a given amount of time. Response contains `Retry-After` header indicating how long the user agent should wait before making a follow-up request. For more information, see [Request limits](https://mews-systems.gitbook.io/connector-api/guidelines/requests#request-limits). content: application/json: schema: $ref: '#/components/schemas/ConnectorApiExceptionResult' examples: RulesGetAll429Example: summary: Default rules_getAll 429 response x-microcks-default: true value: Message: string RequestId: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 Details: string '500': description: Unexpected error on the Mews side. This may be due to a software fault. If such a situation occurs, the error will be logged and the development team notified, however you can raise an issue through GitHub on our [documentation repository](https://github.com/MewsSystems/gitbook-connector-api). content: application/json: schema: $ref: '#/components/schemas/ConnectorApiExceptionResult' examples: RulesGetAll500Example: summary: Default rules_getAll 500 response x-microcks-default: true value: Message: string RequestId: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 Details: string x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: BusinessSegment: title: Business segment required: - CreatedUtc - Id - IsActive - Name - ServiceId - UpdatedUtc type: object properties: Id: type: string description: Unique identifier of the business segment. format: uuid example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 ServiceId: type: string description: Unique identifier of the `Service`. format: uuid example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 IsActive: type: boolean description: Whether the business segment is still active. example: true Name: minLength: 1 type: string description: Name of the business segment. example: Example Name CreatedUtc: minLength: 1 type: string description: Creation date and time of the business segment in UTC timezone in ISO 8601 format. format: date-time example: '2026-06-02T14:30:00Z' UpdatedUtc: minLength: 1 type: string description: Last update date and time of the business segment in UTC timezone in ISO 8601 format. format: date-time example: '2026-06-02T14:30:00Z' additionalProperties: false x-schema-id: BusinessSegment RuleExtent: title: Rule extent type: object properties: RuleActions: type: boolean description: Whether the response should contain rule actions. nullable: true example: true Rates: type: boolean description: Whether the response should contain rates. nullable: true example: true RateGroups: type: boolean description: Whether the response should contain rate groups. nullable: true example: true ResourceCategories: type: boolean description: Whether the response should contain rate resource categories. nullable: true example: true BusinessSegments: type: boolean description: Whether the response should contain business segments. nullable: true example: true additionalProperties: false description: '' x-schema-id: RuleExtent Rule: title: Rule required: - Conditions - CreatedUtc - Id - ServiceId - UpdatedUtc type: object properties: Id: type: string description: Unique identifier of the rule. format: uuid example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 ServiceId: type: string description: Unique identifier of the `Service` the rule is assigned to. format: uuid example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 Conditions: title: Rule conditions allOf: - $ref: '#/components/schemas/RuleConditions' description: Conditions of the rule. example: string CreatedUtc: minLength: 1 type: string description: Creation date and time of the rule in UTC timezone in ISO 8601 format. format: date-time example: '2026-06-02T14:30:00Z' UpdatedUtc: minLength: 1 type: string description: Last update date and time of the rule in UTC timezone in ISO 8601 format. format: date-time example: '2026-06-02T14:30:00Z' additionalProperties: false x-schema-id: Rule RuleConditionType: title: Condition type enum: - Equals - NotEquals type: string description: Type of condition. TimeFilterInterval: title: Time interval type: object properties: StartUtc: type: string format: date-time nullable: true example: '2026-06-02T14:30:00Z' EndUtc: type: string format: date-time nullable: true example: '2026-06-02T14:30:00Z' additionalProperties: false description: "When a time interval is used for **filtering** (for example in parameters such as `CreatedUtc.StartUtc` / `CreatedUtc.EndUtc`), the following rules apply:\r\n\r\n- **Start equals End (equality mode)** \r\n If `StartUtc` and `EndUtc` are exactly the same timestamp, the filter is treated as an equality check for that precise moment in time:\r\n \r\n ```\r\n CreatedUtc == StartUtc\r\n ```\r\n \r\n This does not represent an interval; only records with `CreatedUtc` equal to that exact instant are returned.\r\n\r\n- **Start differs from End (interval mode)** \r\n If `StartUtc` and `EndUtc` are different, the filter is evaluated as a half-open interval:\r\n \r\n ```\r\n StartUtc <= CreatedUtc < EndUtc\r\n ```\r\n \r\n In other words, the start is inclusive and the end is exclusive.\r\n\r\nMake sure your integration takes inclusive Start / exclusive End behavior of time intervals into account so that no records at the boundaries are omitted." x-schema-id: TimeFilterInterval ResourceCategoryType: title: Resource category type enum: - Room - Bed - Dorm - Apartment - Suite - Villa - Site - Office - MeetingRoom - ParkingSpot - Desk - TeamArea - Membership - Tent - CaravanOrRV - UnequippedCampsite - Bike - ExtraBed - Cot - Crib - ConferenceRoom - Rooftop - Garden - Restaurant - Amphitheater - PrivateSpaces type: string description: Type of the category. RuleActionType: title: Product action type enum: - Add - Delete type: string description: Action of rule. x-enumDescriptions: - Adds specified item. - Deletes specified item. RuleResult: title: RuleResult required: - Rules type: object properties: Rules: type: array items: $ref: '#/components/schemas/Rule' description: Rules used with reservation creations and modifications. RuleActions: type: array items: $ref: '#/components/schemas/RuleAction' description: Rule actions applied in rules. nullable: true Rates: type: array items: $ref: '#/components/schemas/RateForExtent' description: Rates used in conditions. nullable: true RateGroups: type: array items: $ref: '#/components/schemas/RateGroupOld' description: Rate groups used in conditions. nullable: true ResourceCategories: type: array items: $ref: '#/components/schemas/ResourceCategory' description: Resource categories used in conditions. nullable: true BusinessSegments: type: array items: $ref: '#/components/schemas/BusinessSegment' description: Business segments used in conditions. nullable: true Cursor: type: string description: Unique identifier of the item one newer in time order than the items to be returned. If Cursor is not specified, i.e. null, then the latest or most recent items will be returned. format: uuid nullable: true example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 additionalProperties: false x-schema-id: RuleResult RuleActionProductData: title: Rule action product data required: - ActionType - ProductId type: object properties: ActionType: $ref: '#/components/schemas/RuleActionType' ProductId: type: string description: Unique identifier of product. format: uuid example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 additionalProperties: false x-schema-id: RuleActionProductData RateTypeEnum: title: Rate type enum: - Public - Private - AvailabilityBlock type: string description: ' Public Private AvailabilityBlock' x-enumNames: - Public - Private - AvailabilityBlock x-enumDescriptions: - '' - '' - '' ResourceCategory: title: Resource category required: - Capacity - Classification - Descriptions - EnterpriseId - ExtraCapacity - Id - IsActive - Names - Ordering - ServiceId - ShortNames - Type type: object properties: Id: type: string description: Unique identifier of the category. format: uuid example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 EnterpriseId: type: string description: Unique identifier of the `Enterprise`. format: uuid example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 ServiceId: type: string description: Unique identifier of the `Service` of the resource category. format: uuid example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 IsActive: type: boolean description: Whether the category is still active. example: true Type: $ref: '#/components/schemas/ResourceCategoryType' Classification: $ref: '#/components/schemas/ResourceClassification' Names: title: Localized text type: object additionalProperties: type: string description: All translations of the name. x-schema-id: LocalizedStrings ShortNames: title: Localized text type: object additionalProperties: type: string description: All translations of the short name. x-schema-id: LocalizedStrings Descriptions: title: Localized text type: object additionalProperties: type: string description: All translations of the description. x-schema-id: LocalizedStrings Ordering: type: integer description: Ordering of the category, lower number corresponds to lower category (note that neither uniqueness nor continuous sequence is guaranteed). format: int32 example: 1 Capacity: type: integer description: Capacity that can be served (e.g. bed count). format: int32 example: 1 ExtraCapacity: type: integer description: Extra capacity that can be served (e.g. extra bed count). format: int32 example: 1 ExternalIdentifier: maxLength: 255 type: string description: Identifier of the resource category from external system. nullable: true example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 AccountingCategoryId: type: string description: Unique identifier of the accounting category. format: uuid nullable: true example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 additionalProperties: false x-schema-id: ResourceCategory RuleCondition: title: Rule condition required: - ConditionType - Value type: object properties: Value: minLength: 1 type: string description: Value of the condition depending on the property. E.g. `ReservationOrigin` in case of origin condition or unique identifier of a rate in case of rate condition. example: string ConditionType: $ref: '#/components/schemas/RuleConditionType' additionalProperties: false x-schema-id: RuleCondition ConnectorApiExceptionResult: title: ConnectorApiExceptionResult type: object properties: Message: type: string nullable: true example: string RequestId: type: string nullable: true example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 Details: nullable: true example: string additionalProperties: false x-schema-id: ConnectorApiExceptionResult RateForExtent: title: Rate for extent required: - GroupId - Id - IsActive - IsBaseRate - IsEnabled - IsPublic - Names - ServiceId - Type - UpdatedUtc type: object properties: Id: type: string description: Unique identifier of the rate. format: uuid example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 GroupId: type: string description: Unique identifier of `Rate Group` where the rate belongs. format: uuid example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 ServiceId: type: string description: Unique identifier of the `Service`. format: uuid example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 BaseRateId: type: string description: Unique identifier of the base `Rate`. format: uuid nullable: true example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 IsBaseRate: type: boolean description: Whether the rate is a base rate. example: true BusinessSegmentId: type: string description: Unique identifier of the `Business Segment`. format: uuid nullable: true example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 IsActive: type: boolean description: Whether the rate is still active. example: true IsEnabled: type: boolean description: Whether the rate is currently available to customers. example: true IsPublic: type: boolean description: Whether the rate is publicly available. example: true Type: title: Rate type allOf: - $ref: '#/components/schemas/RateTypeEnum' description: 'Type of the rate. Public Private AvailabilityBlock' x-enumNames: - Public - Private - AvailabilityBlock x-enumDescriptions: - '' - '' - '' example: string Name: type: string description: Name of the rate (in the default language). nullable: true deprecated: true x-deprecatedMessage: Use `Names` instead example: Example Name Names: title: Localized text type: object additionalProperties: type: string description: All translations of the name. x-schema-id: LocalizedStrings ShortName: type: string description: Short name of the rate (in the default language). nullable: true example: Example Name UpdatedUtc: minLength: 1 type: string description: Interval in which the rates were updated. format: date-time example: '2026-06-02T14:30:00Z' ExternalNames: title: Localized text type: object additionalProperties: type: string description: All translations of the external name of the rate. nullable: true x-schema-id: LocalizedStrings Description: title: Localized text type: object additionalProperties: type: string description: All translations of the description of the rate. nullable: true x-schema-id: LocalizedStrings ExternalIdentifier: maxLength: 255 type: string description: Identifier of the rate from external system. nullable: true example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 additionalProperties: false description: '`Rate` entity, without some of the details, e.g. pricing.' x-schema-id: RateForExtent RuleConditions: title: Rule conditions type: object properties: RateId: title: Rule condition allOf: - $ref: '#/components/schemas/RuleCondition' description: Condition based on `Rate`. nullable: true example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 RateGroupId: title: Rule condition allOf: - $ref: '#/components/schemas/RuleCondition' description: Condition based on `RateGroup`. nullable: true example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 BusinessSegmentId: title: Rule condition allOf: - $ref: '#/components/schemas/RuleCondition' description: Condition based on `BusinessSegment`. nullable: true example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 ResourceCategoryId: title: Rule condition allOf: - $ref: '#/components/schemas/RuleCondition' description: Condition based on `ResourceCategory`. nullable: true example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 ResourceCategoryType: title: Rule condition allOf: - $ref: '#/components/schemas/RuleCondition' description: Condition based on `ResourceCategoryType`. nullable: true example: string Origin: title: Rule condition allOf: - $ref: '#/components/schemas/RuleCondition' description: Condition based on `ReservationOrigin`. nullable: true example: string TravelAgencyId: title: Rule condition allOf: - $ref: '#/components/schemas/RuleCondition' description: Condition based on `Company`. nullable: true example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 MinimumTimeUnitCount: type: integer description: Condition based on minimum amount of time units. format: int32 nullable: true example: 1 MaximumTimeUnitCount: type: integer description: Condition based on maximum amount of time units. format: int32 nullable: true example: 1 additionalProperties: false description: '' x-schema-id: RuleConditions Limitation: title: Limitation required: - Count type: object properties: Count: type: integer format: int32 example: 1 Cursor: type: string format: uuid nullable: true example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 additionalProperties: false description: Limitation on the quantity of data returned. x-schema-id: Limitation RateGroupOld: title: Rate group (ver 2017-04-12) type: object properties: Id: type: string description: Unique identifier of the rate group. format: uuid example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 ServiceId: type: string description: Unique identifier of the Service that the rate group belongs to. format: uuid example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 IsActive: type: boolean description: Whether the rate group is still active. example: true Name: type: string description: Name of the rate group. nullable: true example: Example Name ExternalIdentifier: maxLength: 255 type: string description: External identifier of the rate group. nullable: true example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 additionalProperties: false x-schema-id: RateGroupOld RuleAction: title: Rule action required: - Id - RuleId type: object properties: Id: type: string description: Unique identifier of the rule action. format: uuid example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 RuleId: type: string description: Unique identifier of the rule. format: uuid example: 3edd5f9e-7e64-4f2a-9a0e-b3f200e6c111 Data: title: Rule action data type: object properties: Discriminator: $ref: '#/components/schemas/RuleActionDiscriminator' Value: oneOf: - $ref: '#/components/schemas/RuleActionProductData' description: Additional information about action. nullable: true x-coproduct: true x-schema-id: RuleActionDataCoproductOfRuleActionDiscriminator additionalProperties: false x-schema-id: RuleAction RuleFilterParameters: title: RuleFilterParameters required: - AccessToken - Client - ClientToken - Extent - Limitation - ServiceIds type: object properties: ClientToken: minLength: 1 type: string description: Token identifying the client application. example: string AccessToken: minLength: 1 type: string description: Access token of the client application. example: string Client: minLength: 1 type: string description: Name and version of the client application. example: string Limitation: allOf: - $ref: '#/components/schemas/Limitation' description: Limitation on the quantity of data returned and optional Cursor for the starting point of data. example: string EnterpriseIds: maxItems: 1000 minItems: 1 type: array items: type: string format: uuid description: Unique identifiers of the Enterprises. If not specified, the operation returns data for all enterprises within scope of the Access Token. nullable: true Ids: maxItems: 1000 minItems: 1 type: array items: type: string format: uuid description: Unique identifiers of the `Rule`. nullable: true ServiceIds: maxItems: 1000 minItems: 1 type: array items: type: string format: uuid description: Unique identifiers of the `Service`. UpdatedUtc: title: Time interval allOf: - $ref: '#/components/schemas/TimeFilterInterval' description: Interval in which `Rule` was updated. nullable: true x-max-interval-in-months: 3 example: string Extent: title: Rule extent allOf: - $ref: '#/components/schemas/RuleExtent' description: Extent of data to be returned. example: string additionalProperties: false x-schema-id: RuleFilterParameters RuleActionDiscriminator: title: Rule action discriminator enum: - Product type: string x-enumDescriptions: - Data specific to a product. ResourceClassification: title: Resource classification enum: - StandardSingle - StandardDouble - SuperiorTwin - SuperiorDouble - JuniorSuite - SharedOrDorm - Other - SuperiorSingle - Triple - Family - StandardTwin - Studio - SuperiorTripleRoom - OneBedroomApartment - ThreeBedroomsApartment - TwoBedroomsApartment type: string description: Classification of the resource category. securitySchemes: MewsClientToken: type: apiKey in: header name: ClientToken description: Mews authentication is performed by supplying ClientToken, AccessToken and Client as fields in the JSON request body (not as HTTP headers). This securityScheme is a tooling-compatible representation of the ClientToken credential. ClientToken is unique to your application and identifies the API client. MewsAccessToken: type: apiKey in: header name: AccessToken description: Tooling-compatible representation of the AccessToken credential, which is supplied in the JSON request body. AccessToken is unique to the connection with a property (enterprise) and identifies the property or properties whose data and services you can access. Portfolio Access Tokens enable multi-property access with a single token.