Create an ingress route
POST
/api/proxy-hosts
const url = 'https://gateway.example.com/api/proxy-hosts';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"type":"proxy","nodeId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","domainNames":["example"],"upstreamKind":"manual","forwardHost":"example","forwardPort":1,"forwardScheme":"http","upstreamIpv6Enabled":false,"dockerNodeId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","dockerContainerName":"example","dockerComposeProjectId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","dockerComposeServiceName":"example","dockerDeploymentId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","dockerContainerPort":1,"dockerHostPort":1,"dockerProtocol":"tcp","pageProjectId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","pageTagId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","relaySpreadMode":"inherit","relaySpreadCount":1,"sslEnabled":false,"sslForced":false,"http2Support":true,"websocketSupport":false,"sslCertificateId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","internalCertificateId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","redirectUrl":"https://example.com","redirectStatusCode":301,"customHeaders":[],"cacheEnabled":false,"cacheOptions":{"maxAge":1,"staleWhileRevalidate":1},"rateLimitEnabled":false,"rateLimitMode":"inherit","rateLimitOptions":{"requestsPerSecond":1,"burst":1,"connectionsPerIp":1},"customRewrites":[],"advancedConfig":"example","rawConfig":"example","rawConfigEnabled":true,"accessListId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","folderId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","nginxTemplateId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","templateVariables":{"additionalProperty":"example"},"healthCheckEnabled":false,"healthCheckUrl":"example","healthCheckInterval":1,"healthCheckExpectedStatus":1,"healthCheckExpectedBody":"example","healthCheckBodyMatchMode":"includes","healthCheckSlowThreshold":1}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://gateway.example.com/api/proxy-hosts \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "type": "proxy", "nodeId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "domainNames": [ "example" ], "upstreamKind": "manual", "forwardHost": "example", "forwardPort": 1, "forwardScheme": "http", "upstreamIpv6Enabled": false, "dockerNodeId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "dockerContainerName": "example", "dockerComposeProjectId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "dockerComposeServiceName": "example", "dockerDeploymentId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "dockerContainerPort": 1, "dockerHostPort": 1, "dockerProtocol": "tcp", "pageProjectId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "pageTagId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "relaySpreadMode": "inherit", "relaySpreadCount": 1, "sslEnabled": false, "sslForced": false, "http2Support": true, "websocketSupport": false, "sslCertificateId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "internalCertificateId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "redirectUrl": "https://example.com", "redirectStatusCode": 301, "customHeaders": [], "cacheEnabled": false, "cacheOptions": { "maxAge": 1, "staleWhileRevalidate": 1 }, "rateLimitEnabled": false, "rateLimitMode": "inherit", "rateLimitOptions": { "requestsPerSecond": 1, "burst": 1, "connectionsPerIp": 1 }, "customRewrites": [], "advancedConfig": "example", "rawConfig": "example", "rawConfigEnabled": true, "accessListId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "folderId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "nginxTemplateId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "templateVariables": { "additionalProperty": "example" }, "healthCheckEnabled": false, "healthCheckUrl": "example", "healthCheckInterval": 1, "healthCheckExpectedStatus": 1, "healthCheckExpectedBody": "example", "healthCheckBodyMatchMode": "includes", "healthCheckSlowThreshold": 1 }'Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”JSON request body
Media typeapplication/json
object
type
string
nodeId
required
string format: uuid
domainNames
required
Array<string>
upstreamKind
string
forwardHost
string
forwardPort
integer
forwardScheme
string
upstreamIpv6Enabled
boolean
dockerNodeId
string format: uuid
dockerContainerName
string | null
dockerComposeProjectId
string | null format: uuid
dockerComposeServiceName
string | null
dockerDeploymentId
string format: uuid
dockerContainerPort
integer
dockerHostPort
integer
dockerProtocol
string
pageProjectId
string format: uuid
pageTagId
string format: uuid
relaySpreadMode
string
relaySpreadCount
integer | null
sslEnabled
boolean
sslForced
boolean
http2Support
boolean
websocketSupport
boolean
sslCertificateId
string format: uuid
internalCertificateId
string format: uuid
redirectUrl
string format: uri
customHeaders
Array<object>
object
name
required
string
value
required
string
cacheEnabled
boolean
cacheOptions
object
maxAge
integer
staleWhileRevalidate
integer
rateLimitEnabled
boolean
rateLimitMode
string
rateLimitOptions
object
requestsPerSecond
required
integer
burst
integer
connectionsPerIp
integer
customRewrites
Array<object>
object
source
required
string
destination
required
string
type
required
string
advancedConfig
string
rawConfig
string
rawConfigEnabled
boolean
accessListId
string format: uuid
folderId
string format: uuid
nginxTemplateId
string format: uuid
healthCheckEnabled
boolean
healthCheckUrl
string
healthCheckInterval
integer
healthCheckExpectedStatus
integer
healthCheckExpectedBody
string
healthCheckBodyMatchMode
string
healthCheckSlowThreshold
integer
Responses
Section titled “Responses”Created
Media typeapplication/json
object
data
required
Resource object. Exact fields depend on the endpoint.
object
id
string
name
string
key
additional properties
Example
{ "data": { "id": "550e8400-e29b-41d4-a716-446655440000", "domainNames": [ "app.example.com" ], "forwardHost": "10.0.0.10", "forwardPort": 3000, "enabled": true }}Bad request
Media typeapplication/json
object
code
required
Error code
string
message
required
Human-readable error message
string
details
Additional error details
Example
{ "code": "VALIDATION_ERROR", "message": "Request validation failed", "details": [ { "path": [ "name" ], "message": "Required" } ]}Authentication required
Media typeapplication/json
object
code
required
Error code
string
message
required
Human-readable error message
string
details
Additional error details
Example
{ "code": "UNAUTHORIZED", "message": "Authentication required"}Forbidden
Media typeapplication/json
object
code
required
Error code
string
message
required
Human-readable error message
string
details
Additional error details
Example
{ "code": "FORBIDDEN", "message": "Insufficient permissions"}Not found
Media typeapplication/json
object
code
required
Error code
string
message
required
Human-readable error message
string
details
Additional error details
Example
{ "code": "NOT_FOUND", "message": "Resource not found"}Conflict
Media typeapplication/json
object
code
required
Error code
string
message
required
Human-readable error message
string
details
Additional error details
Example
{ "code": "CONFLICT", "message": "Resource already exists"}Unprocessable entity
Media typeapplication/json
object
code
required
Error code
string
message
required
Human-readable error message
string
details
Additional error details
Example
{ "code": "UNPROCESSABLE_ENTITY", "message": "Request could not be processed"}Internal server error
Media typeapplication/json
object
code
required
Error code
string
message
required
Human-readable error message
string
details
Additional error details
Example
{ "code": "INTERNAL_ERROR", "message": "Internal server error"}