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.
Plan Limits
Section titled “Plan Limits”The number of custom domains you can add is determined by your team plan. Hobby teams can add 1 custom domain in total.
Requirements
Section titled “Requirements”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.
Add a Custom Domain
Section titled “Add a Custom Domain”- Navigate to your app in the dashboard.
- Select Domains from the sidebar.
- Click Add Custom Domain.
- Enter your domain (e.g.
aperture.ioorcake.aperture.io), do not includehttp://orhttps://. - Optionally enable Zero Downtime Migration (see below).
- Click Add Custom Domain.
Both apex domains (aperture.io) and subdomains (cake.aperture.io) are supported.
Zero Downtime Migration
Section titled “Zero Downtime Migration”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:
- 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. - 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-challengeto complete ownership verification and certificate validation. Both records sit on separate hostnames, so your live site doesn’t change yet. - 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.
Configure DNS
Section titled “Configure DNS”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
CNAMEfrom_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.
Record Examples
Section titled “Record Examples”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.
Apex domain (e.g. aperture.io)
Section titled “Apex domain (e.g. aperture.io)”| Type | Name | Value |
|---|---|---|
| TXT | _fc-dcv | 9f6f98be-3c03-4889-87f9-e597abbd12ef |
| TXT | populated after _fc-dcv verifies | populated after _fc-dcv verifies |
| CNAME | _acme-challenge | aperture.io.<token>.dcv.cloudflare.com. |
| A | @ | <FastAPI Cloud proxy IP> |
| A | @ | <FastAPI Cloud proxy IP> |
Subdomain (e.g. cake.aperture.io)
Section titled “Subdomain (e.g. cake.aperture.io)”| Type | Name | Value |
|---|---|---|
| TXT | _fc-dcv.cake | 9f6f98be-3c03-4889-87f9-e597abbd12ef |
| TXT | populated after _fc-dcv.cake verifies | populated after _fc-dcv.cake verifies |
| CNAME | _acme-challenge.cake | cake.aperture.io.<token>.dcv.cloudflare.com. |
| CNAME | cake | <your-domain-id>.endpoints.fastapicloud.dev. |
Verification
Section titled “Verification”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 ownership → Secure your domain → Switch 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 / SSL
Section titled “TLS / SSL”TLS certificates are issued, installed, and renewed automatically. HTTPS is enabled as soon as the certificate is in place, no manual setup required.
Remove a Custom Domain
Section titled “Remove a Custom Domain”- On the Domains page, find the domain you want to remove.
- Click Remove Domain.
- In the confirmation dialog, type
delete <your-domain>to confirm. - Click Remove Domain to permanently remove it.
The DNS records at your provider can then be safely deleted or pointed elsewhere.
Default FastAPI Cloud URL
Section titled “Default FastAPI Cloud URL”Your app remains accessible at its automatic FastAPI Cloud URL, regardless of any custom domains you attach:
https://your-app.fastapicloud.devThis URL has TLS enabled by default and works immediately after a successful deployment.