# Documentation

> Everything you need to let your SaaS customers use their own domain with Custom Domain API, from the first API call to verifying requests at your origin.

Source: https://customdomainapi.com/docs/

Custom Domain API lets the customers of your SaaS use their own hostname,
such as `forms.acme.com`, for their workspace in your product. Your backend
registers the hostname with one API call. Your customer publishes two DNS
records. The edge verifies them, issues the certificate, and forwards every
request to your app with a **signed assertion** naming the workspace.

## Start here

- **[Quickstart](/docs/quickstart/)**: from sign-up to a customer hostname
  served over HTTPS, on the Free plan.
- **[How it works](/docs/how-it-works/)**: the edge, the four checks, and
  each status a domain goes through.
- **[API reference](/docs/api/)**: endpoints, the domain resource, errors,
  idempotency and limits.
- **[Verifying requests](/docs/verify-requests/)**: selecting the workspace
  safely at your origin, in Python or any language.
- **[Webhooks](/docs/webhooks/)**: being told when a domain is ready,
  needs attention, recovers or is deleted.
- **[Your customers' DNS](/docs/customer-dns/)**: what to show the people
  who add the records.
- **[For AI coding agents](/docs/ai-agents/)**: a compact integration
  brief to hand to a coding assistant.
- **[Self-hosting](/docs/self-hosting/)**: running the open-source service
  on your own server.

## The pieces

| Piece | What it is |
|---|---|
| Application | Your product. It has an API key, an origin and its customers' domains. |
| Domain | One customer hostname, registered for one workspace `reference` of yours. |
| Edge | The server customers' hostnames point at. It terminates HTTPS and forwards to your origin. On Free it is `edge.customdomainapi.com`. |
| Origin | Your app's backend, where the edge forwards requests. |
| Assertion | A signed header on every forwarded request that names your application, the domain and the workspace. |

## Plans

**Free** runs your application on a shared edge, for up to 25 customer
hostnames, at no cost and without a card. **Paid plans** give you an edge
of your own on your own domain. **Self-hosting** runs the same open-source
service ([sireto/custom-domain](https://github.com/sireto/custom-domain))
on your server. Your integration (API, SDK, verification) is the same on all
three.

For machines: every docs page is also available as Markdown at the same
path ending in `.md` (for example [/docs/quickstart.md](/docs/quickstart.md)),
and [/llms.txt](/llms.txt) lists them all.
