Constructor.io Image Search results API

The Image Search results API from Constructor.io — 2 operation(s) for image search results.

Operations 2

POST /v1/image_search Retrieve by image (Deprecated) #
POST /v2/image_search Retrieve by image #

Documentation

📖
APIReference
https://docs.constructor.com/reference/search-search-results
📖
APIReference
https://docs.constructor.com/reference/autocomplete-autocomplete-results
📖
APIReference
https://docs.constructor.com/reference/browse-browse-results
📖
APIReference
https://docs.constructor.com/reference/recommendations-recommendation-results
📖
APIReference
https://docs.constructor.com/reference/image-search-image-search-results
📖
APIReference
https://docs.constructor.com/reference/v1-asa-retrieve-intent
📖
APIReference
https://docs.constructor.com/reference/catalog-management-introduction
📖
APIReference
https://docs.constructor.com/reference/v2-batching-items-update-items
📖
APIReference
https://docs.constructor.com/reference/configuration-facets
📖
APIReference
https://docs.constructor.com/reference/searchandising-searchandising-for-search
📖
APIReference
https://docs.constructor.com/reference/v1-quizzes-get-next-question
📖
APIReference
https://docs.constructor.com/reference/offsite-discovery-recommendations-offsite-discovery-results
📖
APIReference
https://docs.constructor.com/reference/v1-engagements-update
📖
APIReference
https://docs.constructor.com/reference/v2-display-ads-retrieve-display-ads
📖
APIReference
https://docs.constructor.com/reference/v1-product-details-get-items
📖
APIReference
https://docs.constructor.com/reference/v1-offline-behavioral-actions-create-actions
📖
APIReference
https://docs.constructor.com/reference/v1-user-profile-create-preferences

Specifications

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/constructorio-image-search-results-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

constructorio-image-search-results-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@constructor.io
  title: Image Search results API
  version: '0.1'
