Domains

Add custom branded domains for your short links. Flyn handles SSL provisioning, DNS verification, and routing automatically. Pro plans include up to 3 custom domains.

How Custom Domains Work

Setting up a custom domain takes 3 steps:

  1. Add the domain via API or dashboard. Flyn registers it with our edge infrastructure
  2. Add DNS records at your domain registrar, a TXT record for ownership verification, and a CNAME or A record for routing
  3. Verify, Flyn checks your DNS records and activates the domain once both are confirmed

DNS Configuration

You need to add two DNS records:

1. TXT Record (Ownership Verification)

TypeNameValue
TXT_flyn.yourdomain.comflyn-verify=abc123... (provided in API response)

2. Routing Record

Domain TypeRecordNameValue
Subdomain (e.g. go.yoursite.com)CNAMEgocname.flyn.to
Apex domain (e.g. yoursite.com)A@76.76.21.21

DNS Propagation

DNS changes can take up to 48 hours to propagate, though most registrars update within 5-15 minutes. You can click "Verify" multiple times, it will check the current DNS state each time.

Add a Domain

Registers a new custom domain and returns DNS setup instructions.

POST/api/domains/add

Request Body

ParameterTypeRequiredDescription
domainstringYesThe domain to add (e.g. "go.yourcompany.com"). Protocol and www prefix are stripped automatically.
Request Example
curl -X POST https://www.flyn.to/api/domains/add \
  -H "Authorization: Bearer flyn_sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "domain": "go.yourcompany.com" }'

Response (200)

Response
{
  "domain": {
    "id": "domain-uuid",
    "domain": "go.yourcompany.com",
    "slug": "go-yourcompany-com",
    "status": "pending",
    "verified": false,
    "txt_record": "flyn-verify=a1b2c3d4...",
    "cname_target": "cname.flyn.to"
  },
  "dnsInstructions": {
    "txt": {
      "type": "TXT",
      "name": "_flyn.yourcompany.com",
      "value": "flyn-verify=a1b2c3d4..."
    },
    "routing": {
      "type": "CNAME",
      "name": "go",
      "value": "cname.flyn.to"
    }
  }
}

Verify a Domain

Checks DNS records and activates the domain if both TXT ownership and routing records are configured correctly.

POST/api/domains/:id/verify

Response (200)

Response
{
  "domain": { /* updated domain object */ },
  "verification": {
    "verified": true,
    "txtVerified": true,
    "configured": true,
    "misconfigured": false,
    "dnsInstructions": [],
    "message": "Domain is verified and active!"
  }
}

Verification States

TXT VerifiedDNS ConfiguredStatusMessage
YesYesactiveDomain is verified and active!
YesNopendingOwnership verified! Now add routing record.
NoYespendingRouting set up. Add TXT record to verify ownership.
NoNopendingAdd the DNS records below, then try again.

List Domains

GET/api/domains

Returns all custom domains for your account, ordered newest first.

Update a Domain

PATCH/api/domains/:id

Request Body

ParameterTypeRequiredDescription
placeholderstring | nullNoCustom placeholder text shown on the domain root page (max 500 chars)
notFoundUrlstring | nullNoURL to redirect to when a slug is not found on this domain

Delete a Domain

Removes a custom domain. All links using this domain are automatically reverted to the default flyn.to domain.

DELETE/api/domains/:id

Response (200)

{ "success": true }

Important

Deleting a domain does not delete your links. They are moved back to the default flyn.to domain and continue to work at their new short URL.

Was this page helpful? Spotted something wrong?