Build integrations with Appstle Loyalty using our REST API. This guide covers authentication, common workflows, and the key endpoints you'll need.
There are two ways to authenticate with the Appstle Loyalty API:
For direct API access, pass the merchant's API key in the header:
X-API-Key: <merchant-api-key>Merchants create API keys from the Appstle Loyalty admin dashboard under Settings → API Key Management. Each key is scoped to a single Shopify store. Merchants can create multiple named keys (up to 10) and revoke them individually.
ℹ️ Note: Direct API access requires an active API plan. Contact support@appstle.com for pricing.
If you're building a product that integrates with Appstle Loyalty (e.g., a helpdesk, CRM, review platform, or automation tool), use our Partner Integration Framework for a seamless, zero-configuration experience.
With the Partner Integration Framework:
- Merchants connect with one click from either dashboard — no manual key exchange
- Your app receives a scoped API token automatically during the handshake
- Partner tokens bypass the paid API plan — merchants are never billed for partner API usage
- Tokens are revoked automatically when a merchant disconnects or uninstalls
👉 Read the full Partner Integration Guide →
For existing integrations that already use the X-App-Key header, this method continues to work:
X-API-Key: <merchant-api-key>
X-App-Key: <your-partner-key>X-API-Key— The merchant's API key, identifying which store to act on.X-App-Key— Your partner key, identifying your application.
Note: New partners should use the Partner Integration Framework instead. It provides a better merchant experience and eliminates the need for manual key exchange.
https://loyalty-admin.appstle.comAll admin endpoints are prefixed with /api/external/.
Retrieve a customer's full loyalty profile by Shopify customer ID or email:
# By customer ID
curl -X GET "https://loyalty-admin.appstle.com/api/external/customer-loyalty?shop=your-store.myshopify.com&customer_id=12345" \
-H "X-API-Key: YOUR_API_KEY"Response includes:
- Available, pending, and total credited points
- Current VIP tier and spent amount
- Referral link and completed referral count
- Active rewards and discount codes
- Social engagement status (Facebook, Instagram, etc.)
Retrieve a customer's full point transaction log:
curl -X GET "https://loyalty-admin.appstle.com/api/external/point-transaction-history/{customer_id}?shop=your-store.myshopify.com" \
-H "X-API-Key: YOUR_API_KEY"Retrieve your highest-value loyalty members:
curl -X GET "https://loyalty-admin.appstle.com/api/external/top-customers?shop=your-store.myshopify.com" \
-H "X-API-Key: YOUR_API_KEY"curl -X POST "https://loyalty-admin.appstle.com/api/external/add-points" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"shop": "your-store.myshopify.com",
"customerId": 12345,
"points": 100,
"note": "VIP welcome bonus"
}'curl -X POST "https://loyalty-admin.appstle.com/api/external/redeem-points" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"shop": "your-store.myshopify.com",
"customerId": 12345,
"pointRedeemRuleId": 42
}'For programs where points require approval before becoming available:
curl -X PUT "https://loyalty-admin.appstle.com/api/external/approve-pending-transactions?shop=your-store.myshopify.com" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"customerId": 12345}'Add a customer to the loyalty program programmatically:
curl -X POST "https://loyalty-admin.appstle.com/api/external/enroll-customer" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"shop": "your-store.myshopify.com",
"customerId": 12345,
"customerEmail": "customer@example.com"
}'Set a birthday to enable birthday reward automation:
curl -X PUT "https://loyalty-admin.appstle.com/api/external/update-customer-birth-date?shop=your-store.myshopify.com" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"customerId": 12345,
"birthDate": "1990-06-15"
}'curl -X POST "https://loyalty-admin.appstle.com/api/external/add-credits" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"shop": "your-store.myshopify.com",
"customerId": 12345,
"credits": 10.00,
"note": "Goodwill credit"
}'Validate a loyalty discount code before applying it at checkout:
curl -X PUT "https://loyalty-admin.appstle.com/api/external/check-discount?shop=your-store.myshopify.com" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"discountCode": "REWARD-XXXX"}'After a customer redeems their discount code at checkout, mark it as used:
curl -X PUT "https://loyalty-admin.appstle.com/api/external/update-discount-code-status?shop=your-store.myshopify.com" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"discountCode": "REWARD-XXXX",
"status": "USED"
}'Retrieve all active earn rules (point triggers) for a store:
curl -X GET "https://loyalty-admin.appstle.com/api/external/point-earn-rules?shop=your-store.myshopify.com" \
-H "X-API-Key: YOUR_API_KEY"Retrieve all active redemption options:
curl -X GET "https://loyalty-admin.appstle.com/api/external/point-redeem-rules?shop=your-store.myshopify.com" \
-H "X-API-Key: YOUR_API_KEY"Appstle Loyalty supports webhooks for real-time event notifications. See the Webhooks documentation for setup and available events.
Alternatively, use Shopify Flow to react to loyalty events within Shopify's native automation platform without managing webhook infrastructure.
API requests are rate-limited per store. If you receive a 429 Too Many Requests response, implement exponential backoff before retrying.
The most common integration pattern for review platforms:
- Customer submits a review on your platform
- Your platform calls
POST /api/external/add-pointsto credit points - Optionally, use Shopify Flow with the
reward-points-for-reviewsaction for no-code setup
Agents can look up loyalty data while handling tickets:
- Call
GET /api/external/customer-loyaltyby customer email or ID to display loyalty status - Call
POST /api/external/add-pointsorPOST /api/external/add-creditsto issue goodwill points - Call
GET /api/external/point-transaction-history/{customer_id}to view recent activity
Sync loyalty data for personalized campaigns:
- Use webhooks to receive real-time point and tier events
- Pull
GET /api/external/customer-loyaltyto enrich customer profiles with points balance, VIP tier, and referral link - Segment customers by tier (
currentVipTier) or points range (availablePoints) for targeted campaigns
If you're building a product that integrates with loyalty programs (helpdesks, CRMs, review platforms, email tools, automation platforms), we'd love to work with you.
What you get:
- Zero-friction merchant onboarding via our Partner Integration Framework — one-click connect
- Scoped API tokens per merchant — automatically provisioned, no manual key exchange
- Bypasses the paid API plan — merchants are never billed for partner API usage
- Technical support during integration
- Co-marketing opportunities
- Listed in our integration directory
Current partners: Judge.me, Klaviyo, Omnisend, Gorgias, and more.
To apply: Email support@appstle.com with:
- Your company name and product
- What Appstle Loyalty data your integration needs access to
- Expected API call volume per merchant
We typically onboard new partners within 1-2 business days. See the Partner Integration Guide for the full technical walkthrough.
- Full API Reference: See the Admin APIs and Storefront APIs for complete endpoint documentation
- Shopify Flow: See the Shopify Flow guide for no-code automation
- Partners: support@appstle.com
- Support: support@appstle.com