Skip to Content
Elido is in closed beta — APIs are stable but rate-limits and quotas may change before GA. Request access →
GuidesCustom domains

Custom domains

By default Elido serves redirects from a tier-isolated host (f.elido.me, s.elido.me, b.elido.me). On Starter and above you can attach your own apex or subdomain and short links resolve through it instead — go.example.com/Ab3xQ rather than s.elido.me/Ab3xQ.

TLS certificates are issued automatically by Caddy on-demand TLS: the first request for a verified hostname triggers an ACME order against Let’s Encrypt and the cert lands in cache before the response returns. You don’t manage cert renewal.

Add a domain

From Settings → Domains → Add domain, enter the hostname.

FieldNotes
hostnameApex (example.com), subdomain (go.example.com), or wildcard (*.example.com).
is_wildcardSet when the hostname starts with *..

The dashboard returns two DNS records to add at your registrar:

# Ownership proof _elido-verify.example.com. TXT "verify=<token>" # Traffic go.example.com. CNAME edge.elido.me.

For a wildcard the CNAME is *.example.com CNAME edge.elido.me. and the TXT lives at _elido-verify.example.com (parent, not the wildcard label).

Verification states

A background worker re-checks DNS every 30 seconds for up to 24 hours. The status field on the domain transitions through:

StatusMeaning
pendingTXT/CNAME not yet observed at the resolver
verifiedDNS matches; Caddy is allowed to issue a cert
activeFirst TLS handshake completed; the domain is live
failed24-hour window elapsed without a match (delete and retry)

GET /v1/workspaces/{workspace_id}/domains returns the live status of every hostname in the workspace.

Wildcard subdomains

A wildcard registration (*.example.com) lets you create per-customer short hosts on the fly — acme.example.com/promo, globex.example.com/promo — without touching DNS for each tenant. Every label that resolves to the wildcard CNAME goes through the same cert and the same workspace.

The redirect path checks for an exact match first; if none exists, it falls back to the registered wildcard parent. A wildcard does not override an explicit subdomain registration in the same workspace.

Each verified domain can host the App-association files browsers and mobile OSes look for when deciding whether to open an installed app instead of the browser. Update them via:

curl -X PATCH \ https://api.elido.app/v1/workspaces/1/domains/42/app-links \ -H "Authorization: Bearer $ELIDO_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "apple_app_site_association": { "applinks": { "apps": [], "details": [...] } }, "android_assetlinks": [ { "relation": ["delegate_permission/common.handle_all_urls"], "target": {...} } ] }'

Elido serves them at the standard locations:

  • https://go.example.com/.well-known/apple-app-site-association
  • https://go.example.com/.well-known/assetlinks.json

See Deep links for how this combines with smart-link OS targeting.

When to use what

  • Subdomain (go.example.com) — the default. Trivial DNS, works on any tier.
  • Apex (example.com) — supported but requires ALIAS / ANAME at a registrar that allows it (Cloudflare, Route 53, Namecheap, etc.).
  • Wildcard — multi-tenant SaaS or campaign tooling that mints per-client subdomains. Business plan only.