> ## Documentation Index
> Fetch the complete documentation index at: https://gomodel-feat-vision-routing.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# List all registered models with provider info and access state

> GoModel API reference for GET /admin/models: List all registered models with provider info and access state.



## OpenAPI

````yaml /openapi.json get /admin/models
openapi: 3.0.0
info:
  description: >-
    AI gateway routing requests to multiple LLM providers (OpenAI, Anthropic,
    Gemini, Groq, Fireworks AI, Meta, OpenRouter, Kilo AI, DeepSeek, Z.ai, xAI,
    MiniMax, Xiaomi MiMo, OpenCode Go, Oracle, Ollama, Bailian). Drop-in
    OpenAI-compatible API.
  title: GoModel API
  contact: {}
  version: '1.0'
servers:
  - url: '{base_url}'
    description: Edit the base URL to point at your GoModel deployment.
    variables:
      base_url:
        default: http://localhost:8080
        description: Your GoModel deployment URL
security: []
paths:
  /admin/models:
    get:
      tags:
        - admin
      summary: List all registered models with provider info and access state
      parameters:
        - description: Filter by model category
          name: category
          in: query
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/admin.modelInventoryResponse'
                maxItems: 10000
                description: Bounded by maxItems=10000.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/core.GatewayError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/core.GatewayError'
      security:
        - BearerAuth: []
