Lokki External API

The External API from Lokki — 7 operation(s) for external.

Operations 7

GET /v2/external/verticales #
GET /v2/external/verticales/categories #
GET /v2/external/stores #
GET /v2/external/stores/count #
GET /v2/external/stores/{id} #
GET /v2/external/stores/{slug}/items/{itemId} #
GET /v2/external/stores/{slug}/items #

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-external-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-external-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lokki External API
  version: '2.0'
  description: 'Operations tagged External across 2 of this provider''s published API definitions: lokki-dashboard-api-openapi.json, lokki-external-api-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://staging.api.eu-west-3.lokki.rent
- url: https://prod.api.eu-west-3.getlokki.com
security:
- x-access-token: []
tags:
- name: External
paths:
  /v2/external/verticales:
    get:
      operationId: external__getManyVerticales
      parameters:
      - name: lang
        required: true
        in: query
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/VerticaleExternalDto'
      tags:
      - External
  /v2/external/verticales/categories:
    get:
      operationId: external__getManyCategories
      parameters:
      - name: skip
        required: false
        in: query
        description: Number of documents to skip
        schema:
          minimum: 0
          default: 0
          type: number
      - name: limit
        required: false
        in: query
        description: Maximum number of documents to return
        schema:
          minimum: 0
          maximum: 100
          default: 100
          type: number
      - name: sort
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: 'Sort order for the results. Use ''__asc'' or ''__desc'' suffix to specify ascending or descending order respectively. Example: ''name__asc'''
      - name: fields
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: Fields to include in the response
      - name: verticale.isNull
        required: false
        in: query
        description: Filter entries that have the field as null
        schema:
          type: boolean
      - name: verticale.exists
        required: false
        in: query
        description: Filter entries that have the field not null
        schema:
          type: boolean
      - name: verticale.equals
        required: false
        in: query
        description: Filter entries that have a specific value
        schema:
          type: string
      - name: verticale.notEquals
        required: false
        in: query
        description: Filter entries that do not have a specific value
        schema:
          type: string
      - name: verticale.in
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: Filter entries that match any of the specified values
      - name: verticale.notIn
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: Filter entries that do not match any of the specified values
      - name: lang
        required: false
        in: query
        description: Language for localized content
        example: fr
        schema:
          enum:
          - fr
          - en
          - nl
          - de
          - it
          - pt
          - es
          - pl
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetManyCategoriesResponseDto'
      tags:
      - External
  /v2/external/stores:
    get:
      operationId: external__getManyStores
      parameters:
      - name: skip
        required: false
        in: query
        description: Number of documents to skip
        schema:
          minimum: 0
          default: 0
          type: number
      - name: limit
        required: false
        in: query
        description: Maximum number of documents to return
        schema:
          minimum: 0
          maximum: 100
          default: 100
          type: number
      - name: sort
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: 'Sort order for the results. Use ''__asc'' or ''__desc'' suffix to specify ascending or descending order respectively. Example: ''name__asc'''
      - name: fields
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: Fields to include in the response
      - name: verticale.isNull
        required: false
        in: query
        description: Filter entries that have the field as null
        schema:
          type: boolean
      - name: verticale.exists
        required: false
        in: query
        description: Filter entries that have the field not null
        schema:
          type: boolean
      - name: verticale.equals
        required: false
        in: query
        description: Filter entries that have a specific value
        schema:
          type: string
      - name: verticale.notEquals
        required: false
        in: query
        description: Filter entries that do not have a specific value
        schema:
          type: string
      - name: verticale.in
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: Filter entries that match any of the specified values
      - name: verticale.notIn
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: Filter entries that do not match any of the specified values
      - name: position.radius
        required: false
        in: query
        description: Radius in kilometers (max 50km). Optional, but if provided, latitude and longitude must also be provided.
        schema:
          minimum: 0
          maximum: 50
          type: number
      - name: position.latitude
        required: false
        in: query
        description: Latitude of the position. Optional, but if provided, longitude and radius must also be provided.
        schema:
          minimum: -90
          maximum: 90
          type: number
      - name: position.longitude
        required: false
        in: query
        description: Longitude of the position. Optional, but if provided, latitude and radius must also be provided.
        schema:
          minimum: -180
          maximum: 180
          type: number
      - name: lang
        required: false
        in: query
        description: Language for localized content
        example: fr
        schema:
          enum:
          - fr
          - en
          - nl
          - de
          - it
          - pt
          - es
          - pl
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetManyStoresResponseDto'
      tags:
      - External
  /v2/external/stores/count:
    get:
      operationId: external__getCountStores
      parameters:
      - name: sort
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: 'Sort order for the results. Use ''__asc'' or ''__desc'' suffix to specify ascending or descending order respectively. Example: ''name__asc'''
      - name: fields
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: Fields to include in the response
      - name: verticale.isNull
        required: false
        in: query
        description: Filter entries that have the field as null
        schema:
          type: boolean
      - name: verticale.exists
        required: false
        in: query
        description: Filter entries that have the field not null
        schema:
          type: boolean
      - name: verticale.equals
        required: false
        in: query
        description: Filter entries that have a specific value
        schema:
          type: string
      - name: verticale.notEquals
        required: false
        in: query
        description: Filter entries that do not have a specific value
        schema:
          type: string
      - name: verticale.in
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: Filter entries that match any of the specified values
      - name: verticale.notIn
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: Filter entries that do not match any of the specified values
      - name: position.radius
        required: false
        in: query
        description: Radius in kilometers (max 50km). Optional, but if provided, latitude and longitude must also be provided.
        schema:
          minimum: 0
          maximum: 50
          type: number
      - name: position.latitude
        required: false
        in: query
        description: Latitude of the position. Optional, but if provided, longitude and radius must also be provided.
        schema:
          minimum: -90
          maximum: 90
          type: number
      - name: position.longitude
        required: false
        in: query
        description: Longitude of the position. Optional, but if provided, latitude and radius must also be provided.
        schema:
          minimum: -180
          maximum: 180
          type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CountStoresResponseDto'
      tags:
      - External
  /v2/external/stores/{id}:
    get:
      operationId: external__getOneStore
      parameters:
      - name: id
        required: true
        in: path
        description: The unique ID or slug of the store
        example: 64b64c4f5f3c2a6d8e7f9a01
        schema:
          type: string
      - name: fields
        required: false
        in: query
        description: Fields to include in the response
        schema:
          type: array
          items:
            type: string
      - name: lang
        required: false
        in: query
        description: Language for localized content
        example: fr
        schema:
          default: fr
          enum:
          - fr
          - en
          - nl
          - de
          - it
          - pt
          - es
          - pl
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Deprecated_External_Store'
      tags:
      - External
  /v2/external/stores/{slug}/items/{itemId}:
    get:
      operationId: external__getOneStoreItem
      parameters:
      - name: slug
        required: true
        in: path
        description: The slug of the store
        example: my-store-slug
        schema:
          pattern: /^[a-z0-9-]+$/
          type: string
      - name: itemId
        required: true
        in: path
        description: The ID of the item
        example: item-12345
        schema:
          type: string
      - name: ids
        required: false
        in: query
        description: Item IDs to retrieve
        example:
        - '1'
        - '2'
        - '3'
        schema:
          type: array
          items:
            type: string
      - name: lang
        required: true
        in: query
        description: Language for localized content
        example: fr
        schema:
          default: fr
          enum:
          - fr
          - en
          - nl
          - de
          - it
          - pt
          - es
          - pl
          type: string
      - name: preview
        required: false
        in: query
        description: If true, include unpublished stores (for preview mode)
        example: false
        schema:
          default: false
          type: boolean
      - name: from
        required: false
        in: query
        description: Start date for filtering items (optional)
        example: '2025-09-26T10:00:00.000Z'
        schema:
          format: date-time
          type: string
      - name: to
        required: false
        in: query
        description: End date for filtering items (optional)
        example: '2025-10-31T14:30:00.000Z'
        schema:
          format: date-time
          type: string
      - name: verticale
        required: false
        in: query
        description: The large category of the item (e.g., BIKE, CAR, BOAT, etc.)
        example: BIKE
        schema:
          enum:
          - BIKE
          - ELECTRIC_BIKE
          - MOPED
          - MOTORCYCLE
          - CAR
          - SCOOTER
          - SKI
          - CLIMBING
          - SNOWSHOES
          - SURF
          - PADDLE
          - CANOE_KAYAK
          - BOAT
          - EVENT
          - MOTOCULTURE
          - TOOLING
          type: string
      - name: verticaleCategoryIds
        required: false
        in: query
        description: The precise category of the item (e.g., Mountain Bike, Road Bike, etc.)
        schema:
          type: array
          items:
            type: string
      - name: sortBy
        required: false
        in: query
        description: Sort by
        example: price_asc
        schema:
          enum:
          - relevance
          - price_asc
          - price_desc
          type: string
      - name: limit
        required: false
        in: query
        description: Limit of items to retrieve
        example: 10
        schema:
          type: number
      - name: skip
        required: false
        in: query
        description: Skip of items to retrieve
        example: 0
        schema:
          default: 0
          type: number
      - name: search
        required: false
        in: query
        description: Search term to filter items
        example: electric bike
        schema:
          type: string
      - name: context
        required: false
        in: query
        description: Context in which items are being queried. RENTAL_PLACE (default) requires marketplace eligibility. ONLINE_STORE relaxes those requirements for BEL V1 companies not listed on the marketplace.
        schema:
          default: RENTAL_PLACE
          enum:
          - RENTAL_PLACE
          - ONLINE_STORE
          type: string
      - name: fields
        required: false
        in: query
        description: Fields to include in the response
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreItemDto'
      tags:
      - External
  /v2/external/stores/{slug}/items:
    get:
      operationId: external__getManyStoreItems
      parameters:
      - name: slug
        required: true
        in: path
        description: The slug of the store
        example: my-store-slug
        schema:
          pattern: /^[a-z0-9-]+$/
          type: string
      - name: ids
        required: false
        in: query
        description: Item IDs to retrieve
        example:
        - '1'
        - '2'
        - '3'
        schema:
          type: array
          items:
            type: string
      - name: lang
        required: true
        in: query
        description: Language for localized content
        example: fr
        schema:
          default: fr
          enum:
          - fr
          - en
          - nl
          - de
          - it
          - pt
          - es
          - pl
          type: string
      - name: preview
        required: false
        in: query
        description: If true, include unpublished stores (for preview mode)
        example: false
        schema:
          default: false
          type: boolean
      - name: from
        required: false
        in: query
        description: Start date for filtering items (optional)
        example: '2025-09-26T10:00:00.000Z'
        schema:
          format: date-time
          type: string
      - name: to
        required: false
        in: query
        description: End date for filtering items (optional)
        example: '2025-10-31T14:30:00.000Z'
        schema:
          format: date-time
          type: string
      - name: verticale
        required: false
        in: query
        description: The large category of the item (e.g., BIKE, CAR, BOAT, etc.)
        example: BIKE
        schema:
          enum:
          - BIKE
          - ELECTRIC_BIKE
          - MOPED
          - MOTORCYCLE
          - CAR
          - SCOOTER
          - SKI
          - CLIMBING
          - SNOWSHOES
          - SURF
          - PADDLE
          - CANOE_KAYAK
          - BOAT
          - EVENT
          - MOTOCULTURE
          - TOOLING
          type: string
      - name: verticaleCategoryIds
        required: false
        in: query
        description: The precise category of the item (e.g., Mountain Bike, Road Bike, etc.)
        schema:
          type: array
          items:
            type: string
      - name: sortBy
        required: false
        in: query
        description: Sort by
        example: price_asc
        schema:
          enum:
          - relevance
          - price_asc
          - price_desc
          type: string
      - name: limit
        required: false
        in: query
        description: Limit of items to retrieve
        example: 10
        schema:
          type: number
      - name: skip
        required: false
        in: query
        description: Skip of items to retrieve
        example: 0
        schema:
          default: 0
          type: number
      - name: search
        required: false
        in: query
        description: Search term to filter items
        example: electric bike
        schema:
          type: string
      - name: context
        required: false
        in: query
        description: Context in which items are being queried. RENTAL_PLACE (default) requires marketplace eligibility. ONLINE_STORE relaxes those requirements for BEL V1 companies not listed on the marketplace.
        schema:
          default: RENTAL_PLACE
          enum:
          - RENTAL_PLACE
          - ONLINE_STORE
          type: string
      - name: fields
        required: false
        in: query
        description: Fields to include in the response
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StoreItemDto'
      tags:
      - External
