Ollama Models API

List, show, create, copy, pull, push, and delete models.

OpenAPI Specification

ollama-models-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Ollama Blobs Models API
  description: Ollama provides a REST API for running and managing large language models locally. The API supports text generation, chat completions, embeddings, model management, and streaming responses. It serves as the primary interface for interacting with models running on the Ollama inference engine at localhost:11434.
  version: 0.1.0
  contact:
    name: Ollama Team
    url: https://ollama.com
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  termsOfService: https://ollama.com/terms
servers:
- url: http://localhost:11434
  description: Local Ollama Server
tags:
- name: Models
  description: List, show, create, copy, pull, push, and delete models.
paths:
  /api/tags:
    get:
      operationId: listModels
      summary: Ollama List local models
      description: List all models that are available locally on the Ollama server, including their size, digest, and metadata details.
      tags:
      - Models
      responses:
        '200':
          description: Successful response with list of models
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListResponse'
  /api/show:
    post:
      operationId: showModelInfo
      summary: Ollama Show model information
      description: Show detailed information about a model including parameters, template, license, system prompt, capabilities, and model metadata.
      tags:
      - Models
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ShowRequest'
      responses:
        '200':
          description: Successful response with model details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShowResponse'
        '404':
          description: Model not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/create:
    post:
      operationId: createModel
      summary: Ollama Create a model
      description: Create a model from an existing model with optional customizations including system prompt, template, parameters, and quantization. Streams progress updates by default.
      tags:
      - Models
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRequest'
      responses:
        '200':
          description: Model creation progress. Returns a stream of status events when streaming is enabled, or a single status response when disabled.
          content:
            application/x-ndjson:
              schema:
                $ref: '#/components/schemas/StatusEvent'
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/copy:
    post:
      operationId: copyModel
      summary: Ollama Copy a model
      description: Create a copy of an existing model under a new name. This creates a duplicate that can be modified independently.
      tags:
      - Models
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CopyRequest'
      responses:
        '200':
          description: Model successfully copied
        '404':
          description: Source model not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/pull:
    post:
      operationId: pullModel
      summary: Ollama Pull a model
      description: Download a model from the Ollama model registry. Streams progress updates by default with status, digest, and byte transfer information.
      tags:
      - Models
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PullRequest'
      responses:
        '200':
          description: Model download progress. Returns a stream of status events when streaming is enabled, or a single status response when disabled.
          content:
            application/x-ndjson:
              schema:
                $ref: '#/components/schemas/StatusEvent'
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/push:
    post:
      operationId: pushModel
      summary: Ollama Push a model
      description: Upload a model to the Ollama model registry for sharing. Requires authentication. Streams progress updates by default.
      tags:
      - Models
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PushRequest'
      responses:
        '200':
          description: Model upload progress. Returns a stream of status events when streaming is enabled, or a single status response when disabled.
          content:
            application/x-ndjson:
              schema:
                $ref: '#/components/schemas/StatusEvent'
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized - authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/delete:
    delete:
      operationId: deleteModel
      summary: Ollama Delete a model
      description: Delete a model and its data from the local Ollama server. This permanently removes the model files from disk.
      tags:
      - Models
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteRequest'
      responses:
        '200':
          description: Model successfully deleted
        '404':
          description: Model not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /models:
    get:
      operationId: listModels
      summary: Ollama List models
      description: Lists the currently available models and provides basic information about each one. Compatible with the OpenAI List Models API format.
      tags:
      - Models
      responses:
        '200':
          description: Successful response with list of models
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelListResponse'
  /models/{model}:
    get:
      operationId: retrieveModel
      summary: Ollama Retrieve a model
      description: Retrieves a model instance, providing basic information about the model. Compatible with the OpenAI Retrieve Model API format.
      tags:
      - Models
      parameters:
      - name: model
        in: path
        required: true
        description: The identifier of the model to retrieve.
        schema:
          type: string
      responses:
        '200':
          description: Successful response with model information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelObject'
        '404':
          description: Model not found
