Jobs API
POST /api/silicon-mark/v1/jobs
Create a new benchmarking job.quick_mark is always included automatically.
Authorization
🔒OAuth2: OAuth2PasswordBearerFlow type: password
Token URL: token
Request Body
The request body must be inapplication/json format.
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
name | string | No | Job name (auto-generated if omitted) | Max 60 characters |
description | string | No | Job description | Max 512 characters |
benchmarks | array | Yes | List of benchmarks to run. Each item is a benchmark id string or a {benchmark_id, config} object. quick_mark is always added if not present. | No duplicate (id + config) |
node_count | integer | No | Number of expected nodes | [ 1 .. 256 ], default 1 |
tags | array | No | Job tags | Max 10 tags, 50 chars each; certain special characters forbidden |
Request Example
Responses
- 201: Created
- 400: Bad Request
- 401: Unauthorized
- 409: Conflict
GET /api/silicon-mark/v1/jobs
List jobs with filtering and pagination.Authorization
🔒OAuth2: OAuth2PasswordBearerFlow type: password
Token URL: token
Query Parameters
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
page | integer | No | Page number | >= 1, default 1 |
per_page | integer | No | Items per page | [ 1 .. 300 ], default 20 |
sort_by | string | No | Field to sort by (created_at, started_at, ended_at, expires_at, name, state, node_count, current_nodes) | default created_at |
sort_order | string | No | Sort direction | asc or desc, default desc |
state | string | No | Filter by job state | created, starting, running, completed, aborted, failed, completed_with_warnings |
name | string | No | Filter by name (partial match) | Max 60 characters |
benchmark_id | string | No | Filter by benchmark in sequence | |
tags | array | No | Filter by tags. Repeat the query param for multiple; a job must include all listed tags. | Max 10 |
created_after | datetime | No | Jobs created after this timestamp | ISO 8601 |
created_before | datetime | No | Jobs created before this timestamp | ISO 8601 |
node_count_min | integer | No | Minimum node count | [ 1 .. 256 ] |
node_count_max | integer | No | Maximum node count | [ 1 .. 256 ] |
include_results | boolean | No | Include GPU models and QuickMark aggregate results | default false |
include | array | No | Optional expansions: performance, performance_nodes (performance_nodes requires performance) | |
has_performance_data | boolean | No | When true, only jobs with scoreboard performance data are returned |
Responses
- 200: Successful Response
GET /api/silicon-mark/v1/jobs/tags
Get all unique tags from jobs belonging to the authenticated user. Scope depends on the user’s role (regular users see their own jobs; customer admins see all jobs in their customer; root admins/staff see all jobs).Authorization
🔒OAuth2: OAuth2PasswordBearerFlow type: password
Token URL: token
Responses
- 200: Successful Response
GET /api/silicon-mark/v1/jobs/stats
Performance tab badge count: the number of jobs whose aggregated performance status is underperforming (same scope as the performance job list).Authorization
🔒OAuth2: OAuth2PasswordBearerFlow type: password
Token URL: token
Query Parameters
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
benchmark_id | string | No | Benchmark that drives performance rows | default quick_mark (v1 supports quick_mark only) |
name | string | No | Filter by job name | |
tags | array | No | Filter by tags (repeat for multiple; job must include all) | |
state | string | No | Filter by job state | default completed |
sort_by | string | No | Field to sort by | default created_at |
sort_order | string | No | Sort direction | asc or desc, default desc |
Responses
- 200: Successful Response
GET /api/silicon-mark/v1/jobs/{job_id}
Get detailed information about a specific job. Tasks and all benchmark results are always included.Authorization
🔒OAuth2: OAuth2PasswordBearerFlow type: password
Token URL: token
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
job_id | integer | Yes | The job ID |
Responses
- 200: Successful Response
- 404: Not Found
GET /api/silicon-mark/v1/jobs/{job_id}/results
Get the result summary of this job.Authorization
🔒OAuth2: OAuth2PasswordBearerFlow type: password
Token URL: token
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
job_id | integer | Yes | The job ID |
Query Parameters
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
include_display_names | boolean | No | Include human-readable field names | default false |
Responses
The response is a map keyed bybenchmark_id, where each value is a cluster-level benchmark result object.
- 200: Successful Response
DELETE /api/silicon-mark/v1/jobs/delete
Soft-delete a job and all associated tasks. Only the job owner (matchingcustomer_id) can delete their jobs.
Authorization
🔒OAuth2: OAuth2PasswordBearerFlow type: password
Token URL: token
Request Body
The request body must be inapplication/json format.
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
id | integer | Yes | Job ID to delete | >= 1 |
Request Example
Responses
- 200: Job successfully deleted
- 400: Bad Request — job is in a state that prevents deletion (e.g. running)
- 403: Permission denied — user does not own this job
- 404: Not Found — job not found
The following job endpoints are intentionally not documented here because they are not customer-facing:
POST /api/silicon-mark/v1/jobs/anonymous— internal anonymous job creation flow.GET /api/silicon-mark/v1/jobs/current— agent-only; authenticated with a job token, used by the benchmarking agent to fetch its job configuration.POST /api/silicon-mark/v1/jobs/{job_id}/generate-report— marked INTERNAL TESTING; agent/job-token only.