Get Store configuration
Read the Store settings for the community that owns your API key, including its title, banner, coin display and embeddable widget.
- Method
- GET
- Path
https://api.returning.ai / v1/ stores - Permission
- store
- Retries
- Read-only; exact retries are safe
When to use this
- Check whether the Store is switched on and what title traders see.
- Fetch the current settings before you update them, because an update replaces every setting.
- Read the widget's allowed domains and appearance before you embed the Store on your own site.
Authentication#
- Header
Authorization: Bearer <API_KEY>- Permission
- storeShown in the dashboard as “Store”
Send a Community API key with the store permission. The key decides the community, so you always get your own Store and never send a community ID. Keep the key on your server.
Request#
Query parameters#
title,widget. _id is always returned, and asking for widget also returns widgetID. Without it, every setting is returned.RuleStore setting names
EgisEnabled,title,widget
th.RuleLanguage code
Egen
Headers#
store.RuleBearer <API_KEY>
curl --request GET \
--url https://api.returning.ai/v1/stores \
--header 'Authorization: Bearer <API_KEY>'
Response#
A 200 returns every Store setting in data. Save it before an update: Update Store configuration replaces all of these settings at once, so you send back what you read with your change applied. The widget's own access key is never returned. Branch on the HTTP status and meta.code, never on message.
Eg{ ... }
Rulesuccess
Eg200
RuleSTORE_CONFIGURATION_RETRIEVED
Eg"Read store config success."
Eg{ ... }
Eg"66f000000000000000000901"
Eg"66f000000000000000000010"
true when the Store is switched on.Egtrue
Eg"Trading Rewards Store"
Eg"<p>Redeem your coins for trading credits and gifts.</p>"
Eg{"isEnabled": false, "light": "", "dark": ""}
true when the banner is shown.Egfalse
Eg{"isEnabled": false, "name": "", "light": "", "dark": ""}
true when the custom name and icon are shown.Egfalse
Coins, or an empty string.RuleNullable
Eg{ ... }
true when the widget is switched on.Egfalse
example.com.Eg[]
live for every trader, development for the test users and roles only.Rulelive or development
Eg"live"
development mode.Eg[]
development mode.Eg[]
Eg{"mode": "dynamic", "width": 400, "height": 400}
dynamic fills the space available; fixed uses width and height.Ruledynamic or fixed
Eg"dynamic"
Eg400
Eg400
Eg{ ... }
Eg{"name": "white-smoke", "palette": {}}
white-smoke.Eg"white-smoke"
Eg{}
Eg{"name": "black-beauty", "palette": {}}
black-beauty.Eg"black-beauty"
Eg{}
true when the widget uses your community's theme instead of these.Egfalse
Eg{"isEnabled": false, "text": "", "link": ""}
true when the button is shown.Egfalse
Eg[]
Eg"email"
email.Eg"email"
Eg"Email"
Ruledefault or custom
Eg"default"
data-email.Eg"data-email"
RuleDate-time
Eg"2026-09-01T08:30:00.000Z"
RuleDate-time
Eg"2026-09-26T09:15:00.000Z"
Eg0
Eg{ ... }
true when translations are shown.Egfalse
Eg[]
Eg"th"
Eg"ร้านค้ารางวัล"
Eg"Thai"
true when the translation was generated automatically.Egtrue
Eg"3f786850e387550fdab836ed7e6dc881de23001b"
Eg[]
Eg"th"
Eg"ร้านค้ารางวัล"
Eg"Thai"
true when the translation was generated automatically.Egtrue
Eg"3f786850e387550fdab836ed7e6dc881de23001b"
Eg"Use a concise rewards-store tone."
Eg["ReturningAI", "VIP"]
RuleDate-time
Eg"2026-09-01T08:30:00.000Z"
RuleDate-time
Eg"2026-09-26T09:15:00.000Z"
Eg0
{
"meta": {
"status": "success",
"statusCode": 200,
"code": "STORE_CONFIGURATION_RETRIEVED"
},
"message": "Read store config success.",
"data": {
"_id": "66f000000000000000000901",
"communityID": "66f000000000000000000010",
"isEnabled": true,
"title": "Trading Rewards Store",
"description": "<p>Redeem your coins for trading credits and gifts.</p>",
"cover": {
"isEnabled": false,
"light": "",
"dark": ""
},
"currency": {
"isEnabled": false,
"name": "",
"light": "",
"dark": ""
},
"widgetID": "66f000000000000000000902",
"i18n": {
"isTranslationEnabled": false,
"titleTranslations": [],
"descriptionTranslations": []
},
"widget": {
"isEnabled": false,
"allowedDomains": [],
"accessMode": "live",
"testUsers": [],
"testRoles": [],
"size": {
"mode": "dynamic",
"width": 400,
"height": 400
},
"appearance": {
"light": {
"name": "white-smoke",
"palette": {}
},
"dark": {
"name": "black-beauty",
"palette": {}
},
"useCommunityTheme": false
},
"callToAction": {
"isEnabled": false,
"text": "",
"link": ""
},
"userIdentifierFields": [],
"createdAt": "2026-09-01T08:30:00.000Z",
"updatedAt": "2026-09-26T09:15:00.000Z",
"__v": 0
},
"createdAt": "2026-09-01T08:30:00.000Z",
"updatedAt": "2026-09-26T09:15:00.000Z",
"__v": 0
}
}
Errors#
Every error carries its code in meta.code, with the reason in detail.
Fix the request04
VALIDATION_FAILEDFix the requestfields names a setting that doesn't exist; detail lists the valid names. A 400 with message: Read store config failed. means the settings couldn't be read; retry that one with backoff.AUTH_API_KEY_REQUIREDFix the requestAuthorization: Bearer <API_KEY>.AUTH_API_KEY_INVALIDFix the requestAUTH_PERMISSION_REQUIREDFix the requeststore. Add the permission in Settings > Integration > API Keys.Retry with backoff03
STORE_DEPENDENCY_UNAVAILABLERetry with backoffINTERNAL_ERRORRetry with backoffAUTH_API_KEY_VALIDATION_FAILEDRetry with backoff{
"meta": {
"status": "error",
"statusCode": 400,
"code": "VALIDATION_FAILED"
},
"message": "Validation failed",
"detail": {
"fields": "Invalid field(s): colour. Valid fields: _id, communityID, isEnabled, redemptionMethodsCutover, redemptionMethodIDs, title, description, cover, currency, i18n, spendingCap, widgetID, widget, createdAt, updatedAt, __v"
},
"solution": "Please check the request and try again"
}