basePath: /
definitions:
  config.Gallery:
    properties:
      name:
        type: string
      url:
        type: string
    type: object
  functions.Function:
    properties:
      description:
        type: string
      name:
        type: string
      parameters:
        additionalProperties: {}
        type: object
      strict:
        type: boolean
    type: object
  functions.Item:
    properties:
      properties:
        additionalProperties: {}
        type: object
      type:
        type: string
    type: object
  functions.JSONFunctionStructure:
    properties:
      $defs:
        additionalProperties: {}
        type: object
      anyOf:
        items:
          $ref: '#/definitions/functions.Item'
        type: array
      oneOf:
        items:
          $ref: '#/definitions/functions.Item'
        type: array
    type: object
  functions.Tool:
    properties:
      function:
        $ref: '#/definitions/functions.Function'
      type:
        type: string
    type: object
  gallery.File:
    properties:
      filename:
        type: string
      sha256:
        type: string
      uri:
        type: string
    type: object
  gallery.GalleryBackend:
    properties:
      alias:
        type: string
      backend:
        description: |-
          Backend is the resolved backend engine for this model (e.g. "llama-cpp").
          Populated at load time from overrides, inline config, or the URL-referenced config file.
        type: string
      capabilities:
        additionalProperties:
          type: string
        type: object
      description:
        type: string
      files:
        description: AdditionalFiles are used to add additional files to the model
        items:
          $ref: '#/definitions/gallery.File'
        type: array
      gallery:
        allOf:
        - $ref: '#/definitions/config.Gallery'
        description: Gallery is a reference to the gallery which contains the model
      icon:
        type: string
      installed:
        description: Installed is used to indicate if the model is installed or not
        type: boolean
      license:
        type: string
      mirrors:
        items:
          type: string
        type: array
      name:
        type: string
      sha256:
        description: |-
          SHA256 is the expected sha256 of the backend tarball at URI / Mirrors.
          Empty disables the integrity check; OCI URIs carry their own digest.
        type: string
      size:
        description: |-
          Size is an optional hardcoded model size string (e.g. "500MB", "14.5GB").
          Used when the size cannot be estimated automatically.
        type: string
      tags:
        items:
          type: string
        type: array
      uri:
        type: string
      url:
        type: string
      urls:
        items:
          type: string
        type: array
      version:
        type: string
    type: object
  gallery.Metadata:
    properties:
      backend:
        description: |-
          Backend is the resolved backend engine for this model (e.g. "llama-cpp").
          Populated at load time from overrides, inline config, or the URL-referenced config file.
        type: string
      description:
        type: string
      files:
        description: AdditionalFiles are used to add additional files to the model
        items:
          $ref: '#/definitions/gallery.File'
        type: array
      gallery:
        allOf:
        - $ref: '#/definitions/config.Gallery'
        description: Gallery is a reference to the gallery which contains the model
      icon:
        type: string
      installed:
        description: Installed is used to indicate if the model is installed or not
        type: boolean
      license:
        type: string
      name:
        type: string
      size:
        description: |-
          Size is an optional hardcoded model size string (e.g. "500MB", "14.5GB").
          Used when the size cannot be estimated automatically.
        type: string
      tags:
        items:
          type: string
        type: array
      url:
        type: string
      urls:
        items:
          type: string
        type: array
    type: object
  gallery.NodeDriftInfo:
    properties:
      digest:
        type: string
      node_id:
        type: string
      node_name:
        type: string
      version:
        type: string
    type: object
  gallery.UpgradeInfo:
    properties:
      available_digest:
        type: string
      available_version:
        type: string
      backend_name:
        type: string
      installed_digest:
        type: string
      installed_version:
        type: string
      node_drift:
        description: |-
          NodeDrift lists nodes whose installed version or digest differs from
          the cluster majority. Non-empty means the cluster has diverged and an
          upgrade will realign it. Empty in single-node mode.
        items:
          $ref: '#/definitions/gallery.NodeDriftInfo'
        type: array
    type: object
  galleryop.OpStatus:
    properties:
      cancellable:
        description: Cancellable is true if the operation can be cancelled
        type: boolean
      cancelled:
        description: Cancelled is true if the operation was cancelled
        type: boolean
      deletion:
        description: Deletion is true if the operation is a deletion
        type: boolean
      downloaded_size:
        type: string
      error: {}
      file_name:
        type: string
      file_size:
        type: string
      gallery_element_name:
        type: string
      message:
        type: string
      processed:
        type: boolean
      progress:
        type: number
    type: object
  localai.APIInstructionResponse:
    properties:
      description:
        type: string
      name:
        type: string
      swagger_fragment:
        additionalProperties: {}
        type: object
      tags:
        items:
          type: string
        type: array
    type: object
  localai.BrandingResponse:
    properties:
      favicon_url:
        type: string
      instance_name:
        type: string
      instance_tagline:
        type: string
      logo_horizontal_url:
        type: string
      logo_url:
        type: string
    type: object
  localai.GalleryBackend:
    properties:
      id:
        type: string
    type: object
  localai.GalleryModel:
    properties:
      backend:
        description: |-
          Backend is the resolved backend engine for this model (e.g. "llama-cpp").
          Populated at load time from overrides, inline config, or the URL-referenced config file.
        type: string
      config_file:
        additionalProperties: {}
        description: config_file is read in the situation where URL is blank - and
          therefore this is a base config.
        type: object
      description:
        type: string
      files:
        description: AdditionalFiles are used to add additional files to the model
        items:
          $ref: '#/definitions/gallery.File'
        type: array
      gallery:
        allOf:
        - $ref: '#/definitions/config.Gallery'
        description: Gallery is a reference to the gallery which contains the model
      icon:
        type: string
      id:
        type: string
      installed:
        description: Installed is used to indicate if the model is installed or not
        type: boolean
      license:
        type: string
      name:
        type: string
      overrides:
        additionalProperties: {}
        description: Overrides are used to override the configuration of the model
          located at URL
        type: object
      size:
        description: |-
          Size is an optional hardcoded model size string (e.g. "500MB", "14.5GB").
          Used when the size cannot be estimated automatically.
        type: string
      tags:
        items:
          type: string
        type: array
      url:
        type: string
      urls:
        items:
          type: string
        type: array
    type: object
  localai.ModelResponse:
    properties:
      config: {}
      details:
        items:
          type: string
        type: array
      error:
        type: string
      filename:
        type: string
      message:
        type: string
      success:
        type: boolean
    type: object
  localai.UpdateMaxReplicasPerModelRequest:
    properties:
      value:
        description: Value is the new per-model replica cap on this node. Must be
          >= 1.
        type: integer
    type: object
  model.BackendLogLine:
    properties:
      stream:
        description: '"stdout" or "stderr"'
        type: string
      text:
        type: string
      timestamp:
        type: string
    type: object
  modeladmin.VRAMRequest:
    properties:
      context_size:
        type: integer
      gpu_layers:
        type: integer
      kv_quant_bits:
        type: integer
      model:
        type: string
    type: object
  modeladmin.VRAMResponse:
    properties:
      context_length:
        type: integer
      context_note:
        type: string
      model_max_context:
        type: integer
      size_bytes:
        type: integer
      size_display:
        type: string
      vram_bytes:
        type: integer
      vram_display:
        type: string
    type: object
  proto.MemoryUsageData:
    properties:
      breakdown:
        additionalProperties:
          format: int64
          type: integer
        type: object
      total:
        type: integer
    type: object
  proto.StatusResponse:
    properties:
      memory:
        $ref: '#/definitions/proto.MemoryUsageData'
      state:
        $ref: '#/definitions/proto.StatusResponse_State'
    type: object
  proto.StatusResponse_State:
    enum:
    - 0
    - 1
    - 2
    - -1
    format: int32
    type: integer
    x-enum-varnames:
    - StatusResponse_UNINITIALIZED
    - StatusResponse_BUSY
    - StatusResponse_READY
    - StatusResponse_ERROR
  proto.VADResponse:
    properties:
      segments:
        items:
          $ref: '#/definitions/proto.VADSegment'
        type: array
    type: object
  proto.VADSegment:
    properties:
      end:
        type: number
      start:
        type: number
    type: object
  schema.AnthropicContentBlock:
    properties:
      content: {}
      id:
        type: string
      input:
        additionalProperties: {}
        type: object
      is_error:
        type: boolean
      name:
        type: string
      source:
        $ref: '#/definitions/schema.AnthropicImageSource'
      text:
        type: string
      tool_use_id:
        type: string
      type:
        type: string
    type: object
  schema.AnthropicImageSource:
    properties:
      data:
        type: string
      media_type:
        type: string
      type:
        type: string
    type: object
  schema.AnthropicMessage:
    properties:
      content: {}
      role:
        type: string
    type: object
  schema.AnthropicRequest:
    properties:
      max_tokens:
        type: integer
      messages:
        items:
          $ref: '#/definitions/schema.AnthropicMessage'
        type: array
      metadata:
        additionalProperties:
          type: string
        type: object
      model:
        type: string
      stop_sequences:
        items:
          type: string
        type: array
      stream:
        type: boolean
      system:
        type: string
      temperature:
        type: number
      tool_choice: {}
      tools:
        items:
          $ref: '#/definitions/schema.AnthropicTool'
        type: array
      top_k:
        type: integer
      top_p:
        type: number
    type: object
  schema.AnthropicResponse:
    properties:
      content:
        items:
          $ref: '#/definitions/schema.AnthropicContentBlock'
        type: array
      id:
        type: string
      model:
        type: string
      role:
        type: string
      stop_reason:
        type: string
      stop_sequence:
        type: string
      type:
        type: string
      usage:
        $ref: '#/definitions/schema.AnthropicUsage'
    type: object
  schema.AnthropicTool:
    properties:
      description:
        type: string
      input_schema:
        additionalProperties: {}
        type: object
      name:
        type: string
    type: object
  schema.AnthropicUsage:
    properties:
      input_tokens:
        type: integer
      output_tokens:
        type: integer
    type: object
  schema.BackendMonitorRequest:
    properties:
      model:
        type: string
    type: object
  schema.BackendResponse:
    properties:
      id:
        type: string
      status_url:
        type: string
    type: object
  schema.Choice:
    properties:
      delta:
        $ref: '#/definitions/schema.Message'
      finish_reason:
        type: string
      index:
        type: integer
      logprobs:
        $ref: '#/definitions/schema.Logprobs'
      message:
        $ref: '#/definitions/schema.Message'
      text:
        type: string
    type: object
  schema.Detection:
    properties:
      class_name:
        type: string
      confidence:
        type: number
      height:
        type: number
      mask:
        description: base64-encoded PNG segmentation mask
        type: string
      width:
        type: number
      x:
        type: number
      "y":
        type: number
    type: object
  schema.DetectionRequest:
    properties:
      boxes:
        description: Box coordinates as [x1,y1,x2,y2,...] quads
        items:
          type: number
        type: array
      image:
        description: URL or base64-encoded image to analyze
        type: string
      model:
        type: string
      points:
        description: 'Point coordinates as [x,y,label,...] triples (label: 1=pos,
          0=neg)'
        items:
          type: number
        type: array
      prompt:
        description: Text prompt (for SAM 3 PCS mode)
        type: string
      threshold:
        description: Detection confidence threshold
        type: number
    type: object
  schema.DetectionResponse:
    properties:
      detections:
        items:
          $ref: '#/definitions/schema.Detection'
        type: array
    type: object
  schema.DiarizationResult:
    properties:
      duration:
        type: number
      language:
        type: string
      num_speakers:
        type: integer
      segments:
        items:
          $ref: '#/definitions/schema.DiarizationSegment'
        type: array
      speakers:
        items:
          $ref: '#/definitions/schema.DiarizationSpeaker'
        type: array
      task:
        type: string
    type: object
  schema.DiarizationSegment:
    properties:
      end:
        type: number
      id:
        type: integer
      label:
        type: string
      speaker:
        type: string
      start:
        type: number
      text:
        type: string
    type: object
  schema.DiarizationSpeaker:
    properties:
      id:
        type: string
      label:
        type: string
      segment_count:
        type: integer
      total_speech_duration:
        type: number
    type: object
  schema.ElevenLabsSoundGenerationRequest:
    properties:
      bpm:
        type: integer
      caption:
        type: string
      do_sample:
        type: boolean
      duration_seconds:
        type: number
      instrumental:
        description: 'Simple mode: use text as description; optional instrumental
          / vocal_language'
        type: boolean
      keyscale:
        type: string
      language:
        type: string
      lyrics:
        type: string
      model_id:
        type: string
      prompt_influence:
        type: number
      text:
        type: string
      think:
        description: Advanced mode
        type: boolean
      timesignature:
        type: string
      vocal_language:
        type: string
    type: object
  schema.FaceAnalysis:
    properties:
      age:
        type: number
      antispoof_score:
        type: number
      dominant_emotion:
        type: string
      dominant_gender:
        type: string
      dominant_race:
        type: string
      emotion:
        additionalProperties:
          format: float32
          type: number
        type: object
      face_confidence:
        type: number
      gender:
        additionalProperties:
          format: float32
          type: number
        type: object
      is_real:
        description: Liveness fields — see FaceVerifyResponse for why these are pointers.
        type: boolean
      race:
        additionalProperties:
          format: float32
          type: number
        type: object
      region:
        $ref: '#/definitions/schema.FacialArea'
    type: object
  schema.FaceAnalyzeRequest:
    properties:
      actions:
        description: subset of {"age","gender","emotion","race"}
        items:
          type: string
        type: array
      anti_spoofing:
        type: boolean
      img:
        type: string
      model:
        type: string
    type: object
  schema.FaceAnalyzeResponse:
    properties:
      faces:
        items:
          $ref: '#/definitions/schema.FaceAnalysis'
        type: array
    type: object
  schema.FaceEmbedRequest:
    properties:
      img:
        type: string
      model:
        type: string
    type: object
  schema.FaceEmbedResponse:
    properties:
      dim:
        type: integer
      embedding:
        items:
          type: number
        type: array
      model:
        type: string
    type: object
  schema.FaceForgetRequest:
    properties:
      id:
        type: string
      model:
        type: string
      store:
        type: string
    type: object
  schema.FaceIdentifyMatch:
    properties:
      confidence:
        type: number
      distance:
        type: number
      id:
        type: string
      labels:
        additionalProperties:
          type: string
        type: object
      match:
        description: true when distance <= threshold
        type: boolean
      name:
        type: string
    type: object
  schema.FaceIdentifyRequest:
    properties:
      img:
        type: string
      model:
        type: string
      store:
        type: string
      threshold:
        description: optional cutoff on distance
        type: number
      top_k:
        type: integer
    type: object
  schema.FaceIdentifyResponse:
    properties:
      matches:
        items:
          $ref: '#/definitions/schema.FaceIdentifyMatch'
        type: array
    type: object
  schema.FaceRegisterRequest:
    properties:
      img:
        type: string
      labels:
        additionalProperties:
          type: string
        type: object
      model:
        type: string
      name:
        type: string
      store:
        description: vector store model; empty = local-store default
        type: string
    type: object
  schema.FaceRegisterResponse:
    properties:
      id:
        type: string
      name:
        type: string
      registered_at:
        type: string
    type: object
  schema.FaceVerifyRequest:
    properties:
      anti_spoofing:
        type: boolean
      img1:
        type: string
      img2:
        type: string
      model:
        type: string
      threshold:
        type: number
    type: object
  schema.FaceVerifyResponse:
    properties:
      confidence:
        type: number
      distance:
        type: number
      img1_antispoof_score:
        type: number
      img1_area:
        $ref: '#/definitions/schema.FacialArea'
      img1_is_real:
        description: |-
          Liveness fields are only populated when the request set
          anti_spoofing=true. Pointers keep them fully absent from the
          JSON response otherwise, so callers can tell "not checked"
          apart from "checked and fake" (which would collapse to zero
          values with plain bool+omitempty).
        type: boolean
      img2_antispoof_score:
        type: number
      img2_area:
        $ref: '#/definitions/schema.FacialArea'
      img2_is_real:
        type: boolean
      model:
        type: string
      processing_time_ms:
        type: number
      threshold:
        type: number
      verified:
        type: boolean
    type: object
  schema.FacialArea:
    properties:
      h:
        type: number
      w:
        type: number
      x:
        type: number
      "y":
        type: number
    type: object
  schema.FunctionCall:
    properties:
      arguments:
        type: string
      name:
        type: string
    type: object
  schema.GalleryResponse:
    properties:
      estimated_size_bytes:
        type: integer
      estimated_size_display:
        type: string
      estimated_vram_bytes:
        type: integer
      estimated_vram_display:
        type: string
      status:
        type: string
      uuid:
        type: string
    type: object
  schema.InputTokensDetails:
    properties:
      image_tokens:
        type: integer
      text_tokens:
        type: integer
    type: object
  schema.Item:
    properties:
      b64_json:
        type: string
      index:
        type: integer
      object:
        type: string
      url:
        description: Images
        type: string
    type: object
  schema.JINADocumentResult:
    properties:
      document:
        $ref: '#/definitions/schema.JINAText'
      index:
        type: integer
      relevance_score:
        type: number
    type: object
  schema.JINARerankRequest:
    properties:
      backend:
        type: string
      documents:
        items:
          type: string
        type: array
      model:
        type: string
      query:
        type: string
      top_n:
        type: integer
    type: object
  schema.JINARerankResponse:
    properties:
      model:
        type: string
      results:
        items:
          $ref: '#/definitions/schema.JINADocumentResult'
        type: array
      usage:
        $ref: '#/definitions/schema.JINAUsageInfo'
    type: object
  schema.JINAText:
    properties:
      text:
        type: string
    type: object
  schema.JINAUsageInfo:
    properties:
      prompt_tokens:
        type: integer
      total_tokens:
        type: integer
    type: object
  schema.Job:
    properties:
      audios:
        description: List of audio URLs or base64 strings
        items:
          type: string
        type: array
      completed_at:
        type: string
      created_at:
        type: string
      error:
        description: Error message if failed
        type: string
      files:
        description: List of file URLs or base64 strings
        items:
          type: string
        type: array
      id:
        description: UUID
        type: string
      images:
        description: |-
          Multimedia content (for manual execution)
          Can contain URLs or base64-encoded data URIs
        items:
          type: string
        type: array
      parameters:
        additionalProperties:
          type: string
        description: Template parameters
        type: object
      result:
        description: Agent response
        type: string
      started_at:
        type: string
      status:
        allOf:
        - $ref: '#/definitions/schema.JobStatus'
        description: pending, running, completed, failed, cancelled
      task_id:
        description: Reference to Task
        type: string
      traces:
        description: Execution traces (reasoning, tool calls, tool results)
        items:
          $ref: '#/definitions/schema.JobTrace'
        type: array
      triggered_by:
        description: '"manual", "cron", "api"'
        type: string
      videos:
        description: List of video URLs or base64 strings
        items:
          type: string
        type: array
      webhook_error:
        description: Error if webhook failed
        type: string
      webhook_sent:
        description: Webhook delivery tracking
        type: boolean
      webhook_sent_at:
        type: string
    type: object
  schema.JobExecutionRequest:
    properties:
      audios:
        description: List of audio URLs or base64 strings
        items:
          type: string
        type: array
      files:
        description: List of file URLs or base64 strings
        items:
          type: string
        type: array
      images:
        description: |-
          Multimedia content (optional, for manual execution)
          Can contain URLs or base64-encoded data URIs
        items:
          type: string
        type: array
      parameters:
        additionalProperties:
          type: string
        description: Optional, for templating
        type: object
      task_id:
        description: Required
        type: string
      videos:
        description: List of video URLs or base64 strings
        items:
          type: string
        type: array
    type: object
  schema.JobExecutionResponse:
    properties:
      job_id:
        description: unique job identifier
        type: string
      status:
        description: initial status (pending)
        type: string
      url:
        description: URL to poll for job status
        type: string
    type: object
  schema.JobStatus:
    enum:
    - pending
    - running
    - completed
    - failed
    - cancelled
    type: string
    x-enum-varnames:
    - JobStatusPending
    - JobStatusRunning
    - JobStatusCompleted
    - JobStatusFailed
    - JobStatusCancelled
  schema.JobTrace:
    properties:
      arguments:
        additionalProperties: {}
        description: Tool arguments or result data
        type: object
      content:
        description: The actual trace content
        type: string
      timestamp:
        description: When this trace occurred
        type: string
      tool_name:
        description: Tool name (for tool_call/tool_result)
        type: string
      type:
        description: '"reasoning", "tool_call", "tool_result", "status"'
        type: string
    type: object
  schema.KnownBackend:
    properties:
      auto_detect:
        type: boolean
      description:
        type: string
      installed:
        description: |-
          Installed is true when the backend is currently present on disk — i.e. it
          appears in gallery.ListSystemBackends(systemState). Importer-registered or
          curated pref-only backends default to false unless they also show up on
          disk. The import form uses this to warn users that submitting an import
          may trigger an automatic backend download.
        type: boolean
      modality:
        type: string
      name:
        type: string
    type: object
  schema.LogprobContent:
    properties:
      bytes:
        items:
          type: integer
        type: array
      id:
        type: integer
      logprob:
        type: number
      token:
        type: string
      top_logprobs:
        items:
          $ref: '#/definitions/schema.LogprobContent'
        type: array
    type: object
  schema.Logprobs:
    properties:
      content:
        items:
          $ref: '#/definitions/schema.LogprobContent'
        type: array
    type: object
  schema.LogprobsValue:
    properties:
      enabled:
        description: true if logprobs should be returned
        type: boolean
    type: object
  schema.Message:
    properties:
      content:
        description: The message content
      function_call:
        description: A result of a function call
      name:
        description: The message name (used for tools calls)
        type: string
      reasoning:
        description: Reasoning content extracted from <thinking>...</thinking> tags
        type: string
      role:
        description: The message role
        type: string
      string_audios:
        items:
          type: string
        type: array
      string_content:
        type: string
      string_images:
        items:
          type: string
        type: array
      string_videos:
        items:
          type: string
        type: array
      tool_call_id:
        type: string
      tool_calls:
        items:
          $ref: '#/definitions/schema.ToolCall'
        type: array
    type: object
  schema.ModelsDataResponse:
    properties:
      data:
        items:
          $ref: '#/definitions/schema.OpenAIModel'
        type: array
      object:
        type: string
    type: object
  schema.MultimediaSourceConfig:
    properties:
      headers:
        additionalProperties:
          type: string
        description: Custom headers for HTTP request (e.g., Authorization)
        type: object
      type:
        description: '"image", "video", "audio", "file"'
        type: string
      url:
        description: URL to fetch from
        type: string
    type: object
  schema.NodeData:
    properties:
      id:
        type: string
      lastSeen:
        type: string
      name:
        type: string
      serviceID:
        type: string
      tunnelAddress:
        type: string
    type: object
  schema.ORAnnotation:
    properties:
      end_index:
        type: integer
      start_index:
        type: integer
      title:
        type: string
      type:
        description: url_citation
        type: string
      url:
        type: string
    type: object
  schema.ORContentPart:
    properties:
      annotations:
        description: REQUIRED for output_text - must always be present (use [])
        items:
          $ref: '#/definitions/schema.ORAnnotation'
        type: array
      detail:
        description: low|high|auto for images
        type: string
      file_data:
        type: string
      file_url:
        type: string
      filename:
        type: string
      image_url:
        type: string
      logprobs:
        description: REQUIRED for output_text - must always be present (use [])
        items:
          $ref: '#/definitions/schema.ORLogProb'
        type: array
      refusal:
        type: string
      text:
        description: REQUIRED for output_text - must always be present (even if empty)
        type: string
      type:
        description: input_text|input_image|input_file|output_text|refusal
        type: string
    type: object
  schema.ORError:
    properties:
      code:
        type: string
      message:
        type: string
      param:
        type: string
      type:
        description: invalid_request|not_found|server_error|model_error|too_many_requests
        type: string
    type: object
  schema.ORFunctionTool:
    properties:
      description:
        type: string
      name:
        type: string
      parameters:
        additionalProperties: {}
        type: object
      strict:
        description: Always include in response
        type: boolean
      type:
        description: always "function"
        type: string
    type: object
  schema.ORIncompleteDetails:
    properties:
      reason:
        type: string
    type: object
  schema.ORInputTokensDetails:
    properties:
      cached_tokens:
        description: Always include, even if 0
        type: integer
    type: object
  schema.ORItemField:
    properties:
      arguments:
        type: string
      call_id:
        description: Function call fields
        type: string
      content:
        description: string or []ORContentPart for messages
      encrypted_content:
        description: Provider-specific encrypted content
        type: string
      id:
        description: Present for all output items
        type: string
      name:
        type: string
      output:
        description: Function call output fields
      role:
        description: Message fields
        type: string
      status:
        description: in_progress|completed|incomplete
        type: string
      summary:
        description: Reasoning fields (for type == "reasoning")
        items:
          $ref: '#/definitions/schema.ORContentPart'
        type: array
      type:
        description: message|function_call|function_call_output|reasoning|item_reference
        type: string
    type: object
  schema.ORLogProb:
    properties:
      bytes:
        items:
          type: integer
        type: array
      logprob:
        type: number
      token:
        type: string
      top_logprobs:
        items:
          $ref: '#/definitions/schema.ORTopLogProb'
        type: array
    type: object
  schema.OROutputTokensDetails:
    properties:
      reasoning_tokens:
        description: Always include, even if 0
        type: integer
    type: object
  schema.ORReasoning:
    properties:
      effort:
        type: string
      summary:
        type: string
    type: object
  schema.ORReasoningParam:
    properties:
      effort:
        description: '"none"|"low"|"medium"|"high"|"xhigh"'
        type: string
      summary:
        description: '"auto"|"concise"|"detailed"'
        type: string
    type: object
  schema.ORResponseResource:
    properties:
      background:
        type: boolean
      completed_at:
        description: 'Required: present as number or null'
        type: integer
      created_at:
        type: integer
      error:
        allOf:
        - $ref: '#/definitions/schema.ORError'
        description: Always present, null if no error
      frequency_penalty:
        type: number
      id:
        type: string
      incomplete_details:
        allOf:
        - $ref: '#/definitions/schema.ORIncompleteDetails'
        description: Always present, null if complete
      instructions:
        type: string
      max_output_tokens:
        type: integer
      max_tool_calls:
        description: nullable
        type: integer
      metadata:
        additionalProperties:
          type: string
        description: Metadata and operational flags
        type: object
      model:
        type: string
      object:
        description: always "response"
        type: string
      output:
        items:
          $ref: '#/definitions/schema.ORItemField'
        type: array
      parallel_tool_calls:
        type: boolean
      presence_penalty:
        type: number
      previous_response_id:
        type: string
      prompt_cache_key:
        description: nullable
        type: string
      reasoning:
        allOf:
        - $ref: '#/definitions/schema.ORReasoning'
        description: nullable
      safety_identifier:
        description: Safety and caching
        type: string
      service_tier:
        type: string
      status:
        description: in_progress|completed|failed|incomplete
        type: string
      store:
        type: boolean
      temperature:
        description: Sampling parameters (always required)
        type: number
      text:
        allOf:
        - $ref: '#/definitions/schema.ORTextConfig'
        description: Text format configuration
      tool_choice: {}
      tools:
        description: Tool-related fields
        items:
          $ref: '#/definitions/schema.ORFunctionTool'
        type: array
      top_logprobs:
        description: Default to 0
        type: integer
      top_p:
        type: number
      truncation:
        description: Truncation and reasoning
        type: string
      usage:
        allOf:
        - $ref: '#/definitions/schema.ORUsage'
        description: Usage statistics
    type: object
  schema.ORTextConfig:
    properties:
      format:
        $ref: '#/definitions/schema.ORTextFormat'
    type: object
  schema.ORTextFormat:
    properties:
      type:
        description: '"text" or "json_schema"'
        type: string
    type: object
  schema.ORTopLogProb:
    properties:
      bytes:
        items:
          type: integer
        type: array
      logprob:
        type: number
      token:
        type: string
    type: object
  schema.ORUsage:
    properties:
      input_tokens:
        type: integer
      input_tokens_details:
        allOf:
        - $ref: '#/definitions/schema.ORInputTokensDetails'
        description: Always present
      output_tokens:
        type: integer
      output_tokens_details:
        allOf:
        - $ref: '#/definitions/schema.OROutputTokensDetails'
        description: Always present
      total_tokens:
        type: integer
    type: object
  schema.OpenAIModel:
    properties:
      id:
        type: string
      object:
        type: string
    type: object
  schema.OpenAIRequest:
    properties:
      backend:
        type: string
      batch:
        description: Custom parameters - not present in the OpenAI API
        type: integer
      clip_skip:
        description: Diffusers
        type: integer
      echo:
        type: boolean
      encoding_format:
        description: 'Embedding encoding format: "float" (default) or "base64" (OpenAI
          Node.js SDK default)'
        type: string
      file:
        description: whisper
        type: string
      files:
        description: Multiple input images for img2img or inpainting
        items:
          type: string
        type: array
      frequency_penalty:
        type: number
      function_call:
        description: might be a string or an object
      functions:
        description: A list of available functions to call
        items:
          $ref: '#/definitions/functions.Function'
        type: array
      grammar:
        description: A grammar to constrain the LLM output
        type: string
      grammar_json_functions:
        $ref: '#/definitions/functions.JSONFunctionStructure'
      ignore_eos:
        type: boolean
      input: {}
      instruction:
        description: Edit endpoint
        type: string
      language:
        description: Also part of the OpenAI official spec
        type: string
      logit_bias:
        additionalProperties:
          format: float64
          type: number
        description: Map of token IDs to bias values (-100 to 100)
        type: object
      logprobs:
        allOf:
        - $ref: '#/definitions/schema.LogprobsValue'
        description: |-
          OpenAI API logprobs parameters
          logprobs: boolean - if true, returns log probabilities of each output token
          top_logprobs: integer 0-20 - number of most likely tokens to return at each token position
      max_tokens:
        type: integer
      messages:
        description: Messages is read only by chat/completion API calls
        items:
          $ref: '#/definitions/schema.Message'
        type: array
      metadata:
        additionalProperties:
          type: string
        type: object
      min_p:
        type: number
      model:
        type: string
      model_base_name:
        type: string
      "n":
        description: Also part of the OpenAI official spec. use it for returning multiple
          results
        type: integer
      n_keep:
        type: integer
      negative_prompt:
        type: string
      negative_prompt_scale:
        type: number
      presence_penalty:
        type: number
      prompt:
        description: Prompt is read only by completion/image API calls
      quality:
        description: Image (not supported by OpenAI)
        type: string
      reasoning_effort:
        type: string
      ref_images:
        description: Reference images for models that support them (e.g., Flux Kontext)
        items:
          type: string
        type: array
      repeat_last_n:
        type: integer
      repeat_penalty:
        type: number
      response_format:
        description: whisper/image
      rope_freq_base:
        type: number
      rope_freq_scale:
        type: number
      seed:
        type: integer
      size:
        description: image
        type: string
      step:
        type: integer
      stop: {}
      stream:
        type: boolean
      temperature:
        type: number
      tfz:
        type: number
      tokenizer:
        description: RWKV (?)
        type: string
      tool_choice: {}
      tools:
        items:
          $ref: '#/definitions/functions.Tool'
        type: array
      top_k:
        type: integer
      top_logprobs:
        description: Number of top logprobs per token (0-20)
        type: integer
      top_p:
        description: Common options between all the API calls, part of the OpenAI
          spec
        type: number
      translate:
        description: Only for audio transcription
        type: boolean
      typical_p:
        type: number
    required:
    - file
    type: object
  schema.OpenAIResponse:
    properties:
      choices:
        items:
          $ref: '#/definitions/schema.Choice'
        type: array
      created:
        type: integer
      data:
        items:
          $ref: '#/definitions/schema.Item'
        type: array
      id:
        type: string
      model:
        type: string
      object:
        type: string
      usage:
        $ref: '#/definitions/schema.OpenAIUsage'
    type: object
  schema.OpenAIUsage:
    properties:
      completion_tokens:
        type: integer
      input_tokens:
        description: Fields for image generation API compatibility
        type: integer
      input_tokens_details:
        $ref: '#/definitions/schema.InputTokensDetails'
      output_tokens:
        type: integer
      prompt_tokens:
        type: integer
      timing_prompt_processing:
        description: Extra timing data, disabled by default as is't not a part of
          OpenAI specification
        type: number
      timing_token_generation:
        type: number
      total_tokens:
        type: integer
    type: object
  schema.OpenResponsesRequest:
    properties:
      allowed_tools:
        description: Restrict which tools can be invoked
        items:
          type: string
        type: array
      background:
        description: Run request in background
        type: boolean
      frequency_penalty:
        description: Frequency penalty (-2.0 to 2.0)
        type: number
      include:
        description: What to include in response
        items:
          type: string
        type: array
      input:
        description: string or []ORItemParam
      instructions:
        type: string
      logit_bias:
        additionalProperties:
          format: float64
          type: number
        description: OpenAI-compatible extensions (not in Open Responses spec)
        type: object
      max_output_tokens:
        type: integer
      max_tool_calls:
        description: Maximum number of tool calls
        type: integer
      metadata:
        additionalProperties:
          type: string
        type: object
      model:
        type: string
      parallel_tool_calls:
        description: Allow parallel tool calls
        type: boolean
      presence_penalty:
        description: Presence penalty (-2.0 to 2.0)
        type: number
      previous_response_id:
        type: string
      reasoning:
        $ref: '#/definitions/schema.ORReasoningParam'
      service_tier:
        description: '"auto"|"default"|priority hint'
        type: string
      store:
        description: Whether to store the response
        type: boolean
      stream:
        type: boolean
      temperature:
        type: number
      text_format:
        description: Additional parameters from spec
      tool_choice:
        description: '"auto"|"required"|"none"|{type:"function",name:"..."}'
      tools:
        items:
          $ref: '#/definitions/schema.ORFunctionTool'
        type: array
      top_logprobs:
        description: Number of top logprobs to return
        type: integer
      top_p:
        type: number
      truncation:
        description: '"auto"|"disabled"'
        type: string
    type: object
  schema.P2PNodesResponse:
    properties:
      federated_nodes:
        items:
          $ref: '#/definitions/schema.NodeData'
        type: array
      llama_cpp_nodes:
        items:
          $ref: '#/definitions/schema.NodeData'
        type: array
      mlx_nodes:
        items:
          $ref: '#/definitions/schema.NodeData'
        type: array
    type: object
  schema.SysInfoModel:
    properties:
      id:
        type: string
    type: object
  schema.SystemInformationResponse:
    properties:
      backends:
        description: available backend engines
        items:
          type: string
        type: array
      loaded_models:
        description: currently loaded models
        items:
          $ref: '#/definitions/schema.SysInfoModel'
        type: array
    type: object
  schema.TTSRequest:
    description: TTS request body
    properties:
      backend:
        description: backend engine override
        type: string
      input:
        description: text input
        type: string
      language:
        description: (optional) language to use with TTS model
        type: string
      model:
        type: string
      response_format:
        description: (optional) output format
        type: string
      sample_rate:
        description: (optional) desired output sample rate
        type: integer
      stream:
        description: (optional) enable streaming TTS
        type: boolean
      voice:
        description: voice audio file or speaker id
        type: string
    type: object
  schema.Task:
    properties:
      created_at:
        type: string
      cron:
        description: Optional cron expression
        type: string
      cron_parameters:
        additionalProperties:
          type: string
        description: Parameters to use when executing cron jobs
        type: object
      description:
        description: Optional description
        type: string
      enabled:
        description: Can be disabled without deletion
        type: boolean
      id:
        description: UUID
        type: string
      model:
        description: Model name (must have MCP config)
        type: string
      multimedia_sources:
        description: |-
          Multimedia sources (for cron jobs)
          URLs to fetch multimedia content from when cron job executes
          Each source can have custom headers for authentication/authorization
        items:
          $ref: '#/definitions/schema.MultimediaSourceConfig'
        type: array
      name:
        description: User-friendly name
        type: string
      prompt:
        description: Template prompt (supports Go template .param syntax)
        type: string
      updated_at:
        type: string
      webhooks:
        description: |-
          Webhook configuration (for notifications).
          Supports multiple webhook endpoints.
          Webhooks can handle both success and failure cases using template variables:
          .Job (Job object), .Task (Task object), .Result (if successful),
          .Error (if failed), .Status (job status string).
        items:
          $ref: '#/definitions/schema.WebhookConfig'
        type: array
    type: object
  schema.TokenizeRequest:
    properties:
      content:
        description: text to tokenize
        type: string
      model:
        type: string
    type: object
  schema.TokenizeResponse:
    properties:
      tokens:
        description: token IDs
        items:
          type: integer
        type: array
    type: object
  schema.ToolCall:
    properties:
      function:
        $ref: '#/definitions/schema.FunctionCall'
      id:
        type: string
      index:
        type: integer
      type:
        type: string
    type: object
  schema.VADRequest:
    description: VAD request body
    properties:
      audio:
        description: raw audio samples as float32 PCM
        items:
          type: number
        type: array
      model:
        type: string
    type: object
  schema.VideoRequest:
    properties:
      cfg_scale:
        description: classifier-free guidance scale
        type: number
      end_image:
        description: URL or base64 of the last frame
        type: string
      fps:
        description: frames per second
        type: integer
      height:
        description: output height in pixels
        type: integer
      input_reference:
        description: reference image or video URL
        type: string
      model:
        type: string
      negative_prompt:
        description: things to avoid in the output
        type: string
      num_frames:
        description: total number of frames to generate
        type: integer
      prompt:
        description: text description of the video to generate
        type: string
      response_format:
        description: output format (url or b64_json)
        type: string
      seconds:
        description: duration in seconds (alternative to num_frames)
        type: string
      seed:
        description: random seed for reproducibility
        type: integer
      size:
        description: WxH shorthand (e.g. "512x512")
        type: string
      start_image:
        description: URL or base64 of the first frame
        type: string
      step:
        description: number of diffusion steps
        type: integer
      width:
        description: output width in pixels
        type: integer
    type: object
  schema.VoiceAnalysis:
    properties:
      age:
        type: number
      dominant_emotion:
        type: string
      dominant_gender:
        type: string
      emotion:
        additionalProperties:
          format: float32
          type: number
        type: object
      end:
        type: number
      gender:
        additionalProperties:
          format: float32
          type: number
        type: object
      start:
        type: number
    type: object
  schema.VoiceAnalyzeRequest:
    properties:
      actions:
        description: subset of {"age","gender","emotion"}
        items:
          type: string
        type: array
      audio:
        type: string
      model:
        type: string
    type: object
  schema.VoiceAnalyzeResponse:
    properties:
      segments:
        items:
          $ref: '#/definitions/schema.VoiceAnalysis'
        type: array
    type: object
  schema.VoiceEmbedRequest:
    properties:
      audio:
        type: string
      model:
        type: string
    type: object
  schema.VoiceEmbedResponse:
    properties:
      dim:
        type: integer
      embedding:
        items:
          type: number
        type: array
      model:
        type: string
    type: object
  schema.VoiceForgetRequest:
    properties:
      id:
        type: string
      model:
        type: string
      store:
        type: string
    type: object
  schema.VoiceIdentifyMatch:
    properties:
      confidence:
        type: number
      distance:
        type: number
      id:
        type: string
      labels:
        additionalProperties:
          type: string
        type: object
      match:
        type: boolean
      name:
        type: string
    type: object
  schema.VoiceIdentifyRequest:
    properties:
      audio:
        type: string
      model:
        type: string
      store:
        type: string
      threshold:
        type: number
      top_k:
        type: integer
    type: object
  schema.VoiceIdentifyResponse:
    properties:
      matches:
        items:
          $ref: '#/definitions/schema.VoiceIdentifyMatch'
        type: array
    type: object
  schema.VoiceRegisterRequest:
    properties:
      audio:
        type: string
      labels:
        additionalProperties:
          type: string
        type: object
      model:
        type: string
      name:
        type: string
      store:
        type: string
    type: object
  schema.VoiceRegisterResponse:
    properties:
      id:
        type: string
      name:
        type: string
      registered_at:
        type: string
    type: object
  schema.VoiceVerifyRequest:
    properties:
      anti_spoofing:
        type: boolean
      audio1:
        type: string
      audio2:
        type: string
      model:
        type: string
      threshold:
        type: number
    type: object
  schema.VoiceVerifyResponse:
    properties:
      confidence:
        type: number
      distance:
        type: number
      model:
        type: string
      processing_time_ms:
        type: number
      threshold:
        type: number
      verified:
        type: boolean
    type: object
  schema.WebhookConfig:
    properties:
      headers:
        additionalProperties:
          type: string
        description: Custom headers (e.g., Authorization)
        type: object
      method:
        description: 'HTTP method (POST, PUT, PATCH) - default: POST'
        type: string
      payload_template:
        description: Optional template for payload
        type: string
      url:
        description: Webhook endpoint URL
        type: string
    type: object
