Projects
Projects implement resource allocation policies and create segregation between different initiatives. It can represent a team, an individual, or an initiative that shares resources or has a specific resources budget (quota). See Projects for more information.
List projects
Bearer authentication
Filter results by a parameter. Use the format field-name operator value. Operators are == Equals, != Not equals, <= Less than or equal, >= Greater than or equal, =@ contains, !@ Does not contains, =^ Starts with and =$ Ends with. Dates are in ISO 8601 timestamp format and available for operators ==, !=, <= and >=.
["name!=some-name"]Sort results by a parameters.
Sort results in descending or ascending order.
ascPossible values: The offset of the first item returned in the collection.
100The maximum number of entries to return.
50Filter results by a free text search.
test projectok
1Bad request.
Unauthorized
Forbidden
unexpected error
GET /api/v1/org-unit/projects HTTP/1.1
Host: app.run.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"projects": [
{
"description": "text",
"schedulingRules": {
"interactiveJobTimeLimitSeconds": 100,
"interactiveJobMaxIdleDurationSeconds": 100,
"interactiveJobPreemptIdleDurationSeconds": 100,
"trainingJobMaxIdleDurationSeconds": 100,
"trainingJobTimeLimitSeconds": 100
},
"defaultNodePools": [
"text"
],
"nodeTypes": {
"training": [
"text"
],
"workspace": [
"text"
],
"names": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
},
"id": 33,
"name": "organization1",
"clusterId": "71f69d83-ba66-4822-adf5-55ce55efd210",
"parentId": "53a9228e-a722-420d-a102-9dc90da2efca",
"requestedNamespace": "runai-proj1",
"enforceRunaiScheduler": true,
"status": {
"namespace": "runai-proj1",
"phase": "Creating",
"phaseMessage": "Project is ready",
"lastUpdatedTime": "2026-01-01T00:00:00.000Z",
"nodePoolQuotaStatuses": [
{
"allocated": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"allocatedNonPreemptible": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"requested": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"nodePoolName": "text",
"nodePoolId": "text"
}
],
"quotaStatus": {
"allocated": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"allocatedNonPreemptible": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"requested": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
}
},
"additionalStatusData": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"totalResources": {
"gpuQuota": 1,
"cpuQuota": 1,
"memoryQuota": 1
},
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"createdBy": "text",
"updatedBy": "text",
"parent": {
"id": "9f55253e-11ed-47c7-acef-fc4054768dbc",
"name": "organization1",
"parent": {
"id": "9f55253e-11ed-47c7-acef-fc4054768dbc",
"name": "organization1",
"parent": "[Circular Reference]"
}
},
"effective": {
"schedulingRules": {
"interactiveJobTimeLimitSeconds": 100,
"interactiveJobMaxIdleDurationSeconds": 100,
"interactiveJobPreemptIdleDurationSeconds": 100,
"trainingJobMaxIdleDurationSeconds": 100,
"trainingJobTimeLimitSeconds": 100
},
"defaultNodePools": [
"text"
],
"nodeTypes": {
"training": [
"text"
],
"workspace": [
"text"
],
"names": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
},
"overtimeData": {
"range24hData": {
"averageGpuAllocation": 10,
"averageGpuUtilization": 95,
"averageGpuMemoryUtilization": 95,
"updatedAt": "2021-08-01T00:00:00Z"
},
"range7dData": {
"averageGpuAllocation": 10,
"averageGpuUtilization": 95,
"averageGpuMemoryUtilization": 95,
"updatedAt": "2021-08-01T00:00:00Z"
},
"range30dData": {
"averageGpuAllocation": 10,
"averageGpuUtilization": 95,
"averageGpuMemoryUtilization": 95,
"updatedAt": "2021-08-01T00:00:00Z"
}
},
"resources": []
}
],
"next": 1
}Create a project
Bearer authentication
Updatable fields
project's description
default order of node pools for workloads. will be enforced if no list is defined in workload policy
organization1The id of the cluster.
71f69d83-ba66-4822-adf5-55ce55efd210project's requested namespace
runai-proj1a flag to enforce that all pods in this namespace will be scheduled with runai-scheduler. Supported for cluster v2.21+
truedepartment parent uuid
53a9228e-a722-420d-a102-9dc90da2efcaCreated
Updatable fields
project's description
default order of node pools for workloads. will be enforced if no list is defined in workload policy
33organization1The id of the cluster.
71f69d83-ba66-4822-adf5-55ce55efd210department parent uuid
53a9228e-a722-420d-a102-9dc90da2efcathe project's namespace only if requested
runai-proj1a flag to enforce that all pods in this namespace will be scheduled with runai-scheduler. Supported for cluster v2.21+
Bad request.
Unauthorized
Forbidden
The specified resource already exists
unexpected error
POST /api/v1/org-unit/projects HTTP/1.1
Host: app.run.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 572
{
"description": "text",
"schedulingRules": {
"interactiveJobTimeLimitSeconds": 100,
"interactiveJobMaxIdleDurationSeconds": 100,
"interactiveJobPreemptIdleDurationSeconds": 100,
"trainingJobMaxIdleDurationSeconds": 100,
"trainingJobTimeLimitSeconds": 100
},
"defaultNodePools": [
"text"
],
"nodeTypes": {
"training": [
"text"
],
"workspace": [
"text"
],
"names": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
},
"name": "organization1",
"clusterId": "71f69d83-ba66-4822-adf5-55ce55efd210",
"requestedNamespace": "runai-proj1",
"enforceRunaiScheduler": true,
"parentId": "53a9228e-a722-420d-a102-9dc90da2efca",
"resources": []
}{
"description": "text",
"schedulingRules": {
"interactiveJobTimeLimitSeconds": 100,
"interactiveJobMaxIdleDurationSeconds": 100,
"interactiveJobPreemptIdleDurationSeconds": 100,
"trainingJobMaxIdleDurationSeconds": 100,
"trainingJobTimeLimitSeconds": 100
},
"defaultNodePools": [
"text"
],
"nodeTypes": {
"training": [
"text"
],
"workspace": [
"text"
],
"names": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
},
"id": 33,
"name": "organization1",
"clusterId": "71f69d83-ba66-4822-adf5-55ce55efd210",
"parentId": "53a9228e-a722-420d-a102-9dc90da2efca",
"requestedNamespace": "runai-proj1",
"enforceRunaiScheduler": true,
"status": {
"namespace": "runai-proj1",
"phase": "Creating",
"phaseMessage": "Project is ready",
"lastUpdatedTime": "2026-01-01T00:00:00.000Z",
"nodePoolQuotaStatuses": [
{
"allocated": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"allocatedNonPreemptible": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"requested": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"nodePoolName": "text",
"nodePoolId": "text"
}
],
"quotaStatus": {
"allocated": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"allocatedNonPreemptible": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"requested": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
}
},
"additionalStatusData": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"totalResources": {
"gpuQuota": 1,
"cpuQuota": 1,
"memoryQuota": 1
},
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"createdBy": "text",
"updatedBy": "text",
"parent": {
"id": "9f55253e-11ed-47c7-acef-fc4054768dbc",
"name": "organization1",
"parent": {
"id": "9f55253e-11ed-47c7-acef-fc4054768dbc",
"name": "organization1",
"parent": {
"id": "9f55253e-11ed-47c7-acef-fc4054768dbc",
"name": "organization1",
"parent": {
"id": "9f55253e-11ed-47c7-acef-fc4054768dbc",
"name": "organization1",
"parent": "[Circular Reference]"
}
}
}
},
"effective": {
"schedulingRules": {
"interactiveJobTimeLimitSeconds": 100,
"interactiveJobMaxIdleDurationSeconds": 100,
"interactiveJobPreemptIdleDurationSeconds": 100,
"trainingJobMaxIdleDurationSeconds": 100,
"trainingJobTimeLimitSeconds": 100
},
"defaultNodePools": [
"text"
],
"nodeTypes": {
"training": [
"text"
],
"workspace": [
"text"
],
"names": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
},
"overtimeData": {
"range24hData": {
"averageGpuAllocation": 10,
"averageGpuUtilization": 95,
"averageGpuMemoryUtilization": 95,
"updatedAt": "2021-08-01T00:00:00Z"
},
"range7dData": {
"averageGpuAllocation": 10,
"averageGpuUtilization": 95,
"averageGpuMemoryUtilization": 95,
"updatedAt": "2021-08-01T00:00:00Z"
},
"range30dData": {
"averageGpuAllocation": 10,
"averageGpuUtilization": 95,
"averageGpuMemoryUtilization": 95,
"updatedAt": "2021-08-01T00:00:00Z"
}
},
"resources": []
}Get a project by id
Bearer authentication
The project id
575c19e8-c7c3-45b0-8290-2f47397a8383ok
Updatable fields
project's description
default order of node pools for workloads. will be enforced if no list is defined in workload policy
33organization1The id of the cluster.
71f69d83-ba66-4822-adf5-55ce55efd210department parent uuid
53a9228e-a722-420d-a102-9dc90da2efcathe project's namespace only if requested
runai-proj1a flag to enforce that all pods in this namespace will be scheduled with runai-scheduler. Supported for cluster v2.21+
Unauthorized
Forbidden
The specified resource was not found
unexpected error
GET /api/v1/org-unit/projects/{projectId} HTTP/1.1
Host: app.run.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"description": "text",
"schedulingRules": {
"interactiveJobTimeLimitSeconds": 100,
"interactiveJobMaxIdleDurationSeconds": 100,
"interactiveJobPreemptIdleDurationSeconds": 100,
"trainingJobMaxIdleDurationSeconds": 100,
"trainingJobTimeLimitSeconds": 100
},
"defaultNodePools": [
"text"
],
"nodeTypes": {
"training": [
"text"
],
"workspace": [
"text"
],
"names": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
},
"id": 33,
"name": "organization1",
"clusterId": "71f69d83-ba66-4822-adf5-55ce55efd210",
"parentId": "53a9228e-a722-420d-a102-9dc90da2efca",
"requestedNamespace": "runai-proj1",
"enforceRunaiScheduler": true,
"status": {
"namespace": "runai-proj1",
"phase": "Creating",
"phaseMessage": "Project is ready",
"lastUpdatedTime": "2026-01-01T00:00:00.000Z",
"nodePoolQuotaStatuses": [
{
"allocated": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"allocatedNonPreemptible": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"requested": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"nodePoolName": "text",
"nodePoolId": "text"
}
],
"quotaStatus": {
"allocated": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"allocatedNonPreemptible": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"requested": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
}
},
"additionalStatusData": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"totalResources": {
"gpuQuota": 1,
"cpuQuota": 1,
"memoryQuota": 1
},
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"createdBy": "text",
"updatedBy": "text",
"parent": {
"id": "9f55253e-11ed-47c7-acef-fc4054768dbc",
"name": "organization1",
"parent": {
"id": "9f55253e-11ed-47c7-acef-fc4054768dbc",
"name": "organization1",
"parent": {
"id": "9f55253e-11ed-47c7-acef-fc4054768dbc",
"name": "organization1",
"parent": {
"id": "9f55253e-11ed-47c7-acef-fc4054768dbc",
"name": "organization1",
"parent": "[Circular Reference]"
}
}
}
},
"effective": {
"schedulingRules": {
"interactiveJobTimeLimitSeconds": 100,
"interactiveJobMaxIdleDurationSeconds": 100,
"interactiveJobPreemptIdleDurationSeconds": 100,
"trainingJobMaxIdleDurationSeconds": 100,
"trainingJobTimeLimitSeconds": 100
},
"defaultNodePools": [
"text"
],
"nodeTypes": {
"training": [
"text"
],
"workspace": [
"text"
],
"names": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
},
"overtimeData": {
"range24hData": {
"averageGpuAllocation": 10,
"averageGpuUtilization": 95,
"averageGpuMemoryUtilization": 95,
"updatedAt": "2021-08-01T00:00:00Z"
},
"range7dData": {
"averageGpuAllocation": 10,
"averageGpuUtilization": 95,
"averageGpuMemoryUtilization": 95,
"updatedAt": "2021-08-01T00:00:00Z"
},
"range30dData": {
"averageGpuAllocation": 10,
"averageGpuUtilization": 95,
"averageGpuMemoryUtilization": 95,
"updatedAt": "2021-08-01T00:00:00Z"
}
},
"resources": []
}Update project by Id
Bearer authentication
The project id
575c19e8-c7c3-45b0-8290-2f47397a8383Updatable fields
project's description
default order of node pools for workloads. will be enforced if no list is defined in workload policy
a flag to enforce that all pods in this namespace will be scheduled with runai-scheduler. Supported for cluster v2.21+
Updated
Updatable fields
project's description
default order of node pools for workloads. will be enforced if no list is defined in workload policy
33organization1The id of the cluster.
71f69d83-ba66-4822-adf5-55ce55efd210department parent uuid
53a9228e-a722-420d-a102-9dc90da2efcathe project's namespace only if requested
runai-proj1a flag to enforce that all pods in this namespace will be scheduled with runai-scheduler. Supported for cluster v2.21+
Bad request.
Unauthorized
Forbidden
The specified resource was not found
unexpected error
PUT /api/v1/org-unit/projects/{projectId} HTTP/1.1
Host: app.run.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 413
{
"description": "text",
"schedulingRules": {
"interactiveJobTimeLimitSeconds": 100,
"interactiveJobMaxIdleDurationSeconds": 100,
"interactiveJobPreemptIdleDurationSeconds": 100,
"trainingJobMaxIdleDurationSeconds": 100,
"trainingJobTimeLimitSeconds": 100
},
"defaultNodePools": [
"text"
],
"nodeTypes": {
"training": [
"text"
],
"workspace": [
"text"
],
"names": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
},
"enforceRunaiScheduler": true,
"resources": []
}{
"description": "text",
"schedulingRules": {
"interactiveJobTimeLimitSeconds": 100,
"interactiveJobMaxIdleDurationSeconds": 100,
"interactiveJobPreemptIdleDurationSeconds": 100,
"trainingJobMaxIdleDurationSeconds": 100,
"trainingJobTimeLimitSeconds": 100
},
"defaultNodePools": [
"text"
],
"nodeTypes": {
"training": [
"text"
],
"workspace": [
"text"
],
"names": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
},
"id": 33,
"name": "organization1",
"clusterId": "71f69d83-ba66-4822-adf5-55ce55efd210",
"parentId": "53a9228e-a722-420d-a102-9dc90da2efca",
"requestedNamespace": "runai-proj1",
"enforceRunaiScheduler": true,
"status": {
"namespace": "runai-proj1",
"phase": "Creating",
"phaseMessage": "Project is ready",
"lastUpdatedTime": "2026-01-01T00:00:00.000Z",
"nodePoolQuotaStatuses": [
{
"allocated": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"allocatedNonPreemptible": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"requested": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"nodePoolName": "text",
"nodePoolId": "text"
}
],
"quotaStatus": {
"allocated": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"allocatedNonPreemptible": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
},
"requested": {
"gpu": 0,
"cpu": 1000,
"memory": 1000
}
},
"additionalStatusData": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
},
"totalResources": {
"gpuQuota": 1,
"cpuQuota": 1,
"memoryQuota": 1
},
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"createdBy": "text",
"updatedBy": "text",
"parent": {
"id": "9f55253e-11ed-47c7-acef-fc4054768dbc",
"name": "organization1",
"parent": {
"id": "9f55253e-11ed-47c7-acef-fc4054768dbc",
"name": "organization1",
"parent": {
"id": "9f55253e-11ed-47c7-acef-fc4054768dbc",
"name": "organization1",
"parent": {
"id": "9f55253e-11ed-47c7-acef-fc4054768dbc",
"name": "organization1",
"parent": "[Circular Reference]"
}
}
}
},
"effective": {
"schedulingRules": {
"interactiveJobTimeLimitSeconds": 100,
"interactiveJobMaxIdleDurationSeconds": 100,
"interactiveJobPreemptIdleDurationSeconds": 100,
"trainingJobMaxIdleDurationSeconds": 100,
"trainingJobTimeLimitSeconds": 100
},
"defaultNodePools": [
"text"
],
"nodeTypes": {
"training": [
"text"
],
"workspace": [
"text"
],
"names": {
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
},
"overtimeData": {
"range24hData": {
"averageGpuAllocation": 10,
"averageGpuUtilization": 95,
"averageGpuMemoryUtilization": 95,
"updatedAt": "2021-08-01T00:00:00Z"
},
"range7dData": {
"averageGpuAllocation": 10,
"averageGpuUtilization": 95,
"averageGpuMemoryUtilization": 95,
"updatedAt": "2021-08-01T00:00:00Z"
},
"range30dData": {
"averageGpuAllocation": 10,
"averageGpuUtilization": 95,
"averageGpuMemoryUtilization": 95,
"updatedAt": "2021-08-01T00:00:00Z"
}
},
"resources": []
}Delete a project
Bearer authentication
The project id
575c19e8-c7c3-45b0-8290-2f47397a8383Accepted
No content
Deleted
Bad request.
Unauthorized
Forbidden
The specified resource was not found
unexpected error
unexpected error
DELETE /api/v1/org-unit/projects/{projectId} HTTP/1.1
Host: app.run.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Update projects resources
Bearer authentication
The project id
575c19e8-c7c3-45b0-8290-2f47397a8383Resources assigned to this Project per Node Pool
NormalUpdated
NormalBad request.
Unauthorized
Forbidden
The specified resource was not found
unexpected error
PUT /api/v1/org-unit/projects/{projectId}/resources HTTP/1.1
Host: app.run.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2
[][]Partial updates to specific items in the list. Should be used for update one or more attributes of an item without modifying the entire resource.
Bearer authentication
The project id
575c19e8-c7c3-45b0-8290-2f47397a8383Resources assigned to this Project per Node Pool
NormalUpdated
NormalBad request.
Unauthorized
Forbidden
The specified resource was not found
unexpected error
PATCH /api/v1/org-unit/projects/{projectId}/resources HTTP/1.1
Host: app.run.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2
[][]Retrieves project data metrics from the metrics database. Use in reporting and analysis tools.
Bearer authentication
The project id
575c19e8-c7c3-45b0-8290-2f47397a8383Start date of time range to fetch data in ISO 8601 timestamp format.
2023-06-06T12:09:18.211ZEnd date of time range to fetch data in ISO 8601 timestamp format.
2023-06-07T12:09:18.211ZThe number of samples to take in the specified time range.
20Example: 20Filter using the nodepool.
defaultExecuted successfully.
Partial success.
Bad request.
Unauthorized
Forbidden
The specified resource was not found
unexpected error
unexpected error
GET /api/v1/org-unit/projects/{projectId}/metrics?metricType=GPU_QUOTA&start=2023-06-06T12%3A09%3A18.211Z&end=2023-06-07T12%3A09%3A18.211Z HTTP/1.1
Host: app.run.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"measurements": [
{
"type": "ALLOCATED_GPU",
"labels": "{'gpu': '3'}",
"values": [
{
"value": "85",
"timestamp": "2023-06-06 12:09:18.211"
}
]
}
]
}Get projects telemetry data by the given query parameters
Bearer authentication
Filter using the Universally Unique Identifier (UUID) of the cluster.
d73a738f-fab3-430a-8fa3-5241493d7128Filter using the nodepool.
1Filter using the department id.
1Select a telemetry type.
Executed successfully.
specifies what data returned
ALLOCATION_RATIO2023-06-06 12:09:18.211Bad request.
Unauthorized
Forbidden
unexpected error
GET /api/v1/org-unit/projects/telemetry?telemetryType=GPU_QUOTA HTTP/1.1
Host: app.run.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"type": "ALLOCATION_RATIO",
"timestamp": "2023-06-06 12:09:18.211",
"values": [
{
"value": "85",
"groups": [
{
"key": "department",
"value": "1",
"name": "department-A"
}
]
}
]
}count projects
Bearer authentication
Filter results by a parameter. Use the format field-name operator value. Operators are == Equals, != Not equals, <= Less than or equal, >= Greater than or equal, =@ contains, !@ Does not contains, =^ Starts with and =$ Ends with. Dates are in ISO 8601 timestamp format and available for operators ==, !=, <= and >=.
["name!=some-name"]Filter results by a free text search.
test projectok
1Bad request.
Unauthorized
Forbidden
unexpected error
GET /api/v1/org-unit/projects/count HTTP/1.1
Host: app.run.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"count": 1
}Retrieves data from the metrics database. \n Use in reporting and analysis tools. \n Use a time range to return historical data (optional). If you use a start date, an end date is required.
Bearer authentication
The Universally Unique Identifier (UUID) of the cluster.
9f55255e-11ed-47c7-acef-fc4054768dbcStart of time range to fetch data from in UTC format.
2023-06-06 12:09:18.211End of time range to fetch data from in UTC format.
2023-06-07 12:09:18.211The number of samples to take in the specified time range.
20Example: 20Filter by unique nodepool name.
defaultSuccessfully retrieved metrics for all projects.
Unauthorized
Forbidden
The specified resource was not found
unexpected error
unexpected error
GET /v1/k8s/clusters/{clusterUuid}/projects/metrics HTTP/1.1
Host: app.run.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"data": [
{
"metadata": {
"projectId": 1,
"projectName": "project-a",
"departmentId": 8,
"departmentName": "default",
"clusterId": "71f69d83-ba66-4822-adf5-55ce55efd210",
"clusterName": "cluster-a"
},
"current": {
"resources": [
{
"numberOfPendingWorkloads": 1,
"gpu": {
"quota": 3,
"allocated": 2.5,
"utilization": 0.765
},
"cpu": {
"quota": 3,
"allocated": 2.5,
"utilization": 0.765
},
"memory": {
"quota": 3,
"allocated": 2.5,
"utilization": 0.765
},
"nodepoolName": "nodepoola"
}
]
},
"timeRange": null
}
],
"timeRange": {
"resources": [
{
"numberOfPendingWorkloads": 1,
"gpu": {
"quota": 3,
"allocated": 2.5,
"utilization": 0.765
},
"cpu": {
"quota": 3,
"allocated": 2.5,
"utilization": 0.765
},
"memory": {
"quota": 3,
"allocated": 2.5,
"utilization": 0.765
},
"timestamp": "2023-06-06T12:09:18.211Z"
}
]
}
}Retrieves data from the metrics database. \n Use in reporting and analysis tools. \n Use a time range to return historical data (optional). If you use a start date, an end date is required.
Bearer authentication
The Universally Unique Identifier (UUID) of the cluster.
9f55255e-11ed-47c7-acef-fc4054768dbcThe unique project-id of the project.
Start of time range to fetch data from in UTC format.
2023-06-06 12:09:18.211End of time range to fetch data from in UTC format.
2023-06-07 12:09:18.211The number of samples to take in the specified time range.
20Example: 20Filter by unique nodepool name.
defaultSuccessfully retrieved metrics for the project.
Unauthorized
Forbidden
The specified resource was not found
unexpected error
unexpected error
GET /v1/k8s/clusters/{clusterUuid}/projects/{projectId}/metrics HTTP/1.1
Host: app.run.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"metadata": {
"projectId": 1,
"projectName": "project-a",
"departmentId": 8,
"departmentName": "default",
"clusterId": "71f69d83-ba66-4822-adf5-55ce55efd210",
"clusterName": "cluster-a"
},
"current": {
"resources": [
{
"numberOfPendingWorkloads": 1,
"gpu": {
"quota": 3,
"allocated": 2.5,
"utilization": 0.765
},
"cpu": {
"quota": 3,
"allocated": 2.5,
"utilization": 0.765
},
"memory": {
"quota": 3,
"allocated": 2.5,
"utilization": 0.765
},
"nodepoolName": "nodepoola"
}
]
},
"timeRange": {
"resources": [
{
"numberOfPendingWorkloads": 1,
"gpu": {
"quota": 3,
"allocated": 2.5,
"utilization": 0.765
},
"cpu": {
"quota": 3,
"allocated": 2.5,
"utilization": 0.765
},
"memory": {
"quota": 3,
"allocated": 2.5,
"utilization": 0.765
},
"timestamp": "2023-06-06T12:09:18.211Z"
}
]
}
}Retrieves a list of all projects and details from a specific cluster. Use in reporting and analysis tools. Deprecated - use /api/v1/org-unit/projects instead.
Bearer authentication
The Universally Unique Identifier (UUID) of the cluster.
9f55255e-11ed-47c7-acef-fc4054768dbcBackward compatibility of the 'permissions' field. If 'true', the 'permissions' field in the returned projects is not set. If 'false', the 'permissions' field is set in the returned projects.
trueMemory returned in MB. When set to false (default) memory will be returned in MiB.
trueSuccessfully retrieved a list of all the projects.
GET /v1/k8s/clusters/{clusterId}/projects HTTP/1.1
Host: app.run.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Successfully retrieved a list of all the projects.
[
{
"name": "team-a",
"nodePoolsResources": [
{
"id": 1
},
{
"nodePool": {
"id": 3,
"name": "default"
},
"gpu": {
"deserved": 0,
"maxAllowed": 1000,
"overQuotaWeight": 2
},
"cpu": {
"deserved": 0,
"maxAllowed": 1000,
"overQuotaWeight": 2
},
"memory": {
"deserved": 0,
"maxAllowed": 1000,
"overQuotaWeight": 2
}
}
],
"namespace": "ns-proj1",
"id": 5,
"departmentId": 2,
"tenantId": 2,
"clusterUuid": "71f69d83-ba66-4822-adf5-55ce55efd210",
"departmentName": "department-a",
"interactiveNodeAffinity": "none",
"trainNodeAffinity": "none",
"createdAt": "2021-12-14T16:04:15.099Z",
"status": {
"namespace": "runai-team-a",
"message": "NamespaceHandlerFailed",
"quotaStatuses": []
},
"phase": "Ready"
},
{
"defaultNodePools": [
"default"
],
"interactiveJobTimeLimitSecs": 3600,
"interactiveJobMaxIdleDurationSecs": 3000,
"interactivePreemptibleJobMaxIdleDurationSecs": 3000,
"trainingJobTimeLimitSecs": 3600,
"trainingJobMaxIdleDurationSecs": 3000,
"nodeAffinity": {
"train": {
"affinityType": "no_limit",
"selectedTypes": []
},
"interactive": {
"affinityType": "no_limit",
"selectedTypes": []
}
}
}
]Creates a new project in a specific cluster. Deprecated - use /api/v1/org-unit/projects instead.
Bearer authentication
The Universally Unique Identifier (UUID) of the cluster.
9f55255e-11ed-47c7-acef-fc4054768dbcBackward compatibility of the permissions field. If true, the
permissions field in the request body is ignored. If false,
relevant access rules for the permissions field are created in the project scope.
trueProject created successfully.
Bad Project request.
Project creation failed.
POST /v1/k8s/clusters/{clusterId}/projects HTTP/1.1
Host: app.run.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 443
{
"name": "team-a",
"departmentId": 2,
"nodePoolsResources": [],
"namespace": "ns-proj1",
"defaultNodePools": [
"default"
],
"interactiveJobTimeLimitSecs": 3600,
"interactiveJobMaxIdleDurationSecs": 3000,
"interactivePreemptibleJobMaxIdleDurationSecs": 3000,
"trainingJobTimeLimitSecs": 3600,
"trainingJobMaxIdleDurationSecs": 3000,
"nodeAffinity": {
"train": {
"affinityType": "no_limit",
"selectedTypes": []
},
"interactive": {
"affinityType": "no_limit",
"selectedTypes": []
}
}
}{
"name": "team-a",
"nodePoolsResources": [
{
"id": 1
},
{
"nodePool": {
"id": 3,
"name": "default"
},
"gpu": {
"deserved": 0,
"maxAllowed": 1000,
"overQuotaWeight": 2
},
"cpu": {
"deserved": 0,
"maxAllowed": 1000,
"overQuotaWeight": 2
},
"memory": {
"deserved": 0,
"maxAllowed": 1000,
"overQuotaWeight": 2
}
}
],
"namespace": "ns-proj1",
"id": 5,
"departmentId": 2,
"tenantId": 2,
"clusterUuid": "71f69d83-ba66-4822-adf5-55ce55efd210",
"departmentName": "department-a",
"interactiveNodeAffinity": "none",
"trainNodeAffinity": "none",
"createdAt": "2021-12-14T16:04:15.099Z",
"status": {
"namespace": "runai-team-a",
"message": "NamespaceHandlerFailed",
"quotaStatuses": []
},
"phase": "Ready",
"defaultNodePools": [
"default"
],
"interactiveJobTimeLimitSecs": 3600,
"interactiveJobMaxIdleDurationSecs": 3000,
"interactivePreemptibleJobMaxIdleDurationSecs": 3000,
"trainingJobTimeLimitSecs": 3600,
"trainingJobMaxIdleDurationSecs": 3000,
"nodeAffinity": {
"train": {
"affinityType": "no_limit",
"selectedTypes": []
},
"interactive": {
"affinityType": "no_limit",
"selectedTypes": []
}
}
}Retrieves the details of a specific project from a specific cluster. Use for project analysis. Requires view permissions to the queried project. Deprecated - use /api/v1/org-unit/projects/{projectId} instead.
Bearer authentication
The Universally Unique Identifier (UUID) of the cluster.
9f55255e-11ed-47c7-acef-fc4054768dbcThe unique project-id identifying the project.
Backward compatibility of the 'permissions' field. If 'true', the 'permissions' field in the returned projects is not set. If 'false', the 'permissions' field is set in the returned projects.
trueSuccessfully retrieved project details.
Project not found.
GET /v1/k8s/clusters/{clusterId}/projects/{id} HTTP/1.1
Host: app.run.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"name": "team-a",
"nodePoolsResources": [
{
"id": 1
},
{
"nodePool": {
"id": 3,
"name": "default"
},
"gpu": {
"deserved": 0,
"maxAllowed": 1000,
"overQuotaWeight": 2
},
"cpu": {
"deserved": 0,
"maxAllowed": 1000,
"overQuotaWeight": 2
},
"memory": {
"deserved": 0,
"maxAllowed": 1000,
"overQuotaWeight": 2
}
}
],
"namespace": "ns-proj1",
"id": 5,
"departmentId": 2,
"tenantId": 2,
"clusterUuid": "71f69d83-ba66-4822-adf5-55ce55efd210",
"departmentName": "department-a",
"interactiveNodeAffinity": "none",
"trainNodeAffinity": "none",
"createdAt": "2021-12-14T16:04:15.099Z",
"status": {
"namespace": "runai-team-a",
"message": "NamespaceHandlerFailed",
"quotaStatuses": []
},
"phase": "Ready",
"defaultNodePools": [
"default"
],
"interactiveJobTimeLimitSecs": 3600,
"interactiveJobMaxIdleDurationSecs": 3000,
"interactivePreemptibleJobMaxIdleDurationSecs": 3000,
"trainingJobTimeLimitSecs": 3600,
"trainingJobMaxIdleDurationSecs": 3000,
"nodeAffinity": {
"train": {
"affinityType": "no_limit",
"selectedTypes": []
},
"interactive": {
"affinityType": "no_limit",
"selectedTypes": []
}
}
}Updates a project's details in a specific cluster. For example, node pool resources, and others. Deprecated - use /api/v1/org-unit/projects/{projectId} instead.
Bearer authentication
The unique project-id.
The Universally Unique Identifier (UUID) of the cluster.
9f55255e-11ed-47c7-acef-fc4054768dbcBackward compatibility of the permissions field. If true, the
permissions field in the returned projects is not set. If false,
the permissions field is set in the returned projects.
trueAn updated project details.
Bad project request.
Project not found.
Could not update the project.
PUT /v1/k8s/clusters/{clusterId}/projects/{id} HTTP/1.1
Host: app.run.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 614
{
"nodePoolsResources": [
{
"id": 1
},
{
"nodePool": {
"id": 3,
"name": "default"
},
"gpu": {
"deserved": 0,
"maxAllowed": 1000,
"overQuotaWeight": 2
},
"cpu": {
"deserved": 0,
"maxAllowed": 1000,
"overQuotaWeight": 2
},
"memory": {
"deserved": 0,
"maxAllowed": 1000,
"overQuotaWeight": 2
}
}
],
"defaultNodePools": [
"default"
],
"interactiveJobTimeLimitSecs": 3600,
"interactiveJobMaxIdleDurationSecs": 3000,
"interactivePreemptibleJobMaxIdleDurationSecs": 3000,
"trainingJobTimeLimitSecs": 3600,
"trainingJobMaxIdleDurationSecs": 3000,
"nodeAffinity": {
"train": {
"affinityType": "no_limit",
"selectedTypes": []
},
"interactive": {
"affinityType": "no_limit",
"selectedTypes": []
}
}
}{
"name": "team-a",
"nodePoolsResources": [
{
"id": 1
},
{
"nodePool": {
"id": 3,
"name": "default"
},
"gpu": {
"deserved": 0,
"maxAllowed": 1000,
"overQuotaWeight": 2
},
"cpu": {
"deserved": 0,
"maxAllowed": 1000,
"overQuotaWeight": 2
},
"memory": {
"deserved": 0,
"maxAllowed": 1000,
"overQuotaWeight": 2
}
}
],
"namespace": "ns-proj1",
"id": 5,
"departmentId": 2,
"tenantId": 2,
"clusterUuid": "71f69d83-ba66-4822-adf5-55ce55efd210",
"departmentName": "department-a",
"interactiveNodeAffinity": "none",
"trainNodeAffinity": "none",
"createdAt": "2021-12-14T16:04:15.099Z",
"status": {
"namespace": "runai-team-a",
"message": "NamespaceHandlerFailed",
"quotaStatuses": []
},
"phase": "Ready",
"defaultNodePools": [
"default"
],
"interactiveJobTimeLimitSecs": 3600,
"interactiveJobMaxIdleDurationSecs": 3000,
"interactivePreemptibleJobMaxIdleDurationSecs": 3000,
"trainingJobTimeLimitSecs": 3600,
"trainingJobMaxIdleDurationSecs": 3000,
"nodeAffinity": {
"train": {
"affinityType": "no_limit",
"selectedTypes": []
},
"interactive": {
"affinityType": "no_limit",
"selectedTypes": []
}
}
}Deletes a project from a specific cluster. Deprecated - use /api/v1/org-unit/projects/{projectId} instead.
Bearer authentication
The Universally Unique Identifier (UUID) of the cluster.
9f55255e-11ed-47c7-acef-fc4054768dbcThe unique id of the project.
2Project deleted successfully.
Project not found.
DELETE /v1/k8s/clusters/{clusterId}/projects/{id} HTTP/1.1
Host: app.run.ai
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"name": "team-a",
"nodePoolsResources": [
{
"id": 1
},
{
"nodePool": {
"id": 3,
"name": "default"
},
"gpu": {
"deserved": 0,
"maxAllowed": 1000,
"overQuotaWeight": 2
},
"cpu": {
"deserved": 0,
"maxAllowed": 1000,
"overQuotaWeight": 2
},
"memory": {
"deserved": 0,
"maxAllowed": 1000,
"overQuotaWeight": 2
}
}
],
"namespace": "ns-proj1",
"id": 5,
"departmentId": 2,
"tenantId": 2,
"clusterUuid": "71f69d83-ba66-4822-adf5-55ce55efd210",
"departmentName": "department-a",
"interactiveNodeAffinity": "none",
"trainNodeAffinity": "none",
"createdAt": "2021-12-14T16:04:15.099Z",
"status": {
"namespace": "runai-team-a",
"message": "NamespaceHandlerFailed",
"quotaStatuses": []
},
"phase": "Ready",
"defaultNodePools": [
"default"
],
"interactiveJobTimeLimitSecs": 3600,
"interactiveJobMaxIdleDurationSecs": 3000,
"interactivePreemptibleJobMaxIdleDurationSecs": 3000,
"trainingJobTimeLimitSecs": 3600,
"trainingJobMaxIdleDurationSecs": 3000,
"nodeAffinity": {
"train": {
"affinityType": "no_limit",
"selectedTypes": []
},
"interactive": {
"affinityType": "no_limit",
"selectedTypes": []
}
}
}Last updated