Customer-facing loyalty program APIs for storefront operations. These endpoints allow customers to manage their loyalty account, earn and redeem points, submit reviews, handle referrals, and track their rewards. All endpoints require customer authentication via JWT token.
- Get customer loyalty information
Storefront APIs
- https://loyalty-admin.appstle.com/loyalty/cp/api/customer-referrals
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://loyalty-admin.appstle.com/loyalty/cp/api/customer-referrals?page=0&size=1&sort=string'[ { "id": 12345, "shop": "example-store.myshopify.com", "customerId": 67890, "referredEmailId": "friend@example.com", "description": "Referred friend via email", "referralRuleId": 1, "status": "PENDING", "createAt": "2025-01-15T10:30:00Z" } ]
Request
Retrieves comprehensive loyalty information for the currently authenticated customer.
Primary use case: This is the main endpoint for displaying a customer's loyalty dashboard. Call this endpoint when a customer views their loyalty page to show all their points, rewards, and program status.
What you'll get:
- Current point balances (available, pending, total credited)
- Store credit balance (if applicable)
- VIP tier information and expiration
- List of rewards/discount codes
- Social media engagement tracking
- Referral statistics and link
- Account creation date
- Customer status in loyalty program
Authentication: Requires JWT token for the customer. The token identifies which customer's data to retrieve. Customer must be authenticated via Shopify customer login.
Filtering rewards by status: Use the optional 'status' query parameter to filter rewards:
- UNUSED: Show only unused discount codes
- USED: Show only used/redeemed codes
- EXPIRED: Show only expired codes
- Multiple: "UNUSED,USED" for multiple statuses
- Omit parameter to get all rewards regardless of status
Point balance fields explained:
- availablePoints: Points customer can redeem RIGHT NOW
- pendingPoints: Points awaiting approval (e.g., from pending orders)
- creditedPoints: Total points earned all-time (including spent points)
- Relationship: creditedPoints = availablePoints + pendingPoints + spentPoints
VIP tier information:
- currentVipTier: Name of customer's current tier (null if not in a tier)
- vipTierExpiredAt: When tier expires (null if permanent or not in tier)
- achievableTierId: Next tier customer can reach
Social media tracking (boolean flags):
- rewardedForFacebook: Claimed Facebook like/follow points
- rewardedForInstagram: Claimed Instagram follow points
- rewardedForTwitter: Claimed Twitter follow points
- rewardedForPinterest: Claimed Pinterest follow points
- rewardedForYoutube: Claimed YouTube subscribe points
- rewardedForTiktok: Claimed TikTok follow points
- rewardedForNewsLetter: Claimed newsletter signup points
- rewardedForSms: Claimed SMS subscription points
- rewardedForCreatingAccount: Claimed account creation points
- rewardedForSharingOnFacebook: Claimed Facebook share points
- rewardedForSharingOnX: Claimed X (Twitter) share points
Referral information:
- referredCompleted: Number of successful referrals
- referralLink: Unique URL for customer to share
Customer status values:
- ACTIVE: Actively enrolled in loyalty program
- EXCLUDED: Excluded by admin
- EXCLUDED_BY_CUSTOMER: Customer opted out
Common integration patterns:
- Load loyalty dashboard: Call on page load
- After redemption: Call to get updated points and new reward
- After earning points: Call to show updated balance
- Real-time updates: Poll this endpoint or use webhooks
Performance tips:
- Cache response for 30-60 seconds on frontend
- Don't call on every page view, only on loyalty pages
- Use status parameter to reduce response size if needed
- https://loyalty-admin.appstle.com/loyalty/cp/api/customer-loyalty
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://loyalty-admin.appstle.com/loyalty/cp/api/customer-loyalty?status=UNUSED%2CUSED'{ "availablePoints": 150.5, "pendingPoints": 25, "creditedPoints": 175.5, "spentAmount": 299.99, "storeCreditBalance": 15, "currentVipTier": "Gold", "vipTierExpiredAt": "2025-12-31T23:59:59Z", "referredCompleted": 3, "referralLink": "https://store.com/referral/abc123", "customerStatus": "ACTIVE", "dob": "1990-05-15", "rewardedForFacebook": true, "rewardedForInstagram": false, "rewards": [] }
Request
Retrieves paginated list of published product reviews for a specific product, with optional rating filtering. Only returns published and non-archived reviews to ensure quality content is displayed. Supports filtering by rating (1-5 stars) to allow customers to view reviews by satisfaction level. Reviews are returned with full details including reviewer name, rating, title, body, images, and timestamps.
- https://loyalty-admin.appstle.com/loyalty/cp/api/product-review-details/{productId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://loyalty-admin.appstle.com/loyalty/cp/api/product-review-details/12345?rating=5&page=0&size=20&sort=string'[ { "title": "Excellent product!", "body": "This product exceeded my expectations in every way.", "rating": 5, "publishedStatus": true, "reviewerName": "John Doe", "productId": 12345, "createAt": "2025-01-15T10:30:00Z", "productTitle": "Premium Widget", "productImage": "https://cdn.shopify.com/image.jpg" } ]