Stores

2 operations. Every schema and example on this page is generated from the platform contract.

Get the mini-store front-door payload for a store.

The composed customer mini-store read: branding, the purchasable/menu items with optimized media, hero carousel, open/closed status (store timezone), Order & Collect availability (entitlement-gated), loyalty contract, and policies. A was-live-now-closed or billing-dark store returns a kind "dark" blocking payload instead; a never-live store 404s (its owner can preview with ?preview=1 + a Business Bearer token).

auth none, publicop getStoreDetailrate limitederrors

Parameters

storeIdstringpathrequired
previewstringqueryoptional

Set to "1" (with a Business Bearer token) for the store owner to preview a not-yet-live store.

Response, 200

storeobjectrequired

The live mini-store payload, or the compact contact card when blocked.

blockedbooleanoptional

Present only when the store is served "dark".

served_statestringoptional

Present only when blocked.

support_emailstringoptional

Support contact shown on the dark blocking screen.

messagestringoptional

Customer-facing copy for the dark blocking screen.

curl -G "https://www.membber.com/api/v1/stores/8fb04ddc-0000-4000-8000-d0c50000008f"
Response, 200
{
  "store": {},
  "blocked": true,
  "served_state": "<served_state>",
  "support_email": "alex@example.com",
  "message": "Added at the front desk"
}

Browse or search the public store-discovery feed.

Public, pre-login store discovery for the customer app: live, non-test stores with optional text search, nearby distance sort (Haversine when lat/lng are supplied), template / category filters, and keyset pagination. Only publicly displayable fields are returned, never PII or secrets.

auth none, publicop discoverStoresrate limitederrors

Parameters

qstringqueryoptional

Text search (>= 2 chars; otherwise browse-all).

latstringqueryoptional

Customer latitude, enables distance sort when paired with lng.

lngstringqueryoptional

Customer longitude, enables distance sort when paired with lat.

templatestringqueryoptional

Filter by store template (standard | gym); other values are ignored.

categorystringqueryoptional

Filter by store_category.

cursorstringqueryoptional

Keyset cursor from the previous page (nextCursor).

limitstringqueryoptional

Page size (default 30, hard-capped at 50).

Response, 200

nextCursorstring, nullablerequired
storesarray of objectrequired
18 child fields
idstringrequired
codestring, nullablerequired
namestringrequired
descriptionstring, nullablerequired
store_templatestring, nullablerequired
store_categorystring, nullablerequired
logo_urlstring, nullablerequired
logo_blurhashstring, nullablerequired
brand_colorstring, nullablerequired
accent_colorstring, nullablerequired
primary_colorstring, nullablerequired
secondary_colorstring, nullablerequired
addressstring, nullablerequired
latitudenumber, nullablerequired
longitudenumber, nullablerequired
distance_mnumber, nullablerequired
goalnumber, nullablerequired
earned_voucher_titlestring, nullablerequired
curl -G "https://www.membber.com/api/v1/stores/discover"
Response, 200
{
  "nextCursor": "<nextCursor>",
  "stores": [
    {
      "id": "00000d1b-0000-4000-8000-d0c500000000",
      "code": "EXAMPLE10",
      "name": "Example name",
      "description": "Added at the front desk",
      "store_template": "<store_template>",
      "store_category": "<store_category>",
      "logo_url": "https://example.com/image.jpg",
      "logo_blurhash": "<logo_blurhash>",
      "brand_color": "<brand_color>",
      "accent_color": "<accent_color>",
      "primary_color": "<primary_color>",
      "secondary_color": "<secondary_color>",
      "address": "<address>",
      "latitude": 1,
      "longitude": 1,
      "distance_m": 1,
      "goal": 1,
      "earned_voucher_title": "<earned_voucher_title>"
    }
  ]
}
WhatsApp
Book a Call
Start Free