Admin API
Insights
Checkout health, failure causes and alerts.
- GETWhat dropped in the last 24 hours against a usual day, who caused it and what to do
- GETHow payments went: success, failures by cause in plain words, pending and recovered
- GETSales, orders and checkout success for a period, with the previous period
- GETWhat needs the seller now, money at risk first
- GETBest selling products in the last 30 days
What dropped in the last 24 hours against a usual day, who caused it and what to do
GET/admin/2026-11/insights/alerts
Response 200
dataarray of objectrequireddata[].idstringrequireddata[].severityenumrequiredOne of
highmediumdata[].sideenumrequiredWho caused it: fewer visitors, StoreLyne, the payment network, banks, buyers, the store setup.
One of
trafficour_sidepayment_networkbankbuyerstore_setupbuyer_networkdata[].titlestringrequireddata[].detailstringrequireddata[].actionstringrequireddata[].hrefstringrequiredThe admin screen that helps.
comparedobjectrequiredcompared.fromstringrequiredcompared.tostringrequired
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/insights/alerts \
-H "Authorization: Bearer pat_live_..."const res = await fetch('https://api.storelyne.com/admin/2026-11/insights/alerts', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.STORELYNE_TOKEN}`,
},
});
const data = await res.json();{
"data": [
{
"id": "string",
"severity": "high",
"side": "traffic",
"title": "Festive saree",
"detail": "string",
"action": "string",
"href": "string"
}
],
"compared": {
"from": "string",
"to": "string"
}
}How payments went: success, failures by cause in plain words, pending and recovered
GET/admin/2026-11/insights/checkout-health
Query parameters
periodenumOne of
today7d30dDefault "7d"
Response 200
periodenumrequiredOne of
today7d30dattemptsintegerrequiredpaidintegerrequiredsuccess_ratenumber or nullrequiredfailedobjectrequiredfailed.countintegerrequiredfailed.valueintegerrequiredpendingobjectrequiredpending.countintegerrequiredpending.valueintegerrequiredrecoveredobjectrequiredOrders paid after an earlier attempt failed.
recovered.countintegerrequiredrecovered.valueintegerrequiredplatform_errorsintegerrequiredcausesarray of objectrequiredcauses[].cause_groupstringrequiredcauses[].cause_codestringrequiredcauses[].seller_messagestringrequiredcauses[].attemptsintegerrequiredcauses[].valueintegerrequiredcauses[].sharenumberrequiredrecent_failedarray of objectrequiredrecent_failed[].attempt_idID (att_...)requiredrecent_failed[].order_idID (ord_...)requiredrecent_failed[].order_namestringrequiredrecent_failed[].methodstringrequiredrecent_failed[].amountintegerrequiredrecent_failed[].seller_messagestring or nullrequiredrecent_failed[].recoveredbooleanrequiredrecent_failed[].created_attimestamprequired
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. |
| 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/insights/checkout-health \
-H "Authorization: Bearer pat_live_..."const res = await fetch('https://api.storelyne.com/admin/2026-11/insights/checkout-health', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.STORELYNE_TOKEN}`,
},
});
const data = await res.json();{
"period": "today",
"attempts": 1,
"paid": 1,
"success_rate": 1,
"failed": {
"count": 1,
"value": 1
},
"pending": {
"count": 1,
"value": 1
},
"recovered": {
"count": 1,
"value": 1
},
"platform_errors": 1,
"causes": [
{
"cause_group": "string",
"cause_code": "string",
"seller_message": "Hand block printed cotton.",
"attempts": 1,
"value": 1,
"share": 1
}
],
"recent_failed": [
{
"attempt_id": "att_01JCG8ZQ5S7T0V4X8K2M3N6P9R",
"order_id": "ord_01JCG8ZQ5S7T0V4X8K2M3N6P9R",
"order_name": "Festive saree",
"method": "string",
"amount": 49900,
"seller_message": "Hand block printed cotton.",
"recovered": false,
"created_at": "2026-11-04T10:00:00.000Z"
}
]
}Sales, orders and checkout success for a period, with the previous period
GET/admin/2026-11/insights/summary
Query parameters
periodenumOne of
today7d30dDefault "today"
Response 200
periodenumrequiredOne of
today7d30dcurrencystringrequiredsalesintegerrequiredConfirmed orders (paid or cash on delivery), GST included, in paise.
ordersintegerrequiredaverage_order_valueinteger or nullrequiredcheckout_successnumber or nullrequiredShare of finished payment attempts that were paid, 0 to 1; null before any.
previousobjectrequiredprevious.salesintegerrequiredprevious.ordersintegerrequiredpointsarray of integerrequiredSales per hour (today) or per day.
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. |
| 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/insights/summary \
-H "Authorization: Bearer pat_live_..."const res = await fetch('https://api.storelyne.com/admin/2026-11/insights/summary', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.STORELYNE_TOKEN}`,
},
});
const data = await res.json();{
"period": "today",
"currency": "INR",
"sales": 1,
"orders": 1,
"average_order_value": 1,
"checkout_success": 1,
"previous": {
"sales": 1,
"orders": 1
},
"points": [
1
]
}What needs the seller now, money at risk first
GET/admin/2026-11/insights/todo
Response 200
dataarray of objectrequireddata[].idstringrequireddata[].titlestringrequireddata[].detailstringrequireddata[].amountinteger or nullrequiredMoney at risk in paise; null for items without money.
data[].hrefstringrequireddata[].toneenumrequiredOne of
badwarnneutral
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/insights/todo \
-H "Authorization: Bearer pat_live_..."const res = await fetch('https://api.storelyne.com/admin/2026-11/insights/todo', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.STORELYNE_TOKEN}`,
},
});
const data = await res.json();{
"data": [
{
"id": "string",
"title": "Festive saree",
"detail": "string",
"amount": 49900,
"href": "string",
"tone": "bad"
}
]
}Best selling products in the last 30 days
GET/admin/2026-11/insights/top-products
Response 200
dataarray of objectrequireddata[].product_idID (prd_...)requireddata[].titlestringrequireddata[].unitsintegerrequireddata[].salesintegerrequired
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/insights/top-products \
-H "Authorization: Bearer pat_live_..."const res = await fetch('https://api.storelyne.com/admin/2026-11/insights/top-products', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.STORELYNE_TOKEN}`,
},
});
const data = await res.json();{
"data": [
{
"product_id": "prd_01JCG8ZQ5S7T0V4X8K2M3N6P9R",
"title": "Festive saree",
"units": 1,
"sales": 1
}
]
}