components:
  schemas:
    admin.modelInventoryResponse:
      type: object
      properties:
        access:
          $ref: '#/components/schemas/admin.modelAccessResponse'
        model:
          $ref: '#/components/schemas/core.Model'
        provider_name:
          type: string
        provider_type:
          type: string
        selector:
          type: string
    core.GatewayError:
      type: object
      properties:
        code:
          type: string
          nullable: true
        message:
          type: string
        param:
          type: string
          nullable: true
        provider:
          type: string
        status_code:
          type: integer
        type:
          $ref: '#/components/schemas/core.ErrorType'
    admin.modelAccessResponse:
      type: object
      properties:
        default_enabled:
          type: boolean
        effective_enabled:
          type: boolean
        override:
          $ref: '#/components/schemas/virtualmodels.VirtualModel'
        selector:
          type: string
        user_paths:
          type: array
          items:
            type: string
    core.Model:
      type: object
      properties:
        created:
          type: integer
        id:
          type: string
        metadata:
          description: >-
            Metadata holds optional enrichment data (display name, pricing,
            capabilities, etc.).

            May be nil if the model was not found in the external registry.
          allOf:
            - $ref: '#/components/schemas/core.ModelMetadata'
        object:
          type: string
        owned_by:
          type: string
    core.ErrorType:
      type: string
      enum:
        - provider_error
        - rate_limit_error
        - invalid_request_error
        - authentication_error
        - not_found_error
        - permission_error
        - internal_error
      x-enum-varnames:
        - ErrorTypeProvider
        - ErrorTypeRateLimit
        - ErrorTypeInvalidRequest
        - ErrorTypeAuthentication
        - ErrorTypeNotFound
        - ErrorTypePermission
        - ErrorTypeInternal
    virtualmodels.VirtualModel:
      type: object
      properties:
        created_at:
          type: string
        description:
          type: string
        enabled:
          type: boolean
        failover:
          description: >-
            Failover retries a failed request against the redirect's remaining

            targets. Tri-state: nil means enabled (the default); explicit false

            serves the chosen target only. The failover strategy always fails
            over.
          type: boolean
        managed:
          description: >-
            Managed marks a virtual model supplied declaratively through
            config.yaml or

            the VIRTUAL_MODELS env var rather than the admin store. It is an
            in-memory

            flag only: stores never read or write it. Managed rows override
            store rows

            of the same Source and are read-only to the admin API.
          type: boolean
        model:
          type: string
        provider_name:
          type: string
        session_affinity:
          description: >-
            SessionAffinity keeps requests of one detected session on the target
            that

            served it before, while that target stays available. Tri-state: nil
            means

            enabled (the default); explicit false restores stateless balancing.
          type: boolean
        slowdown:
          description: >-
            Slowdown is an extra-time factor from 0.1 to 10; zero disables it.
            Nil

            leaves the setting unspecified so an alias can inherit its target
            model.
          oneOf:
            - type: number
              enum:
                - 0
            - type: number
              minimum: 0.1
              maximum: 10
        source:
          type: string
        strategy:
          type: string
        strategy_config:
          type: object
          additionalProperties: {}
        strategy_plugin:
          description: >-
            StrategyPlugin names the routing-strategy plugin consulted when
            Strategy

            is "plugin"; StrategyConfig is that plugin's per-virtual-model

            configuration, validated against its route-scoped fields. Both are

            cleared for every other strategy.
          type: string
        targets:
          type: array
          items:
            $ref: '#/components/schemas/virtualmodels.Target'
        updated_at:
          type: string
        user_paths:
          type: array
          items:
            type: string
        vision_routing:
          description: |-
            VisionRouting sends a request that carries image input only to the
            targets whose model metadata reports the vision capability. When no
            target does, every target stays eligible and the provider answers as
            before. Off by default.
          type: boolean
    core.ModelMetadata:
      type: object
      properties:
        capabilities:
          type: object
          additionalProperties:
            type: boolean
        categories:
          type: array
          items:
            $ref: '#/components/schemas/core.ModelCategory'
        context_window:
          type: integer
        description:
          type: string
        display_name:
          type: string
        family:
          type: string
        max_output_tokens:
          type: integer
        modes:
          type: array
          items:
            type: string
        pricing:
          $ref: '#/components/schemas/core.ModelPricing'
        pricing_sources:
          type: object
          additionalProperties:
            type: string
        rankings:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/core.ModelRanking'
        tags:
          type: array
          items:
            type: string
    virtualmodels.Target:
      type: object
      properties:
        model:
          type: string
        provider:
          type: string
        weight:
          type: number
    core.ModelCategory:
      type: string
      enum:
        - all
        - text_generation
        - embedding
        - image
        - audio
        - video
        - utility
      x-enum-varnames:
        - CategoryAll
        - CategoryTextGeneration
        - CategoryEmbedding
        - CategoryImage
        - CategoryAudio
        - CategoryVideo
        - CategoryUtility
    core.ModelPricing:
      type: object
      properties:
        audio_input_per_mtok:
          type: number
        audio_output_per_mtok:
          type: number
        batch_input_per_mtok:
          type: number
        batch_output_per_mtok:
          type: number
        cache_write_per_mtok:
          type: number
        cached_input_per_mtok:
          type: number
        currency:
          type: string
        input_per_image:
          type: number
        input_per_mtok:
          type: number
        output_image_per_mtok:
          description: >-
            OutputImagePerMtok prices generated image tokens, which providers
            bill at a

            different rate from text output (OpenAI gpt-image-1: $40/Mtok image
            output

            and no text output rate at all; Gemini 3 Pro Image: $120/Mtok image
            output

            versus $12/Mtok text). It is the output rate on the image endpoints.
          type: number
        output_per_mtok:
          type: number
        per_character_input:
          type: number
        per_image:
          description: >-
            PerImage prices a returned image as a flat unit, for models that
            report no

            token usage at all (DALL·E, Imagen, grok-imagine). It is an
            alternative

            expression of the same charge as OutputImagePerMtok, never an
            addition to

            it: catalog entries carry both, so only one may be applied (see

            usage.CalculateGranularCost).
          type: number
        per_page:
          type: number
        per_request:
          type: number
        per_second_input:
          type: number
        per_second_output:
          type: number
        reasoning_output_per_mtok:
          type: number
        tiers:
          type: array
          items:
            $ref: '#/components/schemas/core.ModelPricingTier'
        time_windows:
          description: >-
            TimeWindows carry rates that replace the base prices during
            recurring

            UTC windows (see ModelPricingTimeWindow). Base prices are the
            standard

            (peak) rates; use AtTime to resolve the rates in effect at a moment.
          type: array
          items:
            $ref: '#/components/schemas/core.ModelPricingTimeWindow'
    core.ModelRanking:
      type: object
      properties:
        as_of:
          type: string
        elo:
          type: number
        rank:
          type: integer
    core.ModelPricingTier:
      type: object
      properties:
        cached_input_per_mtok:
          type: number
        input_per_mtok:
          type: number
        output_per_mtok:
          type: number
        up_to_mtok:
          type: number
        up_to_tokens:
          type: integer
          minimum: 1
    core.ModelPricingTimeWindow:
      type: object
      properties:
        label:
          type: string
        pricing:
          $ref: '#/components/schemas/core.ModelPricingTimeWindowRates'
        utc_ranges:
          type: array
          items:
            $ref: '#/components/schemas/core.ModelPricingUTCRange'
    core.ModelPricingTimeWindowRates:
      type: object
      properties:
        cache_write_per_mtok:
          type: number
        cached_input_per_mtok:
          type: number
        input_per_mtok:
          type: number
        output_per_mtok:
          type: number
    core.ModelPricingUTCRange:
      type: object
      properties:
        days:
          type: array
          items:
            type: string
        end:
          type: string
        start:
          type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````

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