## Model Search **post** `/search/models` Search for models. At least one of the following fields must have a value: `query`, `filter`, `image`, or `images`. `image`, and `images` are mutually exclusive. ### Query Parameters - `originalAssets: optional boolean` If set to true, returns the original asset without transformation - `originalModels: optional unknown` ### Body Parameters - `filter: optional string` Filter queries by an attribute's value - `hitsPerPage: optional number` Maximum number of documents returned for a page. Must be used with `page`. - `image: optional string` Search for model with `image` as a reference Must be an existing `AssetId` or a valid data URL. - `images: optional object { like, unlike }` Search for model with `images.like` and `images.unlike` as a reference Must be an array of existing `AssetId` or valid data URLs. - `like: optional array of string` Search for model images with `images.like` as a reference Must be an array of existing `AssetId` or valid data URLs. - `unlike: optional array of string` Search for model images that are not similar to `images.unlike` as a reference Must be an array of existing `AssetId` or valid data URLs. - `imageSemanticRatio: optional number` Image embedding ratio for hybrid search, applied when `image`, `images.like`, or `images.unlike` are provided - `limit: optional number` Maximum number of documents returned. Must be used with `offset`. - `offset: optional number` Number of documents to skip. Must be used with `limit`. Starts from 0. - `page: optional number` Request a specific page of results. Must be used with `hitsPerPage`. - `public: optional boolean` Search for public images not necessarily belonging to the current `ownerId` - `query: optional string` A string used for querying search results. - `querySemanticRatio: optional number` Query embedding for hybrid search, if possible - `sortBy: optional array of string` Sort the search results by the given attributes. Each attribute in the list must be followed by a colon (`:`) and the preferred sorting order: either ascending (`asc`) or descending (`desc`). Example: `['createdAt:desc']` ### Returns - `hits: array of object { id, authorId, capabilities, 17 more }` - `id: string` Unique identifier for the model (e.g., "model_GTrL3mq4SXWyMxkOHRxlpw") - `authorId: string` User ID of the model creator/author - `capabilities: array of string` Array of model capabilities - `collectionIds: array of string` Array of collection IDs this model belongs to - `concepts: array of object { modelId }` Array of concept models associated with this model Each concept contains a reference to its source model - `modelId: string` ID of the concept's source model - `createdAt: string` Creation timestamp in ISO 8601 format (e.g., "2025-01-16T11:19:41.579Z") - `exampleAssetIds: array of string` Array of example asset IDs associated with this model - `name: string` Display name of the model - `ownerId: string` Project ID of the model owner - `privacy: string` Privacy setting of the model ("public", "private", or "unlisted") - `shortDescription: string` Short description of the model - `source: string` Source/origin of the model (e.g., "training", "import") - `tags: array of string` Array of user-assigned tags for categorization - `teamId: string` Team ID of the model owner - `trainingImagesNumber: number` Number of images used to train this model - `type: string` Type of the model (e.g., "sd-1_5", "flux.1") - `updatedAt: string` Last modification timestamp in ISO 8601 format (e.g., "2025-01-16T11:19:41.579Z") - `parentModelId: optional string` ID of the parent model this model was derived from - `score: optional number` Score assigned to the model based on usage and popularity - `thumbnail: optional object { assetId, url }` Thumbnail image information for the model - `assetId: string` ID of the asset used as thumbnail - `url: string` Signed URL of the thumbnail - `limit: number` Maximum number of documents returned - `offset: number` Number of documents skipped - `estimatedTotalHits: optional number` Estimated total number of hits - `hitsPerPage: optional number` Number of results on each page - `page: optional number` Current search results page - `totalHits: optional number` Exhaustive total number of matches - `totalPages: optional number` Exhaustive total number of search result pages ### Example ```http curl https://api.cloud.scenario.com/v1/search/models \ -H 'Content-Type: application/json' \ -u "$SCENARIO_SDK_API_KEY:SCENARIO_SDK_API_SECRET" \ -d '{}' ``` #### Response ```json { "hits": [ { "id": "id", "authorId": "authorId", "capabilities": [ "string" ], "collectionIds": [ "string" ], "concepts": [ { "modelId": "modelId" } ], "createdAt": "createdAt", "exampleAssetIds": [ "string" ], "name": "name", "ownerId": "ownerId", "privacy": "privacy", "shortDescription": "shortDescription", "source": "source", "tags": [ "string" ], "teamId": "teamId", "trainingImagesNumber": 0, "type": "type", "updatedAt": "updatedAt", "parentModelId": "parentModelId", "score": 0, "thumbnail": { "assetId": "assetId", "url": "url" } } ], "limit": 0, "offset": 0, "estimatedTotalHits": 0, "hitsPerPage": 0, "page": 0, "totalHits": 0, "totalPages": 0 } ```