# Fix my domain

URL: /products/site/domains/fix-my-domain · Id: `guide:fix-my-domain`

> Say "my domain is not working" and get every DNS record, ownership proof and certificate checked, with the fix for each one that fails.

Verify checks a [Domain](/business/nouns/domain) again: each DNS record, the ownership proof and the certificate. Each failure comes back with the record to add or remove.

Needs: [Connect my domain](/products/site/domains/connect-my-domain)

**Before it runs**

- You leave the chat: Never: it all happens in the chat.

## What you get
- 1 check of each DNS record, ownership proof and certificate (Domain)
- 1 fix for each failing check, written as the record to add or remove (DNS Record)
- 1 incident alert when your main domain is down (Incident)

## Your agent does
**For agents**

- Guide: `guide:fix-my-domain`, status `live`. Page: [/products/site/domains/fix-my-domain.md](/products/site/domains/fix-my-domain.md).
- Approval: none. Run it when the founder asks.
- Leaves the chat: never.
- Needs first: [Connect my domain](/products/site/domains/connect-my-domain).
- Run: call the steps in order, each through the API, SDK, CLI or MCP tab below; a later step passes the `$id` an earlier one returns. Each value marked example is the sample business’s: pass the founder’s own.

| Step | Verb | Inputs (type, required, this guide’s value) | Returns |
| --- | --- | --- | --- |
| 1 | [`Domain.verify`](/business/nouns/domain/verify) (`verb:Domain.verify`) | `domain` Domain (an id), required: example `"domain_leaseline_com"` | `checks` json, `domain` Domain |

Returns: the last call answers with `checks`, `domain` and its `action`, whose `status` is `done`, `pending` (waiting on an Approval or a Worker), `failed`, `canceled` or `refused`:

```json
{
  "api": "https://api.sb/leaseline.app",
  "checks": {},
  "domain": {
    "$id": "https://api.sb/leaseline.app/domains/domain_leaseline_com",
    "$type": "Domain"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/action_1",
    "operation": "Domain.verify",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/action_1"
  }
}
```

Next: offer “Fix it for me”, or “Tell me when it is live”.

Calls: `Domain.verify`

Ask:

```text
My domain is not working.
Why does leaseline.com not load?
Check my DNS.
```

API:

```bash
# Domain.verify
curl -X POST https://api.sb/leaseline.app/domains/domain_leaseline_com/verify \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
```

SDK:

```ts
import { $ } from 'startup-builder'

await $.Domain.verify({ domain: 'domain_leaseline_com' })
```

CLI:

```bash
npx startup-builder do Domain.verify --json '{"domain":"domain_leaseline_com"}'
```

MCP:

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Domain.verify({ domain: 'domain_leaseline_com' })"
  }
}
```

## Change it
- Fix it for me.
- Tell me when it is live.
- Send www to the bare domain.

## Under the hood
- Systems: [Sites](/products/site/sites)
- Nouns: [Domain](/business/nouns/domain), [DNS Record](/business/nouns/dns-record)
- Events: [`Domain.verified`](/business/events/Domain.verified)