Skip to content
Docs
Esc
↑↓navigate↵open⌘Jpreview

Save a registrant contact

Saves the person or organization a domain is registered to. Ask the user for these details; never invent them. Pass its id as contactId to purchaseDomain. One contact per team is usually enough; reuse it from listDomainContacts.

POST/v1/domains/contacts
Authorization
AuthorizationBearer token · headerrequired

Better Auth session, OAuth access token, OAuth client-credentials token, or sfm_ Space machine credential.

or
AuthorizationOAuth2 access token · headerrequired

OAuth 2.0 with explicit Spacefast capability scopes. Use the authorization-code flow for people and client credentials for machines.

Scopes:domains:write
Request body
requiredapplication/json
firstNamestringrequired
min length 1 · max length 80
lastNamestringrequired
min length 1 · max length 80
organizationstring
max length 120
address1stringrequired
min length 1 · max length 160
address2string
max length 160
citystringrequired
min length 1 · max length 100
statestringrequired
min length 1 · max length 100
postalCodestringrequired
min length 1 · max length 32
countryCodestringrequired
min length 2 · max length 2
emailstring<email>required
max length 190 · matches ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
phonestringrequired
min length 7 · max length 32
teamIdstring

Owning team. Defaults to the active team.

min length 1
Responses
201

Response for status 201

$schemastring<uri>

Canonical JSON Schema URL for this response body. The server also sends it in the Link: rel="describedby" response header.

dataobjectrequired
Show properties
firstNamestringrequired
min length 1 · max length 80
lastNamestringrequired
min length 1 · max length 80
organizationstring
max length 120
address1stringrequired
min length 1 · max length 160
address2string
max length 160
citystringrequired
min length 1 · max length 100
statestringrequired
min length 1 · max length 100
postalCodestringrequired
min length 1 · max length 32
countryCodestringrequired
min length 2 · max length 2
emailstring<email>required
max length 190 · matches ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
phonestringrequired
min length 7 · max length 32
idstringrequired

Contact id (dcon_...).

teamIdstringrequired

Team that owns the contact.

updatedAtstring<date-time>required
matches ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
default

Problem details (RFC 9457). Any 4xx/5xx response is one application/problem+json document.

$schemastring<uri>

Canonical JSON Schema URL for this response body. The server also sends it in the Link: rel="describedby" response header.

typestringrequired

Problem type URI resolving to the error docs page. The server derives it mechanically from code against the docs origin.

titlestringrequired

Short human-readable summary of the problem type. The server derives it mechanically from code.

statusintegerrequired

HTTP status code of this response, repeated in the body.

min -9007199254740991 · max 9007199254740991
detailstringrequired

Human-readable failure explanation for this occurrence.

codestringrequired

Stable snake_case error code naming the failed public contract.

pointerstring

RFC 6901 JSON Pointer into the failing request field, for example "/files/37/path", on validation failures.

detailsobject

Machine-readable context for the error code.

fixstring

One sentence on what to do about this error code, the same text as the type page. Read it before retrying.

suggestionsstring[]

Actionable recovery steps safe to show in dashboards, SDKs, and CLI output.

nextstring[]

Copy-pasteable commands or API requests an agent can run next.

requestIdstringrequired

The request id to quote when contacting support.

Try it
Server
Authorization
Bodyapplication/json
Request
curl -X POST 'https://api.spacefast.com/v1/domains/contacts' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "firstName": "string",
  "lastName": "string",
  "organization": "string",
  "address1": "string",
  "address2": "string",
  "city": "string",
  "state": "string",
  "postalCode": "string",
  "countryCode": "st",
  "email": "user@example.com",
  "phone": "strings",
  "teamId": "string"
}'
Response
{
  "$schema": "http://example.com",
  "data": {
    "firstName": "string",
    "lastName": "string",
    "organization": "string",
    "address1": "string",
    "address2": "string",
    "city": "string",
    "state": "string",
    "postalCode": "string",
    "countryCode": "st",
    "email": "user@example.com",
    "phone": "strings",
    "id": "string",
    "teamId": "string",
    "updatedAt": "2019-08-24T14:15:22Z"
  }
}

Was this page helpful?