[{"data":1,"prerenderedAt":571},["ShallowReactive",2],{"api-nav":3,"api-changelog:1-2-0":351},[4,28,57,95,115,301,317,331],{"id":5,"title":6,"links":7,"groups":27},"start","Start here",[8,11,15,18,21,24],{"title":9,"to":10},"Overview","\u002Fapi",{"title":12,"to":13,"status":14},"Quickstart","\u002Fapi\u002Fquickstart","available",{"title":16,"to":17,"status":14},"Environments","\u002Fapi\u002Fenvironments",{"title":19,"to":20,"status":14},"Authentication","\u002Fapi\u002Fauthentication",{"title":22,"to":23,"status":14},"Organizations","\u002Fapi\u002Forganizations",{"title":25,"to":26,"status":14},"Permissions","\u002Fapi\u002Fpermissions",[],{"id":29,"title":30,"links":31,"groups":56},"concepts","Concepts",[32,35,38,41,44,47,50,53],{"title":33,"to":34,"status":14},"Requests and responses","\u002Fapi\u002Frequests-and-responses",{"title":36,"to":37,"status":14},"Identifiers","\u002Fapi\u002Fidentifiers",{"title":39,"to":40,"status":14},"Pagination","\u002Fapi\u002Fpagination",{"title":42,"to":43},"Errors","\u002Fapi\u002Ferrors",{"title":45,"to":46,"status":14},"Rate limits","\u002Fapi\u002Frate-limits",{"title":48,"to":49,"status":14},"Retries","\u002Fapi\u002Fretries-and-idempotency",{"title":51,"to":52,"status":14},"Security","\u002Fapi\u002Fsecurity",{"title":54,"to":55,"status":14},"Versioning","\u002Fapi\u002Fversioning",[],{"id":58,"title":59,"links":60,"groups":94},"resources","Guides",[61,64,67,70,73,76,79,82,85,88,91],{"title":62,"to":63,"status":14},"Students","\u002Fapi\u002Fguides\u002Fstudents",{"title":65,"to":66,"status":14},"Bulk registration","\u002Fapi\u002Fguides\u002Fbulk-registration",{"title":68,"to":69,"status":14},"Passwords","\u002Fapi\u002Fguides\u002Fpasswords",{"title":71,"to":72,"status":14},"Supervisors","\u002Fapi\u002Fguides\u002Fsupervisors",{"title":74,"to":75,"status":14},"Reference data","\u002Fapi\u002Fguides\u002Freference-data",{"title":77,"to":78,"status":14},"API account","\u002Fapi\u002Fguides\u002Fapi-account",{"title":80,"to":81,"status":14},"Sign-in links","\u002Fapi\u002Fguides\u002Fsign-in-links",{"title":83,"to":84,"status":14},"Exams","\u002Fapi\u002Fguides\u002Fexams",{"title":86,"to":87,"status":14},"Applications","\u002Fapi\u002Fguides\u002Fapplications",{"title":89,"to":90,"status":14},"Group challenges","\u002Fapi\u002Fguides\u002Fgroup-challenges",{"title":92,"to":93,"status":14},"Certificates and reports","\u002Fapi\u002Fguides\u002Fcertificates-and-reports",[],{"id":96,"title":97,"links":98,"groups":114},"tutorials","Tutorials",[99,102,105,108,111],{"title":100,"to":101,"status":14},"Register and apply","\u002Fapi\u002Ftutorials\u002Fregister-and-apply",{"title":103,"to":104,"status":14},"Send a student to the panel","\u002Fapi\u002Ftutorials\u002Fsend-student-to-panel",{"title":106,"to":107,"status":14},"Change an application","\u002Fapi\u002Ftutorials\u002Fchange-an-application",{"title":109,"to":110,"status":14},"Collect results","\u002Fapi\u002Ftutorials\u002Fcollect-results",{"title":112,"to":113,"status":14},"Token handling","\u002Fapi\u002Ftutorials\u002Ftoken-handling",[],{"id":116,"title":117,"links":118,"groups":125},"reference","Reference",[119,122],{"title":120,"to":121},"All endpoints","\u002Fapi\u002Freference",{"title":123,"to":124},"Sandbox console","\u002Fapi\u002Fconsole",[126,135,145,166,206,212,230,255,271],{"tag":127,"slug":128,"links":129},"Health","health",[130],{"title":131,"to":132,"method":133,"deprecated":134},"Check that the API is up","\u002Fapi\u002Freference\u002Fget-health","GET",false,{"tag":77,"slug":136,"links":137},"api-account",[138,142],{"title":139,"to":140,"method":141,"deprecated":134},"Revoke the token you send, before it expires","\u002Fapi\u002Freference\u002Frevoke-token","POST",{"title":143,"to":144,"method":133,"deprecated":134},"Fetch the API account your token belongs to","\u002Fapi\u002Freference\u002Fget-current-api-account",{"tag":74,"slug":146,"links":147},"reference-data",[148,151,154,157,160,163],{"title":149,"to":150,"method":133,"deprecated":134},"List the countries a student can be registered in","\u002Fapi\u002Freference\u002Flist-countries",{"title":152,"to":153,"method":133,"deprecated":134},"Fetch one country by its id","\u002Fapi\u002Freference\u002Fget-country",{"title":155,"to":156,"method":133,"deprecated":134},"List the grades a student can be registered with","\u002Fapi\u002Freference\u002Flist-grades",{"title":158,"to":159,"method":133,"deprecated":134},"Fetch one grade by its id","\u002Fapi\u002Freference\u002Fget-grade",{"title":161,"to":162,"method":133,"deprecated":134},"List the organizations and their ids","\u002Fapi\u002Freference\u002Flist-organizations",{"title":164,"to":165,"method":133,"deprecated":134},"Fetch one organization by its id","\u002Fapi\u002Freference\u002Fget-organization",{"tag":62,"slug":167,"links":168},"students",[169,172,175,178,181,184,187,191,194,197,200,203],{"title":170,"to":171,"method":133,"deprecated":134},"List your students","\u002Fapi\u002Freference\u002Flist-students",{"title":173,"to":174,"method":141,"deprecated":134},"Register a student","\u002Fapi\u002Freference\u002Fregister-student",{"title":176,"to":177,"method":141,"deprecated":134},"Check a registration without registering the student","\u002Fapi\u002Freference\u002Fcheck-student-registration",{"title":179,"to":180,"method":141,"deprecated":134},"Register many students at once","\u002Fapi\u002Freference\u002Fcreate-student-import",{"title":182,"to":183,"method":133,"deprecated":134},"Follow a batch of students you sent","\u002Fapi\u002Freference\u002Fget-student-import",{"title":185,"to":186,"method":133,"deprecated":134},"Fetch one of your students","\u002Fapi\u002Freference\u002Fget-student",{"title":188,"to":189,"method":190,"deprecated":134},"Update one of your students","\u002Fapi\u002Freference\u002Fupdate-student","PUT",{"title":192,"to":193,"method":190,"deprecated":134},"Set the sign-in password of one of your students","\u002Fapi\u002Freference\u002Fset-student-password",{"title":195,"to":196,"method":133,"deprecated":134},"List your students who can use this organization","\u002Fapi\u002Freference\u002Flist-org-students",{"title":198,"to":199,"method":133,"deprecated":134},"Fetch one of your students, if they can use this organization","\u002Fapi\u002Freference\u002Fget-org-student",{"title":201,"to":202,"method":190,"deprecated":134},"Update one of your students and give them access to this organization","\u002Fapi\u002Freference\u002Fupdate-org-student",{"title":204,"to":205,"method":190,"deprecated":134},"Link one of your students to a supervisor on this organization","\u002Fapi\u002Freference\u002Flink-student-supervisor",{"tag":80,"slug":207,"links":208},"sign-in-links",[209],{"title":210,"to":211,"method":141,"deprecated":134},"Create a single-use sign-in link for one of your students","\u002Fapi\u002Freference\u002Fcreate-signin-link",{"tag":83,"slug":213,"links":214},"exams",[215,218,221,224,227],{"title":216,"to":217,"method":133,"deprecated":134},"List the exams open for applications","\u002Fapi\u002Freference\u002Flist-exams",{"title":219,"to":220,"method":133,"deprecated":134},"List an organization’s exam categories","\u002Fapi\u002Freference\u002Flist-exam-categories",{"title":222,"to":223,"method":133,"deprecated":134},"Fetch one exam category","\u002Fapi\u002Freference\u002Fget-exam-category",{"title":225,"to":226,"method":133,"deprecated":134},"List the exams one of your students can apply to","\u002Fapi\u002Freference\u002Flist-available-exams",{"title":228,"to":229,"method":133,"deprecated":134},"Fetch one exam that is open for applications","\u002Fapi\u002Freference\u002Fget-exam",{"tag":86,"slug":231,"links":232},"applications",[233,236,239,242,245,248,251],{"title":234,"to":235,"method":133,"deprecated":134},"List your students’ applications in this organization","\u002Fapi\u002Freference\u002Flist-applications",{"title":237,"to":238,"method":141,"deprecated":134},"Enter one of your students for an exam","\u002Fapi\u002Freference\u002Fcreate-application",{"title":240,"to":241,"method":133,"deprecated":134},"List your students’ applications for one exam","\u002Fapi\u002Freference\u002Flist-exam-applications",{"title":243,"to":244,"method":133,"deprecated":134},"List one of your students’ applications in this organization","\u002Fapi\u002Freference\u002Flist-student-applications",{"title":246,"to":247,"method":133,"deprecated":134},"Fetch one of your students’ applications","\u002Fapi\u002Freference\u002Fget-application",{"title":249,"to":250,"method":190,"deprecated":134},"Move one of your students’ applications to another exam","\u002Fapi\u002Freference\u002Fmove-application",{"title":252,"to":253,"method":254,"deprecated":134},"Withdraw one of your students from an exam","\u002Fapi\u002Freference\u002Fdelete-application","DELETE",{"tag":256,"slug":257,"links":258},"Documents","documents",[259,262,265,268],{"title":260,"to":261,"method":133,"deprecated":134},"Download a certificate file","\u002Fapi\u002Freference\u002Fdownload-certificate",{"title":263,"to":264,"method":133,"deprecated":134},"List one of your students’ released certificates","\u002Fapi\u002Freference\u002Flist-student-certificates",{"title":266,"to":267,"method":133,"deprecated":134},"Download a result report file","\u002Fapi\u002Freference\u002Fdownload-report",{"title":269,"to":270,"method":133,"deprecated":134},"List one of your students’ released result reports","\u002Fapi\u002Freference\u002Flist-student-reports",{"tag":89,"slug":272,"links":273},"group-challenges",[274,277,280,283,286,289,292,295,298],{"title":275,"to":276,"method":133,"deprecated":134},"List the group challenges an organization runs","\u002Fapi\u002Freference\u002Flist-group-challenges",{"title":278,"to":279,"method":133,"deprecated":134},"Fetch one group challenge","\u002Fapi\u002Freference\u002Fget-group-challenge",{"title":281,"to":282,"method":133,"deprecated":134},"List the groups your students are in for a group challenge","\u002Fapi\u002Freference\u002Flist-group-challenge-groups",{"title":284,"to":285,"method":133,"deprecated":134},"Fetch one group, with its steps and files","\u002Fapi\u002Freference\u002Fget-group-challenge-group",{"title":287,"to":288,"method":133,"deprecated":134},"List what has happened in one group","\u002Fapi\u002Freference\u002Flist-group-challenge-activity",{"title":290,"to":291,"method":141,"deprecated":134},"Send a group’s finished work for one of your students","\u002Fapi\u002Freference\u002Fsubmit-group-challenge-work",{"title":293,"to":294,"method":141,"deprecated":134},"Submit one step of a group for one of your students","\u002Fapi\u002Freference\u002Fsubmit-group-challenge-step",{"title":296,"to":297,"method":133,"deprecated":134},"List your students’ eligibility and groups for a group challenge","\u002Fapi\u002Freference\u002Flist-group-challenge-students",{"title":299,"to":300,"method":133,"deprecated":134},"Fetch one of your students’ eligibility and group for a group challenge","\u002Fapi\u002Freference\u002Fget-group-challenge-student",{"id":302,"title":303,"links":304,"groups":316},"clients","Clients",[305,307,310,313],{"title":9,"to":306,"status":14},"\u002Fapi\u002Fclients",{"title":308,"to":309,"status":14},"Node.js","\u002Fapi\u002Fclients\u002Fnode",{"title":311,"to":312,"status":14},"PHP","\u002Fapi\u002Fclients\u002Fphp",{"title":314,"to":315,"status":14},"Build your own","\u002Fapi\u002Fclients\u002Fbuild-your-own",[],{"id":318,"title":319,"links":320,"groups":330},"agents","AI agents",[321,324,327],{"title":322,"to":323},"AI connections","\u002Fapi\u002Fmcp",{"title":325,"to":326},"What it can do","\u002Fapi\u002Fmcp\u002Ftools",{"title":328,"to":329},"Agent skills","\u002Fapi\u002Fskills",[],{"id":332,"title":333,"links":334,"groups":350},"help","Help",[335,338,341,344,347],{"title":336,"to":337,"status":14},"Glossary","\u002Fapi\u002Fglossary",{"title":339,"to":340,"status":14},"FAQ","\u002Fapi\u002Ffaq",{"title":342,"to":343,"status":14},"Troubleshooting","\u002Fapi\u002Ftroubleshooting",{"title":345,"to":346,"status":14},"Support","\u002Fapi\u002Fsupport",{"title":348,"to":349},"Changelog","\u002Fapi\u002Fchangelog",[],{"entry":352,"body":384,"newer":567,"older":568},{"path":353,"version":354,"date":355,"breaking":134,"summary":356,"description":357,"changes":358,"longForm":383,"preview":134},"\u002Fapi\u002Fchangelog\u002F1-2-0","1.2.0","2026-10-01","Nine new operations under one new tag, Group challenges, behind two new permissions, group-challenge\u002Fread and group-challenge\u002Fsubmit. Nothing that worked against 1.1.1 changes.","Follow your students through an organization's group challenges, and submit their steps and their group's finished work for them.",[359,371,376,380],{"type":360,"breaking":134,"text":361,"operations":362},"added","Group challenges, a new resource under `\u002Fv1\u002F{organizationId}\u002Fgroup-challenge` with the tag \"Group challenges\" and the permission `group-challenge\u002Fread` (also granted by `*\u002Fread`, `*\u002F*` and `*`): `listGroupChallenges` and `getGroupChallenge` read the challenges an organization runs; `listGroupChallengeStudents` and `getGroupChallengeStudent` say where each of your students stands (eligible by grade, in a group, the group's state) and give the `panelPath` to send them to with `createSigninLink`; `listGroupChallengeGroups` and `getGroupChallengeGroup` read the groups your students are in, with each step and its files; `listGroupChallengeActivity` lists what happened in a group. Only your own students are named: every other person is their role alone. The operations answer `404` on an organization where group challenges are not switched on.",[363,364,365,366,367,368,369,370],"listGroupChallenges","getGroupChallenge","listGroupChallengeStudents","getGroupChallengeStudent","createSigninLink","listGroupChallengeGroups","getGroupChallengeGroup","listGroupChallengeActivity",{"type":360,"breaking":134,"text":372,"operations":373},"Submitting group challenge work for one of your students, behind the new permission `group-challenge\u002Fsubmit` (also granted by `*\u002F*` and `*`, not by `*\u002Fread`): `submitGroupChallengeStep` submits a group's open step and opens the next, and `submitGroupChallengeWork` sends the group's finished work and e-mails its members and teacher. Both take `{ \"studentId\": \"\u003CstudentId>\" }`, a student of yours who is an active member of the group, and are recorded in the group's history as your account acting for them. Repeating a submit that already happened answers `200` with `changed: false`.",[374,375],"submitGroupChallengeStep","submitGroupChallengeWork",{"type":377,"breaking":134,"text":378,"operations":379},"changed","`submitGroupChallengeStep` and `submitGroupChallengeWork` are the first operations whose `409 conflict` carries `error.details.reason` (`challenge_closed`, `window_closed`, `payment_pending`, `group_not_confirmed`, `step_locked`, `step_empty`, `steps_incomplete`), and whose `503 service_unavailable` carries `details.reason: busy` with `Retry-After: 1` when the group is being changed by someone else. The error reference for both codes says so.",[374,375],{"type":377,"breaking":134,"text":381,"operations":382},"The agent kit has a seventh skill, `following-group-challenges-via-api`: reading where your students stand with `listGroupChallengeStudents` and `getGroupChallengeGroup` before submitting with `submitGroupChallengeStep` or `submitGroupChallengeWork`, never looping on a `409`, and sending a student to a challenge with `createSigninLink` and `panelPath`.",[365,369,374,375,367],true,{"type":385,"value":386,"toc":557},"minimark",[387,391,394,401,467,470,474,503,507,514,517,542,546],[388,389,390],"p",{},"Version 1.2.0 adds nine operations and removes and changes nothing. Code written against 1.1.1 keeps\nworking without a change.",[392,393,89],"h2",{"id":272},[388,395,396,397,400],{},"A group challenge is a project your students do in small groups, formed by their teacher, between\ntwo dates. Each group works through the challenge's steps in order, uploading its work in the\npanel or the app. The new tag, ",[398,399,89],"a",{"href":90},", lets you:",[402,403,404,419,440,455],"ul",{},[405,406,407,408,413,414,418],"li",{},"list the challenges an organization runs (",[398,409,410],{"href":276},[411,412,363],"code",{},", ",[398,415,416],{"href":279},[411,417,364],{},");",[405,420,421,422,413,426,430,431,434,435,439],{},"see where each of your students stands (",[398,423,424],{"href":297},[411,425,365],{},[398,427,428],{"href":300},[411,429,366],{},"), including the ",[411,432,433],{},"panelPath"," to send them to with ",[398,436,437],{"href":211},[411,438,367],{},";",[405,441,442,443,413,447,413,451,418],{},"read the groups your students are in, with each step and its files, and what happened in a group (",[398,444,445],{"href":282},[411,446,368],{},[398,448,449],{"href":285},[411,450,369],{},[398,452,453],{"href":288},[411,454,370],{},[405,456,457,458,413,462,466],{},"submit a step, or send the finished work, for one of your students (",[398,459,460],{"href":294},[411,461,374],{},[398,463,464],{"href":291},[411,465,375],{},").",[388,468,469],{},"Only your own students are named. Everyone else in a group — other members, the teacher, the\norganizers — is shown by role alone.",[392,471,473],{"id":472},"new-permissions","New permissions",[388,475,476,479,480,483,484,487,488,490,491,494,495,498,499,502],{},[411,477,478],{},"group-challenge\u002Fread"," grants the seven reads and ",[411,481,482],{},"group-challenge\u002Fsubmit"," the two submits, on the\norganization in the path. ",[411,485,486],{},"*\u002Fread"," includes ",[411,489,478],{},"; ",[411,492,493],{},"*\u002F*"," and ",[411,496,497],{},"*"," include both. See\n",[398,500,25],{"href":501},"\u002Fapi\u002Fpermissions#group-challenges",".",[392,504,506],{"id":505},"where-it-is-available","Where it is available",[388,508,509,510,513],{},"Group challenges are switched on per organization. Where they are not, the nine operations answer\n",[411,511,512],{},"404 not_found",", as an unknown path does.",[392,515,42],{"id":516},"errors",[388,518,519,520,523,524,527,528,523,531,534,535,538,539,502],{},"The two submits are the first operations whose ",[411,521,522],{},"409 conflict"," carries ",[411,525,526],{},"error.details.reason",", and\nwhose ",[411,529,530],{},"503 service_unavailable",[411,532,533],{},"details.reason: busy"," with ",[411,536,537],{},"Retry-After: 1",". Both are\ndescribed on the ",[398,540,541],{"href":43},"errors page",[392,543,545],{"id":544},"agent-kit","Agent kit",[388,547,548,549,552,553,556],{},"The agent kit gains a seventh skill, ",[411,550,551],{},"following-group-challenges-via-api",": it reads where your\nstudents stand before it submits anything, never retries a ",[411,554,555],{},"409"," in a loop, and sends a student to a\nchallenge's page with a sign-in link instead of trying to upload for them.",{"title":558,"searchDepth":559,"depth":560,"links":561},"",2,3,[562,563,564,565,566],{"id":272,"depth":559,"text":89},{"id":472,"depth":559,"text":473},{"id":505,"depth":559,"text":506},{"id":516,"depth":559,"text":42},{"id":544,"depth":559,"text":545},null,{"path":569,"version":570},"\u002Fapi\u002Fchangelog\u002F1-1-1","1.1.1",1791554614174]