Skip to content

Check a domain

POST
/storefront/domains/{id}/verify
curl --request POST \
--url https://example.com/storefront/domains/019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f/verify \
--cookie bottle.session_token=<bottle.session_token>

Looks up the domain’s DNS now. When both records are right, the domain is checked and answers for the shop. When not, lastError says what to fix, in words for the owner.

id
required

UUID v7

string format: uuid
Example
019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f

UUID v7

The shop as it now stands

Media typeapplication/json
object
status
required
string
Allowed values: off draft live
draft
required
object
template

Yard: classic, photography first. flame: bold type and colour blocks. ledger: quiet, product grid first. Only yard is built today.

string
default: yard
Allowed values: yard flame ledger
theme
object
primary
string
default: #1F3A5F /^#[0-9a-fA-F]{6}$/
accent
string
default: #E4572E /^#[0-9a-fA-F]{6}$/
background
string
default: #FAF7F2 /^#[0-9a-fA-F]{6}$/
fontPair

Classic: Fraunces and Inter. modern: Bricolage Grotesque and Inter. friendly: Nunito throughout. editorial: Playfair Display and Source Sans 3.

string
default: classic
Allowed values: classic modern friendly editorial
radius
integer
default: 12 <= 28
logoKey
string | null
<= 300 characters
iconKey
string | null
<= 300 characters
content
object
headline
string
"" <= 160 characters
strapline
string
"" <= 160 characters
banners
Array<object>
default: <= 6 items
object
id
required
string
<= 40 characters
imageKey
required
string | null
<= 300 characters
heading
required
string
<= 160 characters
body
string
<= 2000 characters
buttonLabel
string
<= 160 characters
buttonTarget
One of:
object
kind
required
string
Allowed values: category
slug
required
string
<= 80 characters
from
string | null format: date
until
string | null format: date
sections
Array<object>
default: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object] <= 8 items
object
section
required
string
Allowed values: hero categories featured delivery reviews about faq contact
visible
required
boolean
featuredProductIds
Array<string>
default: <= 12 items
about
string
"" <= 2000 characters
deliveryPromise
string
"" <= 160 characters
faq
Array<object>
default: <= 20 items
object
question
required
string
<= 160 characters
answer
required
string
<= 2000 characters
phone
string
"" <= 40 characters
email
Any of:
string format: email
address
string
"" <= 400 characters
openingHours
string
"" <= 400 characters
socials
object
facebook
string format: uri
<= 500 characters
instagram
string format: uri
<= 500 characters
x
string format: uri
<= 500 characters
linkedin
string format: uri
<= 500 characters
googlePlaceId
string
<= 200 characters
commerce
object
askForEmpties
boolean
default: true
collection
object
enabled
boolean
address
string
"" <= 400 characters
notes
string
"" <= 160 characters
tradeEnquiries
boolean
offerPhoneOrders
boolean
default: true
ageCheck
boolean
whenLow
string
default: sell
Allowed values: sell sell_and_say
whenOut
string
default: stop
Allowed values: stop continue
termsUrl
string | null format: uri
<= 500 characters
seo
object
title
string
"" <= 160 characters
description
string
"" <= 300 characters
imageKey
string | null
<= 300 characters
live
required
object
template

Yard: classic, photography first. flame: bold type and colour blocks. ledger: quiet, product grid first. Only yard is built today.

string
default: yard
Allowed values: yard flame ledger
theme
object
primary
string
default: #1F3A5F /^#[0-9a-fA-F]{6}$/
accent
string
default: #E4572E /^#[0-9a-fA-F]{6}$/
background
string
default: #FAF7F2 /^#[0-9a-fA-F]{6}$/
fontPair

Classic: Fraunces and Inter. modern: Bricolage Grotesque and Inter. friendly: Nunito throughout. editorial: Playfair Display and Source Sans 3.

string
default: classic
Allowed values: classic modern friendly editorial
radius
integer
default: 12 <= 28
logoKey
string | null
<= 300 characters
iconKey
string | null
<= 300 characters
content
object
headline
string
"" <= 160 characters
strapline
string
"" <= 160 characters
banners
Array<object>
default: <= 6 items
object
id
required
string
<= 40 characters
imageKey
required
string | null
<= 300 characters
heading
required
string
<= 160 characters
body
string
<= 2000 characters
buttonLabel
string
<= 160 characters
buttonTarget
One of:
object
kind
required
string
Allowed values: category
slug
required
string
<= 80 characters
from
string | null format: date
until
string | null format: date
sections
Array<object>
default: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object] <= 8 items
object
section
required
string
Allowed values: hero categories featured delivery reviews about faq contact
visible
required
boolean
featuredProductIds
Array<string>
default: <= 12 items
about
string
"" <= 2000 characters
deliveryPromise
string
"" <= 160 characters
faq
Array<object>
default: <= 20 items
object
question
required
string
<= 160 characters
answer
required
string
<= 2000 characters
phone
string
"" <= 40 characters
email
Any of:
string format: email
address
string
"" <= 400 characters
openingHours
string
"" <= 400 characters
socials
object
facebook
string format: uri
<= 500 characters
instagram
string format: uri
<= 500 characters
x
string format: uri
<= 500 characters
linkedin
string format: uri
<= 500 characters
googlePlaceId
string
<= 200 characters
commerce
object
askForEmpties
boolean
default: true
collection
object
enabled
boolean
address
string
"" <= 400 characters
notes
string
"" <= 160 characters
tradeEnquiries
boolean
offerPhoneOrders
boolean
default: true
ageCheck
boolean
whenLow
string
default: sell
Allowed values: sell sell_and_say
whenOut
string
default: stop
Allowed values: stop continue
termsUrl
string | null format: uri
<= 500 characters
seo
object
title
string
"" <= 160 characters
description
string
"" <= 300 characters
imageKey
string | null
<= 300 characters
publishedAt
required
string | null format: date-time
unpublishedChanges
required
boolean
domains
required
Array<object>
object
id
required

