Create a run
Rent one GPU node from one provider, start one container from a public image, and run the supplied bash script in it. Exactly one of the two budget forms is required: hours bounds time exactly and cost approximately, max_usd the reverse.
Authorizations
Gateway auth: send Authorization: Bearer <mka1-api-key>. For multi-user server-side integrations, you can also send X-On-Behalf-Of: <external-user-id>.
Headers
Optional external end-user identifier forwarded by the API gateway.
Body
Curated accelerator name. GET /accelerators lists what is available.
Exactly one of hours or max_usd. Cost is rate x time and the rate is fixed at acquisition, so they are interchangeable — but they are not the same number. A max_usd deadline resolves only once acquisition fixes the rate.
Required, no default. Must fit the image plus whatever the script downloads; too small and the pod dies mid-download.
x >= 1Accelerators on one node. V1 is single-node: multi-node clusters are not offered by the providers we support.
1 <= x <= 8Any public image. It must contain bash, and on providers where we install sshd it must be Debian-family with apt.
What the run is for. A fine-tune ends on its own and its exit code is the outcome; a deployment serves traffic and runs until it is deleted. They are one resource because they are one pod, one provider and one script — the kind selects terminal semantics, not a different machine.
finetune, deployment Base64 bash. Run as a child process of our run script; its exit code is the run's outcome. Never interpreted.
Environment for the workload. Keys in the MKA1_ namespace are reserved.
Optional filter on intra-node topology, e.g. nvlink. Tensor-parallel work is materially slower over PCIe.
Container ports to expose, e.g. "8000/http". Meaningful for a deployment, which serves traffic; a fine-tune has nothing to expose.
Ordered preference, tried in turn. Rejected while provider anonymity is enabled, because the list is itself a provider-identity leak.
Stored secret ids resolved into the environment immediately before hand-off.
Your own public key. We never generate or hold private key material. Omit and the run has no SSH.
Response
The run, accepted and submitted for acquisition.
What the run is for. A fine-tune ends on its own and its exit code is the outcome; a deployment serves traffic and runs until it is deleted. They are one resource because they are one pod, one provider and one script — the kind selects terminal semantics, not a different machine.
finetune, deployment requested, provisioning, running, succeeded, failed, terminated Where the workload serves, once it is running. Only a deployment declares ports, so only a deployment reports an endpoint.
The workload's exit status. Provider status is not trusted for this: one provider reports the VM rather than the container.
Why the run is in this state, e.g. ssh_setup_failed or budget_exhausted.
Connection details. The login user is provider dependent and is read from the provider, never assumed.