Lokki Rental Place API

The Rental Place API from Lokki — 10 operation(s) for rental place.

Operations 10

GET /v2/rental-place/googleRating/lokki #
GET /v2/rental-place/universes #
GET /v2/rental-place/stores #
GET /v2/rental-place/partner/stores/zone #
GET /v2/rental-place/store/{slug} #
GET /v2/rental-place/store/byId/{id} #
GET /v2/rental-place/stores/allSlugs #
POST /v2/rental-place/universe #
POST /v2/rental-place/company/{companyId}/visit #
GET /v2/rental-place/search #

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/lokki-rental-place-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

lokki-rental-place-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lokki Rental Place API
  description: The main API powering the Lokki Dashboard and Online Store
  version: '2.0'
  contact: {}
servers: []
security:
- x-access-token: []
tags:
- name: Rental Place
paths:
  /v2/rental-place/googleRating/lokki:
    get:
      operationId: getGoogleRatingLokki
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRating'
      tags:
      - Rental Place
  /v2/rental-place/universes:
    get:
      operationId: getRentalPlaceUniverses
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RentalPlaceUniversesDto'
      tags:
      - Rental Place
  /v2/rental-place/stores:
    get:
      operationId: getRentalPlaceStores
      parameters:
      - name: lat
        required: true
        in: query
        schema:
          type: number
      - name: lng
        required: true
        in: query
        schema:
          type: number
      - name: universes
        required: false
        in: query
        schema:
          type: array
          items:
            type: string
      - name: verticales
        required: false
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - BIKE
            - ELECTRIC_BIKE
            - MOPED
            - MOTORCYCLE
            - CAR
            - SCOOTER
            - SKI
            - CLIMBING
            - SNOWSHOES
            - SURF
            - PADDLE
            - CANOE_KAYAK
            - BOAT
            - EVENT
            - MOTOCULTURE
            - TOOLING
      - name: categories
        required: false
        in: query
        schema:
          type: array
          items:
            type: string
      - name: radius
        required: false
        in: query
        schema:
          minimum: 0
          type: number
      - name: limit
        required: false
        in: query
        schema:
          minimum: 0
          type: number
      - name: checkAvailability
        required: false
        in: query
        schema:
          type: boolean
      - name: delivery
        required: false
        in: query
        schema:
          type: boolean
      - name: insurance
        required: false
        in: query
        schema:
          type: boolean
      - name: onlinePayment
        required: false
        in: query
        schema:
          type: boolean
      - name: priceRangeMin
        required: false
        in: query
        schema:
          minimum: 0
          type: number
      - name: priceRangeMax
        required: false
        in: query
        schema:
          minimum: 0
          type: number
      - name: view
        required: false
        in: query
        schema:
          enum:
          - default
          - fast
          - events
          - roaming
          - toprating
          - manyratings
          - cancellation
          - groups
          - promo
          - shortrent
          - longrent
          type: string
      - name: startDateAvailability
        required: false
        in: query
        schema:
          format: date-time
          type: string
      - name: endDateAvailability
        required: false
        in: query
        schema:
          format: date-time
          type: string
      - name: onlineBooking
        required: false
        in: query
        schema:
          type: boolean
      - name: filterOutEmptyStocks
        required: false
        in: query
        schema:
          type: boolean
      - name: sortByRating
        required: false
        in: query
        schema:
          type: boolean
      - name: getBestSellers
        required: false
        in: query
        schema:
          type: boolean
      - name: isLLD
        required: false
        in: query
        schema:
          type: boolean
      - name: getEvent
        required: false
        in: query
        schema:
          type: boolean
      - name: language
        required: true
        in: query
        schema:
          enum:
          - fr
          - en
          - nl
          - de
          - it
          - pt
          - es
          - pl
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RentalPlaceCompaniesDto'
      tags:
      - Rental Place
  /v2/rental-place/partner/stores/zone:
    get:
      operationId: getPartnerZoneRentalPlaceStores
      parameters:
      - name: swLat
        required: true
        in: query
        schema:
          type: number
      - name: swLng
        required: true
        in: query
        schema:
          type: number
      - name: neLat
        required: true
        in: query
        schema:
          type: number
      - name: neLng
        required: true
        in: query
        schema:
          type: number
      - name: verticales
        required: true
        in: query
        schema:
          default:
          - BIKE
          - ELECTRIC_BIKE
          type: array
          items:
            type: string
            enum:
            - BIKE
            - ELECTRIC_BIKE
            - MOPED
            - MOTORCYCLE
            - CAR
            - SCOOTER
            - SKI
            - CLIMBING
            - SNOWSHOES
            - SURF
            - PADDLE
            - CANOE_KAYAK
            - BOAT
            - EVENT
            - MOTOCULTURE
            - TOOLING
      - name: persons
        required: true
        in: query
        schema:
          minimum: 1
          type: number
      - name: minPrice
        required: true
        in: query
        schema:
          minimum: 0
          type: number
      - name: maxPrice
        required: true
        in: query
        schema:
          minimum: 0
          type: number
      - name: startDate
        required: true
        in: query
        schema:
          format: date-time
          type: string
      - name: endDate
        required: true
        in: query
        schema:
          format: date-time
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerRentalPlaceCompaniesDto'
      tags:
      - Rental Place
  /v2/rental-place/store/{slug}:
    get:
      operationId: getRentalPlaceStore
      parameters:
      - name: slug
        required: true
        in: path
        schema:
          type: string
      - name: language
        required: true
        in: query
        schema:
          enum:
          - fr
          - en
          - nl
          - de
          - it
          - pt
          - es
          - pl
          type: string
      - name: withNotOnboarded
        required: false
        in: query
        schema:
          type: boolean
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RentalPlaceExtraCompanyInfoDto'
      tags:
      - Rental Place
  /v2/rental-place/store/byId/{id}:
    get:
      operationId: getRentalPlaceStoreById
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      - name: language
        required: true
        in: query
        schema:
          enum:
          - fr
          - en
          - nl
          - de
          - it
          - pt
          - es
          - pl
          type: string
      - name: withNotOnboarded
        required: false
        in: query
        schema:
          type: boolean
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RentalPlaceExtraCompanyInfoDto'
      tags:
      - Rental Place
  /v2/rental-place/stores/allSlugs:
    get:
      operationId: getAllRentalPlaceStoresSlugs
      parameters:
      - name: withNotOnboarded
        required: false
        in: query
        schema:
          type: boolean
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
      tags:
      - Rental Place
  /v2/rental-place/universe:
    post:
      operationId: createRentalPlaceUniverse
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCreateRentalPlaceUniverseDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RentalPlaceUniverseDto'
      tags:
      - Rental Place
  /v2/rental-place/company/{companyId}/visit:
    post:
      operationId: countNewVisitToRentalPlaceCompany
      parameters:
      - name: companyId
        required: true
        in: path
        schema:
          type: string
      responses:
        '201':
          description: ''
      tags:
      - Rental Place
  /v2/rental-place/search:
    get:
      operationId: rentalPlaceSearch
      parameters:
      - name: lat
        required: true
        in: query
        schema:
          minimum: -90
          maximum: 90
          type: number
      - name: lng
        required: true
        in: query
        schema:
          minimum: -180
          maximum: 180
          type: number
      - name: verticales
        required: false
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - BIKE
            - ELECTRIC_BIKE
            - MOPED
            - MOTORCYCLE
            - CAR
            - SCOOTER
            - SKI
            - CLIMBING
            - SNOWSHOES
            - SURF
            - PADDLE
            - CANOE_KAYAK
            - BOAT
            - EVENT
            - MOTOCULTURE
            - TOOLING
      - name: categories
        required: false
        in: query
        schema:
          type: array
          items:
            type: string
      - name: radius
        required: false
        in: query
        schema:
          minimum: 0
          type: number
      - name: lokkiOnly
        required: false
        in: query
        schema:
          type: boolean
      - name: inDeliveryRange
        required: false
        in: query
        schema:
          type: boolean
      - name: delivery
        required: false
        in: query
        schema:
          type: boolean
      - name: insurance
        required: false
        in: query
        schema:
          type: boolean
      - name: onlinePayment
        required: false
        in: query
        schema:
          type: boolean
      - name: lld
        required: false
        in: query
        schema:
          type: boolean
      - name: dailyPriceMin
        required: false
        in: query
        schema:
          minimum: 0
          type: number
      - name: dailyPriceMax
        required: false
        in: query
        schema:
          type: number
      - name: view
        required: false
        in: query
        schema:
          enum:
          - default
          - fast
          - events
          - roaming
          - toprating
          - manyratings
          - cancellation
          - groups
          - promo
          - shortrent
          - longrent
          type: string
      - name: startDateAvailability
        required: false
        in: query
        schema:
          format: date-time
          type: string
      - name: endDateAvailability
        required: false
        in: query
        schema:
          format: date-time
          type: string
      - name: limit
        required: false
        in: query
        schema:
          minimum: 0
          type: number
      - name: sortBy
        required: false
        in: query
        schema:
          enum:
          - distance
          - bestRated
          - nbRentals
          - nbReviews
          - relevance
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RentalPlaceStoresWithProductsDto'
      tags:
      - Rental Place
