GET /api/premium/user/{id}/status

Get user premium tier and subscription status

Back to API Docs

Description

Retrieves the user's current premium tier, available categories, bandwidth limits, and subscription status. Creates a FREE tier subscription if the user doesn't have one.

Endpoint URL
GET https://premium.regardingwork.com/api/premium/user/{user_id}/status
Authentication
Authorization: Bearer <jwt_token>

Request

Path Parameters
  • user_id (integer) - The Hub User ID to check premium status for
Headers
Authorization: Bearer your_jwt_token

Response (200 OK)

{
  "user_id": 7,
  "tier": "PREMIUM_PLUS",
  "tier_name": "Premium Plus",
  "is_active": true,
  "available_categories": [1, 2, 3, 4, 5],
  "bandwidth_limit_mb": 500,
  "expires_at": "2024-12-31T23:59:59Z"
}
Note: available_categories contains category IDs the user can access based on their tier.

Premium Tiers

FREE
  • No music categories
  • 0 MB bandwidth
PREMIUM
  • Intense Work Music
  • Reading/Study Music
  • Business Music
  • 100 MB bandwidth
PREMIUM_PLUS
  • All Premium categories
  • Nature Sounds
  • Coding Music
  • 500 MB bandwidth
PLATINUM
  • All categories
  • Unlimited bandwidth

Code Examples

JavaScript (Fetch)
async function getUserPremiumStatus(userId, token) {
  const response = await fetch(`https://premium.regardingwork.com/api/premium/user/${userId}/status`, {
    method: 'GET',
    headers: {
      'Authorization': 'Bearer ' + token
    }
  });
  
  if (response.ok) {
    const status = await response.json();
    console.log(`User tier: ${status.tier_name}`);
    console.log(`Available categories: ${status.available_categories.length}`);
    return status;
  } else {
    throw new Error('Failed to get premium status');
  }
}
Swift (iOS/macOS)
func getUserPremiumStatus(userId: Int, token: String) async throws -> PremiumStatus {
    let url = URL(string: "https://premium.regardingwork.com/api/premium/user/\(userId)/status")!
    var request = URLRequest(url: url)
    request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
    
    let (data, response) = try await URLSession.shared.data(for: request)
    
    guard let httpResponse = response as? HTTPURLResponse,
          httpResponse.statusCode == 200 else {
        throw APIError.requestFailed
    }
    
    return try JSONDecoder().decode(PremiumStatus.self, from: data)
}

Related Endpoints