Api Models List

GET/POST /api/llm_models/models/ (platform - shows global + custom) GET/POST /api/llm-models/custom-models/ (public API - shows ONLY custom) Unified endpoint for models. GET: List models - Platform: global + org's custom (same for superadmin - no cross-org listing) - Public (custom-models path): ONLY org's custom models Filter with standard syntax: { "filters": { "affiliation_category": { "value": ["CUSTOM"] } } } POST: - Without 'model_name' in body: Filter/list models (backward compatible) - With 'model_name' in body: Create model - organization_id=null + superadmin: Create global model - Otherwise: Create custom model for target org (superadmin can specify organization_id) Note: Uses SuperAdminMixin for consistency, but queryset is intentionally the same for both regular users and superadmins (global + org's custom pattern).

Authentication

AuthorizationBearer
JWT access token or Respan API key

Query parameters

pageintegerOptional
A page number within the paginated result set.
page_sizeintegerOptional
Number of results to return per page.

Response

countinteger
resultslist of objects
nextstring or nullformat: "uri"
previousstring or nullformat: "uri"
total_countinteger
current_filtersobject

Pydantic model for FilterParamDict. A dictionary that maps metric names to their filter parameters.

Each key is a metric name (str), and each value can be:

  • A single MetricFilterParamPydantic (one condition)
  • A List[MetricFilterParamPydantic] (multiple conditions for same metric)
  • A FilterBundlePydantic (nested filter bundle with connector)

Note: Uses extra=“allow” for dynamic metric name fields. The pydantic_extra annotation tells Pydantic what types to expect for extra fields, and generates typed additionalProperties in JSON Schema.

filters_dataobject