API Reference
SkillLoop Core Endpoints and Payload Specifications.
API Status: Active
Base Configuration
All API requests must be routed through the base path below. Authentication tokens are verified on all guarded routes.
Base Server URL: /api/v1
- All paths documented below are appended to the Base URL.
- Secure requests require either the
tokenCookie (HttpOnly) or a Bearer Token in theAuthorizationheader.
1. Authentication
POST
/auth/register
Public
Register a new platform account.
Request Payload
{
"email": "user@example.com",
"password": "securepassword",
"firstName": "John",
"lastName": "Doe"
}
Success Response
{
"id": "uuid-string",
"email": "user@example.com",
"firstName": "John",
"lastName": "Doe"
}
POST
/auth/login
Public
Authenticate profile credentials. Returns an HttpOnly JWT cookie.
Request Payload
{
"email": "user@example.com",
"password": "securepassword"
}
Success Response
{
"message": "Logged in successfully",
"user": {
"id": "uuid-string",
"email": "user@example.com"
}
}
GET
/auth/me
Guard
Verify connection token and return active session owner profile.
2. Skill Listings
POST
/skills
Guard
Offer a technical skill to the platform marketplace.
Request Payload
{
"title": "TypeScript Tutoring",
"description": "Learn advanced type mechanics",
"category": "Technology"
}
GET
/skills
Guard
Query active marketplace skill offerings. Supports pagination & filtering.
3. Skill Requests
POST
/requests
Guard
Submit a session request to a skill provider.
Request Payload
{
"skillListingId": "uuid-listing-id",
"schedulingLink": "https://calendly.com/...",
"message": "Hi, I would love to learn typescript!"
}
PATCH
/requests/:id
Guard
Accept, reject, or cancel requests. Accepting creates a session and schedules meeting links.
Request Payload
{
"status": "ACCEPTED"
}
4. Zoom OAuth API
GET
/zoom/connect
Guard
Generate authorization redirect URL for connecting a Zoom account.
Response
{
"url": "https://zoom.us/oauth/authorize?response_type=code..."
}
GET
/zoom/status
Guard
Fetch connectivity status of user's Zoom account.
Response
{
"connected": true,
"updatedAt": "2026-07-16T22:30:00.000Z"
}
DELETE
/zoom/disconnect
Guard
Revoke Zoom access credentials.
5. Sessions & Feedback
PATCH
/sessions/:id/complete
Guard
Conclude a session, triggering token point awards to the tutor.
POST
/sessions/:id/feedback
Guard
Submit feedback ratings (1-5 scale) and reviews.
6. Admin & User Project APIs
Endpoints for Admins to create, list, edit, and delete user projects, plus dashboard metric counts and eligible user queries.
POST
/admin/projects
Admin
Create and assign a new project to a user.
Request Payload
{
"userId": "user-uuid-here",
"title": "Portfolio Website",
"description": "Describe project goals...",
"category": "UI/UX Design",
"tasks": ["Wireframes", "Frontend"],
"attachments": [],
"startDate": "2026-06-20T09:30:00.000Z",
"deadline": "2026-06-20T16:30:00.000Z",
"deliverableTypes": ["FIGMA", "GITHUB"]
}
Success Response
{
"message": "Project created successfully",
"project": {
"id": "prj-uuid",
"projectCode": "PRJ-2026-14431",
"status": "PENDING"
}
}
GET
/admin/projects
Admin
List all projects with pagination filters and summary metric counts (total, completed, active, failed).
GET
/admin/projects/eligible-users
Admin
List users with completed session counts for project assignment eligibility.
PUT
/admin/projects/:id
Admin
Update project details, timelines, or status (PENDING, IN_PROGRESS, COMPLETED, FAILED).
DELETE
/admin/projects/:id
Admin
Delete a project by ID.
GET
/projects
Guard
Retrieve assigned projects for logged-in user.
POST
/projects/:id/deliverables
Guard
Submit project deliverables with optional rating and feedback.
POST
/projects/:id/rating
Guard
Rate project (1-5 stars) and submit feedback review.
GET
/projects/:id/rating
Guard
Retrieve rating summary and feedback entries for a project.