components:
  schemas:
    RawOnlineStoreVerticalCategoryDto:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        i18nKey:
          type: string
      required:
      - id
      - name
      - i18nKey
    OpeningTimeFrame:
      type: object
      properties:
        id:
          type: string
        day:
          type: string
          enum:
          - monday
          - tuesday
          - wednesday
          - thursday
          - friday
          - saturday
          - sunday
          - ALL
        isOpen:
          type: boolean
        from:
          type: string
        to:
          type: string
      required:
      - id
      - day
      - isOpen
    PriceModelLLDDuration:
      type: object
      properties:
        type:
          type: string
          default: LLD
          enum:
          - LLD
        calendarMonths:
          type: number
        id:
          type: string
        price:
          type:
          - number
          - 'null'
        priceLowSeason:
          type:
          - number
          - 'null'
        label:
          $ref: '#/components/schemas/LocalizedContent'
      required:
      - type
      - calendarMonths
      - id
      - price
      - priceLowSeason
      - label
    RentalPlacePriceDto:
      type: object
      properties:
        initial:
          type:
          - number
          - 'null'
        discounted:
          type:
          - number
          - 'null'
      required:
      - initial
      - discounted
    RawOnlineStoreSubProductDto:
      type: object
      properties:
        id:
          type: string
        isAvailable:
          type: boolean
      required:
      - id
      - isAvailable
    CompanyRentalPlaceDescriptionsDto:
      type: object
      properties:
        fr:
          type: string
        en:
          type: string
      required:
      - fr
      - en
    DeliveryRangeSpecificPrice:
      type: object
      properties:
        price:
          type: number
        cities:
          type: array
          items:
            $ref: '#/components/schemas/CompanyDeliveryCity'
      required:
      - price
      - cities
    DeliveryRange:
      type: object
      properties:
        min:
          type: number
        max:
          type: number
        price:
          type: number
        specificPrices:
          type: array
          items:
            $ref: '#/components/schemas/DeliveryRangeSpecificPrice'
      required:
      - min
      - max
      - price
      - specificPrices
    CompanyRentalPlaceTeamDto:
      type: object
      properties:
        descriptions:
          $ref: '#/components/schemas/CompanyRentalPlaceDescriptionsDto'
        image:
          type: string
        video:
          type: string
        teamName:
          type: string
      required:
      - descriptions
      - image
      - video
      - teamName
    RawOnlineStorePackDto:
      type: object
      properties:
        type:
          type: string
          default: pack
          enum:
          - pack
        category:
          type: string
          default: pack
          enum:
          - pack
        priceModels:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/PriceModelSpecificDuration'
            - $ref: '#/components/schemas/PriceModelRangeDuration'
            - $ref: '#/components/schemas/PriceModelLLDDuration'
        bailAmount:
          type: number
        relatedProducts:
          type: array
          items:
            type: string
        isRelatedProduct:
          type: boolean
        options:
          type: array
          items:
            $ref: '#/components/schemas/RawOnlineStorePackOptionDto'
        packType:
          enum:
          - PRODUCT
          - CATEGORY
          type: string
        categories:
          type: array
          items:
            $ref: '#/components/schemas/PackCategory'
        id:
          type: string
        name:
          type: string
        onlineStoreName:
          $ref: '#/components/schemas/LocalizedContent'
        imageUrl:
          type: array
          items:
            type: string
        videoLink:
          type: string
        description:
          $ref: '#/components/schemas/LocalizedContent'
        rank:
          type: number
        productSurveyId:
          type: string
        vat:
          type: number
        onlineAvailability:
          type: boolean
        isAvailable:
          type: boolean
        hideOnOnlineStore:
          type: boolean
      required:
      - type
      - category
      - priceModels
      - bailAmount
      - relatedProducts
      - isRelatedProduct
      - options
      - packType
      - categories
      - id
      - name
      - onlineStoreName
      - imageUrl
      - videoLink
      - description
      - rank
      - productSurveyId
      - vat
      - onlineAvailability
      - isAvailable
      - hideOnOnlineStore
    RawOnlineStoreProductDto:
      type: object
      properties:
        type:
          type: string
          default: product
          enum:
          - product
        priceModels:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/PriceModelSpecificDuration'
            - $ref: '#/components/schemas/PriceModelRangeDuration'
            - $ref: '#/components/schemas/PriceModelLLDDuration'
        bailPrice:
          type: number
        relatedProducts:
          type: array
          items:
            type: string
        isRelatedProduct:
          type: boolean
        category:
          type: string
        productModel:
          type: string
        verticalCategory:
          $ref: '#/components/schemas/RawOnlineStoreVerticalCategoryDto'
        tags:
          type: array
          items:
            $ref: '#/components/schemas/OnlineStoreProductTags'
        insurance:
          $ref: '#/components/schemas/ProductInsurance'
        subProducts:
          type: array
          items:
            $ref: '#/components/schemas/RawOnlineStoreSubProductDto'
        id:
          type: string
        name:
          type: string
        onlineStoreName:
          $ref: '#/components/schemas/LocalizedContent'
        imageUrl:
          type: array
          items:
            type: string
        videoLink:
          type: string
        description:
          $ref: '#/components/schemas/LocalizedContent'
        rank:
          type: number
        productSurveyId:
          type: string
        vat:
          type: number
        onlineAvailability:
          type: boolean
        isAvailable:
          type: boolean
        hideOnOnlineStore:
          type: boolean
      required:
      - type
      - priceModels
      - bailPrice
      - relatedProducts
      - isRelatedProduct
      - category
      - productModel
      - verticalCategory
      - tags
      - insurance
      - subProducts
      - id
      - name
      - onlineStoreName
      - imageUrl
      - videoLink
      - description
      - rank
      - productSurveyId
      - vat
      - onlineAvailability
      - isAvailable
      - hideOnOnlineStore
    CompanyAddressComponentsDto:
      type: object
      properties:
        streetNumber:
          type: string
        street:
          type: string
        postalCode:
          type: string
        city:
          type: string
        administrativeAreaLevel1:
          type: string
        administrativeAreaLevel2:
          type: string
        country:
          type: string
        placeId:
          type: string
      required:
      - streetNumber
      - street
      - postalCode
      - city
      - administrativeAreaLevel1
      - administrativeAreaLevel2
      - country
      - placeId
    PriceModelRangeDuration:
      type: object
      properties:
        type:
          type: string
          default: range
          enum:
          - range
        minDuration:
          type: number
        maxDuration:
          type: number
        durationInDays:
          type: number
        id:
          type: string
        price:
          type:
          - number
          - 'null'
        priceLowSeason:
          type:
          - number
          - 'null'
        label:
          $ref: '#/components/schemas/LocalizedContent'
      required:
      - type
      - minDuration
      - maxDuration
      - id
      - price
      - priceLowSeason
      - label
    PackCategory:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        productModelId:
          type: string
        fieldId:
          type: string
      required:
      - id
      - name
      - productModelId
      - fieldId
    ProductDetails:
      type: object
      properties:
        name:
          type: string
        image:
          type:
          - string
          - 'null'
      required:
      - name
      - image
    CompanyDelivery:
      type: object
      properties:
        activated:
          type: boolean
        ranges:
          type: array
          items:
            $ref: '#/components/schemas/DeliveryRange'
        deliveryOnly:
          type: boolean
        returnDelivery:
          type: boolean
        freeDeliveryActivated:
          type: boolean
        freeDeliveryMinimumType:
          type: string
          enum:
          - MINUTES
          - SUBTOTAL
        freeDeliveryMinimumVal:
          type: number
        excludedCities:
          type: array
          items:
            $ref: '#/components/schemas/CompanyDeliveryCity'
      required:
      - activated
      - ranges
      - deliveryOnly
      - returnDelivery
      - freeDeliveryActivated
      - freeDeliveryMinimumType
      - freeDeliveryMinimumVal
      - excludedCities
    CompanyRentalPlaceUniversesDto:
      type: object
      properties:
        id:
          type: string
        categoryIds:
          type: array
          items:
            type: string
        pack:
          type: boolean
      required:
      - id
      - categoryIds
      - pack
    RentalPlaceCompanyPriceRangeDto:
      type: object
      properties:
        min:
          type: number
        max:
          type: number
      required:
      - min
      - max
    RentalPlaceDiscoverEventDto:
      type: object
      properties:
        id:
          type: string
        urlImage:
          type: string
        name:
          $ref: '#/components/schemas/LocalizedContent'
        duration:
          type: number
        slot:
          type: number
        price:
          type: number
      required:
      - id
      - urlImage
      - name
      - duration
      - slot
      - price
    EventUniverse:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        imageUrl:
          type: string
      required:
      - id
      - name
      - imageUrl
    PartnerRentalPlaceCompanyDto:
      type: object
      properties:
        name:
          type: string
        slug:
          type: string
        logoURL:
          type: string
        images:
          type: array
          items:
            type: string
        lat:
          type: number
        lng:
          type: number
        url:
          type: string
        availableProducts:
          type: array
          items:
            type: string
        availableProductsDetails:
          type: array
          items:
            $ref: '#/components/schemas/ProductDetails'
        totalNbAvailableProducts:
          type: number
        averagePrice:
          type: number
        minPrice:
          type: number
        maxPrice:
          type: number
        googleRating:
          type: number
        googleReviewsNb:
          type: number
        description:
          type: string
        descriptionHtml:
          type: string
        delivery:
          type: boolean
        deliveryRange:
          type: number
        insurance:
          type: boolean
        address:
          type: string
      required:
      - name
      - slug
      - logoURL
      - images
      - lat
      - lng
      - url
      - availableProducts
      - availableProductsDetails
      - totalNbAvailableProducts
      - averagePrice
      - minPrice
      - maxPrice
      - googleRating
      - googleReviewsNb
      - description
      - descriptionHtml
      - delivery
      - deliveryRange
      - insurance
      - address
    RawOnlineStoreServiceDto:
      type: object
      properties:
        type:
          type: string
          default: service
          enum:
          - service
        priceModels:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/PriceModelSpecificDuration'
            - $ref: '#/components/schemas/PriceModelRangeDuration'
            - $ref: '#/components/schemas/PriceModelLLDDuration'
        category:
          type: string
        tags:
          type: array
          items:
            $ref: '#/components/schemas/OnlineStoreProductTags'
        isRelatedProducts:
          type: boolean
        relatedProducts:
          type: array
          items:
            type: string
        isAssuranceTulip:
          type: boolean
        productModel:
          type: string
        verticalCategory:
          $ref: '#/components/schemas/RawOnlineStoreVerticalCategoryDto'
        id:
          type: string
        name:
          type: string
        onlineStoreName:
          $ref: '#/components/schemas/LocalizedContent'
        imageUrl:
          type: array
          items:
            type: string
        videoLink:
          type: string
        description:
          $ref: '#/components/schemas/LocalizedContent'
        rank:
          type: number
        productSurveyId:
          type: string
        vat:
          type: number
        onlineAvailability:
          type: boolean
        isAvailable:
          type: boolean
        hideOnOnlineStore:
          type: boolean
      required:
      - type
      - priceModels
      - category
      - tags
      - isRelatedProducts
      - relatedProducts
      - isAssuranceTulip
      - productModel
      - verticalCategory
      - id
      - name
      - onlineStoreName
      - imageUrl
      - videoLink
      - description
      - rank
      - productSurveyId
      - vat
      - onlineAvailability
      - isAvailable
      - hideOnOnlineStore
    RentalPlaceCompanyDto:
      type: object
      properties:
        addressComponents:
          $ref: '#/components/schemas/CompanyAddressComponentsDto'
        id:
          type: string
        slug:
          type: string
        name:
          type: string
        logoURL:
          type: string
        description:
          type: string
        bannerURL:
          type: array
          items:
            type: string
        address:
          type: string
        lat:
          type: number
        lng:
          type: number
        rentalPlaceInfos:
          $ref: '#/components/schemas/CompanyRentalPlaceDto'
        onlineStoreConfig:
          $ref: '#/components/schemas/OnlineStoreConfig'
        distance:
          type: number
        googleRating:
          type: number
        googleReviewsNb:
          type: number
        universes:
          type: array
          items:
            $ref: '#/components/schemas/RentalPlaceCompanyUniverseDto'
        availableProducts:
          type: number
        dailyPriceRange:
          $ref: '#/components/schemas/RentalPlaceCompanyPriceRangeDto'
        tulipActivated:
          type: boolean
        discount:
          type: number
        durationRange:
          $ref: '#/components/schemas/RentalPlaceCompanyDurationRangeDto'
        timezone:
          type: string
        rentalPointId:
          type: string
        rentalPointSlug:
          type: string
        bestSellers:
          allOf:
          - $ref: '#/components/schemas/RawOnlineStoreItemListDto'
        haveLld:
          type: boolean
        events:
          type: array
          items:
            $ref: '#/components/schemas/RentalPlaceDiscoverEventDto'
        delivery:
          type: boolean
      required:
      - id
      - slug
      - name
      - logoURL
      - description
      - bannerURL
      - address
      - lat
      - lng
      - rentalPlaceInfos
      - onlineStoreConfig
      - distance
      - googleRating
      - googleReviewsNb
      - universes
      - availableProducts
      - dailyPriceRange
      - tulipActivated
      - discount
      - durationRange
      - timezone
      - rentalPointId
      - rentalPointSlug
      - bestSellers
      - haveLld
      - events
      - delivery
    CompanyRentalPlaceDto:
      type: object
      properties:
        image:
          type: string
        additionalImages:
          type: array
          items:
            type: string
        descriptions:
          $ref: '#/components/schemas/CompanyRentalPlaceDescriptionsDto'
        universes:
          type: array
          items:
            $ref: '#/components/schemas/CompanyRentalPlaceUniversesDto'
        verticales:
          type: array
          items:
            type: string
            enum:
            - BIKE
            - ELECTRIC_BIKE
            - MOPED
            - MOTORCYCLE
            - CAR
            - SCOOTER
            - SKI
            - CLIMBING
            - SNOWSHOES
            - SURF
            - PADDLE
            - CANOE_KAYAK
            - BOAT
            - EVENT
            - MOTOCULTURE
            - TOOLING
        showcaseProducts:
          type: array
          items:
            $ref: '#/components/schemas/CompanyShowcaseProductDto'
        team:
          $ref: '#/components/schemas/CompanyRentalPlaceTeamDto'
        lokkiComment:
          type: string
      required:
      - image
      - additionalImages
      - descriptions
      - universes
      - verticales
      - showcaseProducts
      - team
      - lokkiComment
    LocalizedReview:
      type: object
      properties:
        reviews:
          type: array
          items:
            $ref: '#/components/schemas/GoogleReview'
        fetchedAt:
          format: date-time
          type: string
      required:
      - reviews
    UpdateCreateRentalPlaceUniverseDto:
      type: object
      properties:
        name:
          type: string
        displayName:
          type: string
        img:
          type: string
        color:
          type: string
        verticales:
          type: array
          items:
            type: string
            enum:
            - BIKE
            - ELECTRIC_BIKE
            - MOPED
            - MOTORCYCLE
            - CAR
            - SCOOTER
            - SKI
            - CLIMBING
            - SNOWSHOES
            - SURF
            - PADDLE
            - CANOE_KAYAK
            - BOAT
            - EVENT
            - MOTOCULTURE
            - TOOLING
      required:
      - name
      - displayName
      - img
      - color
      - verticales
    RentalPlaceUniversesDto:
      type: object
      properties:
        universes:
          type: array
          items:
            $ref: '#/components/schemas/RentalPlaceUniverseDto'
      required:
      - universes
    ProductPriceRule:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        rules:
          type: array
          items:
            $ref: '#/components/schemas/PriceRule'
      required:
      - id
      - title
      - rules
    RentalPlaceStoresWithProductsDto:
      type: object
      properties:
        id:
          type: string
        slug:
          type: string
        name:
          type: string
        l

# --- truncated at 32 KB (51 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lokki/refs/heads/main/openapi/lokki-rental-place-api-openapi.yml