Complete API documentation with request/response examples for all 40+ endpoints
Authentication APIs
System
/health
Public health-check endpoint for the plugin
Headers: Authorization: Bearer YOUR_JWT_TOKEN
// Response
{
"status": "ok"
}
/auth/login-register
Send OTP for login/register (when OTP authentication is enabled)
{
"email": "[email protected]",
"type": "email"
}
// Response
{
"message": "OTP sent to email.",
"userId": 1,
"isNewUser": false,
"emailSent": true
}
/auth/verify-otp
Verify OTP and get JWT token
{
"email": "[email protected]",
"otp": "123456",
"type": "email"
}
// Response
{
"message": "Login successfully!",
"jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"id": 1,
"username": "user1234",
"email": "[email protected]",
"first_name": "John",
"last_name": "Doe"
}
}
/auth/profile
Get authenticated user profile
Headers: Authorization: Bearer YOUR_JWT_TOKEN
// Response
{
"user": {
"id": 1,
"username": "user1234",
"email": "[email protected]",
"phone_no": "+1234567890",
"first_name": "John",
"last_name": "Doe",
"display_name": "John Doe",
"company_name": "WebbyCrown Solutions"
}
}
/auth/profile
Update user profile
Headers: Authorization: Bearer YOUR_JWT_TOKEN
{
"first_name": "John",
"last_name": "Doe",
"email": "[email protected]",
"phone_no": "+1234567890",
"display_name": "John Doe",
"company_name": "WebbyCrown Solutions",
"currentPassword": "oldpassword",
"newPassword": "newpassword"
}
User Management APIs
Address Management
/addresses
Get all user addresses
Headers: Authorization: Bearer YOUR_JWT_TOKEN
Query: ?type=0 (0=billing, 1=shipping)
// Response
{
"data": [
{
"id": 1,
"type": 0,
"first_name": "John",
"last_name": "Doe",
"country": "United States",
"city": "San Francisco",
"street_address": "123 Main Street",
"postcode": "94102",
"phone": "+1234567890",
"email_address": "[email protected]"
}
]
}
/addresses/:id
Get single address
Headers: Authorization: Bearer YOUR_JWT_TOKEN
/addresses
Create new address
Headers: Authorization: Bearer YOUR_JWT_TOKEN
{
"type": 0,
"first_name": "John",
"last_name": "Doe",
"country": "United States",
"city": "San Francisco",
"street_address": "123 Main Street",
"postcode": "94102",
"phone": "+1234567890",
"email_address": "[email protected]"
}
/addresses/:id
Update address
Headers: Authorization: Bearer YOUR_JWT_TOKEN
/addresses/:id
Delete address
Headers: Authorization: Bearer YOUR_JWT_TOKEN
Product Management APIs
/products
Get products with filtering and pagination
Query Parameters:
category: Filter by category IDtag: Filter by tag IDsearch: Search in product name/descriptionpage,limit: Paginationsort: Sort by price, name, date, etc.min_price,max_price: Price range
// Example: GET /products?category=1&sort=price:asc&page=1&limit=20
/products/:id
Get single product details
// Response includes: variants, categories, tags, images, reviews
/products/:id/related
Get related products
/products/categories
Get all product categories
/products/tags
Get all product tags
/products/attributes
Get product attributes for filtering
Tag Management
/tags
Get all tags
/tags/:id
Get single tag
/tags
Create a tag
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
{
"name": "New Tag"
}
/tags/:id
Update a tag
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
{
"name": "Updated Tag"
}
/tags/:id
Delete a tag
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
Product Categories (Collection)
/product-categories
Get all product categories
/product-categories/:id
Get single product category
/product-categories
Create product category (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/product-categories/:id
Update product category (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/product-categories/:id
Delete product category (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
Product Tags (Collection)
/product-tags
Get all product tags
/product-tags/:id
Get single product tag
/product-tags
Create product tag (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/product-tags/:id
Update product tag (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/product-tags/:id
Delete product tag (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
Product Variations (Collection)
/product-variations
Get all product variations
/product-variations/:id
Get single product variation
/product-variations
Create product variation (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/product-variations/:id
Update product variation (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/product-variations/:id
Delete product variation (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
Admin Product Management
/products
Create new product (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/products/:id
Update product (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/products/:id
Delete product (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
Shopping Cart APIs
/cart
Get cart items
Headers: Authorization: Bearer YOUR_JWT_TOKEN
// Response
{
"items": [
{
"id": 1,
"product_id": 1,
"variation_id": 1,
"quantity": 2,
"product": {
"name": "Sample Product",
"price": 29.99,
"images": [...]
}
}
],
"totals": {
"subtotal": 59.98,
"tax": 5.40,
"shipping": 5.00,
"total": 70.38
}
}
/cart
Add item to cart
Headers: Authorization: Bearer YOUR_JWT_TOKEN
{
"product_id": 1,
"variation_id": 1,
"quantity": 2
}
/cart/:id
Update cart item quantity
Headers: Authorization: Bearer YOUR_JWT_TOKEN
{
"quantity": 3
}
/cart/:id
Remove item from cart
Headers: Authorization: Bearer YOUR_JWT_TOKEN
/cart
Clear entire cart
Headers: Authorization: Bearer YOUR_JWT_TOKEN
/cart/totals
Get cart totals and calculations
Headers: Authorization: Bearer YOUR_JWT_TOKEN
Coupon APIs
/cart/apply-coupon
Apply coupon to cart
Headers: Authorization: Bearer YOUR_JWT_TOKEN
{
"code": "SAVE20"
}
/cart/coupon
Remove coupon from cart
Headers: Authorization: Bearer YOUR_JWT_TOKEN
Order Management APIs
/checkout
Create new order from cart
Headers: Authorization: Bearer YOUR_JWT_TOKEN
{
"billing_address_id": 1,
"shipping_address_id": 2,
"payment_method": "stripe",
"shipping_method_id": 1,
"notes": "Please handle with care"
}
// Response
{
"order": {
"id": 1,
"order_number": "ORD-2024-001",
"status": "pending",
"total": 70.38,
"items": [...],
"createdAt": "2024-01-01T10:00:00.000Z"
},
"payment_intent": {
"client_secret": "pi_xxx_secret_xxx"
}
}
/orders
Get user orders
Headers: Authorization: Bearer YOUR_JWT_TOKEN
Query Parameters:
status: Filter by order status (pending, processing, shipped, delivered, cancelled)page,limit: Pagination
/orders/:id
Get single order details
Headers: Authorization: Bearer YOUR_JWT_TOKEN
/orders/:id/cancel
Cancel an order (if allowed by order status)
Headers: Authorization: Bearer YOUR_JWT_TOKEN
/orders/:id/tracking
Get order tracking information
Headers: Authorization: Bearer YOUR_JWT_TOKEN
// Response
{
"tracking": {
"carrier": "UPS",
"tracking_number": "1Z999AA1234567890",
"status": "in_transit",
"estimated_delivery": "2024-01-05T00:00:00.000Z",
"updates": [
{
"status": "picked_up",
"location": "San Francisco, CA",
"timestamp": "2024-01-01T14:00:00.000Z"
}
]
}
}
Admin Order Management
/orders/:id/status
Update order status (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
{
"status": "shipped",
"tracking_number": "1Z999AA1234567890",
"carrier": "UPS"
}
Wishlist APIs
Wishlist Management
/wishlist
Get user wishlist
Headers: Authorization: Bearer YOUR_JWT_TOKEN
/wishlist
Add product to wishlist
Headers: Authorization: Bearer YOUR_JWT_TOKEN
{
"product_id": 1
}
/wishlist/:productId
Remove from wishlist
Headers: Authorization: Bearer YOUR_JWT_TOKEN
/wishlist
Clear entire wishlist
Headers: Authorization: Bearer YOUR_JWT_TOKEN
/wishlist
Update wishlist (bulk operations)
Headers: Authorization: Bearer YOUR_JWT_TOKEN
/wishlist/status
Check if products are in wishlist
Headers: Authorization: Bearer YOUR_JWT_TOKEN
Query: ?product_ids=1,2,3
/wishlist/items/:id/move-to-cart
Move wishlist item to cart
Headers: Authorization: Bearer YOUR_JWT_TOKEN
Content Manager (Admin) – Collections
/wishlists
List wishlists (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/wishlists/:id
Get wishlist (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/wishlists
Create wishlist (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/wishlists/:id
Update wishlist (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/wishlists/:id
Delete wishlist (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
Compare APIs
Product Comparison
/compare
Get comparison list
Headers: Authorization: Bearer YOUR_JWT_TOKEN
/compare
Add product to comparison
Headers: Authorization: Bearer YOUR_JWT_TOKEN
{
"product_id": 1
}
/compare
Update comparison list (bulk operations)
Headers: Authorization: Bearer YOUR_JWT_TOKEN
/compare/:productId
Remove product from comparison
Headers: Authorization: Bearer YOUR_JWT_TOKEN
/compare
Clear entire comparison list
Headers: Authorization: Bearer YOUR_JWT_TOKEN
/compare/data
Get comparison data with full product details
Headers: Authorization: Bearer YOUR_JWT_TOKEN
/compare/status
Check compare status for products
Headers: Authorization: Bearer YOUR_JWT_TOKEN
Query: ?product_ids=1,2,3
Content Manager (Admin) – Collections
/compares
List compares (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/compares/:id
Get compare (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/compares
Create compare (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/compares/:id
Update compare (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/compares/:id
Delete compare (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
Payment Processing APIs
Payment Integration: Currently supports Stripe payment processing. Webhook endpoints handle payment confirmations automatically.
/payments/create-intent
Create Stripe payment intent
Headers: Authorization: Bearer YOUR_JWT_TOKEN
{
"amount": 10000, // Amount in cents
"currency": "usd",
"order_id": 1,
"description": "Order payment"
}
// Response
{
"client_secret": "pi_xxx_secret_xxx",
"payment_intent_id": "pi_xxx",
"amount": 10000,
"currency": "usd"
}
/payments/confirm
Confirm payment after client-side processing
Headers: Authorization: Bearer YOUR_JWT_TOKEN
{
"payment_intent_id": "pi_xxx",
"order_id": 1
}
/payments/:id/refund
Process refund for a payment
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
{
"amount": 5000, // Amount in cents (optional, full refund if not specified)
"reason": "customer_request"
}
/payments/transactions
Get payment transactions (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
Query Parameters:
order_id: Filter by orderstatus: Filter by payment statuspage,limit: Pagination
Webhook Handling
/payments/webhook
Stripe webhook endpoint (no authentication required)
Headers: Stripe-Signature
Handles payment confirmation, failures, and refunds automatically
Security Note: Configure webhook endpoint secret in plugin settings. Test webhooks in Stripe dashboard before going live.
Shipping Management APIs
/shipping/calculate
Calculate shipping rates for cart
Headers: Authorization: Bearer YOUR_JWT_TOKEN
{
"country": "United States",
"region": "California",
"city": "San Francisco",
"postcode": "94102",
"cart_items": [
{
"product_id": 1,
"variation_id": 1,
"quantity": 2,
"weight": 1.5
}
]
}
// Response
{
"methods": [
{
"id": 1,
"name": "Standard Shipping",
"cost": 5.99,
"estimated_days": "3-5 business days"
},
{
"id": 2,
"name": "Express Shipping",
"cost": 12.99,
"estimated_days": "1-2 business days"
}
]
}
/shipping/zones
Get all shipping zones
Headers: Authorization: Bearer YOUR_JWT_TOKEN
Admin Shipping Management
/shipping/zones
Create shipping zone (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
{
"name": "United States",
"countries": ["US"],
"regions": ["California", "New York"]
}
/shipping/zones/:id
Update shipping zone (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/shipping/zones/:id
Delete shipping zone (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/shipping/methods
Get all shipping methods (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/shipping/methods
Create shipping method (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
{
"name": "Express Shipping",
"type": "flat_rate",
"cost": 12.99,
"zone": 1,
"estimated_days": "1-2 business days"
}
/shipping/methods/:id
Update shipping method (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/shipping/methods/:id
Delete shipping method (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/shipping/methods/:methodId/rates
Get shipping rates for a method (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/shipping/rates
Create shipping rate (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
{
"method": 1,
"min_weight": 0,
"max_weight": 5,
"cost": 5.99
}
/shipping/rates/:id
Update shipping rate (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/shipping/rates/:id
Delete shipping rate (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
Admin APIs
Note: These endpoints are intended for Strapi Admin usage and require an Admin JWT token.
/settings
Get plugin settings (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/settings
Update plugin settings (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/generate-demo
Generate demo payload (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN
/seed-demo
Seed demo data (Admin only)
Headers: Authorization: Bearer ADMIN_JWT_TOKEN