Skip to main content

Jobs API

POST /api/silicon-mark/v1/jobs

Create a new benchmarking job.

Authorization

🔒OAuth2: OAuth2PasswordBearer
Flow type: password
Token URL: token

Request Body

The request body must be in application/json format.
FieldTypeRequiredDescriptionConstraints
namestringYesJob name[ 1 .. 60 ] characters
descriptionstringNoJob descriptionMax 512 characters
benchmarksarrayYesList of benchmarks to runString or object format
node_countintegerYesNumber of expected nodes[ 1 .. 256 ]
tagsarrayNoJob tagsMax 10 tags, 50 chars each

Request Example

{
  "name": "GPU Benchmark Test",
  "description": "Testing new cluster",
  "benchmarks": [
    "quick_mark",
    {
      "benchmark_id": "cluster_network",
      "config": {
        "timeout": 300
      }
    }
  ],
  "node_count": 4,
  "tags": ["production", "gpu"]
}

Responses

  • 201: Created
{
  "id": "7554621440",
  "name": "GPU Benchmark Test",
  "description": "Testing new cluster",
  "node_count": 4,
  "benchmarks": ["quick_mark", "cluster_network"],
  "tags": ["production", "gpu"],
  "token": "eyJ0eXAiOiJKV1Q...",
  "created_at": "2024-03-15T10:30:00Z",
  "expires_at": "2024-03-16T10:30:00Z"
}
  • 400: Bad Request
{
  "error": {
    "code": "PARAMETER_INCORRECT_VALUE",
    "message": "Benchmark 'unknown_benchmark' not found"
  }
}
  • 401: Unauthorized
{
  "error": {
    "code": "CLIENT_TOKEN_INVALID",
    "message": "Invalid or expired token"
  }
}
  • 409: Conflict
{
  "error": {
    "code": "RESOURCE_ALREADY_EXISTS",
    "message": "Job with name 'GPU Test' already exists"
  }
}

GET /api/silicon-mark/v1/jobs/{job_id}

Get detailed information about a specific job.

Authorization

🔒OAuth2: OAuth2PasswordBearer
Flow type: password
Token URL: token

Path Parameters

ParameterTypeRequiredDescription
job_idstringYesThe job ID

Query Parameters

ParameterTypeRequiredDescriptionDefault
include_tasksbooleanNoInclude task summariestrue
include_resultsbooleanNoInclude benchmark resultstrue

Responses

  • 200: Successful Response
{
  "id": "7554621440",
  "name": "GPU Benchmark Test",
  "description": "Testing cluster performance",
  "state": "completed",
  "node_count": 4,
  "current_nodes": 4,
  "benchmark_sequence": [
    {
      "benchmark_id": "quick_mark",
      "config": {}
    },
    {
      "benchmark_id": "cluster_network",
      "config": {}
    }
  ],
  "tags": ["production"],
  "created_at": "2024-03-15T10:30:00Z",
  "started_at": "2024-03-15T10:35:00Z",
  "expires_at": "2024-03-16T10:30:00Z",
  "ended_at": "2024-03-15T11:45:00Z",
  "tasks": [
    {
      "id": "7554621441",
      "job_id": "7554621440",
      "machine_uuid": "550e8400-e29b-41d4-a716-446655440000",
      "machine_ip": "192.168.1.10",
      "state": "completed",
      "gpu_model": "NVIDIA A100-SXM4-80GB",
      "gpu_count": 8,
      "created_at": "2024-03-15T10:35:00Z",
      "started_at": "2024-03-15T10:35:30Z",
      "ended_at": "2024-03-15T11:40:00Z",
      "pdf_report_url": "https://..."
    }
  ],
  "benchmark_results": {
    "cluster_network": {
      "benchmark_id": "cluster_network",
      "started_at": "2024-03-15T10:40:00Z",
      "completed_at": "2024-03-15T10:55:00Z",
      "config": {},
      "results": {
        "avg_bandwidth_gbps": 45.2,
        "avg_latency": 0.8,
        "min_bandwidth_gbps": 42.1,
        "total_links_tested": 12
      },
      "state": "completed",
      "error_message": null
    }
  },
  "pdf_report_url": "https://..."
}
  • 404: Not Found
{
  "error": {
    "code": "RESOURCE_NOT_FOUND",
    "message": "Job with id 7554621440 not found"
  }
}

GET /api/silicon-mark/v1/jobs

List jobs with filtering and pagination.

Authorization

🔒OAuth2: OAuth2PasswordBearer
Flow type: password
Token URL: token

Query Parameters

ParameterTypeRequiredDescriptionDefault
pageintegerNoPage number1
per_pageintegerNoItems per page (max: 300)20
sort_bystringNoField to sort bycreated_at
sort_orderstringNoSort direction (asc/desc)desc
statestringNoFilter by job state
namestringNoFilter by name (partial match)
benchmark_idstringNoFilter by benchmark in sequence
tagstringNoFilter by tag
created_afterdatetimeNoJobs created after this timestamp
created_beforedatetimeNoJobs created before this timestamp
node_count_minintegerNoMinimum node count
node_count_maxintegerNoMaximum node count

Responses

  • 200: Successful Response
{
  "data": [
    {
      "id": "7554621440",
      "name": "GPU Benchmark Test",
      "description": "Testing cluster",
      "state": "completed",
      "node_count": 4,
      "current_nodes": 4,
      "benchmark_sequence": [
        {
          "benchmark_id": "quick_mark",
          "config": {}
        },
        {
          "benchmark_id": "cluster_network",
          "config": {}
        }
      ],
      "benchmarks": ["quick_mark", "cluster_network"],
      "tags": ["production"],
      "created_at": "2024-03-15T10:30:00Z",
      "started_at": "2024-03-15T10:35:00Z",
      "expires_at": "2024-03-16T10:30:00Z",
      "ended_at": "2024-03-15T11:45:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 20,
    "total": 42,
    "pages": 3
  }
}

GET /api/silicon-mark/v1/jobs/{job_id}/results

Get the result summary of this job.

Authorization

🔒OAuth2: OAuth2PasswordBearer
Flow type: password
Token URL: token

Path Parameters

ParameterTypeRequiredDescription
job_idstringYesThe job ID

Query Parameters

ParameterTypeRequiredDescriptionDefault
include_display_namebooleanNoInclude human-readable field namesfalse

Responses

  • 200: Successful Response
{
  "job_id": "7554621440",
  "name": "GPU Benchmark Test",
  "description": "Testing cluster",
  "created_at": "2024-03-15T10:30:00Z",
  "started_at": "2024-03-15T10:35:00Z",
  "ended_at": "2024-03-15T11:45:00Z",
  "node_count": 4,
  "benchmark_results": {
    "cluster_network": {
      "benchmark_id": "cluster_network",
      "started_at": "2024-03-15T10:40:00Z",
      "completed_at": "2024-03-15T10:55:00Z",
      "config": {},
      "results": {
        "avg_bandwidth_gbps": 45.2,
        "avg_latency": 0.8,
        "min_bandwidth_gbps": 42.1,
        "total_links_tested": 12,
        "node_count": 4,
        "measurements": [...]
      },
      "state": "completed",
      "error_message": null
    }
  }
}
I