API Reference

Edge Proxy

Route a subdomain through the edge proxy to an external upstream server. All requests to slug.domain are forwarded to the configured target URL.

Edge Proxy is an enterprise-only feature. Requires an active enterprise domain linked to your account.

How it works

  1. Create a proxy record specifying a slug, domain, and target URL
  2. An etcd route is registered so the edge proxy forwards traffic
  3. All requests to https://slug.domain are reverse-proxied to the target

The edge proxy handles TLS termination, header forwarding (X-Forwarded-For, X-Forwarded-Proto, Host), and automatic retries.

List proxies

GET /edge/proxies
curl "https://api.oblien.com/edge/proxies" \
  -H "Authorization: Bearer $TOKEN"

Response

{
  "success": true,
  "proxies": [
    {
      "id": 1,
      "name": "staging-api",
      "slug": "staging-api",
      "domain": "edge.example.com",
      "url": "https://staging-api.edge.example.com",
      "target": "https://internal-staging.example.com:8080",
      "status": "active",
      "created_at": "2026-03-12T10:00:00Z"
    }
  ]
}

Create a proxy

POST /edge/proxies
Content-Type: application/json

{
  "name": "staging-api",
  "slug": "staging-api",
  "domain": "edge.example.com",
  "target": "https://internal-staging.example.com:8080"
}
curl -X POST "https://api.oblien.com/edge/proxies" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"staging-api","slug":"staging-api","domain":"edge.example.com","target":"https://internal-staging.example.com:8080"}'

Parameters

ParameterTypeRequiredDescription
namestringYesDisplay name (max 100 chars)
slugstringYesSubdomain slug (lowercase, alphanumeric + hyphens)
domainstringYesEnterprise domain (must be verified and linked to your account)
targetstringYesUpstream URL (http:// or https://)

The domain must be an enterprise domain you own. Use the Domains API to register and verify domains first.

Response

{
  "success": true,
  "proxy": {
    "id": 1,
    "name": "staging-api",
    "slug": "staging-api",
    "domain": "edge.example.com",
    "url": "https://staging-api.edge.example.com",
    "target": "https://internal-staging.example.com:8080",
    "status": "active"
  }
}

Update a proxy

Update name, slug, or target URL. Slug and target changes update the etcd route atomically.

PUT /edge/proxies/:id
Content-Type: application/json

{ "name": "new-name", "target": "https://new-upstream.example.com" }

Enable / Disable

Toggle a proxy without deleting it. Disabling removes the etcd route (traffic stops), enabling re-creates it.

POST /edge/proxies/:id/enable
POST /edge/proxies/:id/disable

Delete a proxy

Removes the etcd route and DB record permanently.

DELETE /edge/proxies/:id

Target restrictions

The target URL is validated to prevent SSRF. The following are blocked:

  • Private IPs: 10.x.x.x, 172.16–31.x.x, 192.168.x.x
  • Loopback: 127.x.x.x, localhost, ::1
  • Link-local: 169.254.x.x
  • Unspecified: 0.x.x.x
  • Platform domains: *.oblien.com

Only http:// and https:// protocols are allowed.