Product & Subscription Platform - API Specification Table

Base Configuration

PropertyValue
Base URLhttps://api.yourplatform.com/v1
AuthenticationJWT Bearer Token + OAuth2
Content-Typeapplication/json
Rate Limiting1000 requests/hour per user

Complete API Endpoints Table

CategoryMethodEndpointAuth LevelDescriptionRequest BodyResponse
AUTHENTICATION & OAUTH2
OAuth2POST/auth/oauth/googlePublicGoogle OAuth2 login{"code": "auth_code", "redirect_uri": "callback_url"}JWT + User data
OAuth2POST/auth/oauth/githubPublicGitHub OAuth2 login{"code": "auth_code", "redirect_uri": "callback_url"}JWT + User data
AuthPOST/auth/registerPublicUser registration{"email", "password", "first_name", "last_name", "phone"}JWT + User data
AuthPOST/auth/loginPublicUser login{"email", "password"}JWT + User data
AuthPOST/auth/logoutUserLogout userNoneSuccess message
AuthPOST/auth/refreshPublicRefresh JWT token{"refresh_token"}New JWT token
AuthPOST/auth/forgot-passwordPublicRequest password reset{"email"}Success message
AuthPOST/auth/reset-passwordPublicReset password{"token", "password"}Success message
USER MANAGEMENT
ProfileGET/users/profileUserGet current user profileNoneUser object
ProfilePUT/users/profileUserUpdate current user{"first_name", "last_name", "phone"}Updated user
ProfileDELETE/users/profileUserDelete current userNoneSuccess message
AdminGET/usersStaffList all users (paginated)Query: ?page=1&limit=20&user_type=customerUser list + pagination
AdminGET/users/{user_id}StaffGet specific userNoneUser object
AdminPUT/users/{user_id}StaffUpdate userUser fieldsUpdated user
AdminDELETE/users/{user_id}AdminDeactivate userNoneSuccess message
AdminPOST/users/{user_id}/activateAdminActivate userNoneSuccess message
ROLE & PERMISSION MANAGEMENT
RolesGET/rolesAdminList all rolesNoneRole list
RolesPOST/rolesAdminCreate new role{"role_name", "description", "permissions"}Created role
RolesGET/roles/{role_id}AdminGet role detailsNoneRole object
RolesPUT/roles/{role_id}AdminUpdate roleRole fieldsUpdated role
RolesDELETE/roles/{role_id}AdminDelete roleNoneSuccess message
User RolesGET/users/{user_id}/rolesStaffGet user’s rolesNoneRole list
User RolesPOST/users/{user_id}/rolesAdminAssign role to user{"role_id"}Success message
User RolesDELETE/users/{user_id}/roles/{role_id}AdminRemove role from userNoneSuccess message
PRODUCT MANAGEMENT
ProductsGET/productsPublicList productsQuery: ?page=1&product_type=physical&search=laptopProduct list + pagination
ProductsPOST/productsStaffCreate product{"name", "description", "price", "product_type", "sku"}Created product
ProductsGET/products/{product_id}PublicGet product detailsNoneProduct object
ProductsPUT/products/{product_id}StaffUpdate productProduct fieldsUpdated product
ProductsDELETE/products/{product_id}AdminDelete productNoneSuccess message
SearchGET/products/searchPublicSearch productsQuery: ?q=search_term&category=electronicsProduct list
FeaturedGET/products/featuredPublicGet featured productsNoneProduct list
PopularGET/products/popularPublicGet popular productsNoneProduct list
INVENTORY MANAGEMENT
InventoryGET/inventoryStaffList all inventoryQuery: ?low_stock=trueInventory list
InventoryGET/inventory/{product_id}StaffGet product inventoryNoneInventory object
InventoryPUT/inventory/{product_id}StaffUpdate stock levels{"stock_quantity", "reserved_quantity", "reorder_level"}Updated inventory
AdjustPOST/inventory/{product_id}/adjustStaffAdjust stock with reason{"adjustment": -5, "reason": "damaged"}Success message
SUBSCRIPTION MANAGEMENT
PlansGET/subscription-plansPublicList all plansQuery: ?product_id=5&is_active=truePlan list
PlansPOST/subscription-plansStaffCreate plan{"product_id", "plan_name", "price", "billing_cycle"}Created plan
PlansGET/subscription-plans/{plan_id}PublicGet plan detailsNonePlan object
PlansPUT/subscription-plans/{plan_id}StaffUpdate planPlan fieldsUpdated plan
PlansDELETE/subscription-plans/{plan_id}AdminDelete planNoneSuccess message
SubscriptionsGET/subscriptionsUserGet user’s subscriptionsNoneSubscription list
SubscriptionsPOST/subscriptionsUserCreate new subscription{"plan_id"}Created subscription
SubscriptionsGET/subscriptions/{subscription_id}UserGet subscription detailsNoneSubscription object
SubscriptionsPUT/subscriptions/{subscription_id}UserUpdate subscription{"auto_renew": true}Updated subscription
SubscriptionsDELETE/subscriptions/{subscription_id}UserCancel subscriptionNoneSuccess message
RenewPOST/subscriptions/{subscription_id}/renewUserRenew subscriptionNoneSuccess message
ORDER MANAGEMENT
OrdersGET/ordersUserGet user’s ordersQuery: ?status=completed&page=1Order list + pagination
OrdersPOST/ordersUserCreate new order{"items": [{"product_id", "quantity"}], "coupon_code"}Created order
OrdersGET/orders/{order_id}UserGet order detailsNoneOrder object
OrdersPUT/orders/{order_id}StaffUpdate order status{"status": "shipped"}Updated order
OrdersDELETE/orders/{order_id}UserCancel orderNoneSuccess message
Admin OrdersGET/admin/ordersStaffList all ordersQuery: ?status=pending&date_from=2024-01-01Order list + pagination
StatusPUT/admin/orders/{order_id}/statusStaffUpdate order status{"status": "shipped", "tracking_number": "123"}Success message
ShipPOST/admin/orders/{order_id}/shipStaffMark as shipped{"tracking_number": "123", "carrier": "UPS"}Success message
DeliverPOST/admin/orders/{order_id}/deliverStaffMark as deliveredNoneSuccess message
SHOPPING CART
CartGET/cartUserGet user’s cartNoneCart object with items
Add ItemPOST/cart/itemsUserAdd item to cart{"product_id": 1, "quantity": 2}Updated cart
Update ItemPUT/cart/items/{item_id}UserUpdate cart item{"quantity": 3}Updated cart
Remove ItemDELETE/cart/items/{item_id}UserRemove from cartNoneUpdated cart
Clear CartDELETE/cartUserClear entire cartNoneSuccess message
CheckoutPOST/cart/checkoutUserConvert cart to order{"shipping_address", "payment_method"}Created order
COUPON MANAGEMENT
User CouponsGET/couponsUserList user’s available couponsNoneCoupon list
ValidatePOST/coupons/validateUserValidate coupon code{"code": "SAVE10", "order_total": 100}Validation result
ApplyPOST/coupons/applyUserApply coupon to order{"code": "SAVE10", "order_id": 123}Applied discount
Admin CouponsGET/admin/couponsStaffList all couponsQuery: ?is_active=true&expiring_soon=trueCoupon list
CreatePOST/admin/couponsStaffCreate coupon{"code", "discount_type", "discount_value", "valid_from", "valid_until"}Created coupon
DetailsGET/admin/coupons/{coupon_id}StaffGet coupon detailsNoneCoupon object
UpdatePUT/admin/coupons/{coupon_id}StaffUpdate couponCoupon fieldsUpdated coupon
DeleteDELETE/admin/coupons/{coupon_id}AdminDelete couponNoneSuccess message
Usage StatsGET/admin/coupons/{coupon_id}/usageStaffGet usage statisticsNoneUsage analytics
PAYMENT PROCESSING
PaymentsGET/paymentsUserGet user’s paymentsQuery: ?status=completedPayment list
IntentPOST/payments/intentUserCreate payment intent{"order_id": 123, "amount": 199.99, "currency": "USD"}Payment intent
ConfirmPOST/payments/confirmUserConfirm payment{"payment_intent_id", "payment_method"}Payment result
DetailsGET/payments/{payment_id}UserGet payment detailsNonePayment object
RefundPOST/payments/{payment_id}/refundStaffRequest refund{"amount": 50.00, "reason": "defective item"}Refund result
WebhooksPOST/webhooks/stripeSystemStripe webhookStripe payloadSuccess
WebhooksPOST/webhooks/paypalSystemPayPal webhookPayPal payloadSuccess
INVOICE MANAGEMENT
User InvoicesGET/invoicesUserGet user’s invoicesQuery: ?status=paidInvoice list
DetailsGET/invoices/{invoice_id}UserGet invoice detailsNoneInvoice object
PDFGET/invoices/{invoice_id}/pdfUserDownload invoice PDFNonePDF file
Admin InvoicesGET/admin/invoicesStaffList all invoicesQuery: ?status=overdue&customer_id=123Invoice list
CreatePOST/admin/invoicesStaffCreate invoice{"user_id", "order_id", "amount", "due_date"}Created invoice
UpdatePUT/admin/invoices/{invoice_id}StaffUpdate invoiceInvoice fieldsUpdated invoice
SendPOST/admin/invoices/{invoice_id}/sendStaffSend invoice to customer{"method": "email"}Success message
NOTIFICATIONS
User NotificationsGET/notificationsUserGet user’s notificationsQuery: ?unread=trueNotification list
Mark ReadPUT/notifications/{notification_id}/readUserMark as readNoneSuccess message
DeleteDELETE/notifications/{notification_id}UserDelete notificationNoneSuccess message
Mark All ReadPOST/notifications/mark-all-readUserMark all as readNoneSuccess message
Admin SendPOST/admin/notifications/sendStaffSend notification to users{"user_ids": [1,2,3], "title", "message", "type"}Success message
TemplatesGET/admin/notifications/templatesStaffGet notification templatesNoneTemplate list
BroadcastPOST/admin/notifications/broadcastAdminBroadcast to all users{"title", "message", "type", "user_filter"}Success message
ANALYTICS & REPORTING
User DashboardGET/analytics/dashboardUserUser dashboard dataNoneDashboard metrics
Order AnalyticsGET/analytics/ordersUserOrder history analyticsQuery: ?period=30dOrder analytics
Subscription AnalyticsGET/analytics/subscriptionsUserSubscription analyticsQuery: ?period=12mSubscription metrics
Admin OverviewGET/admin/analytics/overviewAdminPlatform overviewQuery: ?period=30d&group_by=dayOverview metrics
Sales AnalyticsGET/admin/analytics/salesAdminSales analyticsQuery: ?start_date=2024-01-01&end_date=2024-01-31Sales metrics
User AnalyticsGET/admin/analytics/usersAdminUser analyticsQuery: ?segment=new_users&period=7dUser metrics
Product AnalyticsGET/admin/analytics/productsAdminProduct performanceQuery: ?top_products=10&period=30dProduct metrics
Subscription MetricsGET/admin/analytics/subscriptionsAdminSubscription metricsQuery: ?churn_rate=true&period=12mSubscription analytics
AUDIT & LOGGING
Audit LogsGET/admin/audit-logsAdminGet audit logsQuery: ?action=update&table_name=products&user_id=123Audit log list
User ActionsGET/admin/audit-logs/user/{user_id}AdminGet user’s actionsQuery: ?start_date=2024-01-01&action=deleteUser audit logs
Table ChangesGET/admin/audit-logs/table/{table}AdminGet table changesQuery: ?record_id=123&period=7dTable audit logs
SYSTEM & HEALTH
HealthGET/healthPublicBasic health checkNoneSystem status
Detailed HealthGET/health/detailedAdminDetailed system statusNoneDetailed system info
VersionGET/versionPublicAPI version infoNoneVersion details
System StatsGET/admin/system/statsAdminSystem statisticsNoneSystem metrics
Maintenance OnPOST/admin/system/maintenanceAdminEnable maintenance mode{"message": "Scheduled maintenance"}Success message
Maintenance OffDELETE/admin/system/maintenanceAdminDisable maintenance modeNoneSuccess message

