Skip to content
Get started

Ingresses

List ingresses
get/ingresses
Create ingress
post/ingresses
Get ingress details
get/ingresses/{id}
Delete ingress
delete/ingresses/{id}
ModelsExpand Collapse
Ingress = object { id, created_at, name, rules }
id: string

Auto-generated unique identifier

created_at: string

Creation timestamp (RFC3339)

formatdate-time
name: string

Human-readable name

rules: array of IngressRule { match, target, redirect_http, tls }

Routing rules for this ingress

match: IngressMatch { hostname, port }
hostname: string

Hostname to match. Can be:

  • Literal: "api.example.com" (exact match on Host header)
  • Pattern: "{instance}.example.com" (dynamic routing based on subdomain)

Pattern hostnames use named captures in curly braces (e.g., {instance}, {app}) that extract parts of the hostname for routing. The extracted values can be referenced in the target.instance field.

port: optional number

Host port to listen on for this rule (default 80)

target: IngressTarget { instance, port }
instance: string

Target instance name, ID, or capture reference.

  • For literal hostnames: Use the instance name or ID directly (e.g., "my-api")
  • For pattern hostnames: Reference a capture from the hostname (e.g., "{instance}")

When using pattern hostnames, the instance is resolved dynamically at request time.

port: number

Target port on the instance

redirect_http: optional boolean

Auto-create HTTP to HTTPS redirect for this hostname (only applies when tls is enabled)

tls: optional boolean

Enable TLS termination (certificate auto-issued via ACME).

IngressMatch = object { hostname, port }
hostname: string

Hostname to match. Can be:

  • Literal: "api.example.com" (exact match on Host header)
  • Pattern: "{instance}.example.com" (dynamic routing based on subdomain)

Pattern hostnames use named captures in curly braces (e.g., {instance}, {app}) that extract parts of the hostname for routing. The extracted values can be referenced in the target.instance field.

port: optional number

Host port to listen on for this rule (default 80)

IngressRule = object { match, target, redirect_http, tls }
match: IngressMatch { hostname, port }
hostname: string

Hostname to match. Can be:

  • Literal: "api.example.com" (exact match on Host header)
  • Pattern: "{instance}.example.com" (dynamic routing based on subdomain)

Pattern hostnames use named captures in curly braces (e.g., {instance}, {app}) that extract parts of the hostname for routing. The extracted values can be referenced in the target.instance field.

port: optional number

Host port to listen on for this rule (default 80)

target: IngressTarget { instance, port }
instance: string

Target instance name, ID, or capture reference.

  • For literal hostnames: Use the instance name or ID directly (e.g., "my-api")
  • For pattern hostnames: Reference a capture from the hostname (e.g., "{instance}")

When using pattern hostnames, the instance is resolved dynamically at request time.

port: number

Target port on the instance

redirect_http: optional boolean

Auto-create HTTP to HTTPS redirect for this hostname (only applies when tls is enabled)

tls: optional boolean

Enable TLS termination (certificate auto-issued via ACME).

IngressTarget = object { instance, port }
instance: string

Target instance name, ID, or capture reference.

  • For literal hostnames: Use the instance name or ID directly (e.g., "my-api")
  • For pattern hostnames: Reference a capture from the hostname (e.g., "{instance}")

When using pattern hostnames, the instance is resolved dynamically at request time.

port: number

Target port on the instance