{"openapi":"3.1.0","info":{"title":"GridPup API","description":"Live GPU rental prices across clouds, collected every 15 minutes from each cloud's own API, and\n(for accounts that can rent on GridPup) launching and managing machines paid from your prepaid balance.\n\n**Authentication.** Create a free key at [gridpup.com/dashboard/api-keys](https://gridpup.com/dashboard/api-keys) and\nsend it on every request: `Authorization: Bearer gp_live_…`.\n\n**Access.** Each key has scopes: `prices:read`; `machines:read`, `machines:write` (with the key's own limits on\n$/hour and machines at once) and `billing:read`. `POST /v1/machines` requires an `Idempotency-Key` header.\n\n**Limits.** 60 requests a minute per key; launches, reboots and terminations 10 a minute. Responses carry `X-RateLimit-Limit`, `X-RateLimit-Remaining` and\n`X-RateLimit-Reset`; over the limit you get `429` with `Retry-After`.\n\n**Prices** are in US dollars per GPU-hour unless a field says otherwise (`usd_total_hour` is the whole offer).\nGridPup-launchable offers carry `launchable: true`.\n\nFree to use. Please credit \"Prices from GridPup\" with a link to gridpup.com when you publish them, and don't\nresell the data in bulk. See [gridpup.com/docs/api](https://gridpup.com/docs/api).","version":"1.0.0"},"paths":{"/v1/health":{"get":{"tags":["status"],"summary":"Health","description":"No key needed.","operationId":"health_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}},"/v1/clouds":{"get":{"tags":["prices"],"summary":"Clouds","description":"The clouds GridPup compares, when each was last checked, and which can be rented through GridPup\n(rentable, how many offers can be launched now, and the lowest GridPup price per GPU-hour).","operationId":"clouds_v1_clouds_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer gp_live_…","title":"Authorization"},"description":"Bearer gp_live_…"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Meta"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/gpus":{"get":{"tags":["prices"],"summary":"Gpus","description":"Every GPU model with its lowest and typical price across clouds.","operationId":"gpus_v1_gpus_get","parameters":[{"name":"sort","in":"query","required":false,"schema":{"type":"string","pattern":"^(popular|cheapest|median|providers|memory|name)$","default":"popular","title":"Sort"}},{"name":"rentable","in":"query","required":false,"schema":{"type":"boolean","description":"only GPUs you can launch through GridPup","default":false,"title":"Rentable"},"description":"only GPUs you can launch through GridPup"},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"cloud ids, comma-separated, e.g. vast,runpod","title":"Provider"},"description":"cloud ids, comma-separated, e.g. vast,runpod"},{"name":"class","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"datacenter,workstation,consumer","title":"Class"},"description":"datacenter,workstation,consumer"},{"name":"billing","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"on_demand,spot,reserved","title":"Billing"},"description":"on_demand,spot,reserved"},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"two-letter codes, comma-separated","title":"Country"},"description":"two-letter codes, comma-separated"},{"name":"gpus","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":64,"minimum":1},{"type":"null"}],"description":"GPUs wanted in one machine","title":"Gpus"},"description":"GPUs wanted in one machine"},{"name":"vram","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"minimum GB per GPU","title":"Vram"},"description":"minimum GB per GPU"},{"name":"max_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"maximum $/GPU-hour","title":"Max Price"},"description":"maximum $/GPU-hour"},{"name":"in_stock","in":"query","required":false,"schema":{"type":"boolean","description":"only offers with stock","default":false,"title":"In Stock"},"description":"only offers with stock"},{"name":"verified","in":"query","required":false,"schema":{"type":"boolean","description":"only verified / datacenter hosts","default":false,"title":"Verified"},"description":"only verified / datacenter hosts"},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer gp_live_…","title":"Authorization"},"description":"Bearer gp_live_…"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Board"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/gpus/{gpu_id}":{"get":{"tags":["prices"],"summary":"Gpu","description":"One GPU: specs and price summary per cloud.","operationId":"gpu_v1_gpus__gpu_id__get","parameters":[{"name":"gpu_id","in":"path","required":true,"schema":{"type":"string","title":"Gpu Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer gp_live_…","title":"Authorization"},"description":"Bearer gp_live_…"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/gpus/{gpu_id}/offers":{"get":{"tags":["prices"],"summary":"Gpu Offers","description":"Every offer for one GPU, across clouds.","operationId":"gpu_offers_v1_gpus__gpu_id__offers_get","parameters":[{"name":"gpu_id","in":"path","required":true,"schema":{"type":"string","title":"Gpu Id"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","pattern":"^(price|-price|provider|stock|memory)$","default":"price","title":"Sort"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"cloud ids, comma-separated, e.g. vast,runpod","title":"Provider"},"description":"cloud ids, comma-separated, e.g. vast,runpod"},{"name":"class","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"datacenter,workstation,consumer","title":"Class"},"description":"datacenter,workstation,consumer"},{"name":"billing","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"on_demand,spot,reserved","title":"Billing"},"description":"on_demand,spot,reserved"},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"two-letter codes, comma-separated","title":"Country"},"description":"two-letter codes, comma-separated"},{"name":"gpus","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":64,"minimum":1},{"type":"null"}],"description":"GPUs wanted in one machine","title":"Gpus"},"description":"GPUs wanted in one machine"},{"name":"vram","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"minimum GB per GPU","title":"Vram"},"description":"minimum GB per GPU"},{"name":"max_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"maximum $/GPU-hour","title":"Max Price"},"description":"maximum $/GPU-hour"},{"name":"in_stock","in":"query","required":false,"schema":{"type":"boolean","description":"only offers with stock","default":false,"title":"In Stock"},"description":"only offers with stock"},{"name":"verified","in":"query","required":false,"schema":{"type":"boolean","description":"only verified / datacenter hosts","default":false,"title":"Verified"},"description":"only verified / datacenter hosts"},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer gp_live_…","title":"Authorization"},"description":"Bearer gp_live_…"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Offers"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/gpus/{gpu_id}/history":{"get":{"tags":["prices"],"summary":"Gpu History","description":"Price history: typical price across clouds, the cheapest-to-90th-percentile band, and each cloud.","operationId":"gpu_history_v1_gpus__gpu_id__history_get","parameters":[{"name":"gpu_id","in":"path","required":true,"schema":{"type":"string","title":"Gpu Id"}},{"name":"range","in":"query","required":false,"schema":{"type":"string","pattern":"^(24h|7d|30d|90d|1y)$","default":"7d","title":"Range"}},{"name":"billing","in":"query","required":false,"schema":{"type":"string","pattern":"^(on_demand|spot|reserved)$","default":"on_demand","title":"Billing"}},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"one cloud id","title":"Provider"},"description":"one cloud id"},{"name":"verified","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Verified"}},{"name":"gpus","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"1, 2, 4 or 8","title":"Gpus"},"description":"1, 2, 4 or 8"},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer gp_live_…","title":"Authorization"},"description":"Bearer gp_live_…"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Trend"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/offers":{"get":{"tags":["prices"],"summary":"Offers","description":"Search offers across every GPU and cloud.","operationId":"offers_v1_offers_get","parameters":[{"name":"gpu","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"a GPU id from /v1/gpus","title":"Gpu"},"description":"a GPU id from /v1/gpus"},{"name":"sort","in":"query","required":false,"schema":{"type":"string","pattern":"^(price|-price|provider|stock|memory)$","default":"price","title":"Sort"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"cloud ids, comma-separated, e.g. vast,runpod","title":"Provider"},"description":"cloud ids, comma-separated, e.g. vast,runpod"},{"name":"class","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"datacenter,workstation,consumer","title":"Class"},"description":"datacenter,workstation,consumer"},{"name":"billing","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"on_demand,spot,reserved","title":"Billing"},"description":"on_demand,spot,reserved"},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"two-letter codes, comma-separated","title":"Country"},"description":"two-letter codes, comma-separated"},{"name":"gpus","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":64,"minimum":1},{"type":"null"}],"description":"GPUs wanted in one machine","title":"Gpus"},"description":"GPUs wanted in one machine"},{"name":"vram","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"minimum GB per GPU","title":"Vram"},"description":"minimum GB per GPU"},{"name":"max_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"maximum $/GPU-hour","title":"Max Price"},"description":"maximum $/GPU-hour"},{"name":"in_stock","in":"query","required":false,"schema":{"type":"boolean","description":"only offers with stock","default":false,"title":"In Stock"},"description":"only offers with stock"},{"name":"verified","in":"query","required":false,"schema":{"type":"boolean","description":"only verified / datacenter hosts","default":false,"title":"Verified"},"description":"only verified / datacenter hosts"},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer gp_live_…","title":"Authorization"},"description":"Bearer gp_live_…"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Offers"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/templates":{"get":{"tags":["machines"],"summary":"List Templates","description":"What a machine can start with (Ubuntu, PyTorch, ...) and on which clouds.","operationId":"list_templates_v1_templates_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer gp_live_…","title":"Authorization"},"description":"Bearer gp_live_…"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/offers/{offer_id}/quote":{"get":{"tags":["machines"],"summary":"Offer Quote","description":"A live check of one offer: is it free right now, its exact prices, disk sizes, and which templates fit.\nUse the offer `id` from /v1/offers (e.g. `vast:12345|on_demand`).","operationId":"offer_quote_v1_offers__offer_id__quote_get","parameters":[{"name":"offer_id","in":"path","required":true,"schema":{"type":"string","title":"Offer Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer gp_live_…","title":"Authorization"},"description":"Bearer gp_live_…"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/machines":{"post":{"tags":["machines"],"summary":"Create Machine","description":"Launch a machine, paid from your GridPup balance. Requires an `Idempotency-Key` header: retrying with the\nsame key returns the same machine instead of starting another.","operationId":"create_machine_v1_machines_post","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer gp_live_…","title":"Authorization"},"description":"Bearer gp_live_…"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LaunchIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["machines"],"summary":"List Machines","description":"Your machines, newest first (launched on the website or through the API). Filter by status and label.","operationId":"list_machines_v1_machines_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(active|ended)$"},{"type":"null"}],"title":"Status"}},{"name":"label","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"description":"only machines with this exact label","title":"Label"},"description":"only machines with this exact label"},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer gp_live_…","title":"Authorization"},"description":"Bearer gp_live_…"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/machines/{machine_id}":{"get":{"tags":["machines"],"summary":"Get Machine","description":"One machine, checked with the cloud now, with how to connect while it runs.","operationId":"get_machine_v1_machines__machine_id__get","parameters":[{"name":"machine_id","in":"path","required":true,"schema":{"type":"string","title":"Machine Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer gp_live_…","title":"Authorization"},"description":"Bearer gp_live_…"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["machines"],"summary":"Label Machine","description":"Set or clear a machine's label.","operationId":"label_machine_v1_machines__machine_id__patch","parameters":[{"name":"machine_id","in":"path","required":true,"schema":{"type":"string","title":"Machine Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer gp_live_…","title":"Authorization"},"description":"Bearer gp_live_…"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LabelIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["machines"],"summary":"Terminate Machine","description":"Terminate: the machine and its disks are deleted. Billing stops when the cloud confirms.","operationId":"terminate_machine_v1_machines__machine_id__delete","parameters":[{"name":"machine_id","in":"path","required":true,"schema":{"type":"string","title":"Machine Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer gp_live_…","title":"Authorization"},"description":"Bearer gp_live_…"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/machines/{machine_id}/reboot":{"post":{"tags":["machines"],"summary":"Reboot Machine","operationId":"reboot_machine_v1_machines__machine_id__reboot_post","parameters":[{"name":"machine_id","in":"path","required":true,"schema":{"type":"string","title":"Machine Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer gp_live_…","title":"Authorization"},"description":"Bearer gp_live_…"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/ssh-keys":{"get":{"tags":["machines"],"summary":"List Ssh Keys","operationId":"list_ssh_keys_v1_ssh_keys_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer gp_live_…","title":"Authorization"},"description":"Bearer gp_live_…"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["machines"],"summary":"Add Ssh Key","operationId":"add_ssh_key_v1_ssh_keys_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer gp_live_…","title":"Authorization"},"description":"Bearer gp_live_…"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SshKeyIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/balance":{"get":{"tags":["billing"],"summary":"Get Balance","description":"Your prepaid credit: available = added - billed - running estimate.","operationId":"get_balance_v1_balance_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Bearer gp_live_…","title":"Authorization"},"description":"Bearer gp_live_…"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"BillingRow":{"properties":{"from_usd_per_gpu_hour":{"type":"number","title":"From Usd Per Gpu Hour"},"median_usd_per_gpu_hour":{"type":"number","title":"Median Usd Per Gpu Hour"},"offers":{"type":"integer","title":"Offers"}},"type":"object","required":["from_usd_per_gpu_hour","median_usd_per_gpu_hour","offers"],"title":"BillingRow"},"Board":{"properties":{"generated_at":{"type":"string","title":"Generated At"},"last_collected_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Collected At"},"preset":{"type":"string","title":"Preset"},"sort":{"type":"string","title":"Sort"},"count":{"type":"integer","title":"Count"},"items":{"items":{"$ref":"#/components/schemas/BoardRowRent"},"type":"array","title":"Items"}},"type":"object","required":["generated_at","last_collected_at","preset","sort","count","items"],"title":"Board"},"BoardRowRent":{"properties":{"cheapest_usd_per_gpu_hour":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cheapest Usd Per Gpu Hour","description":"Lowest on-demand sell price, per GPU-hour"},"cheapest_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cheapest Provider"},"cheapest_in_stock":{"type":"boolean","title":"Cheapest In Stock"},"median_usd_per_gpu_hour":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Median Usd Per Gpu Hour","description":"On-demand: median of each vendor's median"},"spot_from_usd_per_gpu_hour":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Spot From Usd Per Gpu Hour","description":"Lowest spot price; for Vast this is a bid floor"},"priced_providers":{"items":{"type":"string"},"type":"array","title":"Priced Providers"},"stock_only_providers":{"items":{"type":"string"},"type":"array","title":"Stock Only Providers","description":"Vendors that report stock but no price by API"},"in_stock_offers":{"type":"integer","title":"In Stock Offers"},"offers":{"type":"integer","title":"Offers"},"provisionable_offers":{"type":"integer","title":"Provisionable Offers"},"by_provider":{"items":{"$ref":"#/components/schemas/ProviderPrice"},"type":"array","title":"By Provider","description":"On-demand price per vendor, cheapest median first"},"model_id":{"type":"string","title":"Model Id"},"display_name":{"type":"string","title":"Display Name"},"vendor":{"type":"string","title":"Vendor"},"gpu_class":{"type":"string","enum":["datacenter","workstation","consumer"],"title":"Gpu Class"},"architecture":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Architecture"},"memory_gb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Memory Gb","description":"Largest variant"},"memory_min_gb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Memory Min Gb","description":"Smallest variant"},"skus":{"items":{"type":"string"},"type":"array","title":"Skus"},"move_24h_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Move 24H Pct"},"rent_from_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rent From Usd","description":"Cheapest launch through GridPup, customer price per GPU-hour (disk extra)"},"rentable_offers":{"type":"integer","title":"Rentable Offers","description":"Offers that can be launched through GridPup","default":0}},"type":"object","required":["cheapest_usd_per_gpu_hour","cheapest_provider","cheapest_in_stock","median_usd_per_gpu_hour","spot_from_usd_per_gpu_hour","priced_providers","stock_only_providers","in_stock_offers","offers","provisionable_offers","by_provider","model_id","display_name","vendor","gpu_class","architecture","memory_gb","memory_min_gb","skus","move_24h_pct"],"title":"BoardRowRent"},"Charges":{"properties":{"gpu_usd_per_hour":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Gpu Usd Per Hour","description":"GPUs alone, for min_gpus"},"gpus":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Gpus"},"disk":{"anyOf":[{"$ref":"#/components/schemas/DiskCharge"},{"type":"null"}]},"network":{"anyOf":[{"$ref":"#/components/schemas/NetworkCharge"},{"type":"null"}]},"volume":{"anyOf":[{"$ref":"#/components/schemas/VolumeCharge"},{"type":"null"}]},"estimate":{"anyOf":[{"$ref":"#/components/schemas/Estimate"},{"type":"null"}]},"not_listed":{"items":{"type":"string"},"type":"array","title":"Not Listed","description":"Charges this cloud's API does not publish: check before buying"}},"type":"object","required":["gpu_usd_per_hour","gpus","disk","network","volume","estimate","not_listed"],"title":"Charges"},"DetailSummary":{"properties":{"cheapest_usd_per_gpu_hour":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cheapest Usd Per Gpu Hour","description":"Lowest on-demand sell price, per GPU-hour"},"cheapest_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cheapest Provider"},"cheapest_in_stock":{"type":"boolean","title":"Cheapest In Stock"},"median_usd_per_gpu_hour":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Median Usd Per Gpu Hour","description":"On-demand: median of each vendor's median"},"spot_from_usd_per_gpu_hour":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Spot From Usd Per Gpu Hour","description":"Lowest spot price; for Vast this is a bid floor"},"priced_providers":{"items":{"type":"string"},"type":"array","title":"Priced Providers"},"stock_only_providers":{"items":{"type":"string"},"type":"array","title":"Stock Only Providers","description":"Vendors that report stock but no price by API"},"in_stock_offers":{"type":"integer","title":"In Stock Offers"},"offers":{"type":"integer","title":"Offers"},"provisionable_offers":{"type":"integer","title":"Provisionable Offers"},"by_provider":{"items":{"$ref":"#/components/schemas/ProviderPrice"},"type":"array","title":"By Provider","description":"On-demand price per vendor, cheapest median first"},"move_24h_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Move 24H Pct"},"move_7d_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Move 7D Pct"},"move_90d_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Move 90D Pct"}},"type":"object","required":["cheapest_usd_per_gpu_hour","cheapest_provider","cheapest_in_stock","median_usd_per_gpu_hour","spot_from_usd_per_gpu_hour","priced_providers","stock_only_providers","in_stock_offers","offers","provisionable_offers","by_provider","move_24h_pct","move_7d_pct","move_90d_pct"],"title":"DetailSummary"},"DiskCharge":{"properties":{"usd_per_hour":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Usd Per Hour","description":"Flat disk charge per hour when no per-GB rate is given"},"charged_when_stopped":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Charged When Stopped","description":"Disk keeps billing while the machine is stopped"},"usd_per_gb_month":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Usd Per Gb Month","description":"Vendor rate; null = not published"},"default_gb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Default Gb","description":"Disk the cloud attaches by default (and charges for)"},"max_gb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Gb","description":"Most disk you can choose on this host"},"machine_gb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Machine Gb","description":"Total disk on the machine (shared when renting part of it)"}},"type":"object","required":["usd_per_gb_month","default_gb","max_gb","machine_gb"],"title":"DiskCharge"},"Estimate":{"properties":{"disk_gb":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Disk Gb","description":"Disk size priced in; null = the cloud's included disk, size not stated"},"usd_per_hour":{"type":"number","title":"Usd Per Hour","description":"GPUs for the smallest rental plus this much disk"}},"type":"object","required":["disk_gb","usd_per_hour"],"title":"Estimate"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Health":{"properties":{"ok":{"type":"boolean","title":"Ok"},"database":{"type":"boolean","title":"Database"},"last_collected_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Collected At"}},"type":"object","required":["ok","database","last_collected_at"],"title":"Health"},"Host":{"properties":{"reliability_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Reliability Pct","description":"Cloud's own reliability score, 0-100"},"uptime_days":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Uptime Days"},"hosting":{"anyOf":[{"type":"string","enum":["datacenter","individual","operator"]},{"type":"null"}],"title":"Hosting","description":"datacenter / individual host (Vast hosting_type), operator = run by the cloud itself (Lium)"},"datacenter":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Datacenter","description":"Cloud's data center id, e.g. Runpod US-GA-2"},"open_ports":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Open Ports","description":"Ports opened directly to the instance (Vast direct_port_count)"},"static_ip":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Static Ip"},"available_until":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Available Until","description":"Host's listing ends (Vast end_date)"}},"type":"object","required":["reliability_pct","uptime_days","hosting","datacenter","open_ports","static_ip","available_until"],"title":"Host"},"LabelIn":{"properties":{"label":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Label","description":"the new label; null or empty clears it"}},"type":"object","title":"LabelIn"},"LaunchIn":{"properties":{"offer":{"type":"string","maxLength":300,"title":"Offer","description":"an offer id from /v1/offers"},"template":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}],"title":"Template","description":"a template id from /v1/templates"},"image":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Image","description":"instead of a template: a public container image started with SSH (Vast, Runpod, GPU.ai), e.g. nvidia/cuda:12.1.1-cudnn8-devel-ubuntu22.04"},"disk_gb":{"type":"number","maximum":100000.0,"exclusiveMinimum":0.0,"title":"Disk Gb","description":"disk size; see the quote for the allowed range"},"ssh_key_ids":{"items":{"type":"integer"},"type":"array","maxItems":20,"title":"Ssh Key Ids","description":"ids from /v1/ssh-keys"},"ssh_public_keys":{"items":{"type":"string"},"type":"array","maxItems":5,"title":"Ssh Public Keys","description":"public keys to save to your account and put on the machine"},"max_price_usd_hour":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Max Price Usd Hour","description":"refuse to launch if the price is above this"},"volume_gb":{"type":"number","maximum":100000.0,"minimum":0.0,"title":"Volume Gb","default":0},"label":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Label","description":"your own label, to find the machine later (GET /v1/machines?label=...)"}},"type":"object","required":["offer","disk_gb"],"title":"LaunchIn"},"MarketPoint":{"properties":{"t":{"type":"string","title":"T"},"median":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Median"}},"type":"object","required":["t","median"],"title":"MarketPoint"},"Meta":{"properties":{"generated_at":{"type":"string","title":"Generated At"},"last_collected_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Collected At","description":"Most recent successful collection across shown vendors"},"providers":{"items":{"$ref":"#/components/schemas/Provider"},"type":"array","title":"Providers"}},"type":"object","required":["generated_at","last_collected_at","providers"],"title":"Meta"},"ModelDetail":{"properties":{"model":{"$ref":"#/components/schemas/ModelInfo"},"summary":{"$ref":"#/components/schemas/DetailSummary"},"by_billing":{"additionalProperties":{"$ref":"#/components/schemas/BillingRow"},"type":"object","title":"By Billing"},"skus":{"items":{"$ref":"#/components/schemas/SkuRow"},"type":"array","title":"Skus"},"unstated_form_offers":{"type":"integer","title":"Unstated Form Offers","description":"Offers whose vendor did not state SXM/PCIe/NVL"}},"type":"object","required":["model","summary","by_billing","skus","unstated_form_offers"],"title":"ModelDetail"},"ModelInfo":{"properties":{"id":{"type":"string","title":"Id"},"vendor":{"type":"string","title":"Vendor"},"display_name":{"type":"string","title":"Display Name"},"architecture":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Architecture"},"gpu_class":{"type":"string","enum":["datacenter","workstation","consumer"],"title":"Gpu Class"},"memory_gb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Memory Gb"},"memory_min_gb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Memory Min Gb"}},"type":"object","required":["id","vendor","display_name","architecture","gpu_class","memory_gb","memory_min_gb"],"title":"ModelInfo"},"NetworkCharge":{"properties":{"download_usd_per_gb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Download Usd Per Gb"},"upload_usd_per_gb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Upload Usd Per Gb"},"download_mbps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Download Mbps"},"upload_mbps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Upload Mbps"},"included_gb_month":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Included Gb Month","description":"Data transfer included per month"}},"type":"object","required":["download_usd_per_gb","upload_usd_per_gb","download_mbps","upload_mbps"],"title":"NetworkCharge"},"Offer":{"properties":{"id":{"type":"string","title":"Id","description":"provider:offer_key, stable while the offer is live"},"provider":{"type":"string","title":"Provider"},"provider_name":{"type":"string","title":"Provider Name"},"provider_icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Icon Url"},"provider_stale":{"type":"boolean","title":"Provider Stale"},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id"},"model_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Name"},"sku_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sku Id"},"sku_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sku Name"},"form":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Form"},"memory_gb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Memory Gb"},"gpu_class":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gpu Class"},"price_status":{"type":"string","enum":["priced","stock_only","detail_only","unmapped"],"title":"Price Status"},"billing_type":{"type":"string","enum":["on_demand","spot","reserved","custom"],"title":"Billing Type"},"term_months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Term Months"},"price_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Kind","description":"list | ask | floor_bid | contract"},"usd_per_gpu_hour":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Usd Per Gpu Hour","description":"Sell price per GPU-hour"},"usd_total_hour":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Usd Total Hour","description":"Sell price per hour for the GPUs of a min_gpus rental (no disk or transfer)"},"gpu_count":{"type":"integer","title":"Gpu Count","description":"GPUs rentable on this line now"},"min_gpus":{"type":"integer","title":"Min Gpus"},"node_gpu_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Node Gpu Count"},"stock_state":{"type":"string","enum":["in_stock","low","out","not_reported"],"title":"Stock State"},"stock_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stock Count"},"stock_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stock Level"},"trust_tier":{"type":"string","title":"Trust Tier"},"verified":{"type":"boolean","title":"Verified"},"reliability_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Reliability Pct"},"perf_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Perf Score","description":"Vast's deep-learning performance score (DLPerf) for the whole offer; other clouds: null"},"cuda_max":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cuda Max","description":"Highest CUDA version the host supports, where the cloud reports it"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"datacenter":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Datacenter"},"vcpu":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vcpu"},"ram_gb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Ram Gb"},"resources_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resources Scope","description":"node | rental | max_per_gpu"},"disk_gb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Disk Gb"},"disk_usd_per_gb_month":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Disk Usd Per Gb Month","description":"Vendor rate, passed through"},"disk_hourly_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Disk Hourly Usd"},"disk_priced_gb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Disk Priced Gb"},"net_down_mbps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Net Down Mbps"},"net_up_mbps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Net Up Mbps"},"net_down_usd_per_gb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Net Down Usd Per Gb"},"net_up_usd_per_gb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Net Up Usd Per Gb"},"provisionable":{"type":"boolean","title":"Provisionable"},"launchable":{"type":"boolean","title":"Launchable","description":"Can be launched through GridPup (signed-in users who may launch)","default":false},"charges":{"$ref":"#/components/schemas/Charges"},"host":{"$ref":"#/components/schemas/Host"},"price_source":{"anyOf":[{"$ref":"#/components/schemas/PriceSource"},{"type":"null"}],"description":"Present when the price was converted to USD"},"first_seen_at":{"type":"string","title":"First Seen At"},"last_seen_at":{"type":"string","title":"Last Seen At"},"last_changed_at":{"type":"string","title":"Last Changed At"}},"type":"object","required":["id","provider","provider_name","provider_icon_url","provider_stale","model_id","model_name","sku_id","sku_name","form","memory_gb","gpu_class","price_status","billing_type","term_months","price_kind","usd_per_gpu_hour","usd_total_hour","gpu_count","min_gpus","node_gpu_count","stock_state","stock_count","stock_level","trust_tier","verified","reliability_pct","country","region","city","datacenter","vcpu","ram_gb","resources_scope","disk_gb","disk_usd_per_gb_month","disk_hourly_usd","disk_priced_gb","net_down_mbps","net_up_mbps","net_down_usd_per_gb","net_up_usd_per_gb","provisionable","charges","host","first_seen_at","last_seen_at","last_changed_at"],"title":"Offer"},"Offers":{"properties":{"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"},"items":{"items":{"$ref":"#/components/schemas/Offer"},"type":"array","title":"Items"}},"type":"object","required":["total","limit","offset","items"],"title":"Offers"},"PriceSource":{"properties":{"currency":{"type":"string","title":"Currency","description":"Currency the cloud billed in, e.g. INR"},"local_per_gpu_hour":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Local Per Gpu Hour","description":"Original price per GPU-hour in that currency"},"fx_per_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fx Per Usd","description":"Units of that currency per 1 USD used for conversion"},"fx_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fx Date"},"fx_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fx Source"}},"type":"object","required":["currency","local_per_gpu_hour","fx_per_usd","fx_date","fx_source"],"title":"PriceSource"},"Provider":{"properties":{"id":{"type":"string","title":"Id"},"display_name":{"type":"string","title":"Display Name"},"homepage_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Homepage Url"},"icon_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Url"},"icon_bg":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon Bg","description":"Background to draw behind the icon"},"has_referral":{"type":"boolean","title":"Has Referral","description":"Visit links carry our referral id (disclose it)"},"status":{"type":"string","title":"Status"},"health":{"type":"string","title":"Health"},"stale":{"type":"boolean","title":"Stale","description":"No good run within 2 x the poll interval; data shown is the last good run"},"last_collected_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Collected At"},"billing_types":{"items":{"type":"string"},"type":"array","title":"Billing Types"},"offers":{"type":"integer","title":"Offers"},"priced_offers":{"type":"integer","title":"Priced Offers"},"rentable":{"type":"boolean","title":"Rentable","description":"Machines from this cloud can be rented through GridPup","default":false},"rentable_offers":{"type":"integer","title":"Rentable Offers","description":"Offers you can launch through GridPup now (in stock)","default":0},"rent_from_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rent From Usd","description":"Lowest GridPup price per GPU-hour among them"}},"type":"object","required":["id","display_name","homepage_url","icon_url","icon_bg","has_referral","status","health","stale","last_collected_at","billing_types","offers","priced_offers"],"title":"Provider"},"ProviderPrice":{"properties":{"provider":{"type":"string","title":"Provider"},"from_usd_per_gpu_hour":{"type":"number","title":"From Usd Per Gpu Hour"},"median_usd_per_gpu_hour":{"type":"number","title":"Median Usd Per Gpu Hour"},"offers":{"type":"integer","title":"Offers"}},"type":"object","required":["provider","from_usd_per_gpu_hour","median_usd_per_gpu_hour","offers"],"title":"ProviderPrice"},"SkuRow":{"properties":{"id":{"type":"string","title":"Id"},"form":{"type":"string","title":"Form"},"memory_gb":{"type":"number","title":"Memory Gb"},"display_name":{"type":"string","title":"Display Name"},"cheapest_usd_per_gpu_hour":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cheapest Usd Per Gpu Hour"},"cheapest_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cheapest Provider"},"offers":{"type":"integer","title":"Offers"},"in_stock_offers":{"type":"integer","title":"In Stock Offers"},"priced_providers":{"items":{"type":"string"},"type":"array","title":"Priced Providers"}},"type":"object","required":["id","form","memory_gb","display_name","cheapest_usd_per_gpu_hour","cheapest_provider","offers","in_stock_offers","priced_providers"],"title":"SkuRow"},"SshKeyIn":{"properties":{"name":{"type":"string","maxLength":60,"title":"Name","default":""},"public_key":{"type":"string","maxLength":16000,"title":"Public Key"}},"type":"object","required":["public_key"],"title":"SshKeyIn"},"Trend":{"properties":{"model_id":{"type":"string","title":"Model Id"},"billing_type":{"type":"string","enum":["on_demand","spot","reserved","custom"],"title":"Billing Type"},"range":{"type":"string","title":"Range"},"resolution_minutes":{"type":"integer","title":"Resolution Minutes"},"verified_only":{"type":"boolean","title":"Verified Only"},"gpus":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Gpus"},"market":{"items":{"$ref":"#/components/schemas/MarketPoint"},"type":"array","title":"Market","description":"Median of vendor medians per bucket"},"series":{"items":{"$ref":"#/components/schemas/TrendSeries"},"type":"array","title":"Series"}},"type":"object","required":["model_id","billing_type","range","resolution_minutes","verified_only","gpus","market","series"],"title":"Trend"},"TrendPoint":{"properties":{"t":{"type":"string","title":"T"},"min":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min"},"median":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Median"},"p90":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"P90"},"offers":{"type":"integer","title":"Offers"},"stock":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stock"}},"type":"object","required":["t","min","median","p90","offers","stock"],"title":"TrendPoint"},"TrendSeries":{"properties":{"provider":{"type":"string","title":"Provider"},"points":{"items":{"$ref":"#/components/schemas/TrendPoint"},"type":"array","title":"Points"}},"type":"object","required":["provider","points"],"title":"TrendSeries"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VolumeCharge":{"properties":{"max_gb":{"type":"number","title":"Max Gb"},"usd_per_gb_month":{"type":"number","title":"Usd Per Gb Month"}},"type":"object","required":["max_gb","usd_per_gb_month"],"title":"VolumeCharge"}}}}