components:
  schemas:
    DeleteRequest:
      type: object
      description: Request body for deleting a model from the local server.
      required:
      - model
      properties:
        model:
          type: string
          description: The name of the model to delete.
    ShowResponse:
      type: object
      description: Detailed information about a model including its configuration, capabilities, and metadata.
      properties:
        modelfile:
          type: string
          description: The Modelfile content used to create this model.
        parameters:
          type: string
          description: The model parameters in string format.
        template:
          type: string
          description: The prompt template used by the model.
        system:
          type: string
          description: The system prompt embedded in the model.
        license:
          type: string
          description: The license text for the model.
        details:
          $ref: '#/components/schemas/ModelDetails'
        model_info:
          type: object
          description: Additional model metadata and architecture information.
          additionalProperties: true
        capabilities:
          type: array
          description: The list of capabilities the model supports, such as completion, tools, vision, and thinking.
          items:
            type: string
    ChatMessage:
      type: object
      description: A message in a chat conversation, containing a role, content, and optional images or tool calls.
      required:
      - role
      - content
      properties:
        role:
          type: string
          description: The role of the message sender.
          enum:
          - system
          - user
          - assistant
          - tool
        content:
          type: string
          description: The text content of the message.
        thinking:
          type: string
          description: The thinking content when extended thinking is enabled.
        images:
          type: array
          description: A list of base64-encoded images attached to the message for multimodal models.
          items:
            type: string
            format: byte
        tool_calls:
          type: array
          description: Tool calls requested by the assistant for function calling.
          items:
            $ref: '#/components/schemas/ToolCall'
    StatusEvent:
      type: object
      description: A streaming status event returned during model creation, pull, or push operations.
      properties:
        status:
          type: string
          description: A human-readable status message describing the current operation step.
        digest:
          type: string
          description: The content digest associated with the current status, if applicable.
        total:
          type: integer
          description: The total number of bytes expected for the operation.
        completed:
          type: integer
          description: The number of bytes transferred so far.
    ModelSummary:
      type: object
      description: Summary information about a locally available model.
      properties:
        name:
          type: string
          description: The model name identifier.
        model:
          type: string
          description: The model identifier.
        remote_model:
          type: string
          description: The upstream model name if the model is a remote reference.
        remote_host:
          type: string
          description: The upstream Ollama server URL if the model is remote.
        modified_at:
          type: string
          format: date-time
          description: The ISO 8601 timestamp when the model was last modified.
        size:
          type: integer
          description: The model size in bytes on disk.
        digest:
          type: string
          description: The SHA256 hash of the model contents.
        details:
          $ref: '#/components/schemas/ModelDetails'
    ListResponse:
      type: object
      description: Response containing a list of all locally available models.
      properties:
        models:
          type: array
          description: The list of available models.
          items:
            $ref: '#/components/schemas/ModelSummary'
    CreateRequest:
      type: object
      description: Request body for creating a new model from an existing model with optional customizations.
      required:
      - model
      properties:
        model:
          type: string
          description: The name for the new model to create.
        from:
          type: string
          description: The existing model to use as a base for the new model.
        system:
          type: string
          description: A system prompt to embed in the new model.
        template:
          type: string
          description: A custom prompt template for the new model.
        license:
          description: License text or list of licenses for the new model.
          oneOf:
          - type: string
          - type: array
            items:
              type: string
        parameters:
          type: object
          description: Key-value parameters to set on the new model, such as temperature, top_k, and num_ctx.
          additionalProperties: true
        messages:
          type: array
          description: A message history to include with the new model.
          items:
            $ref: '#/components/schemas/ChatMessage'
        quantize:
          type: string
          description: The quantization level to apply to the model, such as q4_K_M or q8_0.
        stream:
          type: boolean
          description: When true, streams progress status events during creation.
          default: true
    PushRequest:
      type: object
      description: Request body for uploading a model to the registry.
      required:
      - model
      properties:
        model:
          type: string
          description: The name of the model to upload to the registry.
        stream:
          type: boolean
          description: When true, streams progress status events during upload.
          default: true
        insecure:
          type: boolean
          description: When true, allows uploading to registries using insecure HTTP connections.
    ErrorResponse:
      type: object
      description: An error response returned when a request fails.
      properties:
        error:
          type: string
          description: A human-readable error message describing the problem.
    StatusResponse:
      type: object
      description: A status response returned for non-streaming model operations.
      properties:
        status:
          type: string
          description: The current status message.
    ModelObject:
      type: object
      description: Information about a model in OpenAI-compatible format.
      properties:
        id:
          type: string
          description: The model identifier.
        object:
          type: string
          description: The object type, always model.
          const: model
        created:
          type: integer
          description: Unix timestamp when the model was last modified.
        owned_by:
          type: string
          description: The organization that owns the model. Defaults to library.
    ModelListResponse:
      type: object
      description: Response containing a list of available models in OpenAI format.
      properties:
        object:
          type: string
          description: The object type, always list.
          const: list
        data:
          type: array
          description: The list of model objects.
          items:
            $ref: '#/components/schemas/ModelObject'
    PullRequest:
      type: object
      description: Request body for downloading a model from the registry.
      required:
      - model
      properties:
        model:
          type: string
          description: The name of the model to download from the registry.
        stream:
          type: boolean
          description: When true, streams progress status events during download.
          default: true
        insecure:
          type: boolean
          description: When true, allows downloading from registries using insecure HTTP connections.
    ShowRequest:
      type: object
      description: Request body for retrieving detailed model information.
      required:
      - model
      properties:
        model:
          type: string
          description: The name of the model to show information for.
        verbose:
          type: boolean
          description: When true, returns additional verbose metadata fields.
    ToolCall:
      type: object
      description: A tool call requested by the model during function calling.
      properties:
        function:
          type: object
          description: The function to call with its name and arguments.
          properties:
            name:
              type: string
              description: The name of the function to call.
            arguments:
              type: object
              description: The arguments to pass to the function as key-value pairs.
              additionalProperties: true
    CopyRequest:
      type: object
      description: Request body for copying an existing model to a new name.
      required:
      - source
      - destination
      properties:
        source:
          type: string
          description: The name of the existing model to copy from.
        destination:
          type: string
          description: The name for the new model copy.
    ModelDetails:
      type: object
      description: Detailed metadata about a model's format and architecture.
      properties:
        format:
          type: string
          description: The file format of the model, such as gguf.
        family:
          type: string
          description: The primary model family, such as llama or gemma.
        families:
          type: array
          description: All model families this model belongs to.
          items:
            type: string
        parameter_size:
          type: string
          description: The parameter count label, such as 7B or 13B.
        quantization_level:
          type: string
          description: The quantization method used, such as Q4_0 or Q4_K_M.
externalDocs:
  description: Ollama API Documentation
  url: https://docs.ollama.com/api/introduction