> ## Documentation Index
> Fetch the complete documentation index at: https://docs.d-edge.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> This site documents the D-EDGE APIs for technology partners (web agencies, OTAs, PMS and RMS vendors, booking and CRM tools). It is written for developers integrating with hotels that use the D-EDGE platform.
> Seven APIs, grouped by domain. Connectivity: Channel Manager API (distribute a hotel's inventory to your channel and send bookings back). Pricing & Availability: Best Price API (best offers to highlight), Quotation API (all bookable offers for a stay), Daily Rates API (daily availability between two dates). Booking: Booking Engine API (a hotel's full direct booking funnel), Gift Shop API (gift vouchers from catalogue to payment). Guest Management: CRM API (guest profiles).
> Pick the API by the need: to display prices, use the Best Price API or the Daily Rates API; to quote a specific stay, use the Quotation API; to book, use the Booking Engine API; to sell gift vouchers, use the Gift Shop API; to manage guest profiles, use the CRM API; to receive hotel inventory and send bookings back as a distribution channel, use the Channel Manager API.
> Base URLs, hotel identifiers, and credentials are delivered by the D-EDGE partnership team during onboarding. Do not invent base URLs, endpoints, parameters, or example credentials that do not appear on these pages.
> Authentication differs per API: OAuth 1.0 for Best Price, Quotation, Daily Rates, and Booking Engine; an X-API-KEY header for Gift Shop; OAuth 2.0 client credentials for CRM; partner-defined credentials carried in the XML message for the Channel Manager API. Read each API's Authentication page before writing code.
> A mock environment returns realistic but fictitious data without credentials. The Postman and Insomnia collections on the API collections page target it by default. Use it for exploration and tests, never for production traffic.
> Use the official names exactly: D-EDGE, D-EDGE platform, Channel Manager API, partnership team. Do not use Back Office or Extranet.
> Each API has a Changelog page. Check it for the current behaviour before relying on an older answer. For questions these pages do not answer, direct the reader to the Contact us page.

# Search active products

> Searches all owner's gift shop active products



## OpenAPI

````yaml gift-shop-api/open-api/gift-shop-api.json POST /v1/{sessionId}/products/search
openapi: 3.0.1
info:
  title: Gift Shop API
  version: v1
servers:
  - url: https://{apiBaseUrl}
    variables:
      apiBaseUrl:
        default: api.example.com
        description: Base URL delivered by D-EDGE during partnership setup
security:
  - ApiKey: []
paths:
  /v1/{sessionId}/products/search:
    post:
      tags:
        - Product
      summary: Searches all owner's gift shop active products.
      description: "This method returns the active products of the gift shop the session belongs to, with their names, descriptions and categories translated into the session culture.\r\nThe request body carries no search criterion yet, so the call returns the whole active catalogue."
      parameters:
        - name: sessionId
          in: path
          description: The session identifier
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchProductRequest'
      responses:
        '200':
          description: Returns the active products
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchProductResponse'
        '400':
          description: >-
            Some parameters are invalid or missing, check the response for more
            details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '401':
          description: >-
            `X-API-KEY` header is invalid or does not give access to the
            operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '404':
          description: >-
            The session identifier does not match an active session. It may have
            expired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
components:
  schemas:
    SearchProductRequest:
      type: object
      additionalProperties: false
    SearchProductResponse:
      type: object
      properties:
        products:
          type: array
          items:
            $ref: '#/components/schemas/Product'
          nullable: true
      additionalProperties: false
    ProblemDetails:
      type: object
      properties:
        type:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        status:
          type: integer
          format: int32
          nullable: true
        detail:
          type: string
          nullable: true
        instance:
          type: string
          nullable: true
      additionalProperties: {}
    Product:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        category:
          $ref: '#/components/schemas/Category'
        usage:
          $ref: '#/components/schemas/ProductUsage'
        price:
          $ref: '#/components/schemas/ProductPrice'
        quantity:
          $ref: '#/components/schemas/Quantity'
        validity:
          type: string
          format: date-span
        pictures:
          type: array
          items:
            $ref: '#/components/schemas/ProductPicture'
          nullable: true
        taxes:
          type: array
          items:
            $ref: '#/components/schemas/ProductTax'
          nullable: true
      additionalProperties: false
    Category:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
          nullable: true
      additionalProperties: false
    ProductUsage:
      enum:
        - Direct
        - Indirect
      type: string
      description: >-
        How the product is delivered to the guest.


        - `Direct`: the item is delivered as a credit voucher the guest can
        spend, and its price is always shown.

        - `Indirect`: the item is delivered as a code redeemed with the gift
        shop owner, and its price can be hidden with `hidePrice`.
    ProductPrice:
      type: object
      properties:
        priceType:
          $ref: '#/components/schemas/ProductPriceType'
        amount:
          type: object
          properties:
            amount:
              type: number
              description: decimal amount
              example: 99.99
            currency:
              type: string
              description: Uppercase three-letter code from ISO 4217
              example: EUR
          nullable: true
        minAmount:
          type: object
          properties:
            amount:
              type: number
              description: decimal amount
              example: 99.99
            currency:
              type: string
              description: Uppercase three-letter code from ISO 4217
              example: EUR
          nullable: true
        maxAmount:
          type: object
          properties:
            amount:
              type: number
              description: decimal amount
              example: 99.99
            currency:
              type: string
              description: Uppercase three-letter code from ISO 4217
              example: EUR
          nullable: true
      additionalProperties: false
    Quantity:
      type: object
      properties:
        min:
          type: integer
          format: int32
        max:
          type: integer
          format: int32
      additionalProperties: false
    ProductPicture:
      required:
        - uri
      type: object
      properties:
        uri:
          type: string
          format: uri
      additionalProperties: false
    ProductTax:
      required:
        - name
        - value
      type: object
      properties:
        name:
          minLength: 1
          type: string
        value:
          type: number
          format: double
        calculationMode:
          $ref: '#/components/schemas/TaxCalculationMode'
        included:
          type: boolean
      additionalProperties: false
    ProductPriceType:
      enum:
        - Fixed
        - Range
      type: string
      description: >-
        How the price of a product is set.


        - `Fixed`: the product carries its amount in `price.amount`, and the
        amount sent when adding the item to the cart must match it.

        - `Range`: the shopper chooses the amount, which must fall between
        `price.minAmount` and `price.maxAmount`.
    TaxCalculationMode:
      enum:
        - Percentage
        - Nominal
      type: string
      description: |-
        How the value of a tax applies to the amount of an item.

        - `Percentage`: `value` is a percentage of the amount.
        - `Nominal`: `value` is a fixed amount, in the currency of the item.
  securitySchemes:
    ApiKey:
      type: apiKey
      description: API key delivered by D-EDGE
      name: X-API-KEY
      in: header

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.