https://api-sim.hardlightsim.com
Base path:
/v0
Managed training base path:
/v1
Auth:
Authorization: Bearer hls_live_your_service_key
Core Endpoints
POST /v0/jobscreate simulation job.GET /v0/jobs/{job_id}fetch status + artifacts.GET /v0/jobslist jobs for authenticated customer.- supports
statusandsubmission_group_idfilters
- supports
POST /v0/jobs/{job_id}/cancelrequest cancellation.GET /v0/jobs/{job_id}/artifacts/{artifact_name}/download-urlfetch presigned URL.POST /v0/inputs/presign-uploadcreate upload URL for input files.POST /v0/assets/registerregister an input URI and returnasset_id.GET /v0/assetslist registered input assets.GET /v0/assets/{asset_id}fetch one registered input asset.
Asset ID Inputs (Recommended)
Hardsim supports two input styles:- URI-based:
robot.urdf_uri,robot.usd_uri,scene.usd_uri - Asset-ID based:
robot.urdf_asset_id,robot.usd_asset_id,scene.usd_asset_id
*_asset_id, the API resolves it to canonical URI server-side before job validation and execution.
Isaac Lab Submit Additions
POST /v0/jobs also supports an Isaac Lab rollout path with:
runtime_profile="isaac_lab_rollout"isaac_lab.task_moduleisaac_lab.task_class_or_nameisaac_lab.task_package_asset_id- optional
isaac_lab.task_args
submit_assets(...) with robot/scene assets is still the recommended entry point.
Managed Training Endpoints
POST /v1/training-runsGET /v1/training-runs/{run_id}POST /v1/training-runs/{run_id}/pausePOST /v1/training-runs/{run_id}/resumePOST /v1/training-runs/{run_id}/cancelGET /v1/training-runs/{run_id}/iterationsGET /v1/training-runs/{run_id}/checkpointsGET /v1/training-runs/{run_id}/eventsGET /v1/training-runs/{run_id}/checkpoints/{checkpoint_id}/download-urlGET /v1/training-runs/{run_id}/artifacts/download-url?uri=...GET /v1/training-runssupportssubmission_group_idfilter.
checkpoint_init_asset_id (resolved to checkpoint_init_uri).
Submission Group Endpoints
POST /v1/submission-groupsPOST /v1/submission-groups/{group_id}/ingestGET /v1/submission-groups/{group_id}GET /v1/submission-groupsGET /v1/submission-groups/{group_id}/itemsGET /v1/submission-groups/{group_id}/eventsPOST /v1/submission-groups/{group_id}/cancel
simulation or training) and support partial accept with per-item machine-readable errors.
Managed training scopes:
training:writefor create/pause/resume/cancel.training:readfor get/list/iterations/checkpoints/events.
trainer_spec.resources.gpumust be greater than0(GPU-only trainer policy by default).
Submit Response Billing Fields
POST /v0/jobs includes:
estimated_creditsestimated_usdbilling_modelbilling_price_idgpu_hourly_rate_usd
Error Types You Should Handle
400invalid payload (for example, missing required GPU trainer resources).402insufficient credits / billing guardrail.403plan not entitled.404cross-tenant or unknown job.409idempotency conflict.429tenant guardrail exceeded.