curl --request POST \
--url https://api.deepinfra.com/deploy/{deploy_id}/rebalance \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"target_deploy_id": "<string>",
"count": 1073741824,
"concurrency": 1,
"dry_run": false
}
'import requests
url = "https://api.deepinfra.com/deploy/{deploy_id}/rebalance"
payload = {
"target_deploy_id": "<string>",
"count": 1073741824,
"concurrency": 1,
"dry_run": False
}
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({
target_deploy_id: '<string>',
count: 1073741824,
concurrency: 1,
dry_run: false
})
};
fetch('https://api.deepinfra.com/deploy/{deploy_id}/rebalance', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.deepinfra.com/deploy/{deploy_id}/rebalance",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'target_deploy_id' => '<string>',
'count' => 1073741824,
'concurrency' => 1,
'dry_run' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.deepinfra.com/deploy/{deploy_id}/rebalance"
payload := strings.NewReader("{\n \"target_deploy_id\": \"<string>\",\n \"count\": 1073741824,\n \"concurrency\": 1,\n \"dry_run\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.deepinfra.com/deploy/{deploy_id}/rebalance")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"target_deploy_id\": \"<string>\",\n \"count\": 1073741824,\n \"concurrency\": 1,\n \"dry_run\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.deepinfra.com/deploy/{deploy_id}/rebalance")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"target_deploy_id\": \"<string>\",\n \"count\": 1073741824,\n \"concurrency\": 1,\n \"dry_run\": false\n}"
response = http.request(request)
puts response.read_body{
"gpu": "<string>",
"source_instances": 123,
"source_instances_after": 123,
"target_instances": 123,
"target_instances_after": 123,
"replace_id": ""
}{
"error": "Model not found"
}{
"error": "Model not found"
}{
"error": "Model not found"
}{
"error": "Model not found"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"error": "Model not found"
}Deploy Rebalance
Start a GPU pool rebalance: move GPUs from this deployment onto another deployment you own, a target instance at a time unless concurrency raises it. A source instance is never left half-moved, so one larger target instance stops several of this deployment’s at once, and one larger source instance is replaced by several target instances at once. Moving all instances stops this deployment; start it again later to resume it.
curl --request POST \
--url https://api.deepinfra.com/deploy/{deploy_id}/rebalance \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"target_deploy_id": "<string>",
"count": 1073741824,
"concurrency": 1,
"dry_run": false
}
'import requests
url = "https://api.deepinfra.com/deploy/{deploy_id}/rebalance"
payload = {
"target_deploy_id": "<string>",
"count": 1073741824,
"concurrency": 1,
"dry_run": False
}
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({
target_deploy_id: '<string>',
count: 1073741824,
concurrency: 1,
dry_run: false
})
};
fetch('https://api.deepinfra.com/deploy/{deploy_id}/rebalance', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.deepinfra.com/deploy/{deploy_id}/rebalance",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'target_deploy_id' => '<string>',
'count' => 1073741824,
'concurrency' => 1,
'dry_run' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.deepinfra.com/deploy/{deploy_id}/rebalance"
payload := strings.NewReader("{\n \"target_deploy_id\": \"<string>\",\n \"count\": 1073741824,\n \"concurrency\": 1,\n \"dry_run\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.deepinfra.com/deploy/{deploy_id}/rebalance")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"target_deploy_id\": \"<string>\",\n \"count\": 1073741824,\n \"concurrency\": 1,\n \"dry_run\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.deepinfra.com/deploy/{deploy_id}/rebalance")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"target_deploy_id\": \"<string>\",\n \"count\": 1073741824,\n \"concurrency\": 1,\n \"dry_run\": false\n}"
response = http.request(request)
puts response.read_body{
"gpu": "<string>",
"source_instances": 123,
"source_instances_after": 123,
"target_instances": 123,
"target_instances_after": 123,
"replace_id": ""
}{
"error": "Model not found"
}{
"error": "Model not found"
}{
"error": "Model not found"
}{
"error": "Model not found"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"error": "Model not found"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
Deployment to grow using GPUs freed from this one.
Number of target instances to create.
1 <= x <= 2147483647How many target instances may start at once (default 1). Higher finishes sooner at a deeper dip in source capacity; clamped to count. How many source instances that takes down depends on their relative size: one target instance the size of 4 source instances stops 4 of them at once, while a source instance that yields 4 target instances is always drained in one go, starting all 4.
1 <= x <= 5Validate and preview without moving anything.
Response
Successful Response
GPU type being rebalanced.
Source instances now.
Source instances once the rebalance completes.
Target instances now.
Target instances once the rebalance completes.
Id of the started rebalance; empty on a dry run.