components:
  schemas:
    ItemInfos:
      type: object
      properties:
        name:
          type: string
          description: Name of the item
          example: Mountain Bike X2000
        localizedName:
          description: Item name resolved per supported locale
          allOf:
          - $ref: '#/components/schemas/LocalizedContent'
        description:
          type: string
          description: Detailed localized description of the item
          example: A high-performance mountain bike suitable for all terrains.
      required:
      - name
      - description
    StoreBookingType:
      type: object
      properties:
        lcd:
          type: boolean
          description: Indicates if short-term rentals (LCD) are enabled
          example: true
        lld:
          type: boolean
          description: Indicates if long-term rentals (LLD) are enabled
          example: true
        event:
          type: boolean
          description: Indicates if events are enabled
          example: true
      required:
      - lcd
      - lld
      - event
    ItemPricingTableEntryDurationSpecific:
      type: object
      properties:
        type:
          type: string
          enum:
          - specific
        minutes:
          type: number
          description: Duration in minutes
          example: 1440
      required:
      - type
      - minutes
    StoreProductDto:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for the item
          example: 61e7b8f9e4b0c8a1d4f3c2b1
        rentalType:
          enum:
          - LCD
          - LLD
          type: string
          description: The rental type of the item (Short-term or Long-term rental)
          example: LCD
        settings:
          description: Settings and configuration for the item
          allOf:
          - $ref: '#/components/schemas/ItemSettings'
        infos:
          description: Information about the item
          allOf:
          - $ref: '#/components/schemas/ItemInfos'
        category:
          description: Category information of the item
          allOf:
          - $ref: '#/components/schemas/ItemCategory'
        media:
          description: Media associated with the item
          allOf:
          - $ref: '#/components/schemas/ItemMedia'
        pricing:
          description: Pricing details of the item
          allOf:
          - $ref: '#/components/schemas/ItemPricing'
        time:
          description: Time range information and constraints for the item
          allOf:
          - $ref: '#/components/schemas/ItemTimeInfos'
        stock:
          description: Stock information of the item
          allOf:
          - $ref: '#/components/schemas/ItemStock'
        modules:
          description: Item module settings (insurance, etc.)
          allOf:
          - $ref: '#/components/schemas/ItemModules'
        type:
          type: string
          enum:
          - product
          - service
          - pack
          description: Type of the item
          example: product
      required:
      - id
      - rentalType
      - settings
      - infos
      - category
      - media
      - pricing
      - time
      - stock
      - modules
      - type
    CategoryExternalVerticaleInfos:
      type: object
      properties:
        id:
          enum:
          - BIKE
          - ELECTRIC_BIKE
          - MOPED
          - MOTORCYCLE
          - CAR
          - SCOOTER
          - SKI
          - CLIMBING
          - SNOWSHOES
          - SURF
          - PADDLE
          - CANOE_KAYAK
          - BOAT
          - EVENT
          - MOTOCULTURE
          - TOOLING
          type: string
          description: Identifier of the verticale
          example: BIKE
        name:
          type: string
          description: Localized name of the verticale
          example: Vélo
      required:
      - id
      - name
    Deprecated_External_StoreAddressComponents:
      type: object
      properties:
        administrativeAreaLevel1:
          type: string
          description: 'State, province, or region

            Deprecated, use `geo.location.components.administrativeAreaLevel1` instead.'
          example: Hauts-de-France
          deprecated: true
        administrativeAreaLevel2:
          type: string
          description: 'County or district

            Deprecated, use `geo.location.components.administrativeAreaLevel2` instead.'
          example: Nord
          deprecated: true
        city:
          type: string
          description: 'City

            Deprecated, use `geo.location.components.city` instead.'
          example: Lille
          deprecated: true
        country:
          type: string
          description: 'Country

            Deprecated, use `geo.location.components.country` instead.'
          example: France
          deprecated: true
        placeId:
          type: string
          description: 'Google Place ID

            Deprecated, use `geo.location.placeId` instead.'
          example: ChIJCSaqfIjVwkcRhvxuup4tznk
          deprecated: true
        postalCode:
          type: string
          description: 'Postal code

            Deprecated, use `geo.location.components.postalCode` instead.'
          example: '59000'
          deprecated: true
        street:
          type: string
          description: 'Route or street name

            Deprecated, use `geo.location.components.street` instead.'
          example: Place du Général de Gaulle
          deprecated: true
        streetNumber:
          type: string
          description: 'Street number

            Deprecated, use `geo.location.components.streetNumber` instead.'
          example: '1'
          deprecated: true
      required:
      - administrativeAreaLevel1
      - administrativeAreaLevel2
      - city
      - country
      - placeId
      - postalCode
      - street
      - streetNumber
    StoreDeliveryFreeSettings:
      type: object
      properties:
        activated:
          type: boolean
          description: Indicates if free delivery is activated
          example: true
        type:
          enum:
          - MINUTES
          - SUBTOTAL
          type: string
          description: Type of condition for free delivery (either minimum minutes or subtotal amount)
          example: MINUTES
        value:
          type: number
          description: Value corresponding to the type (minutes or subtotal amount)
          example: 60
      required:
      - activated
      - type
      - value
    ItemPriceRule:
      type: object
      properties:
        id:
          type: string
        companyId:
          type: string
        title:
          type: string
        rules:
          type: array
          items:
            $ref: '#/components/schemas/PriceRule'
      required:
      - id
      - companyId
      - title
      - rules
    StoreModules:
      type: object
      properties:
        delivery:
          description: Delivery module settings
          allOf:
          - $ref: '#/components/schemas/StoreDelivery'
        onlinePayment:
          description: Online payment module settings
          allOf:
          - $ref: '#/components/schemas/StoreOnlinePayment'
        insurance:
          description: Insurance module settings
          allOf:
          - $ref: '#/components/schemas/StoreInsurance'
        multipleLocations:
          description: Multiple locations module settings
          allOf:
          - $ref: '#/components/schemas/StoreMultipleLocations'
        cancellation:
          description: Cancellation module settings
          allOf:
          - $ref: '#/components/schemas/StoreCancellation'
        rentalPlaceNetwork:
          description: Rental place network participation settings
          allOf:
          - $ref: '#/components/schemas/StoreRentalPlaceNetwork'
        stockVisibility:
          description: Stock visibility module settings
          allOf:
          - $ref: '#/components/schemas/StoreStockVisibility'
        breadcrumbVisibility:
          description: Breadcrumb visibility on BEL 2.0 store pages
          allOf:
          - $ref: '#/components/schemas/StoreBreadcrumbVisibility'
      required:
      - delivery
      - onlinePayment
      - insurance
      - multipleLocations
      - cancellation
      - rentalPlaceNetwork
      - stockVisibility
      - breadcrumbVisibility
    ItemRangeInfos:
      type: object
      properties:
        min:
          type: number
          description: Minimum time in minutes for this time range with price
          example: 60
        max:
          type: number
          description: Maximum time in minutes for this time range with price
          example: 1440
      required:
      - min
      - max
    StoreTimestamps:
      type: object
      properties:
        createdAt:
          format: date-time
          type: string
          description: Date when the store was created
          example: '2024-10-15T10:30:00.000Z'
      required:
      - createdAt
    StoreInsuranceTulipDetails:
      type: object
      properties:
        provider:
          type: string
          enum:
          - TULIP
        status:
          enum:
          - 'off'
          - on_inclusion_hidden
          - on_inclusion
          - on_option
          - with_assurance
          type: string
          description: Tulip insurance status for the store
          example: on_inclusion
      required:
      - provider
      - status
    StorePackCategoryInfos:
      type: object
      properties:
        name:
          type: string
      required:
      - name
    ItemStock:
      type: object
      properties:
        availableQuantity:
          type: number
          description: Available quantity of the item
          example: 10
        totalQuantity:
          type: number
          description: Total quantity of the item
          example: 10
        isAvailable:
          type: boolean
          description: 'Whether the item can be booked for the requested range. Quantities overload 0 as both ''none'' and ''unlimited'' (services, service-backed pack lines), so this is the only unambiguous availability signal. Products: at least one sub-product available. Services: always true. Packs: every line has at least one available option.'
          example: true
      required:
      - availableQuantity
      - totalQuantity
      - isAvailable
    ItemDurationInfos:
      type: object
      properties:
        min:
          type: number
          description: Minimum duration in minutes allowed for the item
          example: 60
        max:
          type: number
          description: Maximum duration in minutes allowed for the item
          example: 1440
      required:
      - min
      - max
    StoreGlobalDiscount:
      type: object
      properties:
        percentage:
          type: number
          description: Percentage value of the discount
          example: '10.0'
        from:
          format: date-time
          type:
          - string
          - 'null'
          description: Start date of the discount period (null if always applicable)
          example: '2024-12-01T00:00:00.000Z'
        to:
          format: date-time
          type:
          - string
          - 'null'
          description: End date of the discount period (null if always applicable)
          example: '2024-12-31T23:59:59.999Z'
        applicableDate:
          enum:
          - CREATED_DATE
          - START_DATE
          type: string
          description: Whether the discount applies on the start date of the booking or when the booking is made
          example: START_DATE
      required:
      - percentage
      - from
      - to
      - applicableDate
    StoreDeposit:
      type: object
      properties:
        max:
          description: Maximum deposit settings
          allOf:
          - $ref: '#/components/schemas/StoreDepositMax'
        online:
          type: boolean
          description: Whether the customer can pay the deposit online
          example: true
      required:
      - max
      - online
    ItemMediaDocuments:
      type: object
      properties:
        url:
          type: string
          description: document URLs associated with the item
          example:
          - https://example.com/documents/item1.pdf
          - https://example.com/documents/item2.pdf
        name:
          type: string
          description: Name of the document
          example: Item Manual
      required:
      - url
      - name
    StoreTemporal:
      type: object
      properties:
        timezone:
          type: string
          description: Store timezone in IANA format (e.g., Europe/Paris)
          example: Europe/Paris
        schedule:

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