Skip to main content

Overview

The User Administration APIs provide comprehensive user management capabilities including user creation, role assignment, permissions management, and administrative operations across universities, trainers, interns, and students.

Base URL

https://talentg.vercel.app/api

Authentication

All endpoints require authentication with admin-level permissions. Users must have admin or talentgro_team roles.
Authorization: Bearer <supabase_jwt_token>
Content-Type: application/json

User Management

List Users

Create User

Update User

Update User Roles

Delete Users

University Management

List Universities

Create University

Update University

Delete University

Trainer Management

List Trainers

Create Trainer

Intern Management

Create Intern

Error Handling

Common Error Codes

CodeHTTP StatusDescription
UNAUTHORIZED401Invalid or missing authentication token
FORBIDDEN403Insufficient permissions for the operation
NOT_FOUND404User, university, or resource not found
VALIDATION_ERROR400Invalid input data provided
CONFLICT409Resource already exists (duplicate email/slug)
RATE_LIMITED429Too many requests

Error Response Format

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Invalid input data",
    "details": {
      "field": "email",
      "message": "Email format is invalid"
    }
  }
}

Rate Limiting

  • Read operations: 1000 requests per hour
  • Write operations: 500 requests per hour
  • Bulk operations: 50 requests per hour

SDK Examples

const createUser = async (userData) => {
  const token = await getSupabaseToken();

  const response = await fetch('/api/admin/create-user', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${token}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(userData)
  });

  return response.json();
};

// Usage
const newUser = await createUser({
  email: 'trainer@example.com',
  full_name: 'Jane Trainer',
  password: 'secure123',
  roles: ['trainer']
});