Admin API
Domains
Custom domains and their certificates.
Domains connected to this store
GET/admin/2026-11/domains
Response 200
dataarray of objectrequireddata[].idID (dom_...)requireddata[].hostnamestringrequireddata[].purposeenumrequiredOne of
storepagesdata[].statusenumrequiredOne of
pending_dnsissuing_ssllivefaileddata[].kindenumrequiredapex: a bare domain like yourstore.in, which needs an A record (no CNAME allowed).
One of
subdomainapexdata[].registrable_domainstringrequiredThe domain as bought at the registrar, like yourstore.in.
data[].dns_recordobjectrequiredThe record to add at the domain provider (name is the full hostname).
data[].dns_record.typeenumrequiredOne of
CNAMEAdata[].dns_record.namestringrequireddata[].dns_record.valuestringrequireddata[].dns_recordsarray of objectrequiredEvery record to add, as the DNS provider asks for it.
data[].dns_records[].typeenumrequiredOne of
CNAMEAdata[].dns_records[].hoststringrequiredThe record name as most providers ask for it: @ or the subdomain.
data[].dns_records[].valuestringrequireddata[].dns_records[].ttlintegerrequireddata[].checksobject or nullrequiredWhat the last check found.
data[].checks.dnsobjectrequireddata[].checks.dns.okbooleanrequireddata[].checks.dns.foundarray of objectrequireddata[].checks.dns.found[].typeenumrequiredOne of
CNAMEAAAAAdata[].checks.dns.found[].valuestringrequireddata[].checks.dns.problemstring or nullrequiredWhat is wrong and the fix, when not ok.
data[].checks.httpsobject or nullrequiredThe certificate check, once DNS is right.
data[].checks.https.okbooleanrequireddata[].checks.https.errorstring or nullrequireddata[].messagestringrequiredWhat is happening and what to do, in plain words.
data[].last_checked_attimestamp or nullrequireddata[].verified_attimestamp or nullrequireddata[].created_attimestamprequired
Errors
| 401 | authentication_required | Send a valid access token or session. |
| 403 | missing_scope | The app token does not have the scope this endpoint needs. |
| 429 | rate_limited | Too many requests. Wait for the time in RateLimit-Reset. |
| 500 | internal_error | Something went wrong on our side. Quote the trace_id to support. |
curl https://api.storelyne.com/admin/2026-11/domains \
-H "Authorization: Bearer pat_live_..."const res = await fetch('https://api.storelyne.com/admin/2026-11/domains', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.STORELYNE_TOKEN}`,
},
});
const data = await res.json();{
"data": [
{
"id": "dom_01JCG8ZQ5S7T0V4X8K2M3N6P9R",
"hostname": "string",
"purpose": "store",
"status": "pending_dns",
"kind": "subdomain",
"registrable_domain": "string",
"dns_record": {
"type": "CNAME",
"name": "Festive saree",
"value": "string"
},
"dns_records": [
{
"type": "CNAME",
"host": "string",
"value": "string",
"ttl": 1
}
],
"checks": {
"dns": {
"ok": false,
"found": [],
"problem": "string"
},
"https": {
"ok": false,
"error": "string"
}
},
"message": "Hand block printed cotton.",
"last_checked_at": "2026-11-04T10:00:00.000Z",
"verified_at": "2026-11-04T10:00:00.000Z",
"created_at": "2026-11-04T10:00:00.000Z"
}
]
}Connect a domain; the answer says which DNS record to add
POST/admin/2026-11/domains
A subdomain (www.yourstore.in) gets a CNAME to the store target; a bare domain (yourstore.in) gets an A record to the server. Checks run every minute for the first hour, then hourly, and daily once live.
scope write_domainsIdempotency-Key required
Headers
Idempotency-KeystringrequiredUnique key for this request. Retries with the same key return the first response.
At least 1 characters · Up to 255 characters
X-CSRF-TokenstringRequired with a seller session cookie: the value of the orb_csrf cookie.
Request body
hostnamestringrequiredAt least 4 characters · Up to 253 characters
purposeenumOne of
storepagesDefault "store"
Response 201
idID (dom_...)requiredhostnamestringrequiredpurposeenumrequiredOne of
storepagesstatusenumrequiredOne of
pending_dnsissuing_ssllivefailedkindenumrequiredapex: a bare domain like yourstore.in, which needs an A record (no CNAME allowed).
One of
subdomainapexregistrable_domainstringrequiredThe domain as bought at the registrar, like yourstore.in.
dns_recordobjectrequiredThe record to add at the domain provider (name is the full hostname).
dns_record.typeenumrequiredOne of
CNAMEAdns_record.namestringrequireddns_record.valuestringrequireddns_recordsarray of objectrequiredEvery record to add, as the DNS provider asks for it.
dns_records[].typeenumrequiredOne of
CNAMEAdns_records[].hoststringrequiredThe record name as most providers ask for it: @ or the subdomain.
dns_records[].valuestringrequireddns_records[].ttlintegerrequiredchecksobject or nullrequiredWhat the last check found.
checks.dnsobjectrequiredchecks.dns.okbooleanrequiredchecks.dns.foundarray of objectrequiredchecks.dns.found[].typeenumrequiredOne of
CNAMEAAAAAchecks.dns.found[].valuestringrequiredchecks.dns.problemstring or nullrequiredWhat is wrong and the fix, when not ok.
checks.httpsobject or nullrequiredThe certificate check, once DNS is right.
checks.https.okbooleanrequiredchecks.https.errorstring or nullrequiredmessagestringrequiredWhat is happening and what to do, in plain words.
last_checked_attimestamp or nullrequiredverified_attimestamp or nullrequiredcreated_attimestamprequired
Errors
| 400 | idempotency_key_required | Every POST needs an Idempotency-Key header. |
| 400 | validation_failed | A field in the request is missing or invalid. See param. |
| 401 | authentication_required | Send a valid access token or session. |
| 403 | missing_scope | The app token does not have the scope this endpoint needs. |
| 409 | conflict | The request conflicts with the current state of the object. |
| 409 | idempotency_in_progress | A request with this Idempotency-Key is still running. |
| 422 | idempotency_key_reused | This Idempotency-Key was used with a different request. |
| 429 | rate_limited | Too many requests. Wait for the time in RateLimit-Reset. |
| 500 | internal_error | Something went wrong on our side. Quote the trace_id to support. |
curl -X POST https://api.storelyne.com/admin/2026-11/domains \
-H "Authorization: Bearer pat_live_..." \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"hostname": "string"
}'const res = await fetch('https://api.storelyne.com/admin/2026-11/domains', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.STORELYNE_TOKEN}`,
'Idempotency-Key': crypto.randomUUID(),
'Content-Type': 'application/json',
},
body: JSON.stringify({
"hostname": "string"
}),
});
const data = await res.json();{
"id": "dom_01JCG8ZQ5S7T0V4X8K2M3N6P9R",
"hostname": "string",
"purpose": "store",
"status": "pending_dns",
"kind": "subdomain",
"registrable_domain": "string",
"dns_record": {
"type": "CNAME",
"name": "Festive saree",
"value": "string"
},
"dns_records": [
{
"type": "CNAME",
"host": "string",
"value": "string",
"ttl": 1
}
],
"checks": {
"dns": {
"ok": false,
"found": [
{
"type": "CNAME",
"value": "string"
}
],
"problem": "string"
},
"https": {
"ok": false,
"error": "string"
}
},
"message": "Hand block printed cotton.",
"last_checked_at": "2026-11-04T10:00:00.000Z",
"verified_at": "2026-11-04T10:00:00.000Z",
"created_at": "2026-11-04T10:00:00.000Z"
}Disconnect a domain
DEL/admin/2026-11/domains/{id}
Path parameters
idID (dom_...)required
Headers
X-CSRF-TokenstringRequired with a seller session cookie: the value of the orb_csrf cookie.
Response 204
No body.
Errors
| 400 | validation_failed | A field in the request is missing or invalid. See param. |
| 401 | authentication_required | Send a valid access token or session. |
| 403 | missing_scope | The app token does not have the scope this endpoint needs. |
| 404 | resource_not_found | The object does not exist or belongs to another store. |
| 429 | rate_limited | Too many requests. Wait for the time in RateLimit-Reset. |
| 500 | internal_error | Something went wrong on our side. Quote the trace_id to support. |
curl -X DELETE https://api.storelyne.com/admin/2026-11/domains/dom_01JCG8ZQ5S7T0V4X8K2M3N6P9R \
-H "Authorization: Bearer pat_live_..."const res = await fetch('https://api.storelyne.com/admin/2026-11/domains/dom_01JCG8ZQ5S7T0V4X8K2M3N6P9R', {
method: 'DELETE',
headers: {
'Authorization': `Bearer ${process.env.STORELYNE_TOKEN}`,
},
});
const data = await res.json();No body.
Check the DNS and certificate now
POST/admin/2026-11/domains/{id}/check
scope write_domainsIdempotency-Key required
Path parameters
idID (dom_...)required
Headers
Idempotency-KeystringrequiredUnique key for this request. Retries with the same key return the first response.
At least 1 characters · Up to 255 characters
X-CSRF-TokenstringRequired with a seller session cookie: the value of the orb_csrf cookie.
Response 200
idID (dom_...)requiredhostnamestringrequiredpurposeenumrequiredOne of
storepagesstatusenumrequiredOne of
pending_dnsissuing_ssllivefailedkindenumrequiredapex: a bare domain like yourstore.in, which needs an A record (no CNAME allowed).
One of
subdomainapexregistrable_domainstringrequiredThe domain as bought at the registrar, like yourstore.in.
dns_recordobjectrequiredThe record to add at the domain provider (name is the full hostname).
dns_record.typeenumrequiredOne of
CNAMEAdns_record.namestringrequireddns_record.valuestringrequireddns_recordsarray of objectrequiredEvery record to add, as the DNS provider asks for it.
dns_records[].typeenumrequiredOne of
CNAMEAdns_records[].hoststringrequiredThe record name as most providers ask for it: @ or the subdomain.
dns_records[].valuestringrequireddns_records[].ttlintegerrequiredchecksobject or nullrequiredWhat the last check found.
checks.dnsobjectrequiredchecks.dns.okbooleanrequiredchecks.dns.foundarray of objectrequiredchecks.dns.found[].typeenumrequiredOne of
CNAMEAAAAAchecks.dns.found[].valuestringrequiredchecks.dns.problemstring or nullrequiredWhat is wrong and the fix, when not ok.
checks.httpsobject or nullrequiredThe certificate check, once DNS is right.
checks.https.okbooleanrequiredchecks.https.errorstring or nullrequiredmessagestringrequiredWhat is happening and what to do, in plain words.
last_checked_attimestamp or nullrequiredverified_attimestamp or nullrequiredcreated_attimestamprequired
Errors
| 400 | idempotency_key_required | Every POST needs an Idempotency-Key header. |
| 400 | validation_failed | A field in the request is missing or invalid. See param. |
| 401 | authentication_required | Send a valid access token or session. |
| 403 | missing_scope | The app token does not have the scope this endpoint needs. |
| 404 | resource_not_found | The object does not exist or belongs to another store. |
| 409 | idempotency_in_progress | A request with this Idempotency-Key is still running. |
| 422 | idempotency_key_reused | This Idempotency-Key was used with a different request. |
| 429 | rate_limited | Too many requests. Wait for the time in RateLimit-Reset. |
| 500 | internal_error | Something went wrong on our side. Quote the trace_id to support. |
curl -X POST https://api.storelyne.com/admin/2026-11/domains/dom_01JCG8ZQ5S7T0V4X8K2M3N6P9R/check \
-H "Authorization: Bearer pat_live_..." \
-H "Idempotency-Key: $(uuidgen)"const res = await fetch('https://api.storelyne.com/admin/2026-11/domains/dom_01JCG8ZQ5S7T0V4X8K2M3N6P9R/check', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.STORELYNE_TOKEN}`,
'Idempotency-Key': crypto.randomUUID(),
},
});
const data = await res.json();{
"id": "dom_01JCG8ZQ5S7T0V4X8K2M3N6P9R",
"hostname": "string",
"purpose": "store",
"status": "pending_dns",
"kind": "subdomain",
"registrable_domain": "string",
"dns_record": {
"type": "CNAME",
"name": "Festive saree",
"value": "string"
},
"dns_records": [
{
"type": "CNAME",
"host": "string",
"value": "string",
"ttl": 1
}
],
"checks": {
"dns": {
"ok": false,
"found": [
{
"type": "CNAME",
"value": "string"
}
],
"problem": "string"
},
"https": {
"ok": false,
"error": "string"
}
},
"message": "Hand block printed cotton.",
"last_checked_at": "2026-11-04T10:00:00.000Z",
"verified_at": "2026-11-04T10:00:00.000Z",
"created_at": "2026-11-04T10:00:00.000Z"
}