<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.
The CLI examples assume an authenticated MKA1 CLI.
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}$).
Optionally, set kind to declare what the repository will hold. If omitted, it defaults to repo.
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. The rollback is best-effort, so retrying the same name may return 409 name_taken; if it does, delete the repository and try again.
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. You can optionally filter bykind. Note that legacy untyped repositories (kind: null) only appear when you omit the filter.
Get a repository
Read a single repository by its reference.404 — including any repository that belongs to a different org.
Rename or update a repository
Updates are label-only: you can changename, description, and kind, and an omitted field is left unchanged.
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.
Changing kind may be refused with 409 kind_has_content if the repository still has container images reachable by tags (for example, switching away from image, or typing a legacy kind: null repository as a non-image kind). If you hit this, list the tags and delete them first.
List and delete image tags
If a repository holds container images, you can list and delete its tags through the management API. The listing is a fact about what the repository currently holds (it is not derived fromkind): a repository of any kind may list [], and a legacy kind: null repository that still holds images lists the tags it has.
List tags:
truncated flag:
404 not_found. If the repository exists but the tag does not, deletion returns 404 tag_not_found.
Delete a repository
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.
Push and pull with git
Clone the repository, or add it as a remote of an existing local repository: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: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
Install the CLI withuv tool install huggingface-hub==0.34.4 if hf is not already available.
The same repository is reachable over the Hugging Face Hub API. Set the endpoint and token, and disable Xet so uploads use the standard Hub/LFS path supported by mka1-repos:
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.<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
- Run a fine-tune job - publish merged weights to a repository from a training job.
- Deploy a model server - serve weights straight from a repository with vLLM.