---
title: "Search models and LoRAs"
description: "Searches the PixAI Model Market. Use it to find a base model for modelVersionId, or LoRAs for loras of POST /v2/image/create."
canonical: "https://platform.pixai.art/en/docs/api-v2/model/searchGenerationModels"
last-updated: "2026-11-02"
---

# Search models and LoRAs

Searches the PixAI Model Market. Use it to find a base model for `modelVersionId`, or LoRAs for `loras` of `POST /v2/image/create`.



To use a result, pass its `latestAvailableVersionId`, not its `id`: generation endpoints take **version** IDs. A LoRA's default trigger words are in `latestAvailableVersion.extra.triggerWords`.

To find LoRAs that work with a base model, send `usageType=LORA` and the base model's type in `loraBaseModelTypes` (the `type` of a model item, e.g. `SDXL_MODEL`).

Results depend on who is asking: send your API key to get the same content rating as your account. Anonymous requests get stricter filtering.

## GET https://api.pixai.art/v2/generation-model/search

Authentication: optional. Send your API key as `Authorization: Bearer <API key>` to read as your account.

Machine-readable OpenAPI spec: https://platform.pixai.art/openapi-spec.v2.yaml

### Parameters

- `usageType` (in query, object (one of the variants below), required)
  `MODEL` for base models, `LORA` for LoRAs, `ALL` for both.
  Allowed values: `ALL`, `MODEL`, `LORA`.
- `keyword` (in query, string, optional)
  Free-text query. Results rank by relevance and popularity; without a keyword, by popularity.
  Length: 1 to 256 characters.
- `loraBaseModelTypes` (in query, string, optional)
  With `usageType=LORA`: comma-separated base model types the LoRA must work with, e.g. `SDXL_MODEL`.
- `baseModelIds` (in query, string, optional)
  With `usageType=LORA`: comma-separated base model IDs the LoRA must work with.
- `source` (in query, string, optional)
  With `usageType=LORA`: `PIXAI` for LoRAs trained on PixAI, `EXTERNAL` for imported ones.
  Allowed values: `ANY`, `PIXAI`, `EXTERNAL`.
  Default: `"ANY"`.
- `baseModelType` (in query, string, optional)
  With `usageType=MODEL`: comma-separated model types, e.g. `SDXL_MODEL,MMDIT26B_MODEL`.
- `permittedUse` (in query, string, optional)
  Only models whose license allows this use.
  Allowed values: `COMMERCIAL`, `PERSONAL`.
- `postedWithin` (in query, string, optional)
  Allowed values: `today`, `this-week`, `this-month`.
- `authorId` (in query, string, optional)
  Only models by this user.
- `size` (in query, integer, optional)
  Page size.
  Default: `24`.
  Range: 1 (exclusive) to 50.
- `offset` (in query, integer, optional)
  Number of results to skip. Pages can overlap slightly; de-duplicate by `id`.
  Default: `0`.
  Range: 0 to 10000.

### Responses

- `200`
  One page of results.
  Body fields:
  - `data` (object[], required)
  - `data[].id` (string, required)
    The model ID. Generation endpoints take a version ID instead; use `latestAvailableVersionId`.
  - `data[].title` (string, required)
  - `data[].type` (string, required)
    e.g. `SDXL_MODEL`, `MMDIT26B_MODEL` or `SDXL_LORA`.
  - `data[].category` (string | null, optional)
  - `data[].loraBaseModelTypes` (string[], optional)
    For a LoRA, the base model types it works with.
  - `data[].permittedUse` (string, optional)
    What the license allows.
    Allowed values: `PERSONAL`, `COMMERCIAL`.
  - `data[].mediaId` (string | null, optional)
    Cover image media ID.
  - `data[].latestAvailableVersionId` (string | null, optional)
    The newest usable version. Pass it as `modelVersionId`, or as `loras[].modelId` for a LoRA.
  - `data[].latestAvailableVersion` (object | null, optional)
    The newest usable version.
  - `data[].latestAvailableVersion.id` (string, optional)
    Same as `latestAvailableVersionId`.
  - `data[].latestAvailableVersion.name` (string, optional)
  - `data[].latestAvailableVersion.modelType` (string | null, optional)
  - `data[].latestAvailableVersion.loraBaseModelType` (string | null, optional)
    For a LoRA, the base model type it was trained for.
  - `data[].latestAvailableVersion.extra` (object, optional)
    `triggerWords` holds the default trigger words of a LoRA.
  - `data[].latestAvailableVersion.extra.triggerWords` (string, optional)
  - `hasMore` (boolean, required)
    Whether another page may follow.
