> ## Documentation Index
> Fetch the complete documentation index at: https://developers.telnyx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quick Start

> Add a custom domain to an Edge Compute function.

## 1. Declare the domain in your manifest

Add a `[[domains]]` block to `telnyx.toml`:

```toml theme={null}
[[domains]]
hostname = "api.acme.com"
```

Ship your function:

```bash theme={null}
telnyx-edge ship
```

The CLI validates the hostname at ship time: lowercase, valid domain format, unique within the manifest.

## 2. Register the domain

```bash theme={null}
telnyx-edge domains add api.acme.com <function_id>
```

Replace `<function_id>` with the ID from `telnyx-edge list`.

The command returns a DNS TXT record:

```
Add this TXT record to your DNS provider:

  Name:  _telnyx-verification.api.acme.com
  Value: telnyx-verify=a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4
```

## 3. Add the DNS routing record

In addition to the TXT verification record, add an **A record** pointing your domain to the Edge Compute load balancer:

```
Type:  A
Name:  @ (or your subdomain, e.g. api)
Value: <IP returned by telnyx-edge domains add>
```

If your DNS provider doesn't support A records on the root domain, use a CNAME instead:

```
Type:   CNAME
Name:   @ (or your subdomain)
Value:  <your-function-url>.telnyxcompute.com
```

DNS propagation usually takes a few minutes.

## 4. Verify ownership

```bash theme={null}
telnyx-edge domains verify api.acme.com
```

Telnyx looks up the TXT record and compares it against the stored token. On success:

* HTTP routing is deployed — your domain is reachable over HTTP immediately
* The domain is marked as `verified`

If the TXT record isn't found yet, the domain is marked as `verification_failed`. Retry after the DNS record propagates.

## 5. Upload your TLS certificate

```bash theme={null}
telnyx-edge domains cert upload api.acme.com \
  --cert /path/to/cert.pem \
  --key /path/to/key.pem
```

The certificate must:

* Be PEM-encoded
* Cover the domain (SAN or CN match)
* Be currently valid (not expired, not yet valid)

On success, HTTPS routing is deployed. Your function is now live at `https://api.acme.com`.

## 6. Verify it works

```bash theme={null}
curl https://api.acme.com
```

The default `*.telnyxcompute.com` URL still works:

```bash theme={null}
curl https://my-func-abc123.telnyxcompute.com
```

## Manage your domains

List all custom domains:

```bash theme={null}
telnyx-edge domains list
```

Delete a domain (tears down routing, removes cert):

```bash theme={null}
telnyx-edge domains delete api.acme.com
```

Deleting a domain removes the routing resources from all clusters and deletes the stored certificate. The default `*.telnyxcompute.com` URL is unaffected.
