Skip to content
This repository was archived by the owner on Jul 6, 2026. It is now read-only.

Latest commit

 

History

History
92 lines (72 loc) · 3.75 KB

File metadata and controls

92 lines (72 loc) · 3.75 KB

🔌 Loopless — API Endpoints

Base URL: /api/v1/ | Auth: JWT via Keycloak

Auth

Method Endpoint Auth
POST /api/v1/auth/register No
POST /api/v1/auth/login No
POST /api/v1/auth/github-sso No
POST /api/v1/auth/refresh Refresh Token
GET /api/v1/users/me Yes
PUT /api/v1/users/me Yes

Projects

Method Endpoint Auth Notes
GET/POST /api/v1/projects Yes / Freelancer
GET/PUT/DELETE /api/v1/projects/{id} Owner/Invited
GET /api/v1/projects/{id}/commits Owner/Invited
POST /api/v1/projects/{id}/commits/sync Owner
POST/GET /api/v1/projects/{id}/files Owner / Owner+Invited
POST /api/v1/projects/{id}/summary Owner/Invited Returns 202; see async summary below
GET /api/v1/projects/{id}/summary/status Owner/Invited Polls async summary job status
POST /api/v1/projects/{id}/invitations Owner
PUT /api/v1/invitations/{id}/accept Invited Enterprise

Async Summary Generation

POST /api/v1/projects/{id}/summary enqueues a background RAG job (Hangfire) and returns immediately:

HTTP 202 Accepted
{
  "jobId": "<hangfire-job-id>",
  "status": "queued"
}

Poll for completion with GET /api/v1/projects/{id}/summary/status:

// In progress
{ "jobId": "...", "status": "running" }

// Completed
{
  "jobId": "...",
  "status": "completed",
  "summary": {
    "id": "...",
    "projectId": "...",
    "content": "...",
    "modelUsed": "gpt-4o-mini",
    "generatedAt": "2026-06-10T12:00:00Z"
  }
}

// Failed (after 3 retries with exponential backoff: 30 s, 120 s, 300 s)
{ "jobId": "...", "status": "failed", "failureReason": "..." }

Standups

Method Endpoint Auth
POST /api/v1/projects/{id}/standups Freelancer
GET /api/v1/projects/{id}/standups Owner/Invited

Messaging

Method Endpoint Auth
GET/POST /api/v1/messages/conversations Yes
GET/POST /api/v1/messages/conversations/{id} Participant

Matching

Method Endpoint Auth
GET /api/v1/matching/discover Yes
GET /api/v1/matching/search Yes
GET /api/v1/matching/recommendations Yes

SignalR Hubs

Hub Path Events
Messaging /hubs/messaging SendMessage, ReceiveMessage, UserTyping
Notifications /hubs/notifications NewNotification, InvitationReceived, StandupSubmitted