info:
  contact:
    name: LocalAI
    url: https://localai.io
  description: The LocalAI Rest API.
  license:
    name: MIT
    url: https://raw.githubusercontent.com/mudler/LocalAI/master/LICENSE
  title: LocalAI API
  version: 2.0.0
paths:
  /api/agent/jobs:
    get:
      parameters:
      - description: Filter by task ID
        in: query
        name: task_id
        type: string
      - description: Filter by status (pending, running, completed, failed, cancelled)
        in: query
        name: status
        type: string
      - description: Max number of jobs to return
        in: query
        name: limit
        type: integer
      - description: Set to 'true' for admin cross-user listing
        in: query
        name: all_users
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: jobs
          schema:
            items:
              $ref: '#/definitions/schema.Job'
            type: array
      summary: List agent jobs
      tags:
      - agent-jobs
  /api/agent/jobs/{id}:
    delete:
      parameters:
      - description: Job ID
        in: path
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: message
          schema:
            additionalProperties:
              type: string
            type: object
        "404":
          description: error
          schema:
            additionalProperties:
              type: string
            type: object
      summary: Delete an agent job
      tags:
      - agent-jobs
    get:
      parameters:
      - description: Job ID
        in: path
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: job
          schema:
            $ref: '#/definitions/schema.Job'
        "404":
          description: error
          schema:
            additionalProperties:
              type: string
            type: object
      summary: Get an agent job
      tags:
      - agent-jobs
  /api/agent/jobs/{id}/cancel:
    post:
      parameters:
      - description: Job ID
        in: path
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: message
          schema:
            additionalProperties:
              type: string
            type: object
        "400":
          description: error
          schema:
            additionalProperties:
              type: string
            type: object
        "404":
          description: error
          schema:
            additionalProperties:
              type: string
            type: object
      summary: Cancel an agent job
      tags:
      - agent-jobs
  /api/agent/jobs/execute:
    post:
      consumes:
      - application/json
      parameters:
      - description: Job execution request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.JobExecutionRequest'
      produces:
      - application/json
      responses:
        "201":
          description: job created
          schema:
            $ref: '#/definitions/schema.JobExecutionResponse'
        "400":
          description: error
          schema:
            additionalProperties:
              type: string
            type: object
      summary: Execute an agent job
      tags:
      - agent-jobs
  /api/agent/tasks:
    get:
      parameters:
      - description: Set to 'true' for admin cross-user listing
        in: query
        name: all_users
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: tasks
          schema:
            items:
              $ref: '#/definitions/schema.Task'
            type: array
      summary: List agent tasks
      tags:
      - agent-jobs
    post:
      consumes:
      - application/json
      parameters:
      - description: Task definition
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.Task'
      produces:
      - application/json
      responses:
        "201":
          description: id
          schema:
            additionalProperties:
              type: string
            type: object
        "400":
          description: error
          schema:
            additionalProperties:
              type: string
            type: object
      summary: Create a new agent task
      tags:
      - agent-jobs
  /api/agent/tasks/{id}:
    delete:
      parameters:
      - description: Task ID
        in: path
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: message
          schema:
            additionalProperties:
              type: string
            type: object
        "404":
          description: error
          schema:
            additionalProperties:
              type: string
            type: object
      summary: Delete an agent task
      tags:
      - agent-jobs
    get:
      parameters:
      - description: Task ID
        in: path
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: task
          schema:
            $ref: '#/definitions/schema.Task'
        "404":
          description: error
          schema:
            additionalProperties:
              type: string
            type: object
      summary: Get an agent task
      tags:
      - agent-jobs
    put:
      consumes:
      - application/json
      parameters:
      - description: Task ID
        in: path
        name: id
        required: true
        type: string
      - description: Updated task definition
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.Task'
      produces:
      - application/json
      responses:
        "200":
          description: message
          schema:
            additionalProperties:
              type: string
            type: object
        "400":
          description: error
          schema:
            additionalProperties:
              type: string
            type: object
        "404":
          description: error
          schema:
            additionalProperties:
              type: string
            type: object
      summary: Update an agent task
      tags:
      - agent-jobs
  /api/agent/tasks/{name}/execute:
    post:
      consumes:
      - application/json
      parameters:
      - description: Task name
        in: path
        name: name
        required: true
        type: string
      - description: Optional template parameters
        in: body
        name: parameters
        schema:
          type: object
      produces:
      - application/json
      responses:
        "201":
          description: job created
          schema:
            $ref: '#/definitions/schema.JobExecutionResponse'
        "400":
          description: error
          schema:
            additionalProperties:
              type: string
            type: object
        "404":
          description: error
          schema:
            additionalProperties:
              type: string
            type: object
      summary: Execute an agent task by name
      tags:
      - agent-jobs
  /api/backend-logs:
    get:
      description: Returns a sorted list of model IDs that have captured backend process
        output
      produces:
      - application/json
      responses:
        "200":
          description: Model IDs with logs
          schema:
            items:
              type: string
            type: array
      summary: List models with backend logs
      tags:
      - monitoring
  /api/backend-logs/{modelId}:
    get:
      description: Returns all captured log lines (stdout/stderr) for the specified
        model's backend process
      parameters:
      - description: Model ID
        in: path
        name: modelId
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: Log lines
          schema:
            items:
              $ref: '#/definitions/model.BackendLogLine'
            type: array
      summary: Get backend logs for a model
      tags:
      - monitoring
  /api/backend-logs/{modelId}/clear:
    post:
      description: Removes all captured log lines for the specified model's backend
        process
      parameters:
      - description: Model ID
        in: path
        name: modelId
        required: true
        type: string
      responses:
        "204":
          description: Logs cleared
      summary: Clear backend logs for a model
      tags:
      - monitoring
  /api/backend-traces:
    get:
      description: Returns captured backend traces (LLM calls, embeddings, TTS, etc.)
        in reverse chronological order
      produces:
      - application/json
      responses:
        "200":
          description: Backend operation traces
          schema:
            additionalProperties: true
            type: object
      summary: List backend operation traces
      tags:
      - monitoring
  /api/backend-traces/clear:
    post:
      description: Removes all captured backend operation traces from the buffer
      responses:
        "204":
          description: Traces cleared
      summary: Clear backend traces
      tags:
      - monitoring
  /api/branding:
    get:
      description: Returns the configured instance name, tagline, and asset URLs.
        Public — no authentication required.
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/localai.BrandingResponse'
      summary: Get instance branding
      tags:
      - branding
  /api/branding/asset/{kind}:
    delete:
      description: Remove a custom branding asset; the UI falls back to the bundled
        LocalAI default.
      parameters:
      - description: 'Asset kind: logo, logo_horizontal, or favicon'
        in: path
        name: kind
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/localai.BrandingResponse'
      summary: Reset a branding asset to default
      tags:
      - branding
    post:
      consumes:
      - multipart/form-data
      description: Upload a custom logo, horizontal logo, or favicon. The file replaces
        any previous override for that kind.
      parameters:
      - description: 'Asset kind: logo, logo_horizontal, or favicon'
        in: path
        name: kind
        required: true
        type: string
      - description: Image file (png, jpeg, svg, webp, ico — up to 5MiB)
        in: formData
        name: file
        required: true
        type: file
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/localai.BrandingResponse'
        "400":
          description: Bad Request
          schema:
            additionalProperties:
              type: string
            type: object
      summary: Upload a branding asset
      tags:
      - branding
  /api/instructions:
    get:
      description: Returns a compact list of instruction areas with descriptions and
        URLs for detailed guides
      produces:
      - application/json
      responses:
        "200":
          description: instructions list with hint
          schema:
            additionalProperties: true
            type: object
      summary: List available API instruction areas
      tags:
      - instructions
  /api/instructions/{name}:
    get:
      description: Returns a markdown guide (default) or filtered OpenAPI fragment
        (format=json) for a named instruction
      parameters:
      - description: Instruction name (e.g. chat-inference, config-management)
        in: path
        name: name
        required: true
        type: string
      - description: 'Response format: json for OpenAPI fragment, omit for markdown'
        in: query
        name: format
        type: string
      produces:
      - application/json
      - text/markdown
      responses:
        "200":
          description: instruction documentation
          schema:
            $ref: '#/definitions/localai.APIInstructionResponse'
        "404":
          description: instruction not found
          schema:
            additionalProperties:
              type: string
            type: object
      summary: Get an instruction's API guide or OpenAPI fragment
      tags:
      - instructions
  /api/models/{name}/{action}:
    put:
      description: Enable or disable a model from being loaded on demand. Disabled
        models remain installed but cannot be loaded.
      parameters:
      - description: Model name
        in: path
        name: name
        required: true
        type: string
      - description: 'Action: ''enable'' or ''disable'''
        in: path
        name: action
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/localai.ModelResponse'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/localai.ModelResponse'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/localai.ModelResponse'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/localai.ModelResponse'
      summary: Toggle model enabled/disabled status
      tags:
      - config
  /api/models/config-json/{name}:
    patch:
      consumes:
      - application/json
      description: Deep-merges the JSON patch body into the existing model config
      parameters:
      - description: Model name
        in: path
        name: name
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: success message
          schema:
            additionalProperties: true
            type: object
      summary: Partially update a model configuration
      tags:
      - config
  /api/models/config-metadata:
    get:
      description: Returns config field metadata. Use ?section=<id> to filter by section,
        or omit for a section index.
      parameters:
      - description: Section ID to filter (e.g. 'general', 'llm', 'parameters') or
          'all' for everything
        in: query
        name: section
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: Section index or filtered field metadata
          schema:
            additionalProperties: true
            type: object
      summary: List model configuration field metadata
      tags:
      - config
  /api/models/config-metadata/autocomplete/{provider}:
    get:
      description: Returns runtime-resolved values for dynamic providers (backends,
        models)
      parameters:
      - description: Provider name (backends, models, models:chat, models:tts, models:transcript,
          models:vad)
        in: path
        name: provider
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: values array
          schema:
            additionalProperties: true
            type: object
      summary: Get dynamic autocomplete values for a config field
      tags:
      - config
  /api/models/toggle-pinned/{name}/{action}:
    put:
      description: Pin or unpin a model. Pinned models stay loaded and are excluded
        from automatic eviction.
      parameters:
      - description: Model name
        in: path
        name: name
        required: true
        type: string
      - description: 'Action: ''pin'' or ''unpin'''
        in: path
        name: action
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/localai.ModelResponse'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/localai.ModelResponse'
        "404":
          description: Not Found
          schema:
            $ref: '#/definitions/localai.ModelResponse'
        "500":
          description: Internal Server Error
          schema:
            $ref: '#/definitions/localai.ModelResponse'
      summary: Toggle model pinned status
      tags:
      - config
  /api/models/vram-estimate:
    post:
      consumes:
      - application/json
      description: Estimates VRAM based on model weight files at multiple context
        sizes
      parameters:
      - description: VRAM estimation parameters
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/modeladmin.VRAMRequest'
      produces:
      - application/json
      responses:
        "200":
          description: VRAM estimate
          schema:
            $ref: '#/definitions/modeladmin.VRAMResponse'
      summary: Estimate VRAM usage for a model
      tags:
      - config
  /api/nodes/{id}/max-replicas-per-model:
    delete:
      parameters:
      - description: Node ID
        in: path
        name: id
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            additionalProperties:
              type: boolean
            type: object
        "404":
          description: node not found
          schema:
            additionalProperties: true
            type: object
      summary: Reset a node's max replicas per model to the worker default
      tags:
      - Nodes
    put:
      parameters:
      - description: Node ID
        in: path
        name: id
        required: true
        type: string
      - description: New value
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/localai.UpdateMaxReplicasPerModelRequest'
      responses:
        "200":
          description: OK
          schema:
            additionalProperties:
              type: integer
            type: object
        "400":
          description: value must be >= 1
          schema:
            additionalProperties: true
            type: object
        "404":
          description: node not found
          schema:
            additionalProperties: true
            type: object
      summary: Update a node's max replicas per model
      tags:
      - Nodes
  /api/p2p:
    get:
      responses:
        "200":
          description: Response
          schema:
            items:
              $ref: '#/definitions/schema.P2PNodesResponse'
            type: array
      summary: Returns available P2P nodes
      tags:
      - p2p
  /api/p2p/token:
    get:
      responses:
        "200":
          description: Response
          schema:
            type: string
      summary: Show the P2P token
      tags:
      - p2p
  /api/traces:
    get:
      description: Returns captured API exchange traces (request/response pairs) in
        reverse chronological order
      produces:
      - application/json
      responses:
        "200":
          description: Traced API exchanges
          schema:
            additionalProperties: true
            type: object
      summary: List API request/response traces
      tags:
      - monitoring
  /api/traces/clear:
    post:
      description: Removes all captured API request/response traces from the buffer
      responses:
        "204":
          description: Traces cleared
      summary: Clear API traces
      tags:
      - monitoring
  /audio/transform:
    post:
      consumes:
      - multipart/form-data
      description: Runs an audio-in / audio-out transform conditioned on an optional
        auxiliary reference signal. Concrete transforms include AEC + noise suppression
        + dereverberation (LocalVQE), voice conversion (reference = target speaker),
        and pitch shifting. The backend determines the operation; pass model-specific
        tuning via repeated `params[<key>]=<value>` form fields.
      parameters:
      - description: model
        in: formData
        name: model
        required: true
        type: string
      - description: primary input audio file
        in: formData
        name: audio
        required: true
        type: file
      - description: auxiliary reference audio (loopback for AEC, target voice for
          conversion, etc.)
        in: formData
        name: reference
        type: file
      - description: wav | mp3 | ogg | flac
        in: formData
        name: response_format
        type: string
      - description: desired output sample rate
        in: formData
        name: sample_rate
        type: integer
      produces:
      - audio/x-wav
      responses:
        "200":
          description: transformed audio file
          schema:
            type: string
      summary: Transform audio (echo cancellation, noise suppression, voice conversion,
        etc.)
      tags:
      - audio
  /audio/transformations:
    post:
      consumes:
      - multipart/form-data
      description: Runs an audio-in / audio-out transform conditioned on an optional
        auxiliary reference signal. Concrete transforms include AEC + noise suppression
        + dereverberation (LocalVQE), voice conversion (reference = target speaker),
        and pitch shifting. The backend determines the operation; pass model-specific
        tuning via repeated `params[<key>]=<value>` form fields.
      parameters:
      - description: model
        in: formData
        name: model
        required: true
        type: string
      - description: primary input audio file
        in: formData
        name: audio
        required: true
        type: file
      - description: auxiliary reference audio (loopback for AEC, target voice for
          conversion, etc.)
        in: formData
        name: reference
        type: file
      - description: wav | mp3 | ogg | flac
        in: formData
        name: response_format
        type: string
      - description: desired output sample rate
        in: formData
        name: sample_rate
        type: integer
      produces:
      - audio/x-wav
      responses:
        "200":
          description: transformed audio file
          schema:
            type: string
      summary: Transform audio (echo cancellation, noise suppression, voice conversion,
        etc.)
      tags:
      - audio
  /audio/transformations/stream:
    get:
      description: 'Streams binary PCM frames in (interleaved stereo: ch0=audio, ch1=reference)
        and out (mono). The first message must be a JSON `session.update` envelope
        describing model + sample format + frame size + backend params. Server emits
        binary PCM on the same cadence.'
      responses: {}
      summary: Bidirectional realtime audio transform over WebSocket.
      tags:
      - audio
  /backend/monitor:
    get:
      parameters:
      - description: Name of the model to monitor
        in: query
        name: model
        required: true
        type: string
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/proto.StatusResponse'
      summary: Backend monitor endpoint
      tags:
      - monitoring
  /backend/shutdown:
    post:
      parameters:
      - description: Backend statistics request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.BackendMonitorRequest'
      responses: {}
      summary: Backend shutdown endpoint
      tags:
      - monitoring
  /backends:
    get:
      responses:
        "200":
          description: Response
          schema:
            items:
              $ref: '#/definitions/gallery.GalleryBackend'
            type: array
      summary: List all Backends
      tags:
      - backends
  /backends/apply:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/localai.GalleryBackend'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.BackendResponse'
      summary: Install backends to LocalAI.
      tags:
      - backends
  /backends/available:
    get:
      responses:
        "200":
          description: Response
          schema:
            items:
              $ref: '#/definitions/gallery.GalleryBackend'
            type: array
      summary: List all available Backends
      tags:
      - backends
  /backends/delete/{name}:
    post:
      parameters:
      - description: Backend name
        in: path
        name: name
        required: true
        type: string
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.BackendResponse'
      summary: delete backends from LocalAI.
      tags:
      - backends
  /backends/galleries:
    get:
      responses:
        "200":
          description: Response
          schema:
            items:
              $ref: '#/definitions/config.Gallery'
            type: array
      summary: List all Galleries
      tags:
      - backends
  /backends/jobs:
    get:
      responses:
        "200":
          description: Response
          schema:
            additionalProperties:
              $ref: '#/definitions/galleryop.OpStatus'
            type: object
      summary: Returns all the jobs status progress
      tags:
      - backends
  /backends/jobs/{uuid}:
    get:
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/galleryop.OpStatus'
      summary: Returns the job status
      tags:
      - backends
  /backends/known:
    get:
      responses:
        "200":
          description: Response
          schema:
            items:
              $ref: '#/definitions/schema.KnownBackend'
            type: array
      summary: List all known Backends (importer registry + curated pref-only + installed-on-disk)
      tags:
      - backends
  /backends/upgrade/{name}:
    post:
      parameters:
      - description: Backend name
        in: path
        name: name
        required: true
        type: string
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.BackendResponse'
      summary: Upgrade a backend
      tags:
      - backends
  /backends/upgrades:
    get:
      responses:
        "200":
          description: Response
          schema:
            additionalProperties:
              $ref: '#/definitions/gallery.UpgradeInfo'
            type: object
      summary: Get available backend upgrades
      tags:
      - backends
  /backends/upgrades/check:
    post:
      responses:
        "200":
          description: Response
          schema:
            additionalProperties:
              $ref: '#/definitions/gallery.UpgradeInfo'
            type: object
      summary: Force backend upgrade check
      tags:
      - backends
  /branding/asset/{kind}:
    get:
      description: Serves the admin-uploaded logo, horizontal logo, or favicon. 404
        when no override is set.
      parameters:
      - description: 'Asset kind: logo, logo_horizontal, or favicon'
        in: path
        name: kind
        required: true
        type: string
      produces:
      - image/*
      responses:
        "200":
          description: OK
        "404":
          description: Not Found
      summary: Serve a custom branding asset
      tags:
      - branding
  /metrics:
    get:
      produces:
      - text/plain
      responses:
        "200":
          description: Prometheus metrics
          schema:
            type: string
      summary: Prometheus metrics endpoint
      tags:
      - monitoring
  /models/apply:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/localai.GalleryModel'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.GalleryResponse'
      summary: Install models to LocalAI.
      tags:
      - models
  /models/available:
    get:
      responses:
        "200":
          description: Response
          schema:
            items:
              $ref: '#/definitions/gallery.Metadata'
            type: array
      summary: List installable models.
      tags:
      - models
  /models/delete/{name}:
    post:
      parameters:
      - description: Model name
        in: path
        name: name
        required: true
        type: string
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.GalleryResponse'
      summary: delete models to LocalAI.
      tags:
      - models
  /models/galleries:
    get:
      responses:
        "200":
          description: Response
          schema:
            items:
              $ref: '#/definitions/config.Gallery'
            type: array
      summary: List all Galleries
      tags:
      - models
  /models/jobs:
    get:
      responses:
        "200":
          description: Response
          schema:
            additionalProperties:
              $ref: '#/definitions/galleryop.OpStatus'
            type: object
      summary: Returns all the jobs status progress
      tags:
      - models
  /models/jobs/{uuid}:
    get:
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/galleryop.OpStatus'
      summary: Returns the job status
      tags:
      - models
  /system:
    get:
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.SystemInformationResponse'
      summary: Show the LocalAI instance information
      tags:
      - monitoring
  /tokenMetrics:
    get:
      consumes:
      - application/json
      produces:
      - audio/x-wav
      responses:
        "200":
          description: generated audio/wav file
          schema:
            type: string
      summary: Get TokenMetrics for Active Slot.
      tags:
      - tokenize
  /tts:
    post:
      consumes:
      - application/json
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.TTSRequest'
      produces:
      - audio/x-wav
      responses:
        "200":
          description: generated audio/wav file
          schema:
            type: string
      summary: Generates audio from the input text.
      tags:
      - audio
  /v1/audio/diarization:
    post:
      consumes:
      - multipart/form-data
      parameters:
      - description: model
        in: formData
        name: model
        required: true
        type: string
      - description: audio file
        in: formData
        name: file
        required: true
        type: file
      - description: exact speaker count (>0 forces; 0 = auto)
        in: formData
        name: num_speakers
        type: integer
      - description: lower bound when auto-detecting
        in: formData
        name: min_speakers
        type: integer
      - description: upper bound when auto-detecting
        in: formData
        name: max_speakers
        type: integer
      - description: clustering distance threshold when num_speakers is unknown
        in: formData
        name: clustering_threshold
        type: number
      - description: discard segments shorter than this (seconds)
        in: formData
        name: min_duration_on
        type: number
      - description: merge gaps shorter than this (seconds)
        in: formData
        name: min_duration_off
        type: number
      - description: audio language hint (only meaningful for backends that bundle
          ASR)
        in: formData
        name: language
        type: string
      - description: include per-segment transcript when the backend supports it
        in: formData
        name: include_text
        type: boolean
      - description: json (default), verbose_json, or rttm
        in: formData
        name: response_format
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/schema.DiarizationResult'
      summary: Identify speakers in audio (who spoke when).
      tags:
      - audio
  /v1/audio/speech:
    post:
      consumes:
      - application/json
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.TTSRequest'
      produces:
      - audio/x-wav
      responses:
        "200":
          description: generated audio/wav file
          schema:
            type: string
      summary: Generates audio from the input text.
      tags:
      - audio
  /v1/audio/transcriptions:
    post:
      consumes:
      - multipart/form-data
      parameters:
      - description: model
        in: formData
        name: model
        required: true
        type: string
      - description: file
        in: formData
        name: file
        required: true
        type: file
      - description: sampling temperature
        in: formData
        name: temperature
        type: number
      - collectionFormat: csv
        description: timestamp granularities (word, segment)
        in: formData
        items:
          type: string
        name: timestamp_granularities
        type: array
      - description: stream partial results as SSE
        in: formData
        name: stream
        type: boolean
      responses:
        "200":
          description: Response
          schema:
            additionalProperties:
              type: string
            type: object
      summary: Transcribes audio into the input language.
      tags:
      - audio
  /v1/chat/completions:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.OpenAIRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.OpenAIResponse'
      summary: Generate a chat completions for a given prompt and model.
      tags:
      - inference
  /v1/completions:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.OpenAIRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.OpenAIResponse'
      summary: Generate completions for a given prompt and model.
      tags:
      - inference
  /v1/detection:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.DetectionRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.DetectionResponse'
      summary: Detects objects in the input image.
      tags:
      - detection
  /v1/edits:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.OpenAIRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.OpenAIResponse'
      summary: OpenAI edit endpoint
      tags:
      - inference
  /v1/embeddings:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.OpenAIRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.OpenAIResponse'
      summary: Get a vector representation of a given input that can be easily consumed
        by machine learning models and algorithms.
      tags:
      - embeddings
  /v1/face/analyze:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.FaceAnalyzeRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.FaceAnalyzeResponse'
      summary: Analyze demographic attributes (age, gender, ...) of faces.
      tags:
      - face-recognition
  /v1/face/embed:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.FaceEmbedRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.FaceEmbedResponse'
      summary: Extract a face embedding from an image.
      tags:
      - face-recognition
  /v1/face/forget:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.FaceForgetRequest'
      responses:
        "204":
          description: No Content
      summary: Remove a previously-registered face by ID.
      tags:
      - face-recognition
  /v1/face/identify:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.FaceIdentifyRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.FaceIdentifyResponse'
      summary: Identify a face against the registered database (1:N recognition).
      tags:
      - face-recognition
  /v1/face/register:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.FaceRegisterRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.FaceRegisterResponse'
      summary: Register a face for 1:N identification.
      tags:
      - face-recognition
  /v1/face/verify:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.FaceVerifyRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.FaceVerifyResponse'
      summary: Verify that two images depict the same person.
      tags:
      - face-recognition
  /v1/images/generations:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.OpenAIRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.OpenAIResponse'
      summary: Creates an image given a prompt.
      tags:
      - images
  /v1/images/inpainting:
    post:
      consumes:
      - multipart/form-data
      description: Perform image inpainting. Accepts multipart/form-data with `image`
        and `mask` files.
      parameters:
      - description: Model identifier
        in: formData
        name: model
        required: true
        type: string
      - description: Text prompt guiding the generation
        in: formData
        name: prompt
        required: true
        type: string
      - description: Number of inference steps (default 25)
        in: formData
        name: steps
        type: integer
      - description: Original image file
        in: formData
        name: image
        required: true
        type: file
      - description: Mask image file (white = area to inpaint)
        in: formData
        name: mask
        required: true
        type: file
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/schema.OpenAIResponse'
        "400":
          description: Bad Request
          schema:
            additionalProperties:
              type: string
            type: object
        "500":
          description: Internal Server Error
          schema:
            additionalProperties:
              type: string
            type: object
      summary: Image inpainting
      tags:
      - images
  /v1/mcp/chat/completions:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.OpenAIRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.OpenAIResponse'
      summary: MCP chat completions with automatic tool execution
      tags:
      - mcp
  /v1/messages:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.AnthropicRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.AnthropicResponse'
      summary: Generate a message response for the given messages and model.
      tags:
      - inference
  /v1/models:
    get:
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.ModelsDataResponse'
      summary: List and describe the various models available in the API.
      tags:
      - models
  /v1/rerank:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.JINARerankRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.JINARerankResponse'
      summary: Reranks a list of phrases by relevance to a given text query.
      tags:
      - rerank
  /v1/responses:
    post:
      parameters:
      - description: Request body
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.OpenResponsesRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.ORResponseResource'
      summary: Create a response using the Open Responses API
      tags:
      - inference
  /v1/responses/{id}:
    get:
      description: Retrieve a response by ID. Can be used for polling background responses
        or resuming streaming responses.
      parameters:
      - description: Response ID
        in: path
        name: id
        required: true
        type: string
      - description: Set to 'true' to resume streaming
        in: query
        name: stream
        type: string
      - description: Sequence number to resume from (for streaming)
        in: query
        name: starting_after
        type: integer
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.ORResponseResource'
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "404":
          description: Not Found
          schema:
            additionalProperties: true
            type: object
      summary: Get a response by ID
      tags:
      - inference
  /v1/responses/{id}/cancel:
    post:
      description: Cancel a background response if it's still in progress
      parameters:
      - description: Response ID
        in: path
        name: id
        required: true
        type: string
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.ORResponseResource'
        "400":
          description: Bad Request
          schema:
            additionalProperties: true
            type: object
        "404":
          description: Not Found
          schema:
            additionalProperties: true
            type: object
      summary: Cancel a response
      tags:
      - inference
  /v1/sound-generation:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.ElevenLabsSoundGenerationRequest'
      responses:
        "200":
          description: Response
          schema:
            type: string
      summary: Generates audio from the input text.
      tags:
      - audio
  /v1/text-to-speech/{voice-id}:
    post:
      parameters:
      - description: Account ID
        in: path
        name: voice-id
        required: true
        type: string
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.TTSRequest'
      responses:
        "200":
          description: Response
          schema:
            type: string
      summary: Generates audio from the input text.
      tags:
      - audio
  /v1/tokenMetrics:
    get:
      consumes:
      - application/json
      produces:
      - audio/x-wav
      responses:
        "200":
          description: generated audio/wav file
          schema:
            type: string
      summary: Get TokenMetrics for Active Slot.
      tags:
      - tokenize
  /v1/tokenize:
    post:
      parameters:
      - description: Request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.TokenizeRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.TokenizeResponse'
      summary: Tokenize the input.
      tags:
      - tokenize
  /v1/voice/analyze:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.VoiceAnalyzeRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.VoiceAnalyzeResponse'
      summary: Analyze demographic attributes (age, gender, emotion) from a voice
        clip.
      tags:
      - voice-recognition
  /v1/voice/embed:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.VoiceEmbedRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.VoiceEmbedResponse'
      summary: Extract a speaker embedding from an audio clip.
      tags:
      - voice-recognition
  /v1/voice/forget:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.VoiceForgetRequest'
      responses:
        "204":
          description: No Content
      summary: Remove a previously-registered speaker by ID.
      tags:
      - voice-recognition
  /v1/voice/identify:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.VoiceIdentifyRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.VoiceIdentifyResponse'
      summary: Identify a speaker against the registered database (1:N recognition).
      tags:
      - voice-recognition
  /v1/voice/register:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.VoiceRegisterRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.VoiceRegisterResponse'
      summary: Register a speaker for 1:N identification.
      tags:
      - voice-recognition
  /v1/voice/verify:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.VoiceVerifyRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.VoiceVerifyResponse'
      summary: Verify that two audio clips were spoken by the same person.
      tags:
      - voice-recognition
  /vad:
    post:
      consumes:
      - application/json
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.VADRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/proto.VADResponse'
      summary: Detect voice fragments in an audio stream
      tags:
      - audio
  /video:
    post:
      parameters:
      - description: query params
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/schema.VideoRequest'
      responses:
        "200":
          description: Response
          schema:
            $ref: '#/definitions/schema.OpenAIResponse'
      summary: Creates a video given a prompt.
      tags:
      - video
  /ws/backend-logs/{modelId}:
    get:
      description: Opens a WebSocket connection for real-time backend log streaming.
        Sends an initial batch of existing lines (type "initial"), then streams new
        lines as they appear (type "line"). Supports ping/pong keepalive.
      parameters:
      - description: Model ID
        in: path
        name: modelId
        required: true
        type: string
      responses: {}
      summary: Stream backend logs via WebSocket
      tags:
      - monitoring
schemes:
- http
- https
securityDefinitions:
  BearerAuth:
    in: header
    name: Authorization
    type: apiKey
swagger: "2.0"
