What stays yours
- Your customers' domains. They own the domain and its DNS. Apexly serves a hostname only while their record points at us, and never registers or transfers a domain.
- Your data. Every domain and every webhook event can be read back through the API, including the metadata you attached.
- Your app. Apexly forwards requests to your origin with the original
Hostheader. Apart from the API calls that add domains, your app only reads that header and checks our request signature.
How do I export my domains?
GET /v1/domains lists the app's domains newest first, up to 100 per page. Pass each page's next_cursor as cursor until it comes back null. Each domain includes hostname, status, is_apex, the dns record it uses, origin, origin_headers, certificate dates, your metadata, created_at and updated_at.
# Writes one domain per line to domains.jsonl (needs jq).
cursor=""
while :; do
page=$(curl -s "https://api.apexly.dev/v1/domains?limit=100${cursor:+&cursor=$cursor}" \
-H "Authorization: Bearer $APEXLY_API_KEY")
echo "$page" | jq -c '.data[]' >> domains.jsonl
cursor=$(echo "$page" | jq -r '.next_cursor // empty')
[ -z "$cursor" ] && break
doneRun it once per app, with that app's live key. GET /v1/events pages the same way if you want the webhook history too. The full field list is in the domains API reference.
Can I switch providers without my customers touching DNS?
Yes, for subdomains, if you set it up before customers add their records. With a white-label CNAME target, your customers point at a host on your own domain, for example domains.yourapp.com, and that one host points at edge.apexly.dev. Set it in Settings → White-label or with whitelabel_host on PATCH /v1/apps/current; once we verify it, the API shows your host as the record for customers to add.
To move, you change that one record to your new provider. Your customers' records never change. White-label is included in Pay as you go and Enterprise, not in Free.
Two limits, so you plan for them:
- Domains whose customers added their record before you set white-label still point at Apexly's hostname. Those customers would change their record to move.
- Apex domains, like
acme.com, use A records with Apexly's IP addresses, because DNS does not allow a CNAME at the apex. Those customers change their records to move too.
What happens when I delete a domain?
- The edge stops routing it within 5 seconds and deletes its certificate from storage.
- A signed
domain.deletedwebhook fires. - The hostname is free at once: you can add it again in Apexly, and nothing stops another provider serving it.
- If the customer's DNS still points at Apexly, HTTPS on that hostname fails from then on. Move DNS first, then delete.
Closing your account works the same way for every domain: they stop being served and their certificates are deleted. See the terms and how long we keep data.
How do I migrate away from Apexly?
In this order, so no visitor sees an error:
- Export your domains. Page through GET /v1/domains with your live key, following next_cursor until it is null, and save every domain: hostname, is_apex, status, the DNS record it uses, origin, origin_headers and your metadata.
- Add the hostnames at the new provider. Create each hostname there before any DNS changes, and use its pre-validation option if it has one, so certificates are ready when traffic arrives.
- Move the DNS. If you use a white-label CNAME target, point your one white-label host at the new provider. Otherwise, send each customer their new record; your export says which ones use a CNAME and which are apex domains with A records.
- Check traffic has moved. Look up each hostname's records and load it over HTTPS. Apexly will start reporting moved domains as dns_broken; that is expected during a move.
- Delete the domains in Apexly. Send DELETE /v1/domains/{id} for each moved domain. Routing stops within 5 seconds, the certificate is deleted from storage and a domain.deleted webhook fires.
- Tidy up. Apex customers can remove the _apexly TXT record. When nothing is left, email support@apexly.dev to close the account.
Going the other way? POST /v1/domains is idempotent on the hostname, so you can import a list in a loop, and the quickstart covers the rest.
What does not move
- Certificates and private keys. Keys never leave our encrypted storage. Your new provider issues its own certificates for the same hostnames.
- The connect page and widget. Links and embeds point at Apexly; replace them with your new provider's flow.
- Request signatures.
X-Apexly-Signatureis ours. Switch your origin check to whatever your new provider sends.
Questions about a move, either way: support@apexly.dev.
Questions
- Do my customers' domains belong to Apexly?
- No. Your customers own their domains and their DNS. Apexly only serves a hostname while the customer's record points at it, and it never registers or transfers a domain.
- Can I export my data?
- Yes. GET /v1/domains returns every domain in the app, newest first, 100 per page with a cursor: hostname, status, DNS records, origin, origin_headers, certificate dates, your metadata and timestamps. GET /v1/events returns the webhook events the same way.
- Can I switch providers without my customers changing DNS?
- Yes, for subdomains, if you set a white-label CNAME target before customers add their records. They point at a host on your domain, such as domains.yourapp.com, and you point that host at Apexly. To move, you change that one record. White-label is included in Pay as you go and Enterprise, not Free. Apex domains use A records with Apexly's IP addresses, so those customers do change their records.
- Can I take the certificates with me?
- No. Private keys never leave Apexly's encrypted storage, and they are deleted with the domain. Your new provider issues its own certificates for the same hostnames, which is normal and, with Let's Encrypt, free.
- What happens if I delete a domain while DNS still points at Apexly?
- Visitors stop reaching your app. Routing stops within 5 seconds and the certificate is deleted, so HTTPS on that hostname fails until DNS points somewhere that serves it. Move DNS first, then delete.
- Can I close my account at any time?
- Yes. Our terms let you stop using Apexly and close your account at any time. Pay as you go follows the daily average of live domains, so a domain you delete stops counting. Enterprise follows whatever we agree in writing.
How Apexly behaves while you are on it is on the reliability page.