Skip to content

Create a topology connection between two nodes

POST
/api/connections
curl --request POST \
--url https://example.com/api/connections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "environmentId": "example", "sourceType": "service", "sourceId": "example", "sourceHandle": "example", "targetType": "service", "targetId": "example", "targetHandle": "example", "port": 1, "protocol": "example", "label": "example", "direction": "forward" }'
Media typeapplication/json
object
environmentId
required
string
>= 1 characters
sourceType
required
string
Allowed values: service database external
sourceId
required
string
>= 1 characters
sourceHandle
string
nullable
targetType
required
string
Allowed values: service database external
targetId
required
string
>= 1 characters
targetHandle
string
nullable
port
integer
nullable
protocol
string
nullable
label
string
nullable
direction
string
default: none
Allowed values: forward none

Bad request — malformed input or failed validation.

Media typeapplication/json
object
code

Stable, machine-readable error code. Always present on the wire.

string
Allowed values: VALIDATION_ERROR READONLY_FIELD UNAUTHORIZED FORBIDDEN_SCOPE FORBIDDEN_ROLE NOT_FOUND CONFLICT IDEMPOTENCY_KEY_REUSED RATE_LIMITED SERVICE_UNAVAILABLE INTERNAL
message

Human-readable error message. Always present on the wire.

string
field

Field name when the error is tied to a specific input (e.g. validation).

string
hint

Optional, human-friendly hint for resolving the error.

string
requestId

Server-assigned request ID; quote this when reporting issues.

string
key
additional properties
any
Example
{
"code": "READONLY_FIELD",
"message": "Field \"exposedPorts\" is read-only and cannot be set via PATCH.",
"field": "exposedPorts",
"hint": "Exposed ports are discovered from the running container. Change the ports mapping in the compose file at composePath and redeploy.",
"requestId": "req_01H0…"
}

Unauthorized — missing or invalid bearer token.

Media typeapplication/json
object
code

Stable, machine-readable error code. Always present on the wire.

string
Allowed values: VALIDATION_ERROR READONLY_FIELD UNAUTHORIZED FORBIDDEN_SCOPE FORBIDDEN_ROLE NOT_FOUND CONFLICT IDEMPOTENCY_KEY_REUSED RATE_LIMITED SERVICE_UNAVAILABLE INTERNAL
message

Human-readable error message. Always present on the wire.

string
field

Field name when the error is tied to a specific input (e.g. validation).

string
hint

Optional, human-friendly hint for resolving the error.

string
requestId

Server-assigned request ID; quote this when reporting issues.

string
key
additional properties
any
Example
{
"code": "READONLY_FIELD",
"message": "Field \"exposedPorts\" is read-only and cannot be set via PATCH.",
"field": "exposedPorts",
"hint": "Exposed ports are discovered from the running container. Change the ports mapping in the compose file at composePath and redeploy.",
"requestId": "req_01H0…"
}

Forbidden — token scope or role does not permit this operation.

Media typeapplication/json
object
code

Stable, machine-readable error code. Always present on the wire.

string
Allowed values: VALIDATION_ERROR READONLY_FIELD UNAUTHORIZED FORBIDDEN_SCOPE FORBIDDEN_ROLE NOT_FOUND CONFLICT IDEMPOTENCY_KEY_REUSED RATE_LIMITED SERVICE_UNAVAILABLE INTERNAL
message

Human-readable error message. Always present on the wire.

string
field

Field name when the error is tied to a specific input (e.g. validation).

string
hint

Optional, human-friendly hint for resolving the error.

string
requestId

Server-assigned request ID; quote this when reporting issues.

string
key
additional properties
any
Example
{
"code": "READONLY_FIELD",
"message": "Field \"exposedPorts\" is read-only and cannot be set via PATCH.",
"field": "exposedPorts",
"hint": "Exposed ports are discovered from the running container. Change the ports mapping in the compose file at composePath and redeploy.",
"requestId": "req_01H0…"
}

Not found.

Media typeapplication/json
object
code

Stable, machine-readable error code. Always present on the wire.

string
Allowed values: VALIDATION_ERROR READONLY_FIELD UNAUTHORIZED FORBIDDEN_SCOPE FORBIDDEN_ROLE NOT_FOUND CONFLICT IDEMPOTENCY_KEY_REUSED RATE_LIMITED SERVICE_UNAVAILABLE INTERNAL
message

Human-readable error message. Always present on the wire.

string
field

Field name when the error is tied to a specific input (e.g. validation).

string
hint

Optional, human-friendly hint for resolving the error.

string
requestId

Server-assigned request ID; quote this when reporting issues.

string
key
additional properties
any
Example
{
"code": "READONLY_FIELD",
"message": "Field \"exposedPorts\" is read-only and cannot be set via PATCH.",
"field": "exposedPorts",
"hint": "Exposed ports are discovered from the running container. Change the ports mapping in the compose file at composePath and redeploy.",
"requestId": "req_01H0…"
}

Conflict — e.g. a unique constraint violation.

Media typeapplication/json
object
code

Stable, machine-readable error code. Always present on the wire.

string
Allowed values: VALIDATION_ERROR READONLY_FIELD UNAUTHORIZED FORBIDDEN_SCOPE FORBIDDEN_ROLE NOT_FOUND CONFLICT IDEMPOTENCY_KEY_REUSED RATE_LIMITED SERVICE_UNAVAILABLE INTERNAL
message

Human-readable error message. Always present on the wire.

string
field

Field name when the error is tied to a specific input (e.g. validation).

string
hint

Optional, human-friendly hint for resolving the error.

string
requestId

Server-assigned request ID; quote this when reporting issues.

string
key
additional properties
any
Example
{
"code": "READONLY_FIELD",
"message": "Field \"exposedPorts\" is read-only and cannot be set via PATCH.",
"field": "exposedPorts",
"hint": "Exposed ports are discovered from the running container. Change the ports mapping in the compose file at composePath and redeploy.",
"requestId": "req_01H0…"
}