Skip to main content
mka1-repos is the platform’s repository service for model weights and datasets. Every repository is an ordinary git repository with Git LFS, owned by exactly one organization and identified by the pair <org>/<name> — for example meetkai/functionary. That identifier is the whole point. You push artifacts to the repository from your machine over git, and Compute workloads resolve the same <org>/<name> through the platform’s Hugging Face-compatible artifact endpoint to train on or serve them. This guide covers both halves: the management API for creating, listing, renaming and deleting repositories, and the two client tools — git and the Hugging Face CLI — that move bytes in and out.

Before you start

You need: Repositories always belong to the caller’s organization. You never choose the org at create time — it is derived from your API key — and you cannot reach another organization’s repositories at all.

Create a repository

Pick a name and optionally a description. The name must start with a letter or digit and be at most 100 characters of letters, digits, dots, underscores, and dashes (^[A-Za-z0-9][A-Za-z0-9._-]{0,99}$).
The response is 201 with the repository:
id is an opaque, stable identifier — the canonical key that survives renames. org and name are the user-facing labels that form the repository reference and its URLs. Creation provisions the backing git repository as part of the request. If that provisioning fails, the create returns 502 provision_failed and nothing is kept, so it is safe to retry. The request body rejects unknown fields, and a name that is already taken in your org returns 409.

The repository reference and git URL

Two values identify a repository everywhere else on the platform: The git host authenticates with HTTP basic auth: the username must be your org slug and the password is an MKA1 API key. org:apikey is enforced — a username that does not match the organization is rejected. Both values are what you hand to a Compute workload as environment variables — see Run a fine-tune job and Deploy a model server.

List repositories

Returns every repository in your organization.

Get a repository

Read a single repository by its reference.
A repository that does not exist in your org returns 404 — including any repository that belongs to a different org.

Rename or update a repository

Updates are label-only: you can change name and description, and an omitted field is left unchanged.
The repository id is stable, so a rename is a metadata update — the git history and stored artifacts are untouched. Renaming to a name that already exists in your org returns 409.
A rename changes the repository reference and the git URL.The old <org>/<name> stops resolving immediately. Update every git remote, every REPO/REPO_URL environment value in Compute create bodies, and every training or serving script that referenced the old name.

Delete a repository

The response is 204 with no body. The repository record is removed immediately — that delete is authoritative — while teardown of the backing git storage is best-effort cleanup. A repeated delete of the same reference returns 404.
Deleting a repository removes the repository, its git history, and every stored artifact. This cannot be undone — there is no soft delete and no recovery window.

Push and pull with git

Clone the repository, or add it as a remote of an existing local repository:
Track large binaries with Git LFS before committing them. Weight files must go through LFS; small text files such as configs, tokenizer definitions, and JSONL datasets can stay in plain git.
Then commit and push as usual:
Git authenticates the push with HTTP basic auth. The username must be your org slug and the password is an MKA1 API key — org:apikey is enforced, so a username that does not match the organization is rejected:
For non-interactive pushes (CI, a training box), export the API key as MK_API_KEY in the environment (for example from a CI secret) and supply it through a git credential helper, instead of embedding the key in the remote URL, where it would be written to .git/config:
Lay out the repository however your training or serving stack expects. The examples in this guide use two repositories: meetkai/functionary-train-data, a dataset repository holding JSONL transcripts, and meetkai/functionary, a weights repository in the usual Hugging Face layout (config.json, tokenizer files, *.safetensors).

Push and pull with the Hugging Face CLI

The same repository is reachable over the Hugging Face Hub API. Two environment variables are all the configuration there is — HF_ENDPOINT for where, HF_TOKEN for who:
With those set, the ordinary Hugging Face commands operate on your repositories instead of the public hub:
The same two variables work from Python, because huggingface_hub reads them by name:
hf is the current CLI; older environments ship the same commands as huggingface-cli. Unlike git, this path does not need your org slug as a username — the token carries the identity.
This is the part that carries over to Compute. A training or serving container sets the same two variables, and ms-swift or vLLM resolves <org>/<name> with no code changes — see Run a fine-tune job and Deploy a model server.

Errors

Repository endpoints return a uniform envelope with a stable machine-readable code and the request’s correlation id:

API reference

For the full request and response schemas, open the Repositories groups in the API Reference.

See also