Spotnana Company Policies API

APIs to configure company travel policies.

Operations 5

POST /v2/companies/{companyId}/policies Create policy #
GET /v2/companies/{companyId}/policies List company policies #
GET /v2/companies/{companyId}/policies/{policyId} Get policy #
PUT /v2/companies/{companyId}/policies/{policyId} Update policy #
DELETE /v2/companies/{companyId}/policies/{policyId} Delete policy #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/spotnana-company-policies-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

spotnana-company-policies-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Air Company Policies API
  version: v2
  description: APIs to perform search, checkout and book an air pnr
servers:
- url: https://api-ext-sboxmeta.partners.spotnana.com
  description: Sandbox URL
security:
- Bearer: []
tags:
- name: Company Policies
  description: APIs to configure company travel policies.
paths:
  /v2/companies/{companyId}/policies:
    parameters:
    - name: companyId
      in: path
      description: Identifier for company.
      required: true
      schema:
        type: string
        format: uuid
      example: 4974a66b-7493-4f41-908c-58ba81093947
    post:
      tags:
      - Company Policies
      summary: Create policy
      description: This endpoint creates a policy.
      operationId: createPolicy
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePolicyRequest'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityId'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    get:
      tags:
      - Company Policies
      summary: List company policies
      description: This endpoint list company policies.
      operationId: listPolicies
      parameters:
      - name: categories
        in: query
        description: Filter policies by categories. Defaults to EMPLOYEE if not provided.
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/PolicyCategory'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArrayOfReference'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /v2/companies/{companyId}/policies/{policyId}:
    parameters:
    - name: companyId
      in: path
      description: Identifier for company.
      required: true
      schema:
        type: string
        format: uuid
      example: 4974a66b-7493-4f41-908c-58ba81093947
    - name: policyId
      in: path
      description: Identifier for policy.
      required: true
      schema:
        type: string
        format: uuid
      example: 4974a66b-7493-4f41-908c-58ba81093947
    get:
      tags:
      - Company Policies
      summary: Get policy
      description: This endpoint gets a policy by ID.
      operationId: readPolicy
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Policy'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      tags:
      - Company Policies
      summary: Update policy
      description: This endpoint updates a policy by ID.
      operationId: updatePolicy
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Policy'
      responses:
        '204':
          description: Updated Successfully
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      tags:
      - Company Policies
      summary: Delete policy
      description: This endpoint deletes a policy by ID.
      operationId: deletePolicy
      responses:
        '204':
          description: No Content
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    LprAmountWrapper:
      type: object
      title: LprAmountWrapper
      properties:
        lprAmount:
          $ref: '#/components/schemas/SimpleMoney'
    TimeLocal:
      title: TimeLocal
      description: ISO8601 Local Time
      type: object
      required:
      - iso8601
      properties:
        iso8601:
          type: string
          pattern: ^([01][0-9]|2[0-4]):([0-5][0-9])(:([0-5][0-9]))?$
          example: '17:32'
    RuleTierExemptionConfig:
      type: object
      title: RuleTierExemptionConfig
      description: Per-rule tier exemption configuration with defaults.
      properties:
        defaultExemptedTiers:
          type: array
          description: 'Default tiers exempted for every rule not explicitly listed in ruleTierExemptions.

            '
          items:
            $ref: '#/components/schemas/PreferenceTierLevel'
        ruleTierExemptions:
          type: array
          description: 'Per-rule exemption configuration. Overrides defaultExemptedTiers for the listed rule types.

            '
          items:
            $ref: '#/components/schemas/RuleTierExemption'
    HotelMedianRate:
      type: object
      title: HotelMedianRate
      description: 'Defines the attributes/filters used to identify candidate hotels

        for calculating the median nightly rate in hotel search.


        The calculated median rate serves as the reference value for

        MaxHotelBookingPriceProps when enforcing price limits.

        '
      oneOf:
      - $ref: '#/components/schemas/IsLinkedWrapper'
      - $ref: '#/components/schemas/HotelMedianRatePropsWrapper'
    OvernightTimeParams:
      type: object
      title: OvernightTimeParams
      description: This defines what is considered as overnight.
      required:
      - nightTimeStart
      - nightTimeEnd
      - nightTimeOverlapMinutes
      - includeLayover
      properties:
        nightTimeStart:
          description: Time when night starts.
          $ref: '#/components/schemas/TimeLocal'
        nightTimeEnd:
          description: Time when night ends.
          $ref: '#/components/schemas/TimeLocal'
        includeLayover:
          description: Whether layover time should be included in the overnight time.
          type: boolean
          default: false
        nightTimeOverlapMinutes:
          description: The minimum night flight time needed to qualify as an overnight flight.
          type: integer
          format: int32
          minimum: 0
    FlightAdvanceBookingWindowDomesticPropsWrapper:
      type: object
      title: FlightAdvanceBookingWindowDomesticPropsWrapper
      properties:
        flightAdvanceBookingWindowDomesticProps:
          $ref: '#/components/schemas/FlightAdvanceBookingWindowDomesticProps'
    HighestFlightCabinByDuration:
      type: object
      title: HighestFlightCabinByDuration
      description: 'Air rule to describe whether to use default policy or different set of rules for cabin based

        on flight duration.

        '
      oneOf:
      - $ref: '#/components/schemas/IsLinkedWrapper'
      - $ref: '#/components/schemas/HighestFlightCabinByDurationPropsWrapper'
    CarTypesNotAllowedProps:
      allOf:
      - $ref: '#/components/schemas/AllowedCarTypesProps'
    RestrictedAirlinesProps:
      type: object
      title: RestrictedAirlinesProps
      description: List of IATA Airline code.
      required:
      - airlineCodes
      properties:
        airlineCodes:
          type: array
          items:
            type: string
    Addon:
      title: Addon
      description: Add-ons which can be selected as part of an air reservation.
      type: string
      enum:
      - SEAT
      - BAGGAGE
      - WIFI
      - CARBON_OFFSET
      - EARLY_BIRD
      - ALL
      - NONE
      example: SEAT
    LimoTypesNotAllowedPropsWrapper:
      type: object
      title: LimoTypesNotAllowedPropsWrapper
      properties:
        limoTypesNotAllowedProps:
          $ref: '#/components/schemas/LimoTypesNotAllowedProps'
    PreventBooking:
      type: object
      title: PreventBooking
      description: Whether to allow booking if a rule is violated.
      properties:
        prevent:
          type: boolean
          default: false
        reason:
          type: string
    OopReasonCodeUde:
      type: object
      title: OopReasonCodeUde
      description: The message defines the format of a OOP reason code related question which would be asked during checkout on policy violation.
      properties:
        entityId:
          type: string
        displayInfo:
          type: string
          description: Question display name that the user will see. For eg, 'Choose the purpose of your trip'.
        questionFormat:
          $ref: '#/components/schemas/QuestionFormat'
        options:
          description: List of potential options for any question. Options will be present if the question type provides options to select.
          type: array
          items:
            $ref: '#/components/schemas/Option'
        isRequired:
          type: boolean
          description: Whether its compulsory to answer the question or not.
          default: false
          example: true
        isDisabled:
          type: boolean
          description: Whether the question is disabled or not. If true, this should not be asked.
          default: false
          example: true
    RuleTierExemptionConfigWrapper:
      type: object
      title: RuleTierExemptionConfigWrapper
      properties:
        ruleTierExemptionConfig:
          $ref: '#/components/schemas/RuleTierExemptionConfig'
    HighestFlightCabinOvernightProps:
      type: object
      title: HighestFlightCabinOvernightProps
      description: Highest cabin that can be booked for overnight flight.
      required:
      - cabin
      properties:
        cabin:
          $ref: '#/components/schemas/Cabin'
        overnightTimeParams:
          $ref: '#/components/schemas/OvernightTimeParams'
    LprFilterConfig:
      type: object
      title: LprFilterConfig
      description: Configuration for filtering rates in LPR calculation.
      properties:
        rateConditions:
          type: array
          description: Rate conditions to exclude (NON_REFUNDABLE, PREPAID, etc.)
          items:
            type: string
            enum:
            - NON_REFUNDABLE
            - PREPAID
            - REQUIRES_DEPOSIT
            - PAY_AT_PROPERTY
        restrictedKeywords:
          type: array
          description: Keywords to exclude from LPR calculation
          items:
            $ref: '#/components/schemas/KeywordWithReason'
        excludedRateTypes:
          type: array
          description: Rate types to exclude (CORPORATE, GOVERNMENT, etc.)
          items:
            $ref: '#/components/schemas/HotelRateType'
    PolicyApprovalInfo:
      type: object
      title: PolicyApprovalInfo
      required:
      - approvalProcessType
      properties:
        approvalProcessType:
          type: string
          enum:
          - NONE
          - SOFT_APPROVAL
          - HARD_APPROVAL
          - PASSIVE_APPROVAL
          - PREVENT_BOOKING
          - PRE_APPROVAL
        designatedApprovers:
          type: array
          description: List of designated approvers.
          items:
            $ref: '#/components/schemas/UserId'
        isManagerApprover:
          type: boolean
          example: false
        isEmployeeLevelDesignatedApprover:
          type: boolean
          description: Indicate whether the policy is approved by employee level designated approver or not.
          example: false
          default: false
        shouldNotifyManager:
          type: boolean
          description: Indicate whether approval emails should be cc'ed to manager or not.
          example: false
          default: false
        travelTypes:
          type: array
          description: List of travel types for which this ApprovalInfo is applicable.
          items:
            type: string
            enum:
            - AIR
            - HOTEL
            - RAIL
            - CAR
            - LIMO
        approvalConditions:
          type: array
          description: List of approval conditions. OR operator is applied between the approval conditions.
          items:
            $ref: '#/components/schemas/ApprovalCondition'
        defaultApprovers:
          type: array
          description: List of designated default approvers.
          items:
            $ref: '#/components/schemas/UserId'
    OopReasonCodes:
      type: object
      title: OopReasonCodes
      description: OOP reason codes value. Either linked to default policy or actual values.
      oneOf:
      - $ref: '#/components/schemas/OopReasonCodesPropsWrapper'
      - $ref: '#/components/schemas/IsLinkedWrapper'
    HighestCabinForDuration:
      type: object
      title: HighestCabinForDuration
      description: For a given duration of a flight, the highest cabin that can be booked.
      required:
      - cabin
      - durationRange
      properties:
        cabin:
          $ref: '#/components/schemas/Cabin'
        durationRange:
          $ref: '#/components/schemas/Int32Range'
    AirRestrictedFaresPropsWrapper:
      type: object
      title: AirRestrictedFaresPropsWrapper
      properties:
        airRestrictedFaresProps:
          $ref: '#/components/schemas/AirRestrictedFaresProps'
    ErrorResponse:
      type: object
      properties:
        debugIdentifier:
          type: string
          description: Link to debug the error internally.
        errorMessages:
          type: array
          items:
            type: object
            properties:
              errorCode:
                type: string
                description: Error code to identify the specific errors.
              message:
                type: string
                description: Message containing details of error.
              errorParameters:
                type: array
                description: Error message parameters.
                items:
                  $ref: '#/components/schemas/ErrorParameter'
              errorDetail:
                type: string
                description: More details about the error.
    FlightAdvanceBookingWindowInternationalPropsWrapper:
      type: object
      title: FlightAdvanceBookingWindowInternationalPropsWrapper
      properties:
        flightAdvanceBookingWindowInternationalProps:
          $ref: '#/components/schemas/FlightAdvanceBookingWindowInternationalProps'
    AllTiersWrapper:
      type: object
      title: AllTiersWrapper
      properties:
        allTiers:
          type: boolean
          description: When true, all preference tiers are exempted for this rule.
    IsLinkedWrapper:
      type: object
      title: IsLinkedWrapper
      properties:
        isLinked:
          type: boolean
          description: If the value has to be taken from default policy.
          example: true
    CustomFieldId:
      type: object
      title: CustomFieldId
      description: The custom field type and the id associated with it.
      required:
      - type
      - externalId
      properties:
        type:
          $ref: '#/components/schemas/CustomFieldType'
        externalId:
          type: string
          description: Meeting id or budget id based on custom field type.
    Persona:
      type: string
      title: Persona
      description: Persona of the user
      enum:
      - UNKNOWN_PERSONA
      - EMPLOYEE
      - GUEST
      - PERSONAL
      - RELATIVE
      - ADHOC
      example: EMPLOYEE
    DifferenceBetweenFlightFareAndMedianFare:
      type: object
      title: DifferenceBetweenFlightFareAndMedianFare
      description: 'Air rule to describe whether to use default policy or different rule for difference between

        a flight fare and median fare of the flights for a destination.

        Note: Median fare was calculated based on number of stops, cabin class and flight duration.

        '
      oneOf:
      - $ref: '#/components/schemas/IsLinkedWrapper'
      - $ref: '#/components/schemas/DifferenceBetweenFlightFareAndMedianFarePropsWrapper'
    HotelCentralTierExemption:
      type: object
      title: HotelCentralTierExemption
      description: 'Central tier exemption configuration for hotel rules. Configures which hotel preference tiers bypass individual policy rules. Properties in selected tiers are considered in-policy regardless of the rule configuration.

        '
      oneOf:
      - $ref: '#/components/schemas/IsLinkedWrapper'
      - $ref: '#/components/schemas/HotelCentralTierExemptionPropsWrapper'
    MaxHotelPriceByLocationProps:
      type: object
      title: MaxHotelPriceByLocationProps
      description: List of max price of a hotel booking in a location.
      required:
      - maxPricePerLocationList
      properties:
        maxDefaultPrice:
          $ref: '#/components/schemas/SimpleMoney'
        isTaxIncluded:
          type: boolean
          default: false
        maxPricePerLocationList:
          type: array
          items:
            $ref: '#/components/schemas/MaxPriceInLocation'
    HotelPolicyRuleType:
      type: string
      title: HotelPolicyRuleType
      description: Policy rule types applicable to hotel central tier exemption configuration.
      enum:
      - HOTEL_RESTRICTED_KEYWORDS
      - HOTEL_PROPERTY_TYPE
      - HOTEL_ADVANCE_BOOKING_WINDOW
      - HOTEL_RATING
      - MAX_HOTEL_PRICE_BY_LOCATION
      - MAX_HOTEL_BOOKING_PRICE
    CountryPropsWrapper:
      type: object
      title: CountryPropsWrapper
      properties:
        countryProps:
          $ref: '#/components/schemas/CountryProps'
    RestrictedCountries:
      type: object
      title: RestrictedCountries
      description: Details containing country related restrictions or use default policy restrictions.
      oneOf:
      - $ref: '#/components/schemas/IsLinkedWrapper'
      - $ref: '#/components/schemas/CountryPropsWrapper'
    TravelRegionType:
      type: string
      title: TravelRegionType
      description: Travel region Type
      enum:
      - DOMESTIC
      - INTERNATIONAL
      example: DOMESTIC
    EngineType:
      type: string
      title: EngineType
      description: Engine types.
      enum:
      - UNKNOWN_ENGINE
      - PETROL
      - DIESEL
      - ELECTRIC
      - CNG
      - HYBRID
      - HYDROGEN
      - MULTI_FUEL
      - ETHANOL
      example: PETROL
    HotelLprFilterProps:
      type: object
      title: HotelLprFilterProps
      description: Properties for LPR filter configuration.
      required:
      - isEnabled
      properties:
        isEnabled:
          type: boolean
          description: If true, only the lowest property rate is allowed.
      oneOf:
      - $ref: '#/components/schemas/LprFilterConfigWrapper'
      - $ref: '#/components/schemas/LprAmountWrapper'
    ApprovalRule:
      type: object
      title: ApprovalRule
      description: One of rule which should be satisfied to use an approval action.
      oneOf:
      - $ref: '#/components/schemas/TravelRegionRuleWrapper'
    DateTimeOffset:
      title: DateTimeOffset
      description: ISO8601 UTC Date Time
      type: object
      required:
      - iso8601
      properties:
        iso8601:
          type: string
          pattern: ^\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-4]):([0-5][0-9])(:([0-5][0-9]))?(Z|([+-](0[0-9]|1[0-4]):([0-5][0-9])))$
          example: 2017-07-21T17:32Z
    AirRestrictedKeyword:
      type: object
      title: AirRestrictedKeyword
      description: Airline/Keyword to be restricted
      required:
      - keyword
      properties:
        keyword:
          type: string
          description: Restricted keyword.
        airlineCode:
          type: string
          description: IATA airline code. If not set, the restriction applies to all airlines.
    OopReasonCodesPropsWrapper:
      type: object
      title: OopReasonCodesPropsWrapper
      properties:
        props:
          $ref: '#/components/schemas/OopReasonCodesProps'
    HotelCodesPropsWrapper:
      type: object
      title: HotelCodesPropsWrapper
      properties:
        hotelCodesProps:
          $ref: '#/components/schemas/HotelCodesProps'
    RailTravelClass:
      description: Travel class
      type: string
      enum:
      - FIRST
      - STANDARD
      - BUSINESS
      - SLEEPER
      - STANDARD_PREMIUM
      - BUSINESS_PREMIUM
      - COACH
      - ROOM
      - EXECUTIVE
      example: FIRST
    LimoType:
      type: string
      title: LimoType
      description: Limo type.
      enum:
      - STANDARD_CAR
      - EXECUTIVE_CAR
      - BUSINESS_VAN
      - FIRST_CLASS
      - SUV
      - SEDAN
      - EXECUTIVE_SEDAN
      - LUXURY_SEDAN
      - EXECUTIVE_VAN
      - BUSINESS_SEDAN
      example: STANDARD_CAR
    QuestionFormat:
      type: string
      enum:
      - INPUT_BOX
      - RADIO_BUTTON
      - CHECKBOX
      - CHECKBOX_WITH_PERCENTAGE
      description: 'Question types. INPUT_BOX will make user enter a free flowing text.

        RADIO_BUTTON will have multiple options, user can select only one.

        CHECKBOX questions contain the possible set of options, from which the user can choose multiple options.

        CHECKBOX_WITH_PERCENTAGE is similar to checkbox, with the difference being that each option having an additional input field whose values must add up to 100.

        '
      example: CHECKBOX
    AirRestrictedFaresProps:
      type: object
      title: AirRestrictedFaresProps
      description: Airline fare restrictions.
      required:
      - restrictedKeywords
      properties:
        restrictedKeywords:
          type: array
          items:
            $ref: '#/components/schemas/AirRestrictedKeyword'
    AllowedCarTypesProps:
      type: object
      title: AllowedCarTypesProps
      description: List of allowed car types.
      required:
      - carTypes
      properties:
        carTypes:
          type: array
          items:
            $ref: '#/components/schemas/CarType'
    AllowedCarTypes:
      type: object
      title: AllowedCarTypes
      description: "Car rule to describe whether to use default policy rule or use different set of \nallowed car types for booking.\n"
      oneOf:
      - $ref: '#/components/schemas/IsLinkedWrapper'
      - $ref: '#/components/schemas/AllowedCarTypesPropsWrapper'
    RestrictedAirCraftsPropsWrapper:
      type: object
      title: RestrictedAirCraftsPropsWrapper
      properties:
        restrictedAirCraftsProps:
          $ref: '#/components/schemas/RestrictedAirCraftsProps'
    HotelAdvanceBookingWindow:
      type: object
      title: HotelAdvanceBookingWindow
      description: 'Hotel rule to describe whether to use default policy or different rule for advance booking.

        '
      oneOf:
      - $ref: '#/components/schemas/IsLinkedWrapper'
      - $ref: '#/components/schemas/HotelAdvanceBookingWindowPropsWrapper'
    FlightAdvanceBookingWindowDomesticProps:
      type: object
      title: FlightAdvanceBookingWindowDomesticProps
      description: Number of days in advance one can book a domestic flight.
      required:
      - numDaysInAdvance
      properties:
        numDaysInAdvance:
          type: integer
          format: int32
    ContinentRestriction:
      type: object
      title: ContinentRestriction
      description: Continent code with type of restriction.
      required:
      - type
      - continentCode
      properties:
        type:
          type: string
          enum:
          - BLOCK_TRAVEL_TO_CONTINENT
          - ALLOW_WITHIN_CONTINENT
        continentCode:
          type: string
          description: 2-letter continent code.
          example: NA
    Reference:
      type: object
      title: Reference object containing uuid and name of the entity.
      description: Reference of an entity
      required:
      - id
      properties:
        id:
          type: string
          format: uuid
          example: b93dc51f-12dd-46c7-b7d6-1cb12cd3f5b3
        name:
          type: string
          example: Name
    PolicyCategory:
      type: string
      description: Category of the policy.
      title: PolicyCategory
      enum:
      - EMPLOYEE
      - GUEST
      example: EMPLOYEE
    HotelRestrictedKeywordsProps:
      type: object
      title: HotelRestrictedKeywordsProps
      description: List of keywords that should not be allowed in hotel name/description.
      properties:
        hotelRestrictedKeywordsList:
          type: array
          items:
            $ref: '#/components/schemas/HotelRestrictedKeyword'
        exemptMajorChains:
          type: boolean
          description: 'When true, hotels belonging to major chains (Accor, Hilton, Hyatt, IHG, Marriott)

            are exempt from restricted keyword checks.

            '
    LowestLogicalFareProps:
      type: object
      title: LowestLogicalFareProps
      description: Properties which will be used to filter candidates for a given flight in order to calculate lowest possible fare for the group.
      properties:
        flightTimeWindowInHoursDomestic:
          description: Time window (in hours) applied at both departure and arrival to get time bounds of candidate flights for domestic travel.
          type: integer
          format: int32
          deprecated: true
          x-sunset: '2026-07-01'
        flightTimeWindowInHoursInternational:
          description: Time window (in hours) applied at both departure and arrival to get time bounds of candidate flights for international travel.
          type: integer
          format: int32
          deprecated: true
          x-sunset: '2026-07-01'
        maxLayoverDurationInHoursDomestic:
          description: Maximum layover duration (in hours) possible for candidate flights for domestic travel.
          type: integer
          format: int32
          deprecated: true
          x-sunset: '2026-07-01'
        maxLayoverDurationInHoursInternational:
          description: Maximum layover duration (in hours) possible for candidate flights for international travel.
          type: integer
          format: int32
          deprecated: true
          x-sunset: '2026-07-01'
        maxLayoverDurationMinutesDomestic:
          description: Maximum layover duration (in minutes) possible for candidate flights for domestic travel.
          type: integer
          format: int32
          example: 120
        maxLayoverDurationMinutesInternational:
          description: Maximum layover duration (in minutes) possible for candidate flights for international travel.
          type: integer
          format: int32
          example: 150
        flightTimeWindowMinutesDomestic:
          description: "Time window (in minutes) applied at both departure and arrival \nto get time bounds of candidate flights for domestic travel.\n"
          type: integer
          format: int32
          example: 60
        flightTimeWindowMinutesInternational:
          description: "Time window (in minutes) applied at both departure and arrival \nto get time bounds of candidate flights for international travel.\n"
          type: integer
          format: int32
          example: 90
        maxNumberOfStops:
          description: Maximum number of stops possible in a leg to be for it to be considered as a valid llf candidate.
          type: string
          enum:
          - ANY
          - ONE_OR_LESS
          - TWO_OR_LESS
          - FEWEST
        airportConnectionChanges:
          description: Is more than one distinct airport possible in a leg.
          type: string
          enum:
          - NOT_ALLOWED
        carrier:
          description: Carriers which may be excluded / included for llf calculation.
          type: object
          properties:
            type:
              description: Whether to include / exclude carriers.
              type: string
              enum:
              - PREFERRED
              - EXCLUDE
            airlines:
              description: List of airline codes.
              type: array
              items:
                type: string
    HotelPolicyRules:
      type: object
      title: HotelPolicyRules
      description: Details of rules related to hotel.
      properties:
        restrictedHotels:
          $ref: '#/components/schemas/RestrictedHotels'
        maxHotelPriceByLocation:
          $ref: '#/components/schemas/MaxHotelPriceByLocation'
        hotelAdvanceBookingWindow:
          $ref: '#/components/schemas/HotelAdvanceBookingWindow'
        hotelCancellation:
          $ref: '#/components/schemas/HotelCancellation'
        hotelChainCodes:
          $ref: '#/components/schemas/HotelChainCodes'
        hotelStarRating:
          $ref: '#/components/schemas/HotelStarRating'
        hotelMedianRateNightly:
          $ref: '#/components/schemas/HotelMedianRate'
        hotelCentralTierExemption:
          $ref: '#/components/schemas/HotelCentralTierExemption'
    RestrictedAirCrafts:
      type: object
      title: RestrictedAirCrafts
      description: "Air rule to describe whether to use default policy or use the specific set of air crafts \nthat are restricted.\n"
      oneOf:
      - $ref: '#/components/schemas/IsLinkedWrapper'
      - $ref: '#/components/schemas/RestrictedAirCraftsPropsWrapper'
    UniversalProps:
      type: object
      title: UniversalProps
      description: Universal Props.
      oneOf:
      - $ref: '#/components/schemas/CabinClassNotAllowedDomesticPropsWrapper'
      - $ref: '#/components/schemas/CabinClassNotAllowedInternationalPropsWrapper'
      - $ref: '#/components/schemas/CarTypesNotAllowedPropsWrapper'
      - $ref: '#/components/schemas/CarEngineTypesNotAllowedPropsWrapper'
      - $ref: '#/components/schemas/HotelRateConditionsNotAllowedPropsWrapper'
      - $ref: '#/components/schemas/RailAdvanceBookingWindowPropsWrapper'
      - $ref: '#/components/schemas/MaxRailBookingPriceByDurationPropsWrapper'
      - $ref: '#/components/schemas/RailTicketsRefundablePropsWrapper'
      - $ref: '#/components/schemas/HighestRailTravelClassByDurationPropsWrapper'
      - $ref: '#/components/schemas/HotelRestrictedKeywordsPropsWrapper'
      - $ref: '#/components/schemas/FlightAdvanceBookingWindowDomesticPropsWrapper'
      - $ref: '#/components/schemas/FlightAdvanceBookingWindowInternationalPropsWrapper'
      - $ref: '#/components/schemas/AllowedAirAddonsPropsWrapper'
      - $ref: '#/components/schemas/MaxHotelBookingPricePropsWrapper'
      - $ref: '#/components/schemas/LowestFarePerHotelPropertyPropsWrapper'
      - $ref: '#/components/schemas/AirRestrictedFaresPropsWrapper'
      - $ref: '#/components/schemas/RestrictAirportTransfersPropsWrapper'
      - $ref: '#/components/schemas/HotelLprFilterPropsWrapper'
      - $ref: '#/components/schemas/HotelPropertyTypePropsWrapper'
      - $ref: '#/components/schemas/LimoTypesNotAllowedPropsWrapper'
      x-ignoreBreakingChanges:
      - UniversalProps->AirRestrictedFaresPropsWrapper
      - UniversalProps->RestrictAirportTransfersPropsWrapper
      - UniversalProps->LimoTypesNotAllowedPropsWrapper
    AllRulesAllTiersWrapper:
      type: object
      title: AllRulesAllTiersWrapper
      properties:
        allRulesAllTiers:
          type: boolean
          description: When true, all preference tiers are exempted for all hotel rules.
    CountryRestriction:
      type: object
      title: CountryRestriction
      description: Country with their restriction type.
      required:
      - type
      - countryCode
      properties:
        type:
          type: string
          enum:
          - BLOCK_TRAVEL_TO_COUNTRY
          - ALLOW_WITHIN_COUNTRY
        countryCode:
          type: string
          description: ISO 2-letter country code.
    ConditionalRefundability:
      type: object
      title: ConditionalRefundability
      description: 'Configuration for time-based exceptions to hotel refundability or cancellation policy rules.

        When enabled, otherwise restricted hotel rates may be allowed if booking occurs within the

        configured window before check-in.

        '
      properties:
        enableGracePeriodLogic:
          type: boolean
          description: When true, applies the configured booking-window exception.
        allowedBookingWindowHours:
          type: integer
          format: int32
       

# --- truncated at 32 KB (89 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/spotnana/refs/heads/main/openapi/spotnana-company-policies-api-openapi.yml