Costs
Estimate a job's cost
POST
Full cost of a job per provider: compute + egress + storage, unknown components named.
bearerheader
AuthorizationBearer <token>Your API key: Authorization: Bearer opg_live_...
OpenGrid-Version?"2026-11-03"The API version to shape the response for. Default: the version pinned to your key.
Value in
"2026-11-03"application/json- body
A job. Start from a preset and override fields, or give gpu, count and hours. Terabytes are decimal (1 TB = 1,000 GB). Body at most 16384 bytes.
preset?stringA reference job (GET /v1/costs/presets).
Value in
"R0""R1""R2""R3"gpu?stringGPU id or alias.
count?integerRange
1 <= value <= 1024hours?numberRange
0.016667 <= value <= 8760egress_tb?numberGive egress_tb or egress_gb, not both.
Range
0 <= value <= 10000egress_gb?numberRange
0 <= value <= 10000000storage_tb?numberGive storage_tb or storage_gb, not both.
Range
0 <= value <= 10000storage_gb?numberRange
0 <= value <= 10000000storage_class?stringDefault
"auto"Value in
"auto""shared_fs""block_storage""object_storage"min_fabric_gbps?numberOnly providers whose interconnect is at least this fast.
Range
1 <= value <= 100000Success
application/json- response
data*unknownField-level schema not published for this route yet; send a request to see one.
meta*Present on every success. List routes add limit, next_cursor (null on the last page) and total.
curl -X POST 'https://data.tryopengrid.com/v1/costs/estimate' \ -H 'Content-Type: application/json' \ -d '{ "gpu": "nvidia-h100-80gb-sxm5", "count": 8, "hours": 24, "egress_tb": 2}'Example Response
{ "data": null, "meta": { "as_of": "2019-08-24T14:15:22Z", "api_version": "string", "request_id": "string", "next_cursor": "string", "limit": 0, "total": 0 }}