UUID v7

string format: uuid
host
required
string
kind
required
string
Allowed values: bottle custom
isPrimary
required
boolean
verifyToken
required
string
verifiedAt
required
string | null format: date-time
lastCheckedAt
required
string | null format: date-time
lastError
required
string | null
failingSince
required
string | null format: date-time
createdAt
required
string format: date-time
records
required
Array<object>
object
type
required
string
Allowed values: CNAME A TXT
name
required
string
value
required
string
url
required
string | null
assets
required
object
key
additional properties
object
alt
required
string | null
width
required
integer
height
required
integer
thumb
required
string
card
required
string
large
required
string
businessLogoKey
string | null
<= 300 characters
Example
{
"status": "off",
"draft": {
"template": "yard",
"theme": {
"primary": "#1F3A5F",
"accent": "#E4572E",
"background": "#FAF7F2",
"fontPair": "classic",
"radius": 12,
"logoKey": null,
"iconKey": null
},
"content": {
"headline": "",
"strapline": "",
"banners": [],
"sections": [
{
"section": "hero",
"visible": true
},
{
"section": "categories",
"visible": true
},
{
"section": "featured",
"visible": true
},
{
"section": "delivery",
"visible": true
},
{
"section": "reviews",
"visible": true
},
{
"section": "about",
"visible": true
},
{
"section": "faq",
"visible": true
},
{
"section": "contact",
"visible": true
}
],
"featuredProductIds": [],
"about": "",
"deliveryPromise": "",
"faq": [],
"phone": "",
"email": "",
"address": "",
"openingHours": "",
"socials": {}
},
"commerce": {
"askForEmpties": true,
"collection": {
"enabled": false,
"address": "",
"notes": ""
},
"tradeEnquiries": false,
"offerPhoneOrders": true,
"ageCheck": false,
"whenLow": "sell",
"whenOut": "stop",
"termsUrl": null
},
"seo": {
"title": "",
"description": "",
"imageKey": null
}
},
"live": {
"template": "yard",
"theme": {
"primary": "#1F3A5F",
"accent": "#E4572E",
"background": "#FAF7F2",
"fontPair": "classic",
"radius": 12,
"logoKey": null,
"iconKey": null
},
"content": {
"headline": "",
"strapline": "",
"banners": [],
"sections": [
{
"section": "hero",
"visible": true
},
{
"section": "categories",
"visible": true
},
{
"section": "featured",
"visible": true
},
{
"section": "delivery",
"visible": true
},
{
"section": "reviews",
"visible": true
},
{
"section": "about",
"visible": true
},
{
"section": "faq",
"visible": true
},
{
"section": "contact",
"visible": true
}
],
"featuredProductIds": [],
"about": "",
"deliveryPromise": "",
"faq": [],
"phone": "",
"email": "",
"address": "",
"openingHours": "",
"socials": {}
},
"commerce": {
"askForEmpties": true,
"collection": {
"enabled": false,
"address": "",
"notes": ""
},
"tradeEnquiries": false,
"offerPhoneOrders": true,
"ageCheck": false,
"whenLow": "sell",
"whenOut": "stop",
"termsUrl": null
},
"seo": {
"title": "",
"description": "",
"imageKey": null
}
},
"domains": [
{
"id": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f",
"host": "shop.northgategas.co.uk",
"kind": "bottle",
"records": [
{
"type": "CNAME"
}
]
}
]
}

Not signed in

Media typeapplication/json
object
error
required
string
message
required
string
Example
{
"error": "not_found",
"message": "Customer not found"
}

The plan does not include a shop

Media typeapplication/json
object
error
required
string
message
required
string
Example
{
"error": "not_found",
"message": "Customer not found"
}

Not a member, or without the permission this needs

Media typeapplication/json
object
error
required
string
message
required
string
Example
{
"error": "not_found",
"message": "Customer not found"
}

No such domain

Media typeapplication/json
object
error
required
string
message
required
string
Example
{
"error": "not_found",
"message": "Customer not found"
}

Validation failed

Media typeapplication/json
object
error
required
string
Allowed values: validation
message
required
string
issues
required
Array<object>
object
path
required
string
message
required
string
Example
{
"error": "validation",
"issues": [
{
"path": "email",
"message": "Invalid email"
}
]
}