Matching

Match a workload to the cheapest GPU

Ranks up to eight GPU configurations that can run a job at the lowest live price. Describe the job in query (an open-weight model to serve or fine-tune, a model size, or a GPU need) or with the structured fields. Each match gives the GPU count, the USD per hour for the whole configuration and a one-line reason; the answer also states the VRAM the job needs and how much cheaper the top match is than a hyperscaler running the same job. Use it to decide where to run a workload; use list_gpu_prices for the price of a named GPU. Open-weight models only: an API-only model such as GPT-4 returns no matches and a note. Between otherwise equal offers, a small disclosed tie-break favors providers that pay FastGPU a referral (each match reports partner). Hard limits (budget_usd_hr, max_total_usd with duration_hours, max_quote_age_minutes) drop every configuration that breaks them; limits reports what was dropped. Read-only: it does not rent or launch GPUs. No key required.

get/api/v1/match

Request

  • Base URL: https://fastgpu.co
  • URL: https://fastgpu.co/api/v1/match
  • Auth: none declared

Query parameters

querystring

Plain-language job, e.g. "cheapest to serve Llama 3 70B", "2x H100 for fine-tuning" or "a GPU with 80GB of memory". Provide this OR a structured spec below.

modelstring

Open model name to size against, e.g. "Llama 3 70B", "Qwen 72B", "Mixtral".

params_bnumber

Model size in billions of parameters when no exact model is named.

weights_gbnumber

Measured size of the weights as stored, in GB: the file you will load (for example a GGUF Q4_K_M build, which holds more bits per parameter than its nominal 4). Replaces parameters times bytes per parameter in the memory estimate. Used for a model sized by its parameter count; the answer's workload.weights_gb is null when it was not (an image or speech model sized as a whole pipeline).

vram_gbinteger

Rough VRAM the job needs, in GB, if you already know it.

task'inference' | 'finetune-lora' | 'finetune-full' | 'generate' | 'transcribe' | 'embed'

What the job does.

precision'fp16' | 'int8' | 'int4'

Numeric precision to size the model at.

gpu_countinteger

Exact positive GPU count. Overrides a count in query text. Returns no matches if no supported configuration fits; omit for automatic sizing.

min_gpu_memory_gbinteger

Memory each GPU card must have, in GB (e.g. 80 for 80GB-class cards such as the H100 or A100 80GB). Smaller cards are never returned. On its own it lists every card that size, cheapest first.

budget_usd_hrnumber

Hard limit on the hourly price of the whole configuration, in USD. Configurations above it are not returned.

duration_hoursnumber

How long the job will run, in hours (fractions are fine). When sent, each match carries billed_hours and estimated_total_usd.

max_total_usdnumber

Hard limit on estimated_total_usd, the GPU rental cost of the whole job, in USD. Needs duration_hours. Configurations above it are not returned.

max_quote_age_minutesnumber

Hard limit on how old a price quote may be, in minutes. Configurations whose price was fetched from the provider longer ago are not returned.

region'US' | 'EU' | 'ASIA'

Restrict to a data-residency region.

spot'true' | 'false'

Set true to include interruptible spot capacity for a cheaper rate.

reserved'true' | 'false'

Set true to include reserved / committed-term capacity for a lower rate.

Response

Success

updated_atstring nullable
staleboolean
countinteger required
as_ofstring

When this answer was computed (ISO 8601). Quote ages are measured against it.

notestring

Why there are no matches, when there are none.

errorstring

Present when the request was not valid; says what to send instead.

Changes

No recorded changes to this operation across all 1 revision of this API.