Lokki Quote Request API

The Quote Request API from Lokki — 4 operation(s) for quote request.

Business capability
Quote & Configuration Management BC-410.40

Operations 6

GET /v2/quote-request/private #
GET /v2/quote-request/private/{id} #
PATCH /v2/quote-request/private/{id} #
POST /v2/quote-request/private/{id}/cancel #
POST /v2/quote-request/public #
GET /v2/quote-request/public #

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-quote-request-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-quote-request-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lokki Quote Request API
  description: The main API powering the Lokki Dashboard and Online Store
  version: '2.0'
  contact: {}
servers: []
security:
- x-access-token: []
tags:
- name: Quote Request
paths:
  /v2/quote-request/private:
    get:
      operationId: getManyQuoteRequestPrivate
      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: 1
          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: status.isNull
        required: false
        in: query
        description: Filter entries that have the field as null
        schema:
          type: boolean
      - name: status.exists
        required: false
        in: query
        description: Filter entries that have the field not null
        schema:
          type: boolean
      - name: status.equals
        required: false
        in: query
        description: Filter entries that have a specific value
        schema:
          type: string
      - name: status.notEquals
        required: false
        in: query
        description: Filter entries that do not have a specific value
        schema:
          type: string
      - name: status.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: status.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: createdDate.isNull
        required: false
        in: query
        description: Filter entries that have the field as null
        schema:
          type: boolean
      - name: createdDate.exists
        required: false
        in: query
        description: Filter entries that have the field not null
        schema:
          type: boolean
      - name: createdDate.equals
        required: false
        in: query
        description: Filter entries that match a specific date
        schema:
          type: string
      - name: createdDate.notEquals
        required: false
        in: query
        description: Filter entries that do not match a specific date
        schema:
          type: string
      - name: createdDate.in
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: Filter entries that match any of the specified dates
      - name: createdDate.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 dates
      - name: createdDate.gt
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: Filter entries with a date greater than the specified date
      - name: createdDate.lt
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: Filter entries with a date less than the specified date
      - name: createdDate.gte
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: Filter entries with a date greater than or equal to the specified date
      - name: createdDate.lte
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: Filter entries with a date less than or equal to the specified date
      - name: startDate.isNull
        required: false
        in: query
        description: Filter entries that have the field as null
        schema:
          type: boolean
      - name: startDate.exists
        required: false
        in: query
        description: Filter entries that have the field not null
        schema:
          type: boolean
      - name: startDate.equals
        required: false
        in: query
        description: Filter entries that match a specific date
        schema:
          type: string
      - name: startDate.notEquals
        required: false
        in: query
        description: Filter entries that do not match a specific date
        schema:
          type: string
      - name: startDate.in
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: Filter entries that match any of the specified dates
      - name: startDate.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 dates
      - name: startDate.gt
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: Filter entries with a date greater than the specified date
      - name: startDate.lt
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: Filter entries with a date less than the specified date
      - name: startDate.gte
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: Filter entries with a date greater than or equal to the specified date
      - name: startDate.lte
        required: false
        in: query
        schema:
          oneOf:
          - type: array
            items:
              type: string
          - type: string
        description: Filter entries with a date less than or equal to the specified date
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetManyQuoteRequestsResponseDto'
      tags:
      - Quote Request
  /v2/quote-request/private/{id}:
    get:
      operationId: getOneQuoteRequestPrivate
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteRequestEntity'
      tags:
      - Quote Request
    patch:
      operationId: patchOneQuoteRequestPrivate
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchOneQuoteRequestDto'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteRequestEntity'
      tags:
      - Quote Request
  /v2/quote-request/private/{id}/cancel:
    post:
      operationId: cancelQuoteRequestPrivate
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelQuoteRequestDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteRequestEntity'
      tags:
      - Quote Request
  /v2/quote-request/public:
    post:
      operationId: postOneQuoteRequestPublic
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostOneQuoteRequestDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuoteRequestEntity'
      tags:
      - Quote Request
    get:
      operationId: getManyQuoteRequestPublic
      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: 1
          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: status.isNull
        required: false
        in: query
        description: Filter entries that have the field as null
        schema:
          type: boolean
      - name: status.exists
        required: false
        in: query
        description: Filter entries that have the field not null
        schema:
          type: boolean
      - name: status.equals
        required: false
        in: query
        description: Filter entries that have a specific value
        schema:
          type: string
      - name: status.notEquals
        required: false
        in: query
        description: Filter entries that do not have a specific value
        schema:
          type: string
      - name: status.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: status.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: type.isNull
        required: false
        in: query
        description: Filter entries that have the field as null
        schema:
          type: boolean
      - name: type.exists
        required: false
        in: query
        description: Filter entries that have the field not null
        schema:
          type: boolean
      - name: type.equals
        required: false
        in: query
        description: Filter entries that have a specific value
        schema:
          type: string
      - name: type.notEquals
        required: false
        in: query
        description: Filter entries that do not have a specific value
        schema:
          type: string
      - name: type.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: type.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/GetManyQuoteRequestsPublicResponseDto'
      tags:
      - Quote Request
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
    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
    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
    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
    QuoteRequestOrderInfo:
      type: object
      properties:
        id:
          type: string
          description: Order ID (MongoDB ObjectId)
          example: 692f10cc2c110b2849967659
        delivery:
          description: Departure point label or identifier. Null if not applicable.
          example: Shop - Gare de Lyon
          allOf:
          - $ref: '#/components/schemas/DeliveryInfo'
        startDate:
          format: date-time
          type: string
          description: Quote request start date the customer wants
          example: '2025-10-16T10:30:00.000Z'
        endDate:
          format: date-time
          type: string
          description: Quote request end date the customer wants
          example: '2025-10-20T10:30:00.000Z'
        price:
          type: number
          description: Total order price including taxes (TTC)
          example: 152.5
        items:
          description: Item details for this order
          type: array
          items:
            $ref: '#/components/schemas/QuoteRequestOrderItem'
        paymentInfo:
          description: Payment information
          allOf:
          - $ref: '#/components/schemas/PaymentInfo'
        orderStatus:
          enum:
          - TO_COME
          - IN_PROGRESS
          - ENDED
          type: string
          description: Order status
      required:
      - id
      - startDate
      - endDate
      - price
      - items
      - paymentInfo
      - orderStatus
    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
    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
    DeliveryInfo:
      type: object
      properties:
        departurePoint:
          type:
          - string
          - 'null'
          description: Departure point label or identifier. Null if not applicable.
          example: Shop - Gare de Lyon
        arrivalPoint:
          type:
          - string
          - 'null'
          description: Arrival point label or identifier. Null if not applicable.
          example: Shop - Gare de Lyon
      required:
      - departurePoint
      - arrivalPoint
    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
    QuoteRequestsPublic:
      type: object
      properties:
        id:
          type: string
          description: Quote ID (ObjectId)
          example: 64b7f8f2e4b0c2a1d5e6f789
        type:
          enum:
          - agency
          - renter
          type: string
          description: Type of quote request (agency or private)
          example: agency
        companyId:
          type: string
          description: Company ID which received the quote request (ObjectId)
          example: 64b7f8f2e4b0c2a1d5e6f788
        rentalPointId:
          type: string
          description: Rental point ID where the quote request has been made (ObjectId)
          example: 64b7f8f2e4b0c2a1d5e6f787
        status:
          enum:
          - REQUEST
          - CANCELED
          - SENDED
          - CONVERTED
          - EXPIRED
          type: string
          description: Quote request status
          example: REQUEST
        orderId:
          type: string
          description: Linked order ID of the order created from the quote (ObjectId)
          example: 64b7f8f2e4b0c2a1d5e6f786
        customer:
          description: Customer information, filled by the user who made the quote request
          allOf:
          - $ref: '#/components/schemas/QuoteRequestCustomer'
        projectInfos:
          description: Project information, filled by the user who made the quote request
          allOf:
          - $ref: '#/components/schemas/QuoteRequestProjectInfos'
        cancelReason:
          enum:
          - NO_SUPPLY
          - UNAVAILABLE_ACCESSORY
          - SCHEDULING_ISSUE
          - NON_COMPATIBLE_REQUEST
          - UNSPECIFIC_REQUEST
          - CUSTOMER_SUITABILITY
          - INVENTORY_UNAVAILABILITY
          - WEATHER
          - EXCEPTIONAL_CLOSURE
          - LAST_MINUTE_REQUEST
          - OTHER
          - USER_SELF_CHECKOUT
          type: string
          description: Reason for quote request cancellation
          example: INVENTORY_UNAVAILABILITY
        customCancelReason:
          type: string
          description: Reason for quote request cancellation that is not in the predefined list
          example: Found a better deal elsewhere
        metadata:
          description: Additional metadata about the quote request
          allOf:
          - $ref: '#/components/schemas/QuoteRequestMetadata'
        sendedDate:
          format: date-time
          type: string
          description: Date when the renter sent an answer to the quote request
          example: '2025-10-16T10:30:00.000Z'
        cancelDate:
          format: date-time
          type: string
          description: Date when the quote request has been canceled
          example: '2025-10-16T10:30:00.000Z'
        convertedDate:
          format: date-time
          type: string
          description: Date when the quote request has been converted into an order
          example: '2025-10-16T10:30:00.000Z'
        createdDate:
          format: date-time
          type: string
          description: Date when the quote request has been created
          example: '2025-10-16T10:30:00.000Z'
        order:
          description: Order Info
          allOf:
          - $ref: '#/components/schemas/QuoteRequestOrderInfo'
        store:
          description: Company Info
          allOf:
          - $ref: '#/components/schemas/StoreDto'
      required:
      - id
      - type
      - companyId
      - rentalPointId
      - status
      - customer
      - projectInfos
      - store
    StoreTemporal:
      type: object
      properties:
        timezone:
          type: string
          description: Store timezone in IANA format (e.g., Europe/Paris)
          example: Europe/Paris
        schedule:
          description: Store opening hours and schedule
          allOf:
          - $ref: '#/components/schemas/StoreSchedule'
      required:
      - timezone
      - schedule
    ItemMediaVideos:
      type: object
      properties:
        youtubeUrls:
          description: Array of YouTube video URLs associated with the item
          example:
          - https://www.youtube.com/watch?v=dQw4w9WgXcQ
          - https://www.youtube.com/watch?v=sNPnbI1arSE
          type:
          - array
          - 'null'
          items:
            type: string
      required:
      - youtubeUrls
    StoreGoogleReview:
      type: object
      properties:
        author:
          description: Author information of the Google Review
          allOf:
          - $ref: '#/components/schemas/StoreGoogleReviewAuthor'
        comment:
          type: string
          description: Comment text of the Google Review
          example: Great service and friendly staff!
        rating:
          type: number
          description: Rating given in the Google Review (out of 5)
          example: 5
        publishTime:
          format: date-time
          type: string
          description: Date when the Google Review was published
          example: '2024-10-15T10:30:00.000Z'
      required:
      - author
      - comment
      - rating
      - publishTime
    StoreCheckout:
      type: object
      properties:
        partPayment:
          description: Part payment settings — whether and how much the customer must pay upfront
          allOf:
          - $ref: '#/components/schemas/StorePartPayment'
        deposit:
          description: Deposit settings — cap amount and whether online payment is enabled
          allOf:
          - $ref: '#/components/schemas/StoreDeposit'
        payOnSite:
          type: boolean
          description: Whether the store allows customers to pay in person at pickup
          example: true
      required:
      - partPayment
      - deposit
      - payOnSite
    StoreMarketing:
      type: object
      properties:
        trackers:
          description: Third-party analytics tracker IDs configured by the store owner
          allOf:
          - $ref: '#/components/schemas/StoreMarketingTrackers'
      required:
      - trackers
    StoreSchedule:
      type: object
      properties:
        openingHours:
          description: List of regular opening hours
          type: array
          items:
            $ref: '#/components/schemas/StoreOpeningHours'
        openingHoursLowSeason:
          description: List of opening hours for the low season
          type: array
          items:
            $ref: '#/components/schemas/StoreOpeningHours'
        lowSeasonRanges:
          description: List of date ranges for the low season
          type: array
          items:
            $ref: '#/components/schemas/StoreDateRange'
        closedRanges:
          description: List of date ranges when the store is closed
          type: array
          items:
            $ref: '#/components/schemas/StoreDateRange'
      required:
      - openingHours
      - openingHoursLowSeason
      - lowSeasonRanges
      - closedRanges
    StoreBranding:
      type: object
      properties:
        logoURL:
          type: string
          description: Logo image URL for the online store
        banners:
          description: Banner images and settings for the online store
          allOf:
          - $ref: '#/components/schemas/StoreBrandingBanners'
      required:
      - logoURL
      - banners
    StoreMarketingTrackers:
      type: object
      properties:
        ga4Id:
          type: string
          description: Google Analytics 4 measurement ID
          example: G-XXXXXXXXXX
        googleAdsId:
          type: string
          description: Google Ads conversion ID
          example: AW-123456789
        metaPixelId:
          type: string
          description: Meta (Facebook) Pixel ID
          example: '123456789012345'
        tiktokPixelId:
          type: string
          description: TikTok Pixel ID
          example: ABCDEFGHIJKLMNOPQRST
        linkedinPartnerId:
          type: string
          description: LinkedIn Partner ID
          example: '123456'
        linkedinConversionId:
          type: string
          description: LinkedIn Conversion ID
          example: '1234567'
    StoreInstantBooking:
      type: object
      properties:
        lcd:
          type: boolean
          description: Indicates if automatic online store booking is enabled for short-term rentals
          example: true
        lld:
          type: boolean
          description: Indicates if automatic online store booking is enabled for long-term rentals
          example: true
        event:
          type: boolean
          description: Indicates if automatic online store booking is enabled for events
          example: false
      required:
      - lcd
      - lld
      - event
    StoreStockVisibility:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether the store chooses to display available stock quantity on product cards.
          example: false
      required:
      - enabled
    StoreBookingRules:
      type: object
      properties:
        timeAnchors:
          description: Allowed booking times (e.g., specific time slots)
          allOf:
          - $ref: '#/components/schemas/StoreBookingTimeAnchorsRule'
        leadTime:
          description: Lead time required before a booking can be made
          allOf:
          - $ref: '#/components/schemas/StoreBookingLeadTimeRule'
        duration:
          description: Minimum and maximum booking durations
          allOf:
          - $ref: '#/components/schemas/StoreBookingDurationRule'
        gapBeforeOrderInMinutes:
          type: number
          description: Preparation time required before an order starts, in minutes. A product is unavailable for this duration ahead of each existing order (derived from timeProductsUnavailableBeforeOrder + dayProductsUnavailableBeforeOrder).
          example: 60
        gapAfterOrderInMinutes:
          type: number
          description: Time required after an order ends before the product is available again, in minutes (derived from timeProductsUnavailableAfterOrder + dayProductsUnavailableAfterOrder).
          example: 120
      required:
      - timeAnchors
      - leadTime
      - duration
      - gapBeforeOrderInMinutes
      - gapAfterOrderInMinutes
    StoreDiscount:
      type: object
      properties:
        globalDiscounts:
          description: List of global discounts applicable to the store
          type: array
          items:
            $ref: '#/components/schemas/StoreGlobalDiscount'
        categoryDiscounts:
          description: List of category-specific discounts applicable to the store
          type: array
          items:
            $ref: '#/components/schemas/StoreCategoryDiscount'
      required:
      - globalDiscounts
      - categoryDiscounts
    StoreDepositMax:
      type: object
      properties:
        activated:
          type: boolean
          description: Whether the deposit max value is activated
          example: true
        amount:
          type: number
          description: Maximum deposit amount
          example: 200
      required:
      - activated
      - amount
    QuoteRequestParticipant:
      type: object


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