Skip to content

Custom Domains

Serve your FastAPI Cloud app from your own domain (e.g. cake.aperture.io) instead of the default your-app.fastapicloud.dev URL. TLS certificates are issued and renewed automatically.

The number of custom domains you can add is determined by your team plan. Hobby teams can add 1 custom domain in total.

Before adding a custom domain, your app must have at least one successful deployment. You manage custom domains per app, so deploy first, then attach a domain.

  1. Navigate to your app in the dashboard.
  2. Select Domains from the sidebar.
  3. Click Add Custom Domain.
  4. Enter your domain (e.g. aperture.io or cake.aperture.io), do not include http:// or https://.
  5. Optionally enable Zero Downtime Migration (see below).
  6. Click Add Custom Domain.

Both apex domains (aperture.io) and subdomains (cake.aperture.io) are supported.

Enable this option if your domain is already serving production traffic somewhere else and you want to avoid downtime when switching it over.

When enabled, you add DNS records up front so that TLS certificates are issued and the domain is fully prepared before you point it to FastAPI Cloud. The dashboard guides you through three sequential steps, each of which unlocks the next automatically once it verifies:

  1. Prove ownership: Add the TXT record at _fc-dcv. Its value is shown in the dashboard immediately. This proves you own the domain, so we can register it on our end. We re-check every minute and unlock the next step automatically.
  2. Secure your domain: Once ownership is verified, this step unlocks and the dashboard populates a second TXT record. Add it together with the CNAME at _acme-challenge to complete ownership verification and certificate validation. Both records sit on separate hostnames, so your live site doesn’t change yet.
  3. Switch traffic: Once your domain is secured, this step unlocks. A pre-flight check confirms your records resolve and your certificate is ready, then you add the CNAME for a subdomain, or the A records for an apex domain, and traffic moves to FastAPI Cloud with no downtime.

If the Zero Downtime Migration option is left disabled, the standard flow is used: a single Verify ownership and route traffic step where you point your DNS at FastAPI Cloud first, then we verify ownership and issue certificates.

After adding the domain, the dashboard shows the exact DNS records you need to add at your DNS provider, with copyable values and grouped by setup step. Depending on whether you chose an apex domain or a subdomain, and whether Zero Downtime Migration is enabled, you’ll see a combination of:

  • CNAME records to route traffic to FastAPI Cloud, and to delegate TLS certificate validation (e.g. a CNAME from _acme-challenge.<your-domain> to <token>.dcv.cloudflare.com.).
  • A records (for apex domains) pointing to FastAPI Cloud’s proxying addresses.
  • TXT records to verify domain ownership.

Add the records exactly as shown. DNS changes may take up to 48 hours to propagate, though they usually complete within a few minutes.

The tables below show the shape of the records you’ll see, so you can recognize them in your DNS provider’s interface.

Each example below shows the full Zero Downtime Migration setup. Without Zero Downtime Migration, the second TXT and the _acme-challenge CNAME are not required. For subdomains in the standard flow, only the final CNAME is needed.

TypeNameValue
TXT_fc-dcv9f6f98be-3c03-4889-87f9-e597abbd12ef
TXTpopulated after _fc-dcv verifiespopulated after _fc-dcv verifies
CNAME_acme-challengeaperture.io.<token>.dcv.cloudflare.com.
A@<FastAPI Cloud proxy IP>
A@<FastAPI Cloud proxy IP>
TypeNameValue
TXT_fc-dcv.cake9f6f98be-3c03-4889-87f9-e597abbd12ef
TXTpopulated after _fc-dcv.cake verifiespopulated after _fc-dcv.cake verifies
CNAME_acme-challenge.cakecake.aperture.io.<token>.dcv.cloudflare.com.
CNAMEcake<your-domain-id>.endpoints.fastapicloud.dev.

Verification happens automatically. While setup is in progress, the dashboard polls your DNS records and updates each step as it completes, showing when it last checked (“Checking automatically · updated …”).

Progress is shown as guided steps:

  • With Zero Downtime Migration: Prove ownershipSecure your domainSwitch traffic, each unlocking the next.
  • Without it: a single Verify ownership and route traffic step.

If a record is found but its value doesn’t match, the step is flagged Needs attention; correct the value at your provider and it’s re-checked automatically, no restart needed. If verification fails outright (for example, a timeout from slow DNS propagation), a Restart Verification button appears so you can start over. When every step is in place, the dashboard shows Your domain is live.

TLS certificates are issued, installed, and renewed automatically. HTTPS is enabled as soon as the certificate is in place, no manual setup required.

  1. On the Domains page, find the domain you want to remove.
  2. Click Remove Domain.
  3. In the confirmation dialog, type delete <your-domain> to confirm.
  4. Click Remove Domain to permanently remove it.

The DNS records at your provider can then be safely deleted or pointed elsewhere.

Your app remains accessible at its automatic FastAPI Cloud URL, regardless of any custom domains you attach:

https://your-app.fastapicloud.dev

This URL has TLS enabled by default and works immediately after a successful deployment.