curl --request PUT \
--url https://api.gcore.com/security/edgeproxy/v3/profiles/{proxy_profile_id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "web-server-profile-updated",
"origin_host": "1.1.1.1",
"rules": [
{
"mappings": [
{
"port": 80,
"protocol": "tcp",
"proxy_protocol": {
"accept_proxy": true,
"version": "2"
},
"rule_id": "3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f"
}
],
"policy": "allow"
}
],
"template_id": 3
}
'import requests
url = "https://api.gcore.com/security/edgeproxy/v3/profiles/{proxy_profile_id}"
payload = {
"name": "web-server-profile-updated",
"origin_host": "1.1.1.1",
"rules": [
{
"mappings": [
{
"port": 80,
"protocol": "tcp",
"proxy_protocol": {
"accept_proxy": True,
"version": "2"
},
"rule_id": "3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f"
}
],
"policy": "allow"
}
],
"template_id": 3
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'web-server-profile-updated',
origin_host: '1.1.1.1',
rules: [
{
mappings: [
{
port: 80,
protocol: 'tcp',
proxy_protocol: {accept_proxy: true, version: '2'},
rule_id: '3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f'
}
],
policy: 'allow'
}
],
template_id: 3
})
};
fetch('https://api.gcore.com/security/edgeproxy/v3/profiles/{proxy_profile_id}', 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/security/edgeproxy/v3/profiles/{proxy_profile_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'web-server-profile-updated',
'origin_host' => '1.1.1.1',
'rules' => [
[
'mappings' => [
[
'port' => 80,
'protocol' => 'tcp',
'proxy_protocol' => [
'accept_proxy' => true,
'version' => '2'
],
'rule_id' => '3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f'
]
],
'policy' => 'allow'
]
],
'template_id' => 3
]),
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/security/edgeproxy/v3/profiles/{proxy_profile_id}"
payload := strings.NewReader("{\n \"name\": \"web-server-profile-updated\",\n \"origin_host\": \"1.1.1.1\",\n \"rules\": [\n {\n \"mappings\": [\n {\n \"port\": 80,\n \"protocol\": \"tcp\",\n \"proxy_protocol\": {\n \"accept_proxy\": true,\n \"version\": \"2\"\n },\n \"rule_id\": \"3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f\"\n }\n ],\n \"policy\": \"allow\"\n }\n ],\n \"template_id\": 3\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.gcore.com/security/edgeproxy/v3/profiles/{proxy_profile_id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"web-server-profile-updated\",\n \"origin_host\": \"1.1.1.1\",\n \"rules\": [\n {\n \"mappings\": [\n {\n \"port\": 80,\n \"protocol\": \"tcp\",\n \"proxy_protocol\": {\n \"accept_proxy\": true,\n \"version\": \"2\"\n },\n \"rule_id\": \"3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f\"\n }\n ],\n \"policy\": \"allow\"\n }\n ],\n \"template_id\": 3\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/security/edgeproxy/v3/profiles/{proxy_profile_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"web-server-profile-updated\",\n \"origin_host\": \"1.1.1.1\",\n \"rules\": [\n {\n \"mappings\": [\n {\n \"port\": 80,\n \"protocol\": \"tcp\",\n \"proxy_protocol\": {\n \"accept_proxy\": true,\n \"version\": \"2\"\n },\n \"rule_id\": \"3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f\"\n }\n ],\n \"policy\": \"allow\"\n }\n ],\n \"template_id\": 3\n}"
response = http.request(request)
puts response.read_body{
"client_id": 7,
"created_at": "2025-11-15T10:30:00Z",
"id": 42,
"is_error": false,
"is_processing": false,
"name": "web-server-profile",
"origin_host": "8.8.8.8",
"protected_ip_address": "10.0.0.50",
"rules": [
{
"mappings": [
{
"port": 80,
"protocol": "tcp",
"proxy_protocol": {
"accept_proxy": true,
"version": "2"
},
"rule_id": "3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f"
},
{
"port": 53,
"protocol": "udp",
"rule_id": "7a9e0d2c-4b1f-4c3a-8e5d-6f7a8b9c0d1e"
}
],
"policy": "allow"
}
],
"status": "ACTIVE",
"template_id": 3
}{}{}{}{}{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Replace proxy profile
Replace an existing edge proxy profile’s name, origin, template and ACL rules.
curl --request PUT \
--url https://api.gcore.com/security/edgeproxy/v3/profiles/{proxy_profile_id} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "web-server-profile-updated",
"origin_host": "1.1.1.1",
"rules": [
{
"mappings": [
{
"port": 80,
"protocol": "tcp",
"proxy_protocol": {
"accept_proxy": true,
"version": "2"
},
"rule_id": "3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f"
}
],
"policy": "allow"
}
],
"template_id": 3
}
'import requests
url = "https://api.gcore.com/security/edgeproxy/v3/profiles/{proxy_profile_id}"
payload = {
"name": "web-server-profile-updated",
"origin_host": "1.1.1.1",
"rules": [
{
"mappings": [
{
"port": 80,
"protocol": "tcp",
"proxy_protocol": {
"accept_proxy": True,
"version": "2"
},
"rule_id": "3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f"
}
],
"policy": "allow"
}
],
"template_id": 3
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'web-server-profile-updated',
origin_host: '1.1.1.1',
rules: [
{
mappings: [
{
port: 80,
protocol: 'tcp',
proxy_protocol: {accept_proxy: true, version: '2'},
rule_id: '3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f'
}
],
policy: 'allow'
}
],
template_id: 3
})
};
fetch('https://api.gcore.com/security/edgeproxy/v3/profiles/{proxy_profile_id}', 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/security/edgeproxy/v3/profiles/{proxy_profile_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'web-server-profile-updated',
'origin_host' => '1.1.1.1',
'rules' => [
[
'mappings' => [
[
'port' => 80,
'protocol' => 'tcp',
'proxy_protocol' => [
'accept_proxy' => true,
'version' => '2'
],
'rule_id' => '3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f'
]
],
'policy' => 'allow'
]
],
'template_id' => 3
]),
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/security/edgeproxy/v3/profiles/{proxy_profile_id}"
payload := strings.NewReader("{\n \"name\": \"web-server-profile-updated\",\n \"origin_host\": \"1.1.1.1\",\n \"rules\": [\n {\n \"mappings\": [\n {\n \"port\": 80,\n \"protocol\": \"tcp\",\n \"proxy_protocol\": {\n \"accept_proxy\": true,\n \"version\": \"2\"\n },\n \"rule_id\": \"3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f\"\n }\n ],\n \"policy\": \"allow\"\n }\n ],\n \"template_id\": 3\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.gcore.com/security/edgeproxy/v3/profiles/{proxy_profile_id}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"web-server-profile-updated\",\n \"origin_host\": \"1.1.1.1\",\n \"rules\": [\n {\n \"mappings\": [\n {\n \"port\": 80,\n \"protocol\": \"tcp\",\n \"proxy_protocol\": {\n \"accept_proxy\": true,\n \"version\": \"2\"\n },\n \"rule_id\": \"3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f\"\n }\n ],\n \"policy\": \"allow\"\n }\n ],\n \"template_id\": 3\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gcore.com/security/edgeproxy/v3/profiles/{proxy_profile_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"web-server-profile-updated\",\n \"origin_host\": \"1.1.1.1\",\n \"rules\": [\n {\n \"mappings\": [\n {\n \"port\": 80,\n \"protocol\": \"tcp\",\n \"proxy_protocol\": {\n \"accept_proxy\": true,\n \"version\": \"2\"\n },\n \"rule_id\": \"3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f\"\n }\n ],\n \"policy\": \"allow\"\n }\n ],\n \"template_id\": 3\n}"
response = http.request(request)
puts response.read_body{
"client_id": 7,
"created_at": "2025-11-15T10:30:00Z",
"id": 42,
"is_error": false,
"is_processing": false,
"name": "web-server-profile",
"origin_host": "8.8.8.8",
"protected_ip_address": "10.0.0.50",
"rules": [
{
"mappings": [
{
"port": 80,
"protocol": "tcp",
"proxy_protocol": {
"accept_proxy": true,
"version": "2"
},
"rule_id": "3f2b8c1e-5d4a-4e6b-9c7d-1a2b3c4d5e6f"
},
{
"port": 53,
"protocol": "udp",
"rule_id": "7a9e0d2c-4b1f-4c3a-8e5d-6f7a8b9c0d1e"
}
],
"policy": "allow"
}
],
"status": "ACTIVE",
"template_id": 3
}{}{}{}{}{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}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
Body
Name of the proxy profile
1 - 60Origin host (IPv4 address or FQDN) for the proxy profile.
Rules grouped by policy
1Show child attributes
Show child attributes
ID of the proxy template to render this profile with
Response
Successful Response
Unique identifier of the proxy profile
Identifier of the client owning this profile
Name of the proxy profile
Origin host (IPv4 address or FQDN) of the proxy profile
Protected IP address assigned to the profile
Current status of the proxy profile
INACTIVE, ACTIVE, DELETED Whether the profile is currently being processed
Whether the profile is in an error state
Details of the error if the profile is in an error state
Show child attributes
Show child attributes
Timestamp when the profile was created
ID of the proxy template bound to this profile
Show child attributes
Show child attributes
Was this page helpful?