# GET /api/v1/hosting/domains

> List, create or update addon domains

- Group: hosting
- Tier: R
- Required scope: read:hosting
- Docs: https://api.inleed.com/reference/hosting/manage-addon-domains

## Description

`action=list` returns each domain `{domain, isPrimary, active, isSuspended, features}` and needs only read access. `create` needs a new `domain` (optional `php`/`cgi`/`ssl`, default on); `update` needs an existing `domain` plus the `php`/`cgi`/`ssl` flags to change. Those two require `write:hosting`. To delete an addon domain use `delete_addon_domain`.

## Query parameters

- `input` — string (required). A domain, email address, website URL, or Inleed service id — for example example.se, info@example.se or 42976. Resolved to the owning account automatically, and the resolved target is echoed back in the response.
- `action` — enum (required). list the account's domains, create a new addon domain, or update an existing one's features. create/update require write:hosting. One of list, create, update.
- `domain` — string. The addon domain name (e.g. shop.example).
- `php` — boolean. Whether PHP is enabled for the domain. Defaults to on for create; on update only the flags you send change.
- `cgi` — boolean. Whether cgi is enabled for the domain. Defaults to on for create.
- `ssl` — boolean. Whether SSL is enabled for the domain. Defaults to on for create.

## Request

```bash
curl -X GET "https://mcp.inleed.com/api/v1/hosting/domains?input=example.se&action=list&domain=example.se&php=true&cgi=true&ssl=true" \
  -H "Authorization: Bearer inl_live_…"
```

## Errors

- **400**  — codes: invalid_request
- **401** No token was presented, or the token is revoked, expired or unknown. — codes: unauthorized, token_expired, token_revoked
- **403** The token lacks a required scope, or this account does not own the resource. — codes: insufficient_scope, domain_not_owned
- **404** No such resource for this account. — codes: not_found
- **422** Validation error — codes: validation_failed
- **429** The rate limit for this token is exhausted. See `Retry-After`. — codes: rate_limited
- **500** Something went wrong on our side. The failure is logged against `requestId`. — codes: internal_error

## Related

- POST /api/v1/hosting/domains — https://api.inleed.com/reference/hosting/create-addon-domains
- PATCH /api/v1/hosting/domains — https://api.inleed.com/reference/hosting/update-addon-domains
- DELETE /api/v1/hosting/domains — https://api.inleed.com/reference/hosting/delete-addon-domain
- GET /api/v1/hosting — https://api.inleed.com/reference/hosting/list-hosting-accounts

