API Set Judging Assignments

From zFairs Contest Management
Revision as of 12:55, 25 July 2026 by Trent (talk | contribs) (Remove username/password API auth; ApiKey only)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Set Judging Assignments

Creates judge-to-project assignments for a judging round. Optionally clears existing assignments for that round first.

Authentication

All data API calls are POST (unless noted) with JSON body:

Field Required Description
ApiKey Yes Private API key for your site.
FairId Yes Fair GUID from the site URL (f query parameter).
Body Depends Request payload. Use {} when no body fields are needed.


Calls must be run server-side — do not expose your API key in a browser.

Response envelope

Most endpoints return:

{
  Success: true,
  Message: null,   // error text when Success is false
  Body: { ... }    // endpoint-specific payload
}


Request

fetch('/api/data/JudgingAssignments', {
    method:'POST',
    headers:{'Content-Type': 'application/json'},
    body: JSON.stringify({
            ApiKey:'<Private key>',
            FairId: '9df61f13-474b-442f-ac1f-edca7348ef71', // value of f in your URL
            Body: {
				RoundId: 2,                 // required — from Get Info Rounds
				ClearOldAssignments: true,  // default true
				ClearOldScores: true,       // accepted on the model; assignments use ClearOldAssignments
				Assignments: [
					{
						ProjectKey: "32161f13-474b-442f-ac1f-edca7348e000",
						JudgeId: "judge-public-guid",  // from Get Judges → id
						At: "2024-03-15T15:30:00Z"     // optional interview time
					}
				]
			}
        })
})
.then(response => response.json())
.then(data=>{console.log('Success: ',data);})
.catch((error)=>{console.log('Error: ', error);});

Response

On success:

{
  Success: true,   // false if any assignment lines could not be resolved
  Message: "",     // lists Judge/Project not found lines
  Body: null
}

Invalid round example:

{
  Success: false,
  Message: "RoundId 99 is not valid; for this fair you have the following rounds. ..."
}


Field notes

  • Empty Assignments returns: No assignments to set.
  • Unknown judges or projects are skipped and reported in Message.
  • Success is true only when the message tape is empty (every line resolved).
  • Judge ids are public GUIDs from API Get Judges; project keys from API Get Projects.


Related APIs