[{"data":1,"prerenderedAt":1599},["ShallowReactive",2],{"api-nav":3,"api-spec:index":351,"api-spec:op:list-available-exams":636,"api-permissions-guide":1059,"api-reference-doc:list-available-exams":1060},[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",[],{"title":352,"version":353,"description":354,"baseUrl":355,"groups":356},"Main Team API","1.2.0","Register your students, enter them for exams, follow their applications, download their certificates and reports, and sign them in to an organization’s panel.\n\nEvery operation except the health check needs a bearer token: a JWT you sign yourself with HS256 and your account’s `apiSecret`. Put your `apiKey` in both the `kid` header and the `sub` claim, and set `iat` and `exp` at most 3600 seconds apart. Every authentication failure answers the same `401 unauthorized`.","https:\u002F\u002Fapi.main-team.org",[357,368,383,419,484,492,522,561,586],{"tag":127,"slug":128,"description":358,"guide":17,"operations":359},"Whether the API is up. No token needed, so it is the first call to make against an environment.",[360],{"operationId":361,"slug":362,"method":133,"path":363,"tag":127,"summary":131,"deprecated":134,"public":364,"permission":365,"scope":366,"order":367},"getHealth","get-health","\u002Fv1\u002Fhealth",true,null,"public",1,{"tag":77,"slug":136,"description":369,"guide":78,"operations":370},"The account your token belongs to, and revoking a token before it expires.",[371,378],{"operationId":372,"slug":373,"method":141,"path":374,"tag":77,"summary":139,"deprecated":134,"public":134,"permission":375,"scope":376,"order":377},"revokeToken","revoke-token","\u002Fv1\u002Fapi-account\u002Frevoke-token","api\u002F*:$org:$ID","flat",2,{"operationId":379,"slug":380,"method":133,"path":381,"tag":77,"summary":143,"deprecated":134,"public":134,"permission":375,"scope":376,"order":382},"getCurrentApiAccount","get-current-api-account","\u002Fv1\u002Fapi-account\u002Fvalidate-me",3,{"tag":74,"slug":146,"description":384,"guide":75,"operations":385},"Countries, grades and organizations. A student’s `country` and `grade` take these `_id`s, and so does every `:organizationId` in a path.",[386,392,397,403,408,414],{"operationId":387,"slug":388,"method":133,"path":389,"tag":74,"summary":149,"deprecated":134,"public":134,"permission":390,"scope":376,"order":391},"listCountries","list-countries","\u002Fv1\u002Fcountry","country\u002Fread:$org:$ID",4,{"operationId":393,"slug":394,"method":133,"path":395,"tag":74,"summary":152,"deprecated":134,"public":134,"permission":390,"scope":376,"order":396},"getCountry","get-country","\u002Fv1\u002Fcountry\u002F{id}",5,{"operationId":398,"slug":399,"method":133,"path":400,"tag":74,"summary":155,"deprecated":134,"public":134,"permission":401,"scope":376,"order":402},"listGrades","list-grades","\u002Fv1\u002Fgrade","grade\u002Fread:$org:$ID",6,{"operationId":404,"slug":405,"method":133,"path":406,"tag":74,"summary":158,"deprecated":134,"public":134,"permission":401,"scope":376,"order":407},"getGrade","get-grade","\u002Fv1\u002Fgrade\u002F{id}",7,{"operationId":409,"slug":410,"method":133,"path":411,"tag":74,"summary":161,"deprecated":134,"public":134,"permission":412,"scope":376,"order":413},"listOrganizations","list-organizations","\u002Fv1\u002Forganization","organization\u002Fread:$org:$ID",8,{"operationId":415,"slug":416,"method":133,"path":417,"tag":74,"summary":164,"deprecated":134,"public":134,"permission":412,"scope":376,"order":418},"getOrganization","get-organization","\u002Fv1\u002Forganization\u002F{id}",9,{"tag":62,"slug":167,"description":420,"guide":63,"operations":421},"Registering your students, reading and updating them, setting a password, and what each organization holds for them. You only ever see the students your account registered.",[422,428,433,438,443,448,453,458,464,470,475,479],{"operationId":423,"slug":424,"method":133,"path":425,"tag":62,"summary":170,"deprecated":134,"public":134,"permission":426,"scope":376,"order":427},"listStudents","list-students","\u002Fv1\u002Fstudent","student\u002Fread:$org:$ID",10,{"operationId":429,"slug":430,"method":141,"path":425,"tag":62,"summary":173,"deprecated":134,"public":134,"permission":431,"scope":376,"order":432},"registerStudent","register-student","student\u002Fcreate:$org:$ID",11,{"operationId":434,"slug":435,"method":141,"path":436,"tag":62,"summary":176,"deprecated":134,"public":134,"permission":431,"scope":376,"order":437},"checkStudentRegistration","check-student-registration","\u002Fv1\u002Fstudent\u002Fcheck",12,{"operationId":439,"slug":440,"method":141,"path":441,"tag":62,"summary":179,"deprecated":134,"public":134,"permission":431,"scope":376,"order":442},"createStudentImport","create-student-import","\u002Fv1\u002Fstudent\u002Fimport",13,{"operationId":444,"slug":445,"method":133,"path":446,"tag":62,"summary":182,"deprecated":134,"public":134,"permission":431,"scope":376,"order":447},"getStudentImport","get-student-import","\u002Fv1\u002Fstudent\u002Fimport\u002F{importId}",14,{"operationId":449,"slug":450,"method":133,"path":451,"tag":62,"summary":185,"deprecated":134,"public":134,"permission":426,"scope":376,"order":452},"getStudent","get-student","\u002Fv1\u002Fstudent\u002F{studentId}",15,{"operationId":454,"slug":455,"method":190,"path":451,"tag":62,"summary":188,"deprecated":134,"public":134,"permission":456,"scope":376,"order":457},"updateStudent","update-student","student\u002Fupdate:$org:$ID",16,{"operationId":459,"slug":460,"method":190,"path":461,"tag":62,"summary":192,"deprecated":134,"public":134,"permission":462,"scope":376,"order":463},"setStudentPassword","set-student-password","\u002Fv1\u002Fstudent\u002F{studentId}\u002Fpassword","auth\u002Fsignin:$org:$ID",17,{"operationId":465,"slug":466,"method":133,"path":467,"tag":62,"summary":195,"deprecated":134,"public":134,"permission":426,"scope":468,"order":469},"listOrgStudents","list-org-students","\u002Fv1\u002F{organizationId}\u002Fstudent","organization",18,{"operationId":471,"slug":472,"method":133,"path":473,"tag":62,"summary":198,"deprecated":134,"public":134,"permission":426,"scope":468,"order":474},"getOrgStudent","get-org-student","\u002Fv1\u002F{organizationId}\u002Fstudent\u002F{studentId}",19,{"operationId":476,"slug":477,"method":190,"path":473,"tag":62,"summary":201,"deprecated":134,"public":134,"permission":456,"scope":468,"order":478},"updateOrgStudent","update-org-student",20,{"operationId":480,"slug":481,"method":190,"path":482,"tag":62,"summary":204,"deprecated":134,"public":134,"permission":456,"scope":468,"order":483},"linkStudentSupervisor","link-student-supervisor","\u002Fv1\u002F{organizationId}\u002Fstudent\u002F{studentId}\u002Fsupervisor",21,{"tag":80,"slug":207,"description":485,"guide":81,"operations":486},"Links that sign one of your students into an organization’s panel. Each works once and expires two minutes after it is issued.",[487],{"operationId":488,"slug":489,"method":141,"path":490,"tag":80,"summary":210,"deprecated":134,"public":134,"permission":462,"scope":468,"order":491},"createSigninLink","create-signin-link","\u002Fv1\u002F{organizationId}\u002Fauth\u002Fsignin",22,{"tag":83,"slug":213,"description":493,"guide":84,"operations":494},"The exam categories and exams an organization runs, and the ones one of your students can apply to.",[495,501,507,512,517],{"operationId":496,"slug":497,"method":133,"path":498,"tag":83,"summary":216,"deprecated":134,"public":134,"permission":499,"scope":468,"order":500},"listExams","list-exams","\u002Fv1\u002F{organizationId}\u002Fexam","exam\u002Fread:$org:$ID",23,{"operationId":502,"slug":503,"method":133,"path":504,"tag":83,"summary":219,"deprecated":134,"public":134,"permission":505,"scope":468,"order":506},"listExamCategories","list-exam-categories","\u002Fv1\u002F{organizationId}\u002Fexam-category","exam-category\u002Fread:$org:$ID",24,{"operationId":508,"slug":509,"method":133,"path":510,"tag":83,"summary":222,"deprecated":134,"public":134,"permission":505,"scope":468,"order":511},"getExamCategory","get-exam-category","\u002Fv1\u002F{organizationId}\u002Fexam-category\u002F{categoryId}",25,{"operationId":513,"slug":514,"method":133,"path":515,"tag":83,"summary":225,"deprecated":134,"public":134,"permission":499,"scope":468,"order":516},"listAvailableExams","list-available-exams","\u002Fv1\u002F{organizationId}\u002Fexam\u002Favailable\u002F{studentId}",26,{"operationId":518,"slug":519,"method":133,"path":520,"tag":83,"summary":228,"deprecated":134,"public":134,"permission":499,"scope":468,"order":521},"getExam","get-exam","\u002Fv1\u002F{organizationId}\u002Fexam\u002F{examId}",27,{"tag":86,"slug":231,"description":523,"guide":87,"operations":524},"Entering your students for exams: creating, reading, moving and deleting their applications.",[525,531,536,541,546,551,556],{"operationId":526,"slug":527,"method":133,"path":528,"tag":86,"summary":234,"deprecated":134,"public":134,"permission":529,"scope":468,"order":530},"listApplications","list-applications","\u002Fv1\u002F{organizationId}\u002Fapplication","application\u002Fread:$org:$ID",28,{"operationId":532,"slug":533,"method":141,"path":528,"tag":86,"summary":237,"deprecated":134,"public":134,"permission":534,"scope":468,"order":535},"createApplication","create-application","application\u002Fcreate:$org:$ID",29,{"operationId":537,"slug":538,"method":133,"path":539,"tag":86,"summary":240,"deprecated":134,"public":134,"permission":529,"scope":468,"order":540},"listExamApplications","list-exam-applications","\u002Fv1\u002F{organizationId}\u002Fapplication\u002Fexam-applications\u002F{examId}",30,{"operationId":542,"slug":543,"method":133,"path":544,"tag":86,"summary":243,"deprecated":134,"public":134,"permission":529,"scope":468,"order":545},"listStudentApplications","list-student-applications","\u002Fv1\u002F{organizationId}\u002Fapplication\u002Fstudent-applications\u002F{studentId}",31,{"operationId":547,"slug":548,"method":133,"path":549,"tag":86,"summary":246,"deprecated":134,"public":134,"permission":529,"scope":468,"order":550},"getApplication","get-application","\u002Fv1\u002F{organizationId}\u002Fapplication\u002F{applicationId}",32,{"operationId":552,"slug":553,"method":190,"path":549,"tag":86,"summary":249,"deprecated":134,"public":134,"permission":554,"scope":468,"order":555},"moveApplication","move-application","application\u002Fupdate:$org:$ID",33,{"operationId":557,"slug":558,"method":254,"path":549,"tag":86,"summary":252,"deprecated":134,"public":134,"permission":559,"scope":468,"order":560},"deleteApplication","delete-application","application\u002Fdelete:$org:$ID",34,{"tag":256,"slug":257,"description":562,"guide":93,"operations":563},"Your students’ certificates and reports: listing them and downloading the files.",[564,570,575,581],{"operationId":565,"slug":566,"method":133,"path":567,"tag":256,"summary":260,"deprecated":134,"public":134,"permission":568,"scope":468,"order":569},"downloadCertificate","download-certificate","\u002Fv1\u002F{organizationId}\u002Fcertificate\u002Fdownload\u002F{certificateId}","certificate\u002Fread:$org:$ID",35,{"operationId":571,"slug":572,"method":133,"path":573,"tag":256,"summary":263,"deprecated":134,"public":134,"permission":568,"scope":468,"order":574},"listStudentCertificates","list-student-certificates","\u002Fv1\u002F{organizationId}\u002Fcertificate\u002F{userId}",36,{"operationId":576,"slug":577,"method":133,"path":578,"tag":256,"summary":266,"deprecated":134,"public":134,"permission":579,"scope":468,"order":580},"downloadReport","download-report","\u002Fv1\u002F{organizationId}\u002Freport\u002Fdownload\u002F{reportId}","report\u002Fread:$org:$ID",37,{"operationId":582,"slug":583,"method":133,"path":584,"tag":256,"summary":269,"deprecated":134,"public":134,"permission":579,"scope":468,"order":585},"listStudentReports","list-student-reports","\u002Fv1\u002F{organizationId}\u002Freport\u002F{userId}",38,{"tag":89,"slug":272,"description":587,"guide":90,"operations":588},"Online group challenges your students take part in: the challenges, which of your students can join, the groups they are in, each step and its files, what happened in a group, and submitting on your student’s behalf.",[589,595,600,605,610,615,621,626,631],{"operationId":590,"slug":591,"method":133,"path":592,"tag":89,"summary":275,"deprecated":134,"public":134,"permission":593,"scope":468,"order":594},"listGroupChallenges","list-group-challenges","\u002Fv1\u002F{organizationId}\u002Fgroup-challenge","group-challenge\u002Fread:$org:$ID",39,{"operationId":596,"slug":597,"method":133,"path":598,"tag":89,"summary":278,"deprecated":134,"public":134,"permission":593,"scope":468,"order":599},"getGroupChallenge","get-group-challenge","\u002Fv1\u002F{organizationId}\u002Fgroup-challenge\u002F{challengeId}",40,{"operationId":601,"slug":602,"method":133,"path":603,"tag":89,"summary":281,"deprecated":134,"public":134,"permission":593,"scope":468,"order":604},"listGroupChallengeGroups","list-group-challenge-groups","\u002Fv1\u002F{organizationId}\u002Fgroup-challenge\u002F{challengeId}\u002Fgroup",41,{"operationId":606,"slug":607,"method":133,"path":608,"tag":89,"summary":284,"deprecated":134,"public":134,"permission":593,"scope":468,"order":609},"getGroupChallengeGroup","get-group-challenge-group","\u002Fv1\u002F{organizationId}\u002Fgroup-challenge\u002F{challengeId}\u002Fgroup\u002F{groupId}",42,{"operationId":611,"slug":612,"method":133,"path":613,"tag":89,"summary":287,"deprecated":134,"public":134,"permission":593,"scope":468,"order":614},"listGroupChallengeActivity","list-group-challenge-activity","\u002Fv1\u002F{organizationId}\u002Fgroup-challenge\u002F{challengeId}\u002Fgroup\u002F{groupId}\u002Factivity",43,{"operationId":616,"slug":617,"method":141,"path":618,"tag":89,"summary":290,"deprecated":134,"public":134,"permission":619,"scope":468,"order":620},"submitGroupChallengeWork","submit-group-challenge-work","\u002Fv1\u002F{organizationId}\u002Fgroup-challenge\u002F{challengeId}\u002Fgroup\u002F{groupId}\u002Ffinal-submit","group-challenge\u002Fsubmit:$org:$ID",44,{"operationId":622,"slug":623,"method":141,"path":624,"tag":89,"summary":293,"deprecated":134,"public":134,"permission":619,"scope":468,"order":625},"submitGroupChallengeStep","submit-group-challenge-step","\u002Fv1\u002F{organizationId}\u002Fgroup-challenge\u002F{challengeId}\u002Fgroup\u002F{groupId}\u002Fstep\u002F{stepId}\u002Fsubmit",45,{"operationId":627,"slug":628,"method":133,"path":629,"tag":89,"summary":296,"deprecated":134,"public":134,"permission":593,"scope":468,"order":630},"listGroupChallengeStudents","list-group-challenge-students","\u002Fv1\u002F{organizationId}\u002Fgroup-challenge\u002F{challengeId}\u002Fstudent",46,{"operationId":632,"slug":633,"method":133,"path":634,"tag":89,"summary":299,"deprecated":134,"public":134,"permission":593,"scope":468,"order":635},"getGroupChallengeStudent","get-group-challenge-student","\u002Fv1\u002F{organizationId}\u002Fgroup-challenge\u002F{challengeId}\u002Fstudent\u002F{studentId}",47,{"operationId":513,"slug":514,"method":133,"path":515,"tag":83,"summary":225,"deprecated":134,"public":134,"permission":499,"scope":468,"order":516,"description":637,"permissions":638,"errors":639,"guide":365,"parameters":673,"requestBody":365,"responses":686,"successStatus":1057,"kind":1058,"paginated":134,"baseUrl":355,"tagDescription":493,"sandbox":364},"The exams one of your students can apply to in this organization, as a tree: categories, each holding its sittings, each holding the languages it can be sat in. Every leaf carries `matchedExam`, and `matchedExam._id` is the `examId` that `createApplication` takes.\n\n**Only your students.** A student is yours when your account registered it. Another account’s student answers `404`, exactly like an id that is nobody’s.\n\n**What is offered.** An exam is in the tree when all of these hold:\n\n- it is open for applications, as `listExams` lists it. An exam is **open for applications** while all three hold: it is not closed to applications (`preventApplication` is not `true`), its sitting (`session.date`) is still to come, and its category is active. It stops being open at the moment its sitting starts.\n- the student’s grade is one of the exam’s `grades`;\n- the exam is open to the student’s country, or to every country. When the student has no country, or the organization does not list it, only exams open to every country are offered;\n- the exam has a language;\n- the student holds no application in this organization for the same category on the same sitting.\n\n`createApplication` refuses an exam by the same rules, so what is listed here is what it accepts, as long as nothing changes in between. It also needs the student to have signed in to the organization once (`createSigninLink`); this list does not.\n\n**Order and size.** Categories in the organization’s `order`, sittings soonest first, languages in `order`. Not paginated: `data` is the whole tree, and `[]` when nothing is offered. No branch is ever empty.\n\n**Call first:** `registerStudent`, or `listStudents`, for the `studentId`. The student needs a grade: one without is refused with `400` until you set it with `updateStudent` or `updateOrgStudent`. A read only: nothing changes, and it is safe to repeat.",[499],[640,645,648,652,657,662,665,669],{"code":641,"message":642,"status":643,"when":644},"bad_request","Invalid value for '_id': expected ObjectId.",400,"`studentId` is not 24 hexadecimal digits.",{"code":641,"message":646,"status":643,"when":647},"Student has no grade set, and every exam is restricted to a set of grades. Set one with PUT \u002F:organizationId\u002Fstudent\u002F:studentId before listing exams.","The student has no grade. Every exam is restricted to a set of grades, so no exam could be offered; set one first.",{"code":649,"status":650,"when":651},"unauthorized",401,"The token is missing or malformed, is not signed with your account’s `apiSecret`, breaks the `iat` and `exp` rules, has expired or been revoked, or its account is not active. All of these answer the same.",{"code":653,"message":654,"status":655,"when":656},"forbidden","Insufficient role permissions",403,"The token is valid, but no role on your account allows `exam\u002Fread` on the organization in the path, or a role denies it.",{"code":658,"message":659,"status":660,"when":661},"not_found","Organization not found!",404,"`organizationId` is not the `_id` of an organization.",{"code":658,"message":663,"status":660,"when":664},"Student not found!","No student of yours has this id: it is nobody’s, or another account’s. Both answer the same.",{"code":666,"status":667,"when":668},"too_many_requests",429,"Your account has made more than 100 requests to this operation in the current 60-second window. Wait the seconds in `Retry-After` before sending again.",{"code":670,"status":671,"when":672},"internal_error",500,"Something failed on our side. Retry later, and quote `request_id` if it goes on.",[674,682],{"description":675,"example":676,"in":677,"name":678,"required":364,"schema":679},"The organization’s `_id`: 24 hexadecimal digits, as `listOrganizations` (`GET \u002Fv1\u002Forganization`) lists it.","64b7f0c2a1d3e4f5a6b7c8d9","path","organizationId",{"pattern":680,"type":681},"^[0-9a-f]{24}$","string",{"description":683,"in":677,"name":684,"required":364,"schema":685},"The `_id` of one of your students, as `registerStudent` answered and `listStudents` lists it.","studentId",{"type":681},{"200":687,"400":896,"401":943,"403":965,"404":986,"429":1009,"500":1035},{"content":688,"description":884,"headers":885},{"application\u002Fjson":689},{"schema":690},{"allOf":691},[692,731],{"x-ref":693,"description":694,"properties":695,"required":728,"type":726},"#\u002Fcomponents\u002Fschemas\u002FSuccessEnvelope","How every successful JSON response is wrapped. `data` is the result, and each operation declares its shape; list operations add `pagination`. `GET \u002Fv1\u002Fapi-account\u002Fvalidate-me` is the one operation that answers without this envelope.",{"success":696,"message":700,"pagination":703},{"description":697,"enum":698,"example":364,"type":699},"Always `true` on a success.",[364],"boolean",{"description":701,"example":702,"type":681},"A sentence saying what happened, written for a person. Branch on the status and on `data`, not on this.","Request completed successfully.",{"allOf":704,"description":727},[705],{"x-ref":706,"description":707,"properties":708,"required":721,"type":726},"#\u002Fcomponents\u002Fschemas\u002FPaginationMeta","Where one page sits in the whole list.",{"page":709,"limit":712,"total":715,"totalPages":719},{"description":710,"example":367,"minimum":367,"type":711},"The page returned, counting from 1.","number",{"description":713,"example":478,"maximum":714,"minimum":367,"type":711},"Items per page: the `limit` you sent, 20 if you sent none, and never more than 100.",100,{"description":716,"example":717,"minimum":718,"type":711},"Items across every page.",57,0,{"description":720,"example":382,"minimum":718,"type":711},"Pages at this `limit`: `total \u002F limit`, rounded up.",[722,723,724,725],"page","limit","total","totalPages","object","On list operations only.",[729,730],"success","message",{"properties":732,"required":882,"type":726},{"message":733,"data":735},{"example":734,"type":681},"Available exams fetched successfully.",{"items":736,"type":758},{"x-ref":737,"description":738,"properties":739,"required":880,"type":726},"#\u002Fcomponents\u002Fschemas\u002FAvailableExamCategoryResponse","A category with at least one exam the student can apply to: the top of the available-exams tree.",{"_id":740,"name":743,"altName":746,"order":749,"isActive":751,"nonAcceptedReplacements":753,"studyMaterialLinks":759,"createdAt":764,"updatedAt":768,"sessions":771},{"description":741,"example":742,"type":681},"The category’s id.","6650a1b2c3d4e5f6a7b8c9e3",{"description":744,"example":745,"type":681},"The category’s name, as students see it.","Mathematics",{"description":747,"example":748,"type":681},"A second name for the category, where one is set.","Maths",{"description":750,"example":367,"type":711},"Where the category sorts among the others, lowest first. The available-exams tree is in this order.",{"description":752,"example":364,"type":699},"Whether the category is live. No exam in an inactive category is open for applications.",{"description":754,"example":755,"items":757,"type":758},"Ids of the categories an application in this one may not be moved to: `moveApplication` refuses such a move.",[756],"6650a1b2c3d4e5f6a7b8c9ea",{"type":681},"array",{"description":760,"example":761,"items":763,"type":758},"Links to study material for the category.",[762],"https:\u002F\u002Fexample.org\u002Fstudy\u002Fmathematics",{"type":681},{"description":765,"example":766,"format":767,"type":681},"When the record was created.","2026-09-01T09:30:00.000Z","date-time",{"description":769,"example":770,"format":767,"type":681},"When the record last changed.","2026-09-02T14:05:00.000Z",{"description":772,"items":773,"type":758},"The sittings in this category the student can apply to, soonest first. Never empty. A sitting the student already holds an application for in this category is left out.",{"x-ref":774,"description":775,"properties":776,"required":878,"type":726},"#\u002Fcomponents\u002Fschemas\u002FAvailableExamSessionResponse","A sitting in one category the student can apply to: a branch of the available-exams tree.",{"_id":777,"sessionName":780,"date":783,"startTime":786,"tz":789,"sessionAlias":794,"sessionNote":797,"enableSimulation":800,"simulationDate":802,"simulationEndDate":805,"relatedSession":808,"createdAt":810,"updatedAt":811,"languages":812},{"description":778,"example":779,"type":681},"The sitting’s id.","6650a1b2c3d4e5f6a7b8c9e2",{"description":781,"example":782,"type":681},"The sitting’s name.","November 2026",{"description":784,"example":785,"format":767,"type":681},"When the sitting takes place. Its exams are open for applications until this moment, and not after.","2026-11-14T10:00:00.000Z",{"description":787,"example":788,"type":681},"The start time as the organization wrote it. For the moment itself, read `date`.","10:00",{"description":790,"enum":791,"example":792,"type":681},"`global`: the sitting starts at one moment everywhere. `local`: it starts at the same clock time in each student’s own time zone, their country’s `tz`.",[792,793],"global","local",{"description":795,"example":796,"type":681},"A second name for the sitting, shown to students.","Autumn round",{"description":798,"example":799,"type":681},"A note about the sitting, shown to students.","Please join ten minutes early.",{"description":801,"example":364,"type":699},"Whether students get a practice run before the sitting.",{"description":803,"example":804,"format":767,"type":681},"When the practice run opens.","2026-11-07T10:00:00.000Z",{"description":806,"example":807,"format":767,"type":681},"When the practice run closes.","2026-11-08T10:00:00.000Z",{"description":809,"example":779,"type":681},"Set on a make-up sitting: the id of the sitting it belongs to. An application to an exam on a make-up sitting is removed 6 hours after it is made.",{"description":765,"example":766,"format":767,"type":681},{"description":769,"example":770,"format":767,"type":681},{"description":813,"items":814,"type":758},"The languages the student can take this sitting in, in the organization’s order. Never empty.",{"x-ref":815,"description":816,"properties":817,"required":876,"type":726},"#\u002Fcomponents\u002Fschemas\u002FAvailableExamLanguageResponse","A language one sitting can be taken in by this student: a leaf of the available-exams tree.",{"_id":818,"name":821,"code":824,"order":827,"createdAt":829,"updatedAt":830,"matchedExam":831},{"description":819,"example":820,"type":681},"The language’s id.","6650a1b2c3d4e5f6a7b8c9e4",{"description":822,"example":823,"type":681},"The language’s name.","English",{"description":825,"example":826,"type":681},"A short language code.","en",{"description":828,"example":367,"type":711},"Where the language sorts among the others, lowest first. The available-exams tree is in this order.",{"description":765,"example":766,"format":767,"type":681},{"description":769,"example":770,"format":767,"type":681},{"allOf":832,"description":875},[833],{"x-ref":834,"description":835,"properties":836,"required":873,"type":726},"#\u002Fcomponents\u002Fschemas\u002FExamRecordResponse","An exam as stored, with `session`, `category`, `language`, `grades` and `countries` as ids.",{"_id":837,"session":840,"category":842,"language":844,"grades":846,"countries":851,"examType":855,"examTime":860,"duration":863,"questionCount":865,"price":867,"preventApplication":869,"createdAt":871,"updatedAt":872},{"description":838,"example":839,"type":681},"The exam’s id: the `examId` that `createApplication` and `moveApplication` take.","6650a1b2c3d4e5f6a7b8c9e1",{"description":841,"example":779,"type":681},"The id of the sitting the exam is on.",{"description":843,"example":742,"type":681},"The id of the exam’s category.",{"description":845,"example":820,"type":681},"The id of the language the exam is sat in, when it has one.",{"description":847,"example":848,"items":850,"type":758},"The grades that may sit the exam. A student in any other grade is not offered it and cannot apply to it. Grade ids are the same in every organization.",[849],"6650a1b2c3d4e5f6a7b8c9d4",{"type":681},{"description":852,"example":853,"items":854,"type":758},"The countries the exam is restricted to; empty or absent, it is open to every country. Ids of the organization’s own country records, which need not match the ones `listCountries` gives.",[],{"type":681},{"description":856,"enum":857,"example":858,"type":681},"`standard` or `essay`.",[858,859],"standard","essay",{"description":861,"example":862,"type":711},"The time limit, in minutes, from when the student starts.",75,{"description":864,"example":452,"type":711},"How many hours the exam can be started in, counted from the start of the sitting.",{"description":866,"example":540,"type":711},"How many questions the exam has.",{"description":868,"example":511,"type":711},"What an application costs, as a number; no currency is given. Absent when the exam has no price: an application to it is charged 0.",{"description":870,"example":134,"type":699},"Whether the exam is closed to new applications. A closed exam is never listed, so on the exam reads this is `false` or absent.",{"description":765,"example":766,"format":767,"type":681},{"description":769,"example":770,"format":767,"type":681},[874],"_id","The one exam this category, sitting and language make up. Its `_id` is the `examId` that `createApplication` takes; its `session`, `category` and `language` are the ids of the levels above.",[874,877],"matchedExam",[874,879],"languages",[874,881],"sessions",[883],"data","Success: `message` is \"Available exams fetched successfully.\".",{"X-RateLimit-Limit":886,"X-RateLimit-Remaining":890,"X-RateLimit-Reset":893},{"description":887,"schema":888},"Requests your account may make to this operation per window (100).",{"type":889},"integer",{"description":891,"schema":892},"Requests left in the current window.",{"type":889},{"description":894,"schema":895},"Seconds until the current window ends.",{"type":889},{"content":897,"description":942},{"application\u002Fjson":898},{"examples":899,"schema":908},{"bad_request":900,"bad_request_2":905},{"summary":644,"value":901},{"error":902},{"code":641,"documentation_url":903,"message":642,"request_id":904},"https:\u002F\u002Fhub.main-team.org\u002Fapi\u002Ferrors#bad_request","0b5c6d0e-8f7a-4b1c-9d2e-3f4a5b6c7d8e",{"summary":647,"value":906},{"error":907},{"code":641,"documentation_url":903,"message":646,"request_id":904},{"x-ref":909,"description":910,"properties":911,"required":940,"type":726},"#\u002Fcomponents\u002Fschemas\u002FErrorEnvelope","How every error response is wrapped.",{"error":912},{"x-ref":913,"description":914,"properties":915,"required":936,"type":726},"#\u002Fcomponents\u002Fschemas\u002FErrorDetail","What went wrong.",{"code":916,"message":925,"documentation_url":928,"request_id":932,"details":934},{"description":917,"enum":918,"example":658,"type":681},"A stable machine code: branch on this. Each one is explained at `documentation_url`.",[919,641,649,653,658,920,921,922,923,666,670,924],"invalid_email","conflict","payload_too_large","unsupported_media_type","unprocessable_entity","service_unavailable",{"description":926,"example":927,"type":681},"Written for a person, and may change: never branch on it.","Not found!",{"description":929,"example":930,"format":931,"type":681},"Where this code is explained.","https:\u002F\u002Fhub.main-team.org\u002Fapi\u002Ferrors#not_found","uri",{"description":933,"example":904,"type":681},"This request’s id, also sent as the `X-Request-Id` response header: the one you sent, when it was acceptable, or else one the API made. Quote it when you report a problem.",{"additionalProperties":364,"description":935,"type":726},"Present only where an operation says so, and then with the shape that operation documents — the rows it could not accept, say. Treat it as absent everywhere else, and ignore a `details` you do not recognise.",[937,730,938,939],"code","documentation_url","request_id",[941],"error","- `bad_request`: `studentId` is not 24 hexadecimal digits.\n- `bad_request`: The student has no grade. Every exam is restricted to a set of grades, so no exam could be offered; set one first.",{"content":944,"description":964},{"application\u002Fjson":945},{"examples":946,"schema":952},{"unauthorized":947},{"summary":649,"value":948},{"error":949},{"code":649,"documentation_url":950,"message":951,"request_id":904},"https:\u002F\u002Fhub.main-team.org\u002Fapi\u002Ferrors#unauthorized","Authentication is required or the provided credentials are invalid.",{"x-ref":909,"description":910,"properties":953,"required":963,"type":726},{"error":954},{"x-ref":913,"description":914,"properties":955,"required":962,"type":726},{"code":956,"message":958,"documentation_url":959,"request_id":960,"details":961},{"description":917,"enum":957,"example":658,"type":681},[919,641,649,653,658,920,921,922,923,666,670,924],{"description":926,"example":927,"type":681},{"description":929,"example":930,"format":931,"type":681},{"description":933,"example":904,"type":681},{"additionalProperties":364,"description":935,"type":726},[937,730,938,939],[941],"`unauthorized`: The token is missing or malformed, is not signed with your account’s `apiSecret`, breaks the `iat` and `exp` rules, has expired or been revoked, or its account is not active. All of these answer the same.",{"content":966,"description":985},{"application\u002Fjson":967},{"examples":968,"schema":973},{"forbidden":969},{"summary":653,"value":970},{"error":971},{"code":653,"documentation_url":972,"message":654,"request_id":904},"https:\u002F\u002Fhub.main-team.org\u002Fapi\u002Ferrors#forbidden",{"x-ref":909,"description":910,"properties":974,"required":984,"type":726},{"error":975},{"x-ref":913,"description":914,"properties":976,"required":983,"type":726},{"code":977,"message":979,"documentation_url":980,"request_id":981,"details":982},{"description":917,"enum":978,"example":658,"type":681},[919,641,649,653,658,920,921,922,923,666,670,924],{"description":926,"example":927,"type":681},{"description":929,"example":930,"format":931,"type":681},{"description":933,"example":904,"type":681},{"additionalProperties":364,"description":935,"type":726},[937,730,938,939],[941],"`forbidden`: The token is valid, but no role on your account allows `exam\u002Fread` on the organization in the path, or a role denies it.",{"content":987,"description":1008},{"application\u002Fjson":988},{"examples":989,"schema":996},{"not_found":990,"not_found_2":993},{"summary":661,"value":991},{"error":992},{"code":658,"documentation_url":930,"message":659,"request_id":904},{"summary":664,"value":994},{"error":995},{"code":658,"documentation_url":930,"message":663,"request_id":904},{"x-ref":909,"description":910,"properties":997,"required":1007,"type":726},{"error":998},{"x-ref":913,"description":914,"properties":999,"required":1006,"type":726},{"code":1000,"message":1002,"documentation_url":1003,"request_id":1004,"details":1005},{"description":917,"enum":1001,"example":658,"type":681},[919,641,649,653,658,920,921,922,923,666,670,924],{"description":926,"example":927,"type":681},{"description":929,"example":930,"format":931,"type":681},{"description":933,"example":904,"type":681},{"additionalProperties":364,"description":935,"type":726},[937,730,938,939],[941],"- `not_found`: `organizationId` is not the `_id` of an organization.\n- `not_found`: No student of yours has this id: it is nobody’s, or another account’s. Both answer the same.",{"content":1010,"description":1030,"headers":1031},{"application\u002Fjson":1011},{"examples":1012,"schema":1018},{"too_many_requests":1013},{"summary":666,"value":1014},{"error":1015},{"code":666,"documentation_url":1016,"message":1017,"request_id":904},"https:\u002F\u002Fhub.main-team.org\u002Fapi\u002Ferrors#too_many_requests","Too many requests to this operation. Wait the number of seconds in Retry-After, then try again.",{"x-ref":909,"description":910,"properties":1019,"required":1029,"type":726},{"error":1020},{"x-ref":913,"description":914,"properties":1021,"required":1028,"type":726},{"code":1022,"message":1024,"documentation_url":1025,"request_id":1026,"details":1027},{"description":917,"enum":1023,"example":658,"type":681},[919,641,649,653,658,920,921,922,923,666,670,924],{"description":926,"example":927,"type":681},{"description":929,"example":930,"format":931,"type":681},{"description":933,"example":904,"type":681},{"additionalProperties":364,"description":935,"type":726},[937,730,938,939],[941],"`too_many_requests`: Your account has made more than 100 requests to this operation in the current 60-second window. Wait the seconds in `Retry-After` before sending again.",{"Retry-After":1032},{"description":1033,"schema":1034},"Seconds to wait before sending again; a request sent sooner is refused too.",{"type":889},{"content":1036,"description":1056},{"application\u002Fjson":1037},{"examples":1038,"schema":1044},{"internal_error":1039},{"summary":670,"value":1040},{"error":1041},{"code":670,"documentation_url":1042,"message":1043,"request_id":904},"https:\u002F\u002Fhub.main-team.org\u002Fapi\u002Ferrors#internal_error","An unexpected error occurred.",{"x-ref":909,"description":910,"properties":1045,"required":1055,"type":726},{"error":1046},{"x-ref":913,"description":914,"properties":1047,"required":1054,"type":726},{"code":1048,"message":1050,"documentation_url":1051,"request_id":1052,"details":1053},{"description":917,"enum":1049,"example":658,"type":681},[919,641,649,653,658,920,921,922,923,666,670,924],{"description":926,"example":927,"type":681},{"description":929,"example":930,"format":931,"type":681},{"description":933,"example":904,"type":681},{"additionalProperties":364,"description":935,"type":726},[937,730,938,939],[941],"`internal_error`: Something failed on our side. Retry later, and quote `request_id` if it goes on.","200","envelope",{"path":26},{"id":1061,"title":225,"apiPath":515,"body":1062,"deprecated":134,"description":1592,"extension":1593,"meta":1594,"method":133,"navigation":364,"operationId":513,"order":1595,"path":226,"permission":499,"public":134,"seo":1596,"stem":1597,"summary":225,"tag":83,"__hash__":1598},"apiReference\u002Fapi\u002Freference\u002Flist-available-exams.md",{"type":1063,"value":1064,"toc":1590},"minimark",[1065,1586],[1066,1067,1068,1118,1310],"api-code-group",{},[1069,1070,1076],"pre",{"className":1071,"code":1072,"filename":1073,"language":1074,"meta":1075,"style":1075},"language-bash shiki shiki-themes github-light-high-contrast github-dark-high-contrast","# $TOKEN: a short-lived token you minted with your API key and secret\ncurl -sS 'https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fexam\u002Favailable\u002F\u003CstudentId>' \\\n  -H \"Authorization: Bearer $TOKEN\"\n","curl","bash","",[937,1077,1078,1086,1103],{"__ignoreMap":1075},[1079,1080,1082],"span",{"class":1081,"line":367},"line",[1079,1083,1085],{"class":1084},"sLBg1","# $TOKEN: a short-lived token you minted with your API key and secret\n",[1079,1087,1088,1091,1095,1099],{"class":1081,"line":377},[1079,1089,1073],{"class":1090},"soyes",[1079,1092,1094],{"class":1093},"s-5SL"," -sS",[1079,1096,1098],{"class":1097},"sT6z2"," 'https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fexam\u002Favailable\u002F\u003CstudentId>'",[1079,1100,1102],{"class":1101},"sHUrx"," \\\n",[1079,1104,1105,1108,1111,1115],{"class":1081,"line":382},[1079,1106,1107],{"class":1093},"  -H",[1079,1109,1110],{"class":1097}," \"Authorization: Bearer ",[1079,1112,1114],{"class":1113},"suds8","$TOKEN",[1079,1116,1117],{"class":1097},"\"\n",[1069,1119,1123],{"className":1120,"code":1121,"filename":308,"language":1122,"meta":1075,"style":1075},"language-js shiki shiki-themes github-light-high-contrast github-dark-high-contrast","const token = process.env.TOKEN; \u002F\u002F a short-lived token you minted with your API key and secret\n\nconst res = await fetch('https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fexam\u002Favailable\u002F\u003CstudentId>', {\n  headers: {\n    Authorization: `Bearer ${token}`,\n  },\n});\nconst body = await res.json();\nif (!res.ok) throw new Error(`${res.status} ${body.error.code}: ${body.error.message}`);\nconsole.log(body.data);\n","js",[937,1124,1125,1148,1153,1178,1183,1200,1205,1210,1230,1299],{"__ignoreMap":1075},[1079,1126,1127,1130,1133,1136,1139,1142,1145],{"class":1081,"line":367},[1079,1128,1129],{"class":1101},"const",[1079,1131,1132],{"class":1093}," token",[1079,1134,1135],{"class":1101}," =",[1079,1137,1138],{"class":1113}," process.env.",[1079,1140,1141],{"class":1093},"TOKEN",[1079,1143,1144],{"class":1113},"; ",[1079,1146,1147],{"class":1084},"\u002F\u002F a short-lived token you minted with your API key and secret\n",[1079,1149,1150],{"class":1081,"line":377},[1079,1151,1152],{"emptyLinePlaceholder":364},"\n",[1079,1154,1155,1157,1160,1162,1165,1169,1172,1175],{"class":1081,"line":382},[1079,1156,1129],{"class":1101},[1079,1158,1159],{"class":1093}," res",[1079,1161,1135],{"class":1101},[1079,1163,1164],{"class":1101}," await",[1079,1166,1168],{"class":1167},"sKwhi"," fetch",[1079,1170,1171],{"class":1113},"(",[1079,1173,1174],{"class":1097},"'https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fexam\u002Favailable\u002F\u003CstudentId>'",[1079,1176,1177],{"class":1113},", {\n",[1079,1179,1180],{"class":1081,"line":391},[1079,1181,1182],{"class":1113},"  headers: {\n",[1079,1184,1185,1188,1191,1194,1197],{"class":1081,"line":396},[1079,1186,1187],{"class":1113},"    Authorization: ",[1079,1189,1190],{"class":1097},"`Bearer ${",[1079,1192,1193],{"class":1113},"token",[1079,1195,1196],{"class":1097},"}`",[1079,1198,1199],{"class":1113},",\n",[1079,1201,1202],{"class":1081,"line":402},[1079,1203,1204],{"class":1113},"  },\n",[1079,1206,1207],{"class":1081,"line":407},[1079,1208,1209],{"class":1113},"});\n",[1079,1211,1212,1214,1217,1219,1221,1224,1227],{"class":1081,"line":413},[1079,1213,1129],{"class":1101},[1079,1215,1216],{"class":1093}," body",[1079,1218,1135],{"class":1101},[1079,1220,1164],{"class":1101},[1079,1222,1223],{"class":1113}," res.",[1079,1225,1226],{"class":1167},"json",[1079,1228,1229],{"class":1113},"();\n",[1079,1231,1232,1235,1238,1241,1244,1247,1250,1253,1255,1258,1261,1264,1267,1270,1273,1275,1277,1279,1281,1284,1286,1288,1290,1292,1294,1296],{"class":1081,"line":418},[1079,1233,1234],{"class":1101},"if",[1079,1236,1237],{"class":1113}," (",[1079,1239,1240],{"class":1101},"!",[1079,1242,1243],{"class":1113},"res.ok) ",[1079,1245,1246],{"class":1101},"throw",[1079,1248,1249],{"class":1101}," new",[1079,1251,1252],{"class":1167}," Error",[1079,1254,1171],{"class":1113},[1079,1256,1257],{"class":1097},"`${",[1079,1259,1260],{"class":1113},"res",[1079,1262,1263],{"class":1097},".",[1079,1265,1266],{"class":1113},"status",[1079,1268,1269],{"class":1097},"} ${",[1079,1271,1272],{"class":1113},"body",[1079,1274,1263],{"class":1097},[1079,1276,941],{"class":1113},[1079,1278,1263],{"class":1097},[1079,1280,937],{"class":1113},[1079,1282,1283],{"class":1097},"}: ${",[1079,1285,1272],{"class":1113},[1079,1287,1263],{"class":1097},[1079,1289,941],{"class":1113},[1079,1291,1263],{"class":1097},[1079,1293,730],{"class":1113},[1079,1295,1196],{"class":1097},[1079,1297,1298],{"class":1113},");\n",[1079,1300,1301,1304,1307],{"class":1081,"line":427},[1079,1302,1303],{"class":1113},"console.",[1079,1305,1306],{"class":1167},"log",[1079,1308,1309],{"class":1113},"(body.data);\n",[1069,1311,1315],{"className":1312,"code":1313,"filename":311,"language":1314,"meta":1075,"style":1075},"language-php shiki shiki-themes github-light-high-contrast github-dark-high-contrast","\u003C?php\n$token = getenv('TOKEN'); \u002F\u002F a short-lived token you minted with your API key and secret\n\n$ch = curl_init('https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fexam\u002Favailable\u002F\u003CstudentId>');\ncurl_setopt_array($ch, [\n    CURLOPT_HTTPHEADER => [\n        'Authorization: Bearer ' . $token,\n    ],\n    CURLOPT_RETURNTRANSFER => true,\n]);\n$response = curl_exec($ch);\nif ($response === false) {\n    throw new RuntimeException(curl_error($ch));\n}\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\n$body = json_decode($response, true);\nif ($status >= 400) {\n    $error = $body['error'];\n    throw new RuntimeException(\"$status {$error['code']}: {$error['message']}\");\n}\nprint_r($body['data']);\n","php",[937,1316,1317,1325,1346,1350,1366,1374,1385,1396,1401,1413,1418,1431,1447,1465,1470,1488,1506,1521,1537,1569,1573],{"__ignoreMap":1075},[1079,1318,1319,1322],{"class":1081,"line":367},[1079,1320,1321],{"class":1101},"\u003C?",[1079,1323,1324],{"class":1093},"php\n",[1079,1326,1327,1330,1333,1336,1338,1341,1344],{"class":1081,"line":377},[1079,1328,1329],{"class":1113},"$token ",[1079,1331,1332],{"class":1101},"=",[1079,1334,1335],{"class":1093}," getenv",[1079,1337,1171],{"class":1113},[1079,1339,1340],{"class":1097},"'TOKEN'",[1079,1342,1343],{"class":1113},"); ",[1079,1345,1147],{"class":1084},[1079,1347,1348],{"class":1081,"line":382},[1079,1349,1152],{"emptyLinePlaceholder":364},[1079,1351,1352,1355,1357,1360,1362,1364],{"class":1081,"line":391},[1079,1353,1354],{"class":1113},"$ch ",[1079,1356,1332],{"class":1101},[1079,1358,1359],{"class":1093}," curl_init",[1079,1361,1171],{"class":1113},[1079,1363,1174],{"class":1097},[1079,1365,1298],{"class":1113},[1079,1367,1368,1371],{"class":1081,"line":396},[1079,1369,1370],{"class":1093},"curl_setopt_array",[1079,1372,1373],{"class":1113},"($ch, [\n",[1079,1375,1376,1379,1382],{"class":1081,"line":402},[1079,1377,1378],{"class":1093},"    CURLOPT_HTTPHEADER",[1079,1380,1381],{"class":1101}," =>",[1079,1383,1384],{"class":1113}," [\n",[1079,1386,1387,1390,1393],{"class":1081,"line":407},[1079,1388,1389],{"class":1097},"        'Authorization: Bearer '",[1079,1391,1392],{"class":1101}," .",[1079,1394,1395],{"class":1113}," $token,\n",[1079,1397,1398],{"class":1081,"line":413},[1079,1399,1400],{"class":1113},"    ],\n",[1079,1402,1403,1406,1408,1411],{"class":1081,"line":418},[1079,1404,1405],{"class":1093},"    CURLOPT_RETURNTRANSFER",[1079,1407,1381],{"class":1101},[1079,1409,1410],{"class":1093}," true",[1079,1412,1199],{"class":1113},[1079,1414,1415],{"class":1081,"line":427},[1079,1416,1417],{"class":1113},"]);\n",[1079,1419,1420,1423,1425,1428],{"class":1081,"line":432},[1079,1421,1422],{"class":1113},"$response ",[1079,1424,1332],{"class":1101},[1079,1426,1427],{"class":1093}," curl_exec",[1079,1429,1430],{"class":1113},"($ch);\n",[1079,1432,1433,1435,1438,1441,1444],{"class":1081,"line":437},[1079,1434,1234],{"class":1101},[1079,1436,1437],{"class":1113}," ($response ",[1079,1439,1440],{"class":1101},"===",[1079,1442,1443],{"class":1093}," false",[1079,1445,1446],{"class":1113},") {\n",[1079,1448,1449,1452,1454,1457,1459,1462],{"class":1081,"line":442},[1079,1450,1451],{"class":1101},"    throw",[1079,1453,1249],{"class":1101},[1079,1455,1456],{"class":1093}," RuntimeException",[1079,1458,1171],{"class":1113},[1079,1460,1461],{"class":1093},"curl_error",[1079,1463,1464],{"class":1113},"($ch));\n",[1079,1466,1467],{"class":1081,"line":447},[1079,1468,1469],{"class":1113},"}\n",[1079,1471,1472,1475,1477,1480,1483,1486],{"class":1081,"line":452},[1079,1473,1474],{"class":1113},"$status ",[1079,1476,1332],{"class":1101},[1079,1478,1479],{"class":1093}," curl_getinfo",[1079,1481,1482],{"class":1113},"($ch, ",[1079,1484,1485],{"class":1093},"CURLINFO_RESPONSE_CODE",[1079,1487,1298],{"class":1113},[1079,1489,1490,1493,1495,1498,1501,1504],{"class":1081,"line":457},[1079,1491,1492],{"class":1113},"$body ",[1079,1494,1332],{"class":1101},[1079,1496,1497],{"class":1093}," json_decode",[1079,1499,1500],{"class":1113},"($response, ",[1079,1502,1503],{"class":1093},"true",[1079,1505,1298],{"class":1113},[1079,1507,1508,1510,1513,1516,1519],{"class":1081,"line":463},[1079,1509,1234],{"class":1101},[1079,1511,1512],{"class":1113}," ($status ",[1079,1514,1515],{"class":1101},">=",[1079,1517,1518],{"class":1093}," 400",[1079,1520,1446],{"class":1113},[1079,1522,1523,1526,1528,1531,1534],{"class":1081,"line":469},[1079,1524,1525],{"class":1113},"    $error ",[1079,1527,1332],{"class":1101},[1079,1529,1530],{"class":1113}," $body[",[1079,1532,1533],{"class":1097},"'error'",[1079,1535,1536],{"class":1113},"];\n",[1079,1538,1539,1541,1543,1545,1547,1550,1553,1556,1559,1562,1564,1567],{"class":1081,"line":474},[1079,1540,1451],{"class":1101},[1079,1542,1249],{"class":1101},[1079,1544,1456],{"class":1093},[1079,1546,1171],{"class":1113},[1079,1548,1549],{"class":1097},"\"",[1079,1551,1552],{"class":1113},"$status",[1079,1554,1555],{"class":1097}," {",[1079,1557,1558],{"class":1113},"$error",[1079,1560,1561],{"class":1097},"['code']}: {",[1079,1563,1558],{"class":1113},[1079,1565,1566],{"class":1097},"['message']}\"",[1079,1568,1298],{"class":1113},[1079,1570,1571],{"class":1081,"line":478},[1079,1572,1469],{"class":1113},[1079,1574,1575,1578,1581,1584],{"class":1081,"line":483},[1079,1576,1577],{"class":1093},"print_r",[1079,1579,1580],{"class":1113},"($body[",[1079,1582,1583],{"class":1097},"'data'",[1079,1585,1417],{"class":1113},[1587,1588,1589],"style",{},"html pre.shiki code .sLBg1, html code.shiki .sLBg1{--shiki-default:#66707B;--shiki-dark:#BDC4CC}html pre.shiki code .soyes, html code.shiki .soyes{--shiki-default:#702C00;--shiki-dark:#FFB757}html pre.shiki code .s-5SL, html code.shiki .s-5SL{--shiki-default:#023B95;--shiki-dark:#91CBFF}html pre.shiki code .sT6z2, html code.shiki .sT6z2{--shiki-default:#032563;--shiki-dark:#ADDCFF}html pre.shiki code .sHUrx, html code.shiki .sHUrx{--shiki-default:#A0111F;--shiki-dark:#FF9492}html pre.shiki code .suds8, html code.shiki .suds8{--shiki-default:#0E1116;--shiki-dark:#F0F3F6}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sKwhi, html code.shiki .sKwhi{--shiki-default:#622CBC;--shiki-dark:#DBB7FF}",{"title":1075,"searchDepth":377,"depth":382,"links":1591},[],"The exams one of your students can apply to in this organization, as a tree: categories, each holding its sittings, each holding the languages it can be sat in.","md",{},"26",{"title":225,"description":1592},"api\u002Freference\u002Flist-available-exams","8oEUF9_h0QVHn2S2CLFCcQjqbqg6sFYlQZBnhopROG8",1791554613403]