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’ll be asked to add additional DNS records up front so that TLS certificates are issued and the domain is fully prepared before you point it to FastAPI Cloud. Once verification is complete, switch your DNS records and traffic moves over without interruption.

The records are added in three passes:

  1. Add the TXT record at _fc-dcv first. Its value is shown in the dashboard immediately. This proves you own the domain, so we can register it on our end.
  2. Once the first TXT verifies, the dashboard populates a second TXT record (until then, that row appears blank, which is expected). Add it together with the CNAME at _acme-challenge to complete ownership verification and certificate validation. Both records sit on separate hostnames, so adding them doesn’t affect where your traffic is routed.
  3. When the dashboard shows the domain as verified, add the CNAME for a subdomain, or the A records for an apex domain. Traffic moves to FastAPI Cloud with the certificate already in place.

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

After adding the domain, the dashboard shows a table with the exact DNS records you need to add at your DNS provider (with copyable values). 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 in three stages, and the current state is shown in the dashboard:

  1. Domain verification: We check the DNS records you added to confirm you own the domain.
  2. Certificate issuance: Once ownership is confirmed, a TLS certificate is issued, and traffic routes are configured.
  3. Live: The domain is fully verified, secured with TLS, and routing traffic to your app.

Click Refresh to re-check status at any time. If verification fails (for example, due to slow DNS propagation), use Restart Verification to start the process again.

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.