LM-Kit OneDocs2026.8.10lm-kit.com
API Compatibility

Ollama · Models

Uploads a blob under its content digest.#

POST/api/blobs/{digest}

Ollama-compatible blob push: the raw request body streams into content-addressed storage and is hashed as it lands; a body whose SHA-256 does not match the declared digest is rejected and leaves nothing behind. Pushed blobs become model artifacts through POST /api/create's files and adapters maps. The request-size ceiling is the server's configured maximum upload size.

Parameters

NameInTypeDescription
digestrequiredpathstring

The content digest, sha256:.

Responses

StatusTypeDescription
201

Created

400

Bad Request

curl -X POST "$LMKIT_ONE_URL/api/blobs/$DIGEST" \
  -H "Authorization: Bearer $LMKIT_API_KEY"

Checks whether a blob exists, by content digest.#

HEAD/api/blobs/{digest}

Ollama-compatible blob probe. Clients (the ollama CLI included) HEAD each file digest before creating a model and push only the blobs this server lacks.

Parameters

NameInTypeDescription
digestrequiredpathstring

The content digest, sha256:.

Responses

StatusTypeDescription
200

OK

404

Not Found

curl -X HEAD "$LMKIT_ONE_URL/api/blobs/$DIGEST" \
  -H "Authorization: Bearer $LMKIT_API_KEY"

Lists the models this server can serve, in the Ollama tags shape.#

GET/api/tags

Ollama-compatible model listing. Returns the same catalog the OpenAI-compatible /v1/models endpoint exposes, shaped as Ollama tags entries. Models are downloaded on demand at first use, so entries without a local copy are listed too; those omit modified_at.

Responses

StatusTypeDescription
200

OK

curl -X GET "$LMKIT_ONE_URL/api/tags" \
  -H "Authorization: Bearer $LMKIT_API_KEY"

Describes one model, in the Ollama show shape.#

POST/api/show

Ollama-compatible model details: structural details, architecture metadata and the capability vocabulary (completion, tools, vision, embedding, thinking). The modelfile, parameters and template fields exist for wire compatibility; LM-Kit models are not built from Modelfiles.

Request body

application/json ·

PropertyTypeDescription
modelstring

The model identifier to describe.

namestring

Legacy alias of model; used when model is absent.

verboseboolean

Request full metadata dumps. Accepted for wire compatibility.

Responses

StatusTypeDescription
200

OK

404

Not Found

curl -X POST "$LMKIT_ONE_URL/api/show" \
  -H "Authorization: Bearer $LMKIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "string",
  "name": "string",
  "verbose": false
}'

Lists the models currently loaded in memory, in the Ollama ps shape.#

GET/api/ps

Ollama-compatible running-model listing. expires_at is omitted: residency is governed by the server's memory-pressure policy, not a keep-alive timer.

Responses

StatusTypeDescription
200

OK

curl -X GET "$LMKIT_ONE_URL/api/ps" \
  -H "Authorization: Bearer $LMKIT_API_KEY"

Returns the server version, in the Ollama version shape.#

GET/api/version

Reports the LM-Kit One version. Clients use this endpoint as a liveness probe.

Responses

StatusTypeDescription
200

OK

curl -X GET "$LMKIT_ONE_URL/api/version" \
  -H "Authorization: Bearer $LMKIT_API_KEY"

Downloads a model, in the Ollama pull shape.#

POST/api/pull

Ollama-compatible model download. Streams newline-delimited progress objects (status, digest, total, completed) and ends with {"status":"success"}; with stream: false, blocks and returns the terminal object. Pullable names are LM-Kit catalog models and Hugging Face references (hf.co/owner/repo[:quant]), which import as custom models through the server's egress policy with hub-declared digests verified while downloading. The download joins any in-flight download of the same model and continues server-side if the client disconnects.

Request body

application/json ·

PropertyTypeDescription
modelstring

The model identifier to download.

namestring

Legacy alias of model; used when model is absent.

insecureboolean

Allow insecure registry connections. Accepted for wire compatibility; LM-Kit models are always fetched from their catalog source over HTTPS.

streamboolean

Whether to stream progress as newline-delimited JSON. Defaults to true.

Responses

StatusTypeDescription
200

OK

404

Not Found

500application/json

Internal Server Error

curl -X POST "$LMKIT_ONE_URL/api/pull" \
  -H "Authorization: Bearer $LMKIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "string",
  "name": "string",
  "insecure": false,
  "stream": false
}'

Deletes a model's local files, in the Ollama delete shape.#

DELETE/api/delete

Removes the model's downloaded files from local storage. The catalog entry remains, so the model can be pulled again. A model that is loaded is unloaded first; a model actively serving requests is refused.

Request body

application/json ·

PropertyTypeDescription
modelstring

The model whose local files should be removed.

namestring

Legacy alias of model; used when model is absent.

Responses

StatusTypeDescription
200

OK

404

Not Found

500

Internal Server Error

curl -X DELETE "$LMKIT_ONE_URL/api/delete" \
  -H "Authorization: Bearer $LMKIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "string",
  "name": "string"
}'

Creates a model, in the Ollama create shape.#

POST/api/create

Ollama-compatible model creation. 'from' derives from a catalog model or an existing custom model (already downloaded); 'files' builds from pushed blobs (a main GGUF plus an optional mmproj entry); 'adapters' attaches LoRA adapter blobs to either form; 'quantize' requantizes the source GGUF into the requested precision, streaming progress while the conversion runs. System/template/parameters/license become the new model's recorded profile, and the created model serves beside the catalog on every listing, marked Unverified.

Request body

application/json ·

PropertyTypeDescription
modelstring

Name of the model to create (name[:tag]).

fromstring

Existing model to base the new one on: a catalog model ID or a previously created model.

systemstring

System prompt baked into the created model.

templatestring

Prompt template text. Stored verbatim and reported by /api/show; rendering follows the base model's own template.

licenseone of object ·
parametersobject

Modelfile parameters for the created model.

filesobject

File-name to blob-digest map for file-based creation. Requires the blob store, which this server does not serve yet.

adaptersobject

Adapter-name to blob-digest map. Requires the blob store, which this server does not serve yet.

quantizestring

Quantization to apply while creating. Not served yet.

streamboolean

When false, a single terminal object is returned instead of NDJSON progress lines.

Responses

StatusTypeDescription
200application/json

OK

400

Bad Request

404

Not Found

curl -X POST "$LMKIT_ONE_URL/api/create" \
  -H "Authorization: Bearer $LMKIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "string",
  "from": "string",
  "system": "string",
  "template": "string"
}'

Copies a model under a new name.#

POST/api/copy

Ollama-compatible model copy: the destination is a new custom model sharing the source's files and profile. Copying never duplicates artifacts on disk.

Request body

application/json ·

PropertyTypeDescription
sourcestring

The model to copy.

destinationstring

The new model name.

Responses

StatusTypeDescription
200

OK

400

Bad Request

404

Not Found

curl -X POST "$LMKIT_ONE_URL/api/copy" \
  -H "Authorization: Bearer $LMKIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "source": "string",
  "destination": "string"
}'

Not supported: models cannot be pushed to a registry.#

POST/api/push

Exists so Ollama clients get a clear error instead of an opaque 404. Publishing runs the other way on this server: models are pulled FROM the hub (hf.co/owner/repo), imported from disk, or built with create; a custom model's artifact path is listed by the admin API for publishing with the hub's own tools.

Responses

StatusTypeDescription
501

Not Implemented

curl -X POST "$LMKIT_ONE_URL/api/push" \
  -H "Authorization: Bearer $LMKIT_API_KEY"