text/embeddings@1
Available
- Unit
- one batch of up to 1,000 texts of up to 512 tokens each (512k tokens), bge-base vectors
- Needs
- CPU
$0.001per unit
Upload a manifest of units, get one result per unit, pay a fixed price for each unit that completes.
$ unitfabric submit job.yamluploaded clips.jsonl as r2://grid/uploads/org_ists4trnmppr/up_25iq9pbxjfki/clips.jsonljob_9nww8dhegrj5 queued units=2 price/unit=0.004000 $ unitfabric job job_9nww8dhegrj5job_9nww8dhegrj5 queued pending=2 leased=0 done=0 failed=0 cost=$0.000000 price/unit=0.004000 $ unitfabric units job_9nww8dhegrj5unit_id status attempts seconds price_usd failure_reasontake-01 pending 0take-02 pending 0 $ unitfabric results job_9nww8dhegrj5 --out ./resultsTemplates define a unit of work and its price. A container that follows the unit contract gets a quote from a calibration run.
One JSON object per line, one unit per line. A job holds up to a million units.
Each finished unit is stored under its id. Download one, or the manifest of all of them. A unit is billed only when its result is stored.
Available
$0.001per unit
Available
$0.004per unit
Launching
$0.004per unit
Launching
$0.004per unit
Launching
$0.0015per unit
Launching
$0.02per unit
These are launch estimates: the fleet has not been measured yet. Once it is, prices come from measured cost per unit and are republished weekly. See pricing

A unit that fails all its attempts (three by default) is reported with its reason, not billed. Node failures, retries and scheduling are ours to handle, not yours.
We tested the guarantee on a video transcode job:
A job's traffic never leaves from a host's address: all job egress goes through our gateway. Your manifests and results are kept in your organization's own space in our storage, and every download link is signed and expires within the hour. Read the guarantees
Any OCI image that follows the unit contract can run as a job.
/in/units.jsonl.done.json that names them.none, or egress only through our gateway.name: checksumsimage: ghcr.io/acme/checksum@sha256:<64 hex digits>command: ["python", "/app/worker.py"]input: files.jsonl # or `units: 5000` when the units need no inputresources: gpu: { min_vram_gb: 16 } # or `class: rtx4090`; leave it out for any GPU cpu: 4 memory_gb: 16 scratch_gb: 50unit: max_seconds: 120 # a unit still running then is stopped and tried again max_attempts: 3price: max_per_unit: 0.002 # optional: a calibration quote above this rejects the job; a later requote above it pauses the job until you accept or cancelnetwork: egress-only # or nonecheckpoint: auto # or offpool: public # or verified, platform, ownNot a GPU rental: you do not pick a machine, and you cannot ssh into one. Not for sub-second APIs, databases or multi-GPU training. It is for work that comes in units.
Not a marketplace: we set each price from our own benchmarks, and nobody bids. Not confidential computing: jobs run in locked-down containers, not in hardware enclaves, on Linux machines we rent or own and, unless a job asks for ours alone, on machines other organizations supply.
One line puts a Linux or Windows machine, with an NVIDIA GPU or without, to work on other organizations' jobs at the hourly rate you set.
$ curl -fsSL https://unitfabric-site.vercel.app/install.sh | UNITFABRIC_SUPPLY_TOKEN=uf_supply_... sudo -E bash -s -- --control-url <url>PS> $env:UNITFABRIC_SUPPLY_TOKEN = 'uf_supply_...'; & ([scriptblock]::Create((irm https://unitfabric-site.vercel.app/install.ps1))) -ControlUrl <url>