servers:
- url: https://image-search.cnstrc.com
security: []
tags:
- name: Image Search results
paths:
  /v1/image_search:
    post:
      tags:
      - Image Search results
      operationId: v1-image-search-get-search-results
      summary: Retrieve by image (Deprecated)
      description: Retrieve AI optimized search results for products (or optionally other sections) by image
      deprecated: true
      parameters:
      - name: key
        in: query
        schema:
          title: Key
          description: The key of the index to use.
          maxLength: 100
          minLength: 1
          type: string
        required: true
      - name: section
        in: query
        schema:
          title: Section
          description: The section of the index to use.
          default: Products
          maxLength: 100
          minLength: 1
          type: string
        required: false
      - name: variations_map
        in: query
        schema:
          title: Variations Map
          description: A JSON string containing a instructions on how to map item variation data in the response (typically used for swatches). More details, including the exact schema for this value can be found [here](/reference/shared-variations-mapping)
          format: json
          type: string
          examples:
          - '{"group_by":[{"name":"color","field":"data.color"}],"values":{"price":{"aggregation":"min","field":"data.price"}},"dtype":"array"}'
          allOf:
          - $ref: '#/components/schemas/VariationsMap'
        required: false
      - name: fmt_options
        in: query
        schema:
          title: Fmt Options
          description: An object containing options to format different aspect of the response.
          allOf:
          - $ref: '#/components/schemas/FmtOptions'
        required: false
        style: deepObject
        explode: true
      - name: c
        in: query
        schema:
          title: C
          description: The ID of the client and version that the request is coming from, such as `cio-js-2.90`.
          maxLength: 100
          minLength: 1
          examples:
          - cio-js-client-2.35.2
          type: string
        required: false
      - name: us
        in: query
        schema:
          title: us
          description: A customer defined context (such as `vip-club-member`) used to evaluate redirect or refined tag rules. Pass multiple segments by passing multiple `us` arguments.
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - vip-member
            - us-east-region
        required: false
      - name: ui
        in: query
        schema:
          title: Ui
          description: A customer generated anonymized identifier for a user on a customer website. It should only be sent for logged in customers and helps Constructor to tie multiple client and session IDs together to form a behavioral data profile across devices.
          examples:
          - customer-user-id-456
          type: string
        required: false
      - name: s
        in: query
        schema:
          title: S
          description: An integer representing the users session number (starting with `1`), incremented after a 30 minute period of inactivity.
          examples:
          - 1
          type: integer
        required: false
      - name: i
        in: query
        schema:
          title: I
          description: A globally unique identifier for the user browser (or mobile application instance) making the request.
          examples:
          - user-device-id-123
          type: string
        required: false
      requestBody:
        required: true
        description: 'Raw image bytes. Supported formats: JPEG, PNG, WebP, GIF. Maximum size: 6 MB.'
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImageSearchPostResponse'
        '400':
          description: Validation Error
      security: []
  /v2/image_search:
    post:
      tags:
      - Image Search results
      operationId: v2-image-search-retrieve-search-results
      summary: Retrieve by image
      description: Retrieve AI optimized search results for products (or optionally other sections) by image with optional multi-item detection (segmentation) support.
      parameters:
      - name: key
        in: query
        schema:
          title: Key
          description: The key of the index to use.
          examples:
          - key_K2pX7vBnU0bgA5xp
          maxLength: 100
          minLength: 1
          type: string
        required: true
      - name: section
        in: query
        schema:
          title: Section
          description: The section of the index to use.
          default: Products
          maxLength: 100
          minLength: 1
          type: string
        required: false
      - name: search_crop_type
        in: query
        schema:
          title: Search Crop Type
          description: How to crop detected segments for visual search. Only relevant when `use_segmentation` is `true`.
          default: bbox
          enum:
          - bbox
          - segment
          type: string
        required: false
        examples:
          bbox:
            summary: Bounding-box crop (default)
            description: Each detected object is cropped as a full rectangle including background pixels.
            value: bbox
          segment:
            summary: Masked segment crop
            description: Each detected object is cropped with the background removed, so only the object pixels are used for visual search.
            value: segment
      - name: variations_map
        in: query
        schema:
          title: Variations Map
          description: A JSON string containing a instructions on how to map item variation data in the response (typically used for swatches). More details, including the exact schema for this value can be found [here](/reference/shared-variations-mapping)
          format: json
          type: string
          examples:
          - '{"group_by":[{"name":"color","field":"data.color"}],"values":{"price":{"aggregation":"min","field":"data.price"}},"dtype":"array"}'
          allOf:
          - $ref: '#/components/schemas/VariationsMap'
        required: false
      - name: fmt_options
        in: query
        schema:
          title: Fmt Options
          description: An object containing options to format different aspect of the response.
          allOf:
          - $ref: '#/components/schemas/FmtOptions'
        required: false
        style: deepObject
        explode: true
      - name: c
        in: query
        schema:
          title: C
          description: The ID of the client and version that the request is coming from, such as `cio-js-2.90`.
          maxLength: 100
          minLength: 1
          examples:
          - cio-js-client-2.35.2
          type: string
        required: false
      - name: us
        in: query
        schema:
          title: us
          description: A customer defined context (such as `vip-club-member`) used to evaluate redirect or refined tag rules. Pass multiple segments by passing multiple `us` arguments.
          type: array
          items:
            type: string
            minLength: 1
            examples:
            - vip-member
            - us-east-region
        required: false
      - name: use_segmentation
        in: query
        schema:
          title: Use Segmentation
          description: Whether to detect and individually search multiple objects in the image. When `true`, the image is split into detected objects and each is searched separately; results are merged.
          default: false
          type: boolean
        required: false
        examples:
          enabled:
            summary: Segmentation on
            description: The image is split into detected objects, each searched separately; results are merged.
            value: true
          disabled:
            summary: Segmentation off (default)
            description: The whole image is searched as-is.
            value: false
      - name: ui
        in: query
        schema:
          title: Ui
          description: A customer generated anonymized identifier for a user on a customer website. It should only be sent for logged in customers and helps Constructor to tie multiple client and session IDs together to form a behavioral data profile across devices.
          examples:
          - customer-user-id-456
          type: string
        required: false
      - name: return_segments
        in: query
        schema:
          title: Return Segments
          description: Whether to include per-segment metadata in the response. Only applicable when `use_segmentation` is `true`.
          default: false
          type: boolean
        required: false
        examples:
          enabled:
            summary: Include segments
            description: Response includes a segments array with bounding boxes, class names, confidence scores, interior points for visualization and per-segment neighbours lists.
            value: true
          disabled:
            summary: Omit segments (default)
            description: No per-segment metadata in the response. Merged results are still returned when `use_segmentation` is `true`.
            value: false
      - name: s
        in: query
        schema:
          title: S
          description: An integer representing the users session number (starting with `1`), incremented after a 30 minute period of inactivity.
          examples:
          - 1
          type: integer
        required: false
      - name: i
        in: query
        schema:
          title: I
          description: A globally unique identifier for the user browser (or mobile application instance) making the request.
          examples:
          - user-device-id-123
          type: string
        required: false
      requestBody:
        required: true
        description: 'Raw image bytes. Supported formats: JPEG, PNG, WebP, GIF. Maximum size: 6 MB.'
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImageSearchPostResponseV2'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security: []
components:
  schemas:
    VariationsMapNot:
      title: VariationsMapNot
      type: object
      properties:
        not_:
          type: object
      required:
      - not_
      additionalProperties: false
    RangeFacet:
      additionalProperties: false
      properties:
        type:
          description: If a facet is of type `range`, then no facet options are provided. Instead a `min` and `max` value is provided to specify the range of values that can be sent in `filters`.
          title: Type
          type: string
          enum:
          - range
        name:
          description: The name of the facet. This should be passed in the filters parameter when a facet of this type is selected. `filters[name]=value`
          title: Name
          type: string
        display_name:
          description: The name of the facet as it is displayed to end users. Note that in `filters` parameter you need to use not `display_name` but `name`.
          title: Display Name
          type: string
        hidden:
          description: The boolean value saying whether facet is available for interaction.
          title: Hidden
          type: boolean
        data:
          description: Object containing custom data associated with this facet. An empty object (`{}`) if no data is currently associated with this facet.
          title: Data
          type: object
        status:
          description: Specifies the selected facet value range. If no range is selected the field will be omitted.
          allOf:
          - $ref: '#/components/schemas/RangeFacetStatus'
          title: Status
        min:
          anyOf:
          - type: number
          - type: integer
          - enum:
            - -inf
            - +inf
            - inf
            type: string
          description: Minimum facet value of the result items.
          title: Min
        max:
          anyOf:
          - type: number
          - type: integer
          - enum:
            - -inf
            - +inf
            - inf
            type: string
          description: Maximum facet value of the result items.
          title: Max
      required:
      - type
      - name
      - display_name
      - hidden
      - data
      title: Range facet
      type: object
    ResultVariation:
      additionalProperties: false
      properties:
        data:
          $ref: '#/components/schemas/ResultData'
        value:
          title: Value
          type: string
      required:
      - data
      - value
      title: ResultVariation
      type: object
    VariationsMapSimpleAggregation:
      title: VariationsMapSimpleAggregation
      type: object
      properties:
        aggregation:
          title: Aggregation
          enum:
          - first
          - all
          - distinct
          - min
          - max
          - field_count
          type: string
        field:
          title: Field
          minLength: 1
          type: string
      required:
      - aggregation
      - field
    ResultSourceValue:
      additionalProperties: false
      properties:
        count:
          description: Number of results returned from their respective sources
          minimum: 0
          title: Count
          type: integer
      required:
      - count
      title: ResultSourceValue
      type: object
    ImageSearchPostResponse:
      title: ImageSearchPostResponse
      type: object
      properties:
        request:
          title: Request
          description: The request arguments how they were interpreted by the API. This field is of arbitrary type, ie it doesn't have a guaranteed schema, and data from it shouldn't be used programmatically, it is for debugging purposes only.
          type: object
        result_id:
          title: Result ID
          description: A unique identifier for this search request, used for analytics and behavioral tracking.
          type: string
        response:
          allOf:
          - $ref: '#/components/schemas/BrowseItemsResponse'
          - type: object
            properties:
              browse_url:
                type: string
                description: The browse results URL.
      required:
      - request
      - response
      additionalProperties: false
    SortOption:
      additionalProperties: false
      properties:
        display_name:
          description: The name of the sortable field as it is displayed to end users.
          title: Display Name
          type: string
        status:
          description: '`selected` if this option is selected in the current search request, empty string otherwise.'
          enum:
          - selected
          - ''
          title: Status
          type: string
        sort_by:
          description: The attribute to sort by, and the value of the sort_by query parameter in the search request.
          title: Sort By
          type: string
        sort_order:
          description: The value of this attribute should be passed to the `sort_order` query string parameter in the search request when this option is selected.
          allOf:
          - $ref: '#/components/schemas/SortOrderType'
        hidden:
          description: '`true` if this sort option is hidden, `false` otherwise.'
          title: Hidden
          type: boolean
      required:
      - display_name
      - status
      - sort_by
      - sort_order
      - hidden
      title: SortOption
      type: object
    Path:
      additionalProperties: false
      properties:
        id:
          description: The ID of the group.
          title: Id
          type: string
        display_name:
          description: The name of the group as it is displayed to end users.
          title: Display Name
          type: string
      required:
      - id
      title: Path
      type: object
    ErrorResponse:
      title: ErrorResponse
      type: object
      properties:
        message:
          type: string
          description: Human-readable error summary.
        errors:
          type: array
          description: List of individual errors.
          items:
            type: object
            properties:
              code:
                type: string
                description: Machine-readable error code.
              message:
                type: string
                description: Human-readable error description.
              source:
                type: string
                description: The parameter or field that caused the error.
            required:
            - code
            - message
        trace_id:
          type: string
          description: A server-generated identifier for tracing this request, useful for debugging and support.
      required:
      - message
    Collection:
      additionalProperties: false
      properties:
        id:
          description: The ID of the browsed collection.
          title: Id
          type: string
        display_name:
          description: The name of the collection as you'd present it to users.
          title: Display Name
          type: string
        data:
          description: Object containing custom data associated with this collection.
          title: Data
          type: object
        start_time:
          description: The start time of the collection if it is time-bound.
          title: Start Time
          format: date-time
          type: string
        end_time:
          description: The end time of the collection if it is time-bound.
          title: End Time
          format: date-time
          type: string
        active_overriding_collection:
          description: The currently active overriding collection if part of content scheduling.
          allOf:
          - $ref: '#/components/schemas/Collection'
          title: Active Overriding Collection
      required:
      - id
      title: Collection
      type: object
    VariationsMapGrouping:
      title: VariationsMapGrouping
      type: object
      properties:
        name:
          title: Name
          pattern: ^\w+([ ]?[\w]+)*$
          type: string
        field:
          title: Field
          minLength: 1
          type: string
      required:
      - name
      - field
    VariationsMapSingleFilter:
      title: VariationsMapSingleFilter
      type: object
      properties:
        field:
          title: Field
          description: Path to a metadata field (dot-separated)
          minLength: 1
          type: string
        value:
          title: Value
          description: The value of this field to filter by
          anyOf:
          - type: boolean
          - type: integer
          - type: number
          - type: string
      required:
      - field
      - value
      additionalProperties: false
    Result:
      additionalProperties: false
      properties:
        value:
          description: Name of the matched item or variation (if variations are defined).
          title: Value
          type: string
        matched_terms:
          description: All terms within the item matching the user's query (regardless of whether misspelled).
          items:
            type: string
          title: Matched Terms
          type: array
        data:
          $ref: '#/components/schemas/ResultData'
        variations:
          description: An array of this item's variations matching user's query.
          maxItems: 50
          title: Variations
          items:
            $ref: '#/components/schemas/ResultVariation'
          type: array
        variations_map:
          anyOf:
          - items: {}
            type: array
          - additionalProperties: true
            type: object
          description: Variations data in the format requested by `variations_map` query parameter.
          title: Variations Map
        variation_slice:
          description: If variation slicing is enabled, this represents the variation slice of the item.
          title: Variation Slice
          additionalProperties:
            items:
              type: string
            type: array
          type: object
      required:
      - value
      - matched_terms
      - data
      title: Result
      type: object
    SingleOrMultipleFacet:
      additionalProperties: false
      properties:
        type:
          description: 'If a facet is of type `single`, then only one of the options may be selected (e.g: display as radio button). If the type is `multiple`, then multiple options may be selected (e.g: display as checkboxes).'
          enum:
          - single
          - multiple
          title: Type
          type: string
        name:
          description: The name of the facet. This should be passed in the filters parameter when a facet of this type is selected. `filters[name]=value`
          title: Name
          type: string
        display_name:
          description: The name of the facet as it is displayed to end users. Note that in `filters` parameter you need to use not `display_name` but `name`.
          title: Display Name
          type: string
        hidden:
          description: The boolean value saying whether facet is available for interaction.
          title: Hidden
          type: boolean
        data:
          description: Object containing custom data associated with this facet. An empty object (`{}`) if no data is currently associated with this facet.
          title: Data
          type: object
        options:
          description: An array of possible facet values matching this search. By default, facet options are sorted by relevance. Number of options is limited, by default, to 500. But the limit can be configured per [facet](/reference/v1-facets-create-facet) key.
          title: Options
          items:
            $ref: '#/components/schemas/FacetOption'
          type: array
      required:
      - type
      - name
      - display_name
      - hidden
      - data
      title: Single or Multiple facet
      type: object
    ResultFacet:
      additionalProperties: false
      properties:
        name:
          title: Name
          type: string
        values:
          items:
            anyOf:
            - type: number
            - type: integer
            - type: string
            - type: boolean
          title: Values
          type: array
      required:
      - name
      - values
      title: ResultFacet
      type: object
    Feature:
      additionalProperties: false
      properties:
        display_name:
          description: The name of the features as it is displayed to end users.
          title: Display Name
          type: string
        enabled:
          description: Displays the enabled status of the feature.
          title: Enabled
          type: boolean
        feature_name:
          description: The name of the feature.
          title: Feature Name
          type: string
        variant:
          description: Displays the variant of this feature if there are any.
          allOf:
          - $ref: '#/components/schemas/FeatureVariant'
          title: Variant
      required:
      - display_name
      - enabled
      - feature_name
      title: Feature
      type: object
    ResultGroup:
      additionalProperties: false
      properties:
        group_id:
          description: The ID of the group.
          title: Group Id
          type: string
        display_name:
          description: The name of the group as it is displayed to end users.
          title: Display Name
          type: string
        path:
          description: The path of `group_id`s above this group. `/great-grandparent/grandparent/parent/`
          examples:
          - /great-grandparent/grandparent/parent/
          title: Path
          type: string
        path_list:
          description: An array of groups constituting the path
          items:
            $ref: '#/components/schemas/Path'
          title: Path List
          type: array
      required:
      - group_id
      - path
      - path_list
      title: ResultGroup
      type: object
    HierarchicalFacet:
      additionalProperties: false
      properties:
        type:
          title: Type
          type: string
          enum:
          - hierarchical
        name:
          description: The name of the facet. This should be passed in the filters parameter when a facet of this type is selected. `filters[name]=value`
          title: Name
          type: string
        display_name:
          description: The name of the facet as it is displayed to end users. Note that in `filters` parameter you need to use not `display_name` but `name`.
          title: Display Name
          type: string
        hidden:
          description: The boolean value saying whether facet is available for interaction.
          title: Hidden
          type: boolean
        data:
          description: Object containing custom data associated with this facet. An empty object (`{}`) if no data is currently associated with this facet.
          title: Data
          type: object
        options:
          description: An array of possible facet values matching this search. By default, facet options are sorted by relevance.
          title: Options
          items:
            $ref: '#/components/schemas/HierarchicalFacetOption'
          type: array
      required:
      - type
      - name
      - display_name
      - hidden
      - data
      title: Hierarchical facet
      type: object
    VariationsMapAnd:
      title: VariationsMapAnd
      type: object
      properties:
        and_:
          title: And
          type: array
          items:
            type: array
      required:
      - and_
      additionalProperties: false
    VariationsMapOr:
      title: VariationsMapOr
      type: object
      properties:
        or_:
          title: Or
          type: array
          items:
            type: array
      required:
      - or_
      additionalProperties: false
    RangeFacetStatus:
      additionalProperties: false
      properties:
        min:
          anyOf:
          - type: number
          - type: integer
          - enum:
            - -inf
            - +inf
            - inf
            type: string
          - type: string
          description: Selected minimum value of the range facet.
          title: Min
        max:
          anyOf:
          - type: number
          - type: integer
          - enum:
            - -inf
            - +inf
            - inf
            type: string
          - type: string
          description: Selected maximum value of the range facet.
          title: Max
      title: RangeFacetStatus
      type: object
    VariationsMapCountAggregation:
      title: VariationsMapCountAggregation
      type: object
      properties:
        aggregation:
          title: Aggregation
          enum:
          - count
          type: string
      required:
      - aggregation
    Segment:
      title: Segment
      description: A single detected segment with per-segment search results.
      type: object
      properties:
        id:
          type: integer
          description: Zero-based index of this segment in the detection list.
        x1:
          type: integer
          description: Left x coordinate of the bounding box.
        y1:
          type: integer
          description: Top y coordinate of the bounding box.
        x2:
          type: integer
          description: Right x coordinate of the bounding box.
        y2:
          type: integer
          description: Bottom y coordinate of the bounding box.
        class_id:
          type: integer
          description: Numeric class identifier from the segmentation model.
        class_name:
          type: string
          description: Human-readable class name (e.g. 'top', 'pants').
        confidence:
          type: number
          format: float
          description: Detection confidence score in the range [0.0, 1.0], where 1.0 is maximum confidence.
        centroid_x:
          type: integer
          description: X coordinate of the segment interior point.
        centroid_y:
          type: integer
          description: Y coordinate of the segment interior point.
        neighbours:
          type: array
          description: Nearest-neighbour search results for this segment.
          items:
            type: object
            properties:
              id:
                type: string
                description: Product ID.
              distance:
                type: number
                format: float
                description: Distance from the segment embedding to the product embedding.
              data:
                type: object
                description: Catalog data for this product from the Browse API. Same shape as response.results[].data.
            required:
            - id
            - distance
      required:
      - id
      - x1
      - y1
      - x2
      - y2
      - class_id
      - class_name
      - confidence
      - centroid_x
      - centroid_y
      - neighbours
      additionalProperties: false
    ImageSearchPostResponseV2:
      title: ImageSearchPostResponseV2
      type: object
      properties:
        request:
          title: Request
          description: The request arguments how they were interpreted by the API. This field is of arbitrary type, ie it doesn't have a guaranteed schema, and data from it shouldn't be used programmatically, it is for debugging purposes only.
          type: object
        result_id:
          title: Result ID
          description: A unique identifier for this search request, used for analytics and behavioral tracking.
          type: string
        response:
          allOf:
          - $ref: '#/components/schemas/BrowseItemsResponse'
          - type: object
            properties:
              browse_url:
                type: string
                description: The browse results URL.
        segmentation_used:
          type: boolean
          description: Whether segmentation was actually used to produce results. `false` when `use_segmentation` was not requested or when segmentation failed and the system fell back to whole-image search.
        whole_image_search_fallback:
          type: boolean
          description: Whether the service fell back to whole-image search after segmentation was requested but failed to produce usable results. Always `false` when `use_segmentation` was not requested.
        segments:
          type: array
          description: Per-segment search results. Present when `use_segmentation` is `true` and `return_segments` is `true`.
          items:
            $ref: '#/components/schemas/Segment'
      required:
      - request
      - response
      - segmentation_used
      - whole_image_search_fallback
      additionalProperties: false
    VariationsMapFilterBy:
      title: VariationsMapFilterBy
      discriminator:
        propertyName: type
        mapping:
          range: '#/components/schemas/VariationsMapRange'
          single: '#/components/schemas/VariationsMapSingleFilter'
          or: '#/components/schemas/VariationsMapOr'
          and: '#/components/schemas/VariationsMapAnd'
          not: '#/components/schemas/VariationsMapNot'
      oneOf:
      - $ref: '#/components/schemas/VariationsMapRange'
      - $ref: '#/components/schemas/VariationsMapSingleFilter'
      - $ref: '#/components/schemas/VariationsMapOr'
      - $ref: '#/components/schemas/VariationsMapAnd'
      - $ref: '#/components/schemas/VariationsMapNot'
    VariationsReturnType:
      title: VariationsReturnType
      enum:
      - default
      - all
      - matched
      type: string
    FacetOption:
      a

# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/constructorio/refs/heads/main/openapi/constructorio-image-search-results-api-openapi.yml