curl --request POST \
--url https://api.gcore.com/cloud/v3/inference/applications/{project_id}/deployments \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"application_name": "demo-app",
"components_configuration": {
"model": {
"exposed": true,
"flavor": "inference-16vcpu-232gib-1xh100-80gb",
"scale": {
"max": 1,
"min": 1
}
}
},
"name": "my-app-deployment",
"regions": [
1,
2
],
"api_keys": [
"key1",
"key2"
]
}
'import requests
url = "https://api.gcore.com/cloud/v3/inference/applications/{project_id}/deployments"
payload = {
"application_name": "demo-app",
"components_configuration": { "model": {
"exposed": True,
"flavor": "inference-16vcpu-232gib-1xh100-80gb",
"scale": {
"max": 1,
"min": 1
}
} },
"name": "my-app-deployment",
"regions": [1, 2],
"api_keys": ["key1", "key2"]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
application_name: 'demo-app',
components_configuration: {
model: {
exposed: true,
flavor: 'inference-16vcpu-232gib-1xh100-80gb',
scale: {max: 1, min: 1}
}
},
name: 'my-app-deployment',
regions: [1, 2],
api_keys: ['key1', 'key2']
})
};
fetch('https://api.gcore.com/cloud/v3/inference/applications/{project_id}/deployments', 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.gcore.com/cloud/v3/inference/applications/{project_id}/deployments",
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([
'application_name' => 'demo-app',
'components_configuration' => [
'model' => [
'exposed' => true,
'flavor' => 'inference-16vcpu-232gib-1xh100-80gb',
'scale' => [
'max' => 1,
'min' => 1
]
]
],
'name' => 'my-app-deployment',
'regions' => [
1,
2
],
'api_keys' => [
'key1',
'key2'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.gcore.com/cloud/v3/inference/applications/{project_id}/deployments"
payload := strings.NewReader("{\n \"application_name\": \"demo-app\",\n \"components_configuration\": {\n \"model\": {\n \"exposed\": true,\n \"flavor\": \"inference-16vcpu-232gib-1xh100-80gb\",\n \"scale\": {\n \"max\": 1,\n \"min\": 1\n }\n }\n },\n \"name\": \"my-app-deployment\",\n \"regions\": [\n 1,\n 2\n ],\n \"api_keys\": [\n \"key1\",\n \"key2\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.gcore.com/cloud/v3/inference/applications/{project_id}/deployments")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"application_name\": \"demo-app\",\n \"components_configuration\": {\n \"model\": {\n \"exposed\": true,\n \"flavor\": \"inference-16vcpu-232gib-1xh100-80gb\",\n \"scale\": {\n \"max\": 1,\n \"min\": 1\n }\n }\n },\n \"name\": \"my-app-deployment\",\n \"regions\": [\n 1,\n 2\n ],\n \"api_keys\": [\n \"key1\",\n \"key2\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/cloud/v3/inference/applications/{project_id}/deployments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"application_name\": \"demo-app\",\n \"components_configuration\": {\n \"model\": {\n \"exposed\": true,\n \"flavor\": \"inference-16vcpu-232gib-1xh100-80gb\",\n \"scale\": {\n \"max\": 1,\n \"min\": 1\n }\n }\n },\n \"name\": \"my-app-deployment\",\n \"regions\": [\n 1,\n 2\n ],\n \"api_keys\": [\n \"key1\",\n \"key2\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"tasks": [
"d478ae29-dedc-4869-82f0-96104425f565"
]
}Create inference application deployment
Creates a new application deployment based on a selected catalog application. Specify the desired deployment name, target regions, and configuration for each component. The platform will provision the necessary resources and initialize the application accordingly.
curl --request POST \
--url https://api.gcore.com/cloud/v3/inference/applications/{project_id}/deployments \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"application_name": "demo-app",
"components_configuration": {
"model": {
"exposed": true,
"flavor": "inference-16vcpu-232gib-1xh100-80gb",
"scale": {
"max": 1,
"min": 1
}
}
},
"name": "my-app-deployment",
"regions": [
1,
2
],
"api_keys": [
"key1",
"key2"
]
}
'import requests
url = "https://api.gcore.com/cloud/v3/inference/applications/{project_id}/deployments"
payload = {
"application_name": "demo-app",
"components_configuration": { "model": {
"exposed": True,
"flavor": "inference-16vcpu-232gib-1xh100-80gb",
"scale": {
"max": 1,
"min": 1
}
} },
"name": "my-app-deployment",
"regions": [1, 2],
"api_keys": ["key1", "key2"]
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
application_name: 'demo-app',
components_configuration: {
model: {
exposed: true,
flavor: 'inference-16vcpu-232gib-1xh100-80gb',
scale: {max: 1, min: 1}
}
},
name: 'my-app-deployment',
regions: [1, 2],
api_keys: ['key1', 'key2']
})
};
fetch('https://api.gcore.com/cloud/v3/inference/applications/{project_id}/deployments', 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.gcore.com/cloud/v3/inference/applications/{project_id}/deployments",
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([
'application_name' => 'demo-app',
'components_configuration' => [
'model' => [
'exposed' => true,
'flavor' => 'inference-16vcpu-232gib-1xh100-80gb',
'scale' => [
'max' => 1,
'min' => 1
]
]
],
'name' => 'my-app-deployment',
'regions' => [
1,
2
],
'api_keys' => [
'key1',
'key2'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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.gcore.com/cloud/v3/inference/applications/{project_id}/deployments"
payload := strings.NewReader("{\n \"application_name\": \"demo-app\",\n \"components_configuration\": {\n \"model\": {\n \"exposed\": true,\n \"flavor\": \"inference-16vcpu-232gib-1xh100-80gb\",\n \"scale\": {\n \"max\": 1,\n \"min\": 1\n }\n }\n },\n \"name\": \"my-app-deployment\",\n \"regions\": [\n 1,\n 2\n ],\n \"api_keys\": [\n \"key1\",\n \"key2\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.gcore.com/cloud/v3/inference/applications/{project_id}/deployments")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"application_name\": \"demo-app\",\n \"components_configuration\": {\n \"model\": {\n \"exposed\": true,\n \"flavor\": \"inference-16vcpu-232gib-1xh100-80gb\",\n \"scale\": {\n \"max\": 1,\n \"min\": 1\n }\n }\n },\n \"name\": \"my-app-deployment\",\n \"regions\": [\n 1,\n 2\n ],\n \"api_keys\": [\n \"key1\",\n \"key2\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/cloud/v3/inference/applications/{project_id}/deployments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"application_name\": \"demo-app\",\n \"components_configuration\": {\n \"model\": {\n \"exposed\": true,\n \"flavor\": \"inference-16vcpu-232gib-1xh100-80gb\",\n \"scale\": {\n \"max\": 1,\n \"min\": 1\n }\n }\n },\n \"name\": \"my-app-deployment\",\n \"regions\": [\n 1,\n 2\n ],\n \"api_keys\": [\n \"key1\",\n \"key2\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"tasks": [
"d478ae29-dedc-4869-82f0-96104425f565"
]
}Authorizations
API key for authentication. Make sure to include the word apikey, followed by a single space and then your token.
Example: apikey 1234$abcdef
Path Parameters
Project ID
1
Body
Identifier of the application from the catalog
"demo-app"
Mapping of component names to their configuration (e.g., "model": {...})
Show child attributes
Show child attributes
{
"model": {
"exposed": true,
"flavor": "inference-16vcpu-232gib-1xh100-80gb",
"scale": { "max": 1, "min": 1 }
}
}
Desired name for the new deployment
15"my-app-deployment"
Geographical regions where the deployment should be created
[1, 2]
List of API keys for the application
["key1", "key2"]
Response
OK
List of task IDs representing asynchronous operations. Use these IDs to monitor operation progress:
GET /v1/tasks/{task_id}- Check individual task status and details Poll task status until completion (FINISHED/ERROR) before proceeding with dependent operations.
["d478ae29-dedc-4869-82f0-96104425f565"]
Was this page helpful?