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’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:
- Add the TXT record at
_fc-dcvfirst. Its value is shown in the dashboard immediately. This proves you own the domain, so we can register it on our end. - 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-challengeto complete ownership verification and certificate validation. Both records sit on separate hostnames, so adding them doesn’t affect where your traffic is routed. - 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.
Configure DNS
Section titled “Configure DNS”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
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 in three stages, and the current state is shown in the dashboard:
- Domain verification: We check the DNS records you added to confirm you own the domain.
- Certificate issuance: Once ownership is confirmed, a TLS certificate is issued, and traffic routes are configured.
- 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 / 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.