Create a run
curl --request POST \
--url https://dev.simforge.ai/api/v1/runs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "render",
"input": {
"scenarioId": "<scenario-id>",
"engine": "3d",
"preset": "showcase",
"rig": {
"schema": "simforge.render-rig/v1",
"sources": [
{
"actorId": "ego",
"sensorId": "cam-front",
"outputName": "cam-front",
"transform": {
"position": {
"x": 1.6,
"y": 1.45,
"z": 0
},
"rotation": {
"yawRad": 0,
"pitchRad": -0.0524,
"rollRad": 0
}
},
"modality": "rgb",
"attributes": {
"width": 1280,
"height": 720,
"fps": 20,
"horizontalFovDeg": 90,
"nearM": 0.05,
"farM": 1000
}
}
]
}
},
"maxCostCents": 100
}
'import requests
url = "https://dev.simforge.ai/api/v1/runs"
payload = {
"type": "render",
"input": {
"scenarioId": "<scenario-id>",
"engine": "3d",
"preset": "showcase",
"rig": {
"schema": "simforge.render-rig/v1",
"sources": [
{
"actorId": "ego",
"sensorId": "cam-front",
"outputName": "cam-front",
"transform": {
"position": {
"x": 1.6,
"y": 1.45,
"z": 0
},
"rotation": {
"yawRad": 0,
"pitchRad": -0.0524,
"rollRad": 0
}
},
"modality": "rgb",
"attributes": {
"width": 1280,
"height": 720,
"fps": 20,
"horizontalFovDeg": 90,
"nearM": 0.05,
"farM": 1000
}
}
]
}
},
"maxCostCents": 100
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
type: 'render',
input: {
scenarioId: '<scenario-id>',
engine: '3d',
preset: 'showcase',
rig: {
schema: 'simforge.render-rig/v1',
sources: [
{
actorId: 'ego',
sensorId: 'cam-front',
outputName: 'cam-front',
transform: {
position: {x: 1.6, y: 1.45, z: 0},
rotation: {yawRad: 0, pitchRad: -0.0524, rollRad: 0}
},
modality: 'rgb',
attributes: {
width: 1280,
height: 720,
fps: 20,
horizontalFovDeg: 90,
nearM: 0.05,
farM: 1000
}
}
]
}
},
maxCostCents: 100
})
};
fetch('https://dev.simforge.ai/api/v1/runs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "<string>",
"type": "<string>",
"status": "queued",
"createdAt": "2023-11-07T05:31:56Z",
"startedAt": "2023-11-07T05:31:56Z",
"finishedAt": "2023-11-07T05:31:56Z",
"createdBy": {
"id": "<string>",
"email": "<string>"
},
"costEstimateCents": 1,
"costCents": 1,
"billing": {
"hold": "pending",
"heldCents": 1,
"chargedCents": 1
},
"jobs": [
{
"id": "<string>",
"kind": "<string>",
"status": "queued",
"attempt": 1,
"maxAttempts": 123,
"leaseExpiresAt": "2023-11-07T05:31:56Z",
"workerClass": "cpu",
"queue": {
"blockedBy": [
"<string>"
],
"ahead": 1,
"etaSeconds": 1,
"waitingFor": "worker"
},
"errorCode": "<string>",
"errorReason": "<string>",
"startedAt": "2023-11-07T05:31:56Z",
"finishedAt": "2023-11-07T05:31:56Z",
"progress": "<unknown>"
}
],
"warnings": [
{
"code": "<string>",
"message": "<string>",
"subject": "<string>",
"detail": {},
"jobId": "<string>"
}
],
"idempotencyKey": "<string>",
"input": "<unknown>",
"published": true,
"result": "<unknown>",
"unavailable": {
"code": "<string>",
"message": "<string>"
}
}{
"id": "<string>",
"type": "<string>",
"status": "queued",
"createdAt": "2023-11-07T05:31:56Z",
"startedAt": "2023-11-07T05:31:56Z",
"finishedAt": "2023-11-07T05:31:56Z",
"createdBy": {
"id": "<string>",
"email": "<string>"
},
"costEstimateCents": 1,
"costCents": 1,
"billing": {
"hold": "pending",
"heldCents": 1,
"chargedCents": 1
},
"jobs": [
{
"id": "<string>",
"kind": "<string>",
"status": "queued",
"attempt": 1,
"maxAttempts": 123,
"leaseExpiresAt": "2023-11-07T05:31:56Z",
"workerClass": "cpu",
"queue": {
"blockedBy": [
"<string>"
],
"ahead": 1,
"etaSeconds": 1,
"waitingFor": "worker"
},
"errorCode": "<string>",
"errorReason": "<string>",
"startedAt": "2023-11-07T05:31:56Z",
"finishedAt": "2023-11-07T05:31:56Z",
"progress": "<unknown>"
}
],
"warnings": [
{
"code": "<string>",
"message": "<string>",
"subject": "<string>",
"detail": {},
"jobId": "<string>"
}
],
"idempotencyKey": "<string>",
"input": "<unknown>",
"published": true,
"result": "<unknown>",
"unavailable": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "bad_request",
"reason": "<string>",
"retryable": true,
"requestId": "<string>",
"hint": "<string>",
"param": "<string>",
"detail": "<unknown>",
"path": "<string>"
}
}{
"error": {
"code": "bad_request",
"reason": "<string>",
"retryable": true,
"requestId": "<string>",
"hint": "<string>",
"param": "<string>",
"detail": "<unknown>",
"path": "<string>"
}
}{
"error": {
"code": "bad_request",
"reason": "<string>",
"retryable": true,
"requestId": "<string>",
"hint": "<string>",
"param": "<string>",
"detail": "<unknown>",
"path": "<string>"
}
}{
"error": {
"code": "bad_request",
"reason": "<string>",
"retryable": true,
"requestId": "<string>",
"hint": "<string>",
"param": "<string>",
"detail": "<unknown>",
"path": "<string>"
}
}{
"error": {
"code": "bad_request",
"reason": "<string>",
"retryable": true,
"requestId": "<string>",
"hint": "<string>",
"param": "<string>",
"detail": "<unknown>",
"path": "<string>"
}
}{
"error": {
"code": "bad_request",
"reason": "<string>",
"retryable": true,
"requestId": "<string>",
"hint": "<string>",
"param": "<string>",
"detail": "<unknown>",
"path": "<string>"
}
}{
"error": {
"code": "bad_request",
"reason": "<string>",
"retryable": true,
"requestId": "<string>",
"hint": "<string>",
"param": "<string>",
"detail": "<unknown>",
"path": "<string>"
}
}Authorizations
A sfc_at_… access token from simforge login, or an sfk_… API key. An operation's security lists the scopes the credential must hold.
Body
1The run type's input. For type: "render" it is a RenderRunInput; the other run types' inputs are objects of their own.
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Required for non-dry submissions with a positive cost estimate; the maximum approved price in cents.
x >= 0Response
Quote or idempotent replay, including managed driving evaluations.
- Option 1
- Option 2
- Option 3
- Option 4
queued, running, succeeded, partial, failed, cancelled Show child attributes
Show child attributes
x >= 0x >= 0Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Caller-supplied run identity; qualification namespaces are excluded from evaluation suites.
A run published from another workspace (read-only here): a public benchmark. False for a master render of one of your Sample scenarios. Absent means false (a server older than this field).
Present when this run's artifacts and result could not be read: result is null and its artifacts are left out, while every other field still holds. The rest of a page is unaffected.
Show child attributes
Show child attributes
curl --request POST \
--url https://dev.simforge.ai/api/v1/runs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"type": "render",
"input": {
"scenarioId": "<scenario-id>",
"engine": "3d",
"preset": "showcase",
"rig": {
"schema": "simforge.render-rig/v1",
"sources": [
{
"actorId": "ego",
"sensorId": "cam-front",
"outputName": "cam-front",
"transform": {
"position": {
"x": 1.6,
"y": 1.45,
"z": 0
},
"rotation": {
"yawRad": 0,
"pitchRad": -0.0524,
"rollRad": 0
}
},
"modality": "rgb",
"attributes": {
"width": 1280,
"height": 720,
"fps": 20,
"horizontalFovDeg": 90,
"nearM": 0.05,
"farM": 1000
}
}
]
}
},
"maxCostCents": 100
}
'import requests
url = "https://dev.simforge.ai/api/v1/runs"
payload = {
"type": "render",
"input": {
"scenarioId": "<scenario-id>",
"engine": "3d",
"preset": "showcase",
"rig": {
"schema": "simforge.render-rig/v1",
"sources": [
{
"actorId": "ego",
"sensorId": "cam-front",
"outputName": "cam-front",
"transform": {
"position": {
"x": 1.6,
"y": 1.45,
"z": 0
},
"rotation": {
"yawRad": 0,
"pitchRad": -0.0524,
"rollRad": 0
}
},
"modality": "rgb",
"attributes": {
"width": 1280,
"height": 720,
"fps": 20,
"horizontalFovDeg": 90,
"nearM": 0.05,
"farM": 1000
}
}
]
}
},
"maxCostCents": 100
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
type: 'render',
input: {
scenarioId: '<scenario-id>',
engine: '3d',
preset: 'showcase',
rig: {
schema: 'simforge.render-rig/v1',
sources: [
{
actorId: 'ego',
sensorId: 'cam-front',
outputName: 'cam-front',
transform: {
position: {x: 1.6, y: 1.45, z: 0},
rotation: {yawRad: 0, pitchRad: -0.0524, rollRad: 0}
},
modality: 'rgb',
attributes: {
width: 1280,
height: 720,
fps: 20,
horizontalFovDeg: 90,
nearM: 0.05,
farM: 1000
}
}
]
}
},
maxCostCents: 100
})
};
fetch('https://dev.simforge.ai/api/v1/runs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "<string>",
"type": "<string>",
"status": "queued",
"createdAt": "2023-11-07T05:31:56Z",
"startedAt": "2023-11-07T05:31:56Z",
"finishedAt": "2023-11-07T05:31:56Z",
"createdBy": {
"id": "<string>",
"email": "<string>"
},
"costEstimateCents": 1,
"costCents": 1,
"billing": {
"hold": "pending",
"heldCents": 1,
"chargedCents": 1
},
"jobs": [
{
"id": "<string>",
"kind": "<string>",
"status": "queued",
"attempt": 1,
"maxAttempts": 123,
"leaseExpiresAt": "2023-11-07T05:31:56Z",
"workerClass": "cpu",
"queue": {
"blockedBy": [
"<string>"
],
"ahead": 1,
"etaSeconds": 1,
"waitingFor": "worker"
},
"errorCode": "<string>",
"errorReason": "<string>",
"startedAt": "2023-11-07T05:31:56Z",
"finishedAt": "2023-11-07T05:31:56Z",
"progress": "<unknown>"
}
],
"warnings": [
{
"code": "<string>",
"message": "<string>",
"subject": "<string>",
"detail": {},
"jobId": "<string>"
}
],
"idempotencyKey": "<string>",
"input": "<unknown>",
"published": true,
"result": "<unknown>",
"unavailable": {
"code": "<string>",
"message": "<string>"
}
}{
"id": "<string>",
"type": "<string>",
"status": "queued",
"createdAt": "2023-11-07T05:31:56Z",
"startedAt": "2023-11-07T05:31:56Z",
"finishedAt": "2023-11-07T05:31:56Z",
"createdBy": {
"id": "<string>",
"email": "<string>"
},
"costEstimateCents": 1,
"costCents": 1,
"billing": {
"hold": "pending",
"heldCents": 1,
"chargedCents": 1
},
"jobs": [
{
"id": "<string>",
"kind": "<string>",
"status": "queued",
"attempt": 1,
"maxAttempts": 123,
"leaseExpiresAt": "2023-11-07T05:31:56Z",
"workerClass": "cpu",
"queue": {
"blockedBy": [
"<string>"
],
"ahead": 1,
"etaSeconds": 1,
"waitingFor": "worker"
},
"errorCode": "<string>",
"errorReason": "<string>",
"startedAt": "2023-11-07T05:31:56Z",
"finishedAt": "2023-11-07T05:31:56Z",
"progress": "<unknown>"
}
],
"warnings": [
{
"code": "<string>",
"message": "<string>",
"subject": "<string>",
"detail": {},
"jobId": "<string>"
}
],
"idempotencyKey": "<string>",
"input": "<unknown>",
"published": true,
"result": "<unknown>",
"unavailable": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "bad_request",
"reason": "<string>",
"retryable": true,
"requestId": "<string>",
"hint": "<string>",
"param": "<string>",
"detail": "<unknown>",
"path": "<string>"
}
}{
"error": {
"code": "bad_request",
"reason": "<string>",
"retryable": true,
"requestId": "<string>",
"hint": "<string>",
"param": "<string>",
"detail": "<unknown>",
"path": "<string>"
}
}{
"error": {
"code": "bad_request",
"reason": "<string>",
"retryable": true,
"requestId": "<string>",
"hint": "<string>",
"param": "<string>",
"detail": "<unknown>",
"path": "<string>"
}
}{
"error": {
"code": "bad_request",
"reason": "<string>",
"retryable": true,
"requestId": "<string>",
"hint": "<string>",
"param": "<string>",
"detail": "<unknown>",
"path": "<string>"
}
}{
"error": {
"code": "bad_request",
"reason": "<string>",
"retryable": true,
"requestId": "<string>",
"hint": "<string>",
"param": "<string>",
"detail": "<unknown>",
"path": "<string>"
}
}{
"error": {
"code": "bad_request",
"reason": "<string>",
"retryable": true,
"requestId": "<string>",
"hint": "<string>",
"param": "<string>",
"detail": "<unknown>",
"path": "<string>"
}
}{
"error": {
"code": "bad_request",
"reason": "<string>",
"retryable": true,
"requestId": "<string>",
"hint": "<string>",
"param": "<string>",
"detail": "<unknown>",
"path": "<string>"
}
}