{
  "openapi": "3.0.1",
  "info": {
    "title": "Ollama Library Models Scraper",
    "description": "Scrape the Ollama model library by keyword or capability: model name, description, capability tags, sizes, pull count, tag count and last update for each model. Filter by one or more capabilities (models must match all of them). Public library data, no login.",
    "version": "0.1",
    "x-build-id": "4CSfJqZLjQGRw2x8B"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/axiomworks~ollama-library-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-axiomworks-ollama-library-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/axiomworks~ollama-library-scraper/runs": {
      "post": {
        "operationId": "runs-sync-axiomworks-ollama-library-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/axiomworks~ollama-library-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-axiomworks-ollama-library-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "searchQuery": {
            "title": "Model keyword (e.g. llama)",
            "type": "string",
            "description": "Model keywords, e.g. \"llama\" or \"coder\", or an Ollama library/search URL. Default \"\" lists the public library. Search results are supplemented with library matches. With modelNames, skips site search and filters exact models by every keyword. No matches succeeds with zero rows; broaden keywords or remove filters.",
            "default": ""
          },
          "capabilities": {
            "title": "Required capability tags (e.g. vision)",
            "type": "array",
            "description": "Required capability tags, e.g. [\"vision\", \"tools\"]. Accepts tools, vision, thinking, embedding, cloud; every selected tag must match. Default [] applies no capability filter. Combines with searchQuery, modelNames, parameterSizes and minPulls; unknown tags return zero rows.",
            "items": {
              "type": "string",
              "enum": [
                "tools",
                "vision",
                "thinking",
                "embedding",
                "cloud"
              ]
            },
            "default": []
          },
          "sortBy": {
            "title": "Model order (e.g. pulls)",
            "enum": [
              "default",
              "pulls",
              "updated"
            ],
            "type": "string",
            "description": "Order models after filtering, e.g. \"pulls\". \"default\" keeps site order, \"pulls\" sorts approximate pullsNumeric descending, \"updated\" sorts updatedAt newest first with missing timestamps last. Default \"default\". maxItems is applied after sorting.",
            "default": "default"
          },
          "minPulls": {
            "title": "Minimum pull count (e.g. 1000000)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum approximate pull count, e.g. 1000000. Accepts nonnegative integers; default 0 disables this filter. Uses pullsNumeric converted from abbreviated site counts. Combines with the other filters; lower this value if no models match.",
            "default": 0
          },
          "includeTags": {
            "title": "Fetch model tag details (true/false)",
            "type": "boolean",
            "description": "Fetch variant details, e.g. true adds tags to each model row. Default false skips tag pages. Adds one request per selected model at one request/second; keep maxItems small for quick runs. Failed tag fetches leave tags null and retain the model. Does not create separate variant rows.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum models (e.g. 20)",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Shared maximum model rows across the entire search or modelNames watchlist, e.g. 20. Accepts integers 1-1000, default 50. Applied after all filters and sorting. Fewer rows are saved if fewer models match or the run spending limit is reached. Default prefill {\"maxItems\":20} lists 20 library models without tag requests.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy settings (e.g. useApifyProxy)",
            "type": "object",
            "description": "Connection settings, e.g. {\"useApifyProxy\": false} for direct requests or {\"useApifyProxy\": true} for Apify Proxy. Default direct requests; persistent blocks trigger a proxy recovery attempt when available.",
            "default": {
              "useApifyProxy": false
            }
          },
          "modelNames": {
            "title": "Exact model names or URLs (e.g. qwen3)",
            "type": "array",
            "description": "Exact public library names or Ollama model URLs, e.g. [\"llama3.2\", \"https://ollama.com/library/qwen3:8b\"]. Default [] uses normal listing/search. Tagged URLs select parent models; duplicates yield one row. Skips site search; searchQuery and all filters still apply. Missing names yield no row; check spelling or remove filters.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "parameterSizes": {
            "title": "Parameter-size badges (e.g. 3b)",
            "type": "array",
            "description": "Parameter-size badges, e.g. [\"1b\", \"3b\", \"8b\"]. Matches any listed size, ignoring case. Default [] disables this filter. Combines with searchQuery, modelNames, capabilities and minPulls. Models without matching badges are excluded; the output sizes still includes every badge. This is parameter count, not download size.",
            "items": {
              "type": "string"
            },
            "default": []
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}