Authorization Levels Table

LevelDescriptionEndpoints AccessRate Limit
PublicNo authentication requiredHealth, Auth, Product browsing100 req/hour
UserAuthenticated usersProfile, Orders, Cart, Subscriptions1000 req/hour
StaffOperations staff roleProduct/Inventory management, Order admin5000 req/hour
AdminAdministrator roleUser management, System admin, Analytics10000 req/hour
SystemInternal system callsWebhooks, Background processesUnlimited

OAuth2 Providers Table

ProviderEndpointScopes RequiredRedirect URI Format
Google/auth/oauth/googleopenid email profilehttps://yourapp.com/callback/google
GitHub/auth/oauth/githubuser:emailhttps://yourapp.com/callback/github

Common Query Parameters Table

CategoryParametersDescriptionExample
PaginationpagelimitPage number and items per page?page=2&limit=20
Filteringstatustypeis_activeFilter by field values?status=active&type=physical
SearchsearchqText search in relevant fields?search=laptop&q=gaming
Date Rangestart_dateend_dateperiodDate filtering?period=30d&start_date=2024-01-01
Sortingsort_byorderSort results?sort_by=created_at&order=desc
User Filteringuser_iduser_typeFilter by user?user_type=customer&user_id=123

Response Status Codes Table

CodeStatusDescriptionUsed For
200OKSuccessGET, PUT requests
201CreatedResource createdPOST requests
204No ContentSuccess, no response bodyDELETE requests
400Bad RequestInvalid request dataValidation errors
401UnauthorizedAuthentication requiredMissing/invalid token
403ForbiddenInsufficient permissionsRole/permission denied
404Not FoundResource not foundInvalid ID/endpoint
409ConflictResource conflictDuplicate entries
422Unprocessable EntityValidation failedBusiness logic errors
429Too Many RequestsRate limit exceededRate limiting
500Internal Server ErrorServer errorSystem errors

Environment Variables Table

VariableRequiredDescriptionExample
GOOGLE_CLIENT_IDYesGoogle OAuth2 client ID123456789-abc...googleusercontent.com
GOOGLE_CLIENT_SECRETYesGoogle OAuth2 client secretGOCSPX-abc123...
GITHUB_CLIENT_IDYesGitHub OAuth2 client IDIv1.abc123...
GITHUB_CLIENT_SECRETYesGitHub OAuth2 client secretabc123def456...
JWT_SECRETYesJWT signing secretsuper-secure-secret-key
JWT_EXPIRES_INNoJWT expiration time1h (default)
REFRESH_TOKEN_EXPIRES_INNoRefresh token expiration7d (default)
DATABASE_URLYesDatabase connection stringpostgresql://user:pass@host:5432/db
REDIS_URLNoRedis connection for cachingredis://localhost:6379
STRIPE_SECRET_KEYYesStripe payment processingsk_test_...
STRIPE_WEBHOOK_SECRETYesStripe webhook verificationwhsec_...

This comprehensive table format makes it easy to reference any API endpoint, understand authentication requirements, and see the complete structure of your platform’s API at a glance.