# Preflight a domain

Returns the canonical form of a hostname, whether it is an apex or a name under one, and whether WP Cloud can serve it. `canHost` is null when the provider check was unavailable. A negative verdict does not block adding the domain: control can still be proved with a TXT record.

## GET `/v1/domains/preflight`

### Authorization

`Authorization` Bearer token · header required

\`Authorization: Bearer <token>\` with an API key (\`sfa_\` prefix), an OAuth access token, a session token, or a Space machine credential (\`sfm_\` prefix).

or

`Authorization` OAuth2 access token · header required

OAuth 2.0 with Spacefast scopes. People use the authorization code flow; machines use client credentials.

#### Scopes: `domains:write`

### Query parameters

- `name` string required  
  min length 1 · max length 253
- `teamId` string  
  min length 1

### Responses

#### 200 Response for status 200

- `$schema` string <uri>  
  Canonical JSON Schema URL for this response body. The server also sends it in the \`Link: rel="describedby"\` response header.
- `data` object required  
  Show properties Hide properties
  - `name` string required  
    Canonical lowercase ASCII form of the requested hostname.
  - `unicodeName` string  
    Unicode U-label form. Absent when it matches \`name\`.
  - `kind` string required  
    \`apex\` when the name is the registrable domain itself, \`hostname\` when it sits under one. Decided against the Public Suffix List, so \`example.co.uk\` is an apex and \`www.example.com\` is not.
    - Allowed: `hostname` `apex`
  - `canHost` boolean | any required  
    Advisory verdict on whether this hostname can be served. Null when the check could not run; treat that as unknown, not as a refusal.
  - `providerMessage` string | any required  
    Reason behind a negative verdict. Null when the verdict is not negative.

#### defaultError. Every 4xx and 5xx response is one RFC 9457 problem document served as \`application/problem+json\`.

- `$schema` string <uri>  
  Canonical JSON Schema URL for this response body. The server also sends it in the \`Link: rel="describedby"\` response header.
- `type` string required  
  URL of the documentation page for this error. Derived from \`code\`.
- `title` string required  
  Human-readable name of the error type. Derived from \`code\`.
- `status` integer required  
  HTTP status of the response, repeated in the body.
  min -9007199254740991 · max 9007199254740991
- `detail` string required  
  What went wrong in this request.
- `code` string required  
  Stable snake_case error code. Match on this, not on \`detail\`.
- `pointer` string  
  RFC 6901 JSON Pointer to the request field or batch entry that failed, for example \`/files/37/path\`. Present on validation failures.
- `details` object  
  Machine-readable context keyed by the error code.
  - `suggestions` string[]  
    Recovery steps safe to show to a person.
  - `next` string[]  
    Commands or API requests to run next, usable as written.
- `requestId` string required  
  ID of this request, from the \`X-Request-Id\` header or generated. Quote it when contacting support.

## Try it

### Server

Base URL https://api.spacefast.com  
Custom base URL Overrides the selected server when set.

### Authorization

Bearer token Remember on this device Include my values in samples

### Parameters

- `name` query *  
- `teamId` query

### Send

### Request

#### cURL

```bash
curl -X GET "https://api.spacefast.com/v1/domains/preflight?name=string" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

#### JavaScript

```javascript
const response = await fetch("https://api.spacefast.com/v1/domains/preflight?name=string", {
  method: "GET",
  headers: {
    "Authorization": "Bearer YOUR_TOKEN"
  }
});
```

#### Python

```python
import requests

response = requests.get(
    "https://api.spacefast.com/v1/domains/preflight?name=string",
    headers={
        "Authorization": "Bearer YOUR_TOKEN"
    },
)
```

### Response

#### 200 default

```json
{
  "$schema": "http://example.com",
  "data": {
    "name": "string",
    "unicodeName": "string",
    "kind": "hostname",
    "canHost": true,
    "providerMessage": "string"
  }
}
```

```json
{
  "$schema": "http://example.com",
  "type": "string",
  "title": "string",
  "status": -9007199254740991,
  "detail": "string",
  "code": "string",
  "pointer": "string",
  "details": {
    "property1": null,
    "property2": null
  },
  "suggestions": [
    "string"
  ],
  "next": [
    "string"
  ],
  "requestId": "string"
}
```
