API · v1

Judgified API.

A clean REST surface for integrating Judgified into competition platforms, payroll, and reporting systems. Stable v1, JSON over HTTPS, signed webhooks for state changes.

Base URL: api.judgified.app
Auth: Bearer tokens
Rate limit: 600/min
Authentication
All requests carry a workspace bearer token in the Authorization header.
Webhooks
Signed events for submission.*, review.*, report.published.
SDKs
Official clients for TypeScript, Python, Ruby — auto-typed from OpenAPI.
Endpoints
Full reference for the v1 surface
GET/v1/submissionsList submissions with filters & pagination
POST/v1/submissionsCreate a new submission
GET/v1/submissions/{id}Retrieve a submission with reviews
PATCH/v1/submissions/{id}Update status, notes, or scoresheet
POST/v1/submissions/{id}/assignmentsAssign reviewers
GET/v1/reviewersList reviewers, certifications & workload
PATCH/v1/reviewers/{id}Update reviewer certification or rate
GET/v1/scoresheetsList scoresheet templates
POST/v1/scoresheetsCreate a scoresheet template
POST/v1/reviewsSubmit a completed review
GET/v1/reports/payrollPayroll report for a date range
Examples
Common requests in cURL & TypeScript
curl -X POST https://api.judgified.app/v1/submissions \
  -H "Authorization: Bearer $JG_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "teamName": "Velocity Lightning",
    "organization": "Velocity Athletics",
    "division": "Senior", "level": "Level 5",
    "videoUrl": "https://youtube.com/watch?v=...",
    "package": "Elite", "scoresheetId": "ss1"
  }'
Webhook payload
Example for review.submitted
{
  "id": "evt_01HXYZ...",
  "type": "review.submitted",
  "createdAt": "2026-06-09T14:21:33Z",
  "data": {
    "submissionId": "s1",
    "reviewerId": "r1",
    "scoresheetId": "ss1",
    "scores": { "cr1": 8.4, "cr2": 8.1 },
    "payout": 180
  }
}