GFAVIP Account API Documentation

RESTful API for integrating with the GFAVIP Account management system.

Base URL
https://account.gfavip.com

Authentication

The API uses GFAVIP SSO token-based authentication. Include the bearer token in the Authorization header:

Authorization: Bearer YOUR_GFAVIP_TOKEN
Note: Tokens are obtained through the GFAVIP Wallet SSO flow at wallet.gfavip.com

API Endpoints

GET /health

Health check endpoint for monitoring and deployment validation.

Response
{
  "status": "healthy",
  "service": "gfavip-account"
}

GET /api/user/profile

Get current user's profile and membership information.

Headers
Authorization: Bearer {token}
Response
{
  "user_id": "7ee04dbe-17f1-45ca-b8b5-a6e34098b074",
  "email": "user@example.com",
  "username": "michelini",
  "tier": "paid",
  "credits": 100,
  "membership": {
    "premium_expires_at": "2026-09-09",
    "status": "active",
    "is_expired": false,
    "is_expiring_soon": false
  }
}

GET /api/membership/status

Check membership status and expiration for the authenticated user.

Headers
Authorization: Bearer {token}
Response
{
  "premium_expires_at": "2026-09-09",
  "status": "active",
  "is_expired": false,
  "is_expiring_soon": false,
  "days_until_expiry": 365
}

POST /api/service/request

Submit a service access request (for onboarding forms integration).

Headers
Authorization: Bearer {token}
Content-Type: application/json
Request Body
{
  "service_name": "Academy",
  "request_type": "upgrade_access",
  "notes": "Completed onboarding form"
}
Response
{
  "request_id": 123,
  "status": "pending",
  "message": "Service request submitted successfully"
}

Integration Guide

Onboarding Form Integration

To integrate with onboarding forms, follow this flow:

  1. Authenticate User: Redirect to GFAVIP SSO for authentication
  2. Check Membership: Use GET /api/membership/status to verify access
  3. Submit Requests: Use POST /api/service/request for service access
  4. Monitor Status: Check request status via admin interface

Example Integration

// JavaScript example for onboarding form
async function checkMembershipAndSubmitRequest() {
    try {
        // Check membership status
        const membershipResponse = await fetch('/api/membership/status', {
            headers: {
                'Authorization': `Bearer ${userToken}`
            }
        });
        
        const membership = await membershipResponse.json();
        
        if (membership.is_expired) {
            alert('Please renew your membership to access this service');
            return;
        }
        
        // Submit service request
        const requestResponse = await fetch('/api/service/request', {
            method: 'POST',
            headers: {
                'Authorization': `Bearer ${userToken}`,
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({
                service_name: 'Academy',
                request_type: 'upgrade_access',
                notes: 'Completed onboarding form'
            })
        });
        
        const result = await requestResponse.json();
        console.log('Request submitted:', result);
        
    } catch (error) {
        console.error('Integration error:', error);
    }
}
Best Practices
  • Always validate tokens before making API calls
  • Handle membership expiration gracefully
  • Use appropriate error handling for network requests
  • Cache membership status appropriately to reduce API calls