[{"data":1,"prerenderedAt":4309},["ShallowReactive",2],{"api-nav":3,"api-guide:\u002Fapi\u002Fguides\u002Fexams":351,"api-spec:guide:\u002Fapi\u002Fguides\u002Fexams":4290},[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",[],{"id":352,"title":353,"body":354,"description":4277,"extension":4278,"meta":4279,"navTitle":83,"navigation":3609,"operations":4280,"order":4286,"path":84,"section":58,"seo":4287,"status":14,"stem":4288,"__hash__":4289},"apiGuides\u002Fapi\u002Fguides\u002Fexams.md","Exams and the exam picker",{"type":355,"value":356,"toc":4259},"minimark",[357,375,393,398,531,534,537,617,630,634,640,666,669,672,690,703,707,822,839,843,855,901,1235,1238,1302,1307,1328,1331,1339,1365,1810,1824,1827,1849,1853,1858,1918,1925,1929,1938,1947,1952,1962,2025,2033,2037,2085,2094,2098,2106,2151,2176,2180,2206,3461,3467,3471,3498,3501,3783,4097,4100,4104,4170,4174,4210,4215,4219,4255],[358,359,360,361,365,366,369,370,374],"p",{},"Each organization runs its own exams. This page covers how an exam is put together, the rule that decides whether it is ",[362,363,364],"strong",{},"open",", the five read operations, and the ",[362,367,368],{},"picker",". The picker is the per-student list you choose from before you ",[371,372,373],"a",{"href":87},"create an application",".",[358,376,377,378,382,383,386,387,392],{},"Every operation here is per organization: ",[379,380,381],"code",{},"\u003CorganizationId>"," is the organization's ",[379,384,385],{},"_id"," from ",[371,388,389],{"href":162},[379,390,391],{},"GET \u002Fv1\u002Forganization",", never its slug. None of them writes anything.",[394,395,397],"h2",{"id":396},"how-an-exam-is-put-together","How an exam is put together",[399,400,401,417],"table",{},[402,403,404],"thead",{},[405,406,407,411,414],"tr",{},[408,409,410],"th",{},"Part",[408,412,413],{},"What it is",[408,415,416],{},"Key fields",[418,419,420,446,480,498],"tbody",{},[405,421,422,428,431],{},[423,424,425],"td",{},[362,426,427],{},"Category",[423,429,430],{},"A subject or track, such as Science or Mathematics",[423,432,433,436,437,436,440,436,443],{},[379,434,435],{},"name",", ",[379,438,439],{},"order",[379,441,442],{},"isActive",[379,444,445],{},"nonAcceptedReplacements",[405,447,448,454,457],{},[423,449,450,453],{},[362,451,452],{},"Session"," (a sitting)",[423,455,456],{},"A date on which exams are sat. One sitting usually carries exams in several categories.",[423,458,459,436,462,436,465,436,468,436,471,436,474,436,477],{},[379,460,461],{},"date",[379,463,464],{},"sessionName",[379,466,467],{},"sessionAlias",[379,469,470],{},"sessionNote",[379,472,473],{},"startTime",[379,475,476],{},"tz",[379,478,479],{},"relatedSession",[405,481,482,487,490],{},[423,483,484],{},[362,485,486],{},"Language",[423,488,489],{},"The language a paper is sat in",[423,491,492,436,494,436,496],{},[379,493,435],{},[379,495,379],{},[379,497,439],{},[405,499,500,505,508],{},[423,501,502],{},[362,503,504],{},"Exam",[423,506,507],{},"One category, on one sitting, in one language",[423,509,510,436,513,436,516,436,519,436,522,436,525,436,528],{},[379,511,512],{},"session",[379,514,515],{},"category",[379,517,518],{},"language",[379,520,521],{},"grades",[379,523,524],{},"countries",[379,526,527],{},"price",[379,529,530],{},"preventApplication",[358,532,533],{},"An exam has no name of its own. Describe it by its three parts, for example \"Science, 14 November 2026, English\". Together, the three identify the exam.",[358,535,536],{},"The exam fields that matter to an integration:",[399,538,539,549],{},[402,540,541],{},[405,542,543,546],{},[408,544,545],{},"Field",[408,547,548],{},"Meaning",[418,550,551,560,569,586,598],{},[405,552,553,557],{},[423,554,555],{},[379,556,521],{},[423,558,559],{},"The grades that may sit this exam. A student whose grade isn't listed can't be entered for it. An exam with an empty list is offered to nobody.",[405,561,562,566],{},[423,563,564],{},[379,565,524],{},[423,567,568],{},"The countries the exam is restricted to. An empty list, or no list at all, means every country.",[405,570,571,575],{},[423,572,573],{},[379,574,527],{},[423,576,577,578,581,582,585],{},"What the exam costs, as a number. It is ",[362,579,580],{},"absent"," on an exam nobody priced, and an application for such an exam is free. Read it as ",[379,583,584],{},"price ?? 0","; never assume the field is present.",[405,587,588,592],{},[423,589,590],{},[379,591,530],{},[423,593,594,597],{},[379,595,596],{},"true"," closes the exam to new applications.",[405,599,600,614],{},[423,601,602,436,605,436,608,436,611],{},[379,603,604],{},"duration",[379,606,607],{},"examTime",[379,609,610],{},"examType",[379,612,613],{},"maxPartners",[423,615,616],{},"How the paper itself runs. None of them affects whether the exam is open.",[358,618,619,620,622,623,626,627,374],{},"A session whose ",[379,621,479],{}," is set is a ",[362,624,625],{},"make-up sitting"," linked to a main one. Applications for make-up sittings are temporary; see ",[371,628,86],{"href":629},"\u002Fapi\u002Fguides\u002Fapplications#what-a-new-application-contains",[394,631,633],{"id":632},"what-open-means","What \"open\" means",[358,635,636,637,639],{},"An exam is ",[362,638,364],{}," when all three of these hold:",[641,642,643,653,659],"ol",{},[644,645,646,647,649,650,652],"li",{},"its ",[379,648,530],{}," is not ",[379,651,596],{},";",[644,654,655,656,658],{},"its sitting's ",[379,657,461],{}," is still in the future;",[644,660,661,662,665],{},"its category is active (",[379,663,664],{},"isActive: true",").",[358,667,668],{},"An exam whose sitting or category can't be found is never open.",[358,670,671],{},"The exam list, the single exam read, the picker and both application writes all use this same rule. That's deliberate: the API has no way to reach a closed exam. You can't list it, read it by id, apply to it, or move an application onto it.",[358,673,674,675,677,678,436,680,436,682,684,685,687,688,374],{},"Only the sitting's ",[379,676,461],{}," decides whether an exam is open. ",[379,679,473],{},[379,681,476],{},[379,683,604],{}," and ",[379,686,607],{}," never do. An exam stays open until the moment in ",[379,689,461],{},[691,692,694],"callout",{"type":693},"note",[358,695,696,697,699,700,702],{},"The student panel stops offering a sitting one hour before its ",[379,698,461],{},". The API keeps offering it until the ",[379,701,461],{}," itself, so that the list and the application write always agree. If you show exams to people who then have to act on them, add your own buffer, for example by hiding sittings less than a day away.",[394,704,706],{"id":705},"operations","Operations",[399,708,709,725],{},[402,710,711],{},[405,712,713,716,719,722],{},[408,714,715],{},"Operation",[408,717,718],{},"Request",[408,720,721],{},"Permission",[408,723,724],{},"Paginated",[418,726,727,747,766,785,804],{},[405,728,729,734,739,744],{},[423,730,731],{},[371,732,733],{"href":220},"List exam categories",[423,735,736],{},[379,737,738],{},"GET \u002Fv1\u002F\u003CorganizationId>\u002Fexam-category",[423,740,741],{},[379,742,743],{},"exam-category\u002Fread",[423,745,746],{},"yes",[405,748,749,754,759,763],{},[423,750,751],{},[371,752,753],{"href":223},"Get an exam category",[423,755,756],{},[379,757,758],{},"GET \u002Fv1\u002F\u003CorganizationId>\u002Fexam-category\u002F\u003CcategoryId>",[423,760,761],{},[379,762,743],{},[423,764,765],{},"no",[405,767,768,773,778,783],{},[423,769,770],{},[371,771,772],{"href":217},"List open exams",[423,774,775],{},[379,776,777],{},"GET \u002Fv1\u002F\u003CorganizationId>\u002Fexam",[423,779,780],{},[379,781,782],{},"exam\u002Fread",[423,784,746],{},[405,786,787,793,798,802],{},[423,788,789,792],{},[371,790,791],{"href":226},"List exams for a student"," (the picker)",[423,794,795],{},[379,796,797],{},"GET \u002Fv1\u002F\u003CorganizationId>\u002Fexam\u002Favailable\u002F\u003CstudentId>",[423,799,800],{},[379,801,782],{},[423,803,765],{},[405,805,806,811,816,820],{},[423,807,808],{},[371,809,810],{"href":229},"Get an exam",[423,812,813],{},[379,814,815],{},"GET \u002Fv1\u002F\u003CorganizationId>\u002Fexam\u002F\u003CexamId>",[423,817,818],{},[379,819,782],{},[423,821,765],{},[358,823,824,825,828,829,832,833,836,837,374],{},"Every permission's target is the organization in the path, or ",[379,826,827],{},"*",". Paginated routes take ",[379,830,831],{},"page"," (default 1) and ",[379,834,835],{},"limit"," (default 20, at most 100). A missing or non-numeric value falls back to the default, and an out-of-range one is clamped; neither is refused. See ",[371,838,39],{"href":40},[394,840,842],{"id":841},"categories","Categories",[358,844,845,847,848,851,852,854],{},[379,846,738],{}," returns ",[362,849,850],{},"every"," category the organization has, retired ones included. The order isn't guaranteed. Check ",[379,853,442],{}," before you show a category to anyone, because only active categories have open exams.",[856,857,862],"pre",{"className":858,"code":859,"language":860,"meta":861,"style":861},"language-bash shiki shiki-themes github-light-high-contrast github-dark-high-contrast","curl -s \"https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fexam-category?limit=50\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n","bash","",[379,863,864,885],{"__ignoreMap":861},[865,866,869,873,877,881],"span",{"class":867,"line":868},"line",1,[865,870,872],{"class":871},"soyes","curl",[865,874,876],{"class":875},"s-5SL"," -s",[865,878,880],{"class":879},"sT6z2"," \"https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fexam-category?limit=50\"",[865,882,884],{"class":883},"sHUrx"," \\\n",[865,886,888,891,894,898],{"class":867,"line":887},2,[865,889,890],{"class":875},"  -H",[865,892,893],{"class":879}," \"Authorization: Bearer ",[865,895,897],{"class":896},"suds8","$TOKEN",[865,899,900],{"class":879},"\"\n",[856,902,906],{"className":903,"code":904,"language":905,"meta":861,"style":861},"language-json shiki shiki-themes github-light-high-contrast github-dark-high-contrast","{\n  \"success\": true,\n  \"message\": \"Categories fetched successfully.\",\n  \"data\": [\n    {\n      \"_id\": \"64b7e1f0a1b2c3d4e5f60711\",\n      \"name\": \"Science\",\n      \"altName\": \"Science Olympiad\",\n      \"order\": 1,\n      \"isActive\": true,\n      \"hasCode\": false,\n      \"nonAcceptedReplacements\": [\"64b7e1f0a1b2c3d4e5f60799\"],\n      \"createdAt\": \"2025-08-01T10:00:00.000Z\",\n      \"updatedAt\": \"2026-06-12T08:30:00.000Z\"\n    },\n    {\n      \"_id\": \"64b7e1f0a1b2c3d4e5f60799\",\n      \"name\": \"Art\",\n      \"order\": 9,\n      \"isActive\": false,\n      \"hasCode\": false,\n      \"nonAcceptedReplacements\": [],\n      \"createdAt\": \"2024-08-01T10:00:00.000Z\",\n      \"updatedAt\": \"2025-09-30T12:00:00.000Z\"\n    }\n  ],\n  \"pagination\": { \"page\": 1, \"limit\": 50, \"total\": 2, \"totalPages\": 1 }\n}\n","json",[379,907,908,913,927,940,949,955,968,981,994,1007,1019,1032,1047,1060,1071,1077,1082,1093,1105,1117,1128,1139,1147,1159,1169,1175,1181,1229],{"__ignoreMap":861},[865,909,910],{"class":867,"line":868},[865,911,912],{"class":896},"{\n",[865,914,915,919,922,924],{"class":867,"line":887},[865,916,918],{"class":917},"sne4z","  \"success\"",[865,920,921],{"class":896},": ",[865,923,596],{"class":875},[865,925,926],{"class":896},",\n",[865,928,930,933,935,938],{"class":867,"line":929},3,[865,931,932],{"class":917},"  \"message\"",[865,934,921],{"class":896},[865,936,937],{"class":879},"\"Categories fetched successfully.\"",[865,939,926],{"class":896},[865,941,943,946],{"class":867,"line":942},4,[865,944,945],{"class":917},"  \"data\"",[865,947,948],{"class":896},": [\n",[865,950,952],{"class":867,"line":951},5,[865,953,954],{"class":896},"    {\n",[865,956,958,961,963,966],{"class":867,"line":957},6,[865,959,960],{"class":917},"      \"_id\"",[865,962,921],{"class":896},[865,964,965],{"class":879},"\"64b7e1f0a1b2c3d4e5f60711\"",[865,967,926],{"class":896},[865,969,971,974,976,979],{"class":867,"line":970},7,[865,972,973],{"class":917},"      \"name\"",[865,975,921],{"class":896},[865,977,978],{"class":879},"\"Science\"",[865,980,926],{"class":896},[865,982,984,987,989,992],{"class":867,"line":983},8,[865,985,986],{"class":917},"      \"altName\"",[865,988,921],{"class":896},[865,990,991],{"class":879},"\"Science Olympiad\"",[865,993,926],{"class":896},[865,995,997,1000,1002,1005],{"class":867,"line":996},9,[865,998,999],{"class":917},"      \"order\"",[865,1001,921],{"class":896},[865,1003,1004],{"class":875},"1",[865,1006,926],{"class":896},[865,1008,1010,1013,1015,1017],{"class":867,"line":1009},10,[865,1011,1012],{"class":917},"      \"isActive\"",[865,1014,921],{"class":896},[865,1016,596],{"class":875},[865,1018,926],{"class":896},[865,1020,1022,1025,1027,1030],{"class":867,"line":1021},11,[865,1023,1024],{"class":917},"      \"hasCode\"",[865,1026,921],{"class":896},[865,1028,1029],{"class":875},"false",[865,1031,926],{"class":896},[865,1033,1035,1038,1041,1044],{"class":867,"line":1034},12,[865,1036,1037],{"class":917},"      \"nonAcceptedReplacements\"",[865,1039,1040],{"class":896},": [",[865,1042,1043],{"class":879},"\"64b7e1f0a1b2c3d4e5f60799\"",[865,1045,1046],{"class":896},"],\n",[865,1048,1050,1053,1055,1058],{"class":867,"line":1049},13,[865,1051,1052],{"class":917},"      \"createdAt\"",[865,1054,921],{"class":896},[865,1056,1057],{"class":879},"\"2025-08-01T10:00:00.000Z\"",[865,1059,926],{"class":896},[865,1061,1063,1066,1068],{"class":867,"line":1062},14,[865,1064,1065],{"class":917},"      \"updatedAt\"",[865,1067,921],{"class":896},[865,1069,1070],{"class":879},"\"2026-06-12T08:30:00.000Z\"\n",[865,1072,1074],{"class":867,"line":1073},15,[865,1075,1076],{"class":896},"    },\n",[865,1078,1080],{"class":867,"line":1079},16,[865,1081,954],{"class":896},[865,1083,1085,1087,1089,1091],{"class":867,"line":1084},17,[865,1086,960],{"class":917},[865,1088,921],{"class":896},[865,1090,1043],{"class":879},[865,1092,926],{"class":896},[865,1094,1096,1098,1100,1103],{"class":867,"line":1095},18,[865,1097,973],{"class":917},[865,1099,921],{"class":896},[865,1101,1102],{"class":879},"\"Art\"",[865,1104,926],{"class":896},[865,1106,1108,1110,1112,1115],{"class":867,"line":1107},19,[865,1109,999],{"class":917},[865,1111,921],{"class":896},[865,1113,1114],{"class":875},"9",[865,1116,926],{"class":896},[865,1118,1120,1122,1124,1126],{"class":867,"line":1119},20,[865,1121,1012],{"class":917},[865,1123,921],{"class":896},[865,1125,1029],{"class":875},[865,1127,926],{"class":896},[865,1129,1131,1133,1135,1137],{"class":867,"line":1130},21,[865,1132,1024],{"class":917},[865,1134,921],{"class":896},[865,1136,1029],{"class":875},[865,1138,926],{"class":896},[865,1140,1142,1144],{"class":867,"line":1141},22,[865,1143,1037],{"class":917},[865,1145,1146],{"class":896},": [],\n",[865,1148,1150,1152,1154,1157],{"class":867,"line":1149},23,[865,1151,1052],{"class":917},[865,1153,921],{"class":896},[865,1155,1156],{"class":879},"\"2024-08-01T10:00:00.000Z\"",[865,1158,926],{"class":896},[865,1160,1162,1164,1166],{"class":867,"line":1161},24,[865,1163,1065],{"class":917},[865,1165,921],{"class":896},[865,1167,1168],{"class":879},"\"2025-09-30T12:00:00.000Z\"\n",[865,1170,1172],{"class":867,"line":1171},25,[865,1173,1174],{"class":896},"    }\n",[865,1176,1178],{"class":867,"line":1177},26,[865,1179,1180],{"class":896},"  ],\n",[865,1182,1184,1187,1190,1193,1195,1197,1199,1202,1204,1207,1209,1212,1214,1217,1219,1222,1224,1226],{"class":867,"line":1183},27,[865,1185,1186],{"class":917},"  \"pagination\"",[865,1188,1189],{"class":896},": { ",[865,1191,1192],{"class":917},"\"page\"",[865,1194,921],{"class":896},[865,1196,1004],{"class":875},[865,1198,436],{"class":896},[865,1200,1201],{"class":917},"\"limit\"",[865,1203,921],{"class":896},[865,1205,1206],{"class":875},"50",[865,1208,436],{"class":896},[865,1210,1211],{"class":917},"\"total\"",[865,1213,921],{"class":896},[865,1215,1216],{"class":875},"2",[865,1218,436],{"class":896},[865,1220,1221],{"class":917},"\"totalPages\"",[865,1223,921],{"class":896},[865,1225,1004],{"class":875},[865,1227,1228],{"class":896}," }\n",[865,1230,1232],{"class":867,"line":1231},28,[865,1233,1234],{"class":896},"}\n",[358,1236,1237],{},"The examples on this page are trimmed. The API returns every stored field of a category, sitting, language or exam, so expect more fields than shown here and ignore the ones you don't use.",[399,1239,1240,1249],{},[402,1241,1242],{},[405,1243,1244,1247],{},[408,1245,1246],{},"Category field",[408,1248,548],{},[418,1250,1251,1260,1274,1285],{},[405,1252,1253,1257],{},[423,1254,1255],{},[379,1256,435],{},[423,1258,1259],{},"The category's display name. Error messages quote it.",[405,1261,1262,1266],{},[423,1263,1264],{},[379,1265,439],{},[423,1267,1268,1269,1271,1272,374],{},"Sort key. The picker lists categories by ",[379,1270,439],{},", then by ",[379,1273,435],{},[405,1275,1276,1280],{},[423,1277,1278],{},[379,1279,442],{},[423,1281,1282,1284],{},[379,1283,1029],{}," means retired. A retired category's exams are never open, even if their sitting is still ahead.",[405,1286,1287,1291],{},[423,1288,1289],{},[379,1290,445],{},[423,1292,1293,1294,1297,1298,374],{},"Ids of categories that an application in this category may ",[362,1295,1296],{},"not"," be moved to. See ",[371,1299,1301],{"href":1300},"\u002Fapi\u002Fguides\u002Fapplications#move-an-application","Moving an application",[358,1303,1304,1306],{},[379,1305,758],{}," returns one category in the same shape.",[1308,1309,1310,1319],"ul",{},[644,1311,1312,1313,436,1316],{},"A malformed id (not 24 hexadecimal characters) answers ",[379,1314,1315],{},"400 bad_request",[379,1317,1318],{},"Invalid value for '_id': expected ObjectId.",[644,1320,1321,1322,436,1325,374],{},"A well-formed id that matches no category in this organization answers ",[379,1323,1324],{},"404 not_found",[379,1326,1327],{},"Category not found!",[394,1329,772],{"id":1330},"list-open-exams",[358,1332,1333,1335,1336,1338],{},[379,1334,777],{}," lists the organization's open exams, soonest sitting first. Exams on the same sitting are ordered by ",[379,1337,385],{},", so page boundaries stay stable between requests.",[856,1340,1342],{"className":858,"code":1341,"language":860,"meta":861,"style":861},"curl -s \"https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fexam?page=1&limit=20\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n",[379,1343,1344,1355],{"__ignoreMap":861},[865,1345,1346,1348,1350,1353],{"class":867,"line":868},[865,1347,872],{"class":871},[865,1349,876],{"class":875},[865,1351,1352],{"class":879}," \"https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fexam?page=1&limit=20\"",[865,1354,884],{"class":883},[865,1356,1357,1359,1361,1363],{"class":867,"line":887},[865,1358,890],{"class":875},[865,1360,893],{"class":879},[865,1362,897],{"class":896},[865,1364,900],{"class":879},[856,1366,1368],{"className":903,"code":1367,"language":905,"meta":861,"style":861},"{\n  \"success\": true,\n  \"message\": \"Exams fetched successfully.\",\n  \"data\": [\n    {\n      \"_id\": \"66f1a2b3c4d5e6f708192a3b\",\n      \"session\": {\n        \"_id\": \"66e0c1d2e3f4a5b6c7d8e9f0\",\n        \"sessionName\": \"November 2026\",\n        \"date\": \"2026-11-14T09:00:00.000Z\",\n        \"startTime\": \"12:00\",\n        \"tz\": \"global\",\n        \"sessionAlias\": \"Autumn sitting\",\n        \"sessionNote\": \"Online. A webcam is required.\"\n      },\n      \"category\": { \"_id\": \"64b7e1f0a1b2c3d4e5f60711\", \"name\": \"Science\", \"order\": 1, \"isActive\": true },\n      \"language\": { \"_id\": \"64a1f0b2c9d8e7f600118899\", \"name\": \"English\", \"code\": \"en\", \"order\": 1 },\n      \"grades\": [\n        { \"_id\": \"630e01826836e67ec53dc7a6\", \"name\": \"9\" },\n        { \"_id\": \"630e01826836e67ec53dc7a7\", \"name\": \"10\" }\n      ],\n      \"countries\": [],\n      \"price\": 25,\n      \"duration\": 15,\n      \"examTime\": 75,\n      \"examType\": \"standard\",\n      \"maxPartners\": 1,\n      \"preventApplication\": false,\n      \"createdAt\": \"2026-05-02T09:12:44.000Z\",\n      \"updatedAt\": \"2026-08-20T14:03:10.000Z\"\n    }\n  ],\n  \"pagination\": { \"page\": 1, \"limit\": 20, \"total\": 37, \"totalPages\": 2 }\n}\n",[379,1369,1370,1374,1384,1395,1401,1405,1416,1424,1436,1448,1460,1472,1484,1496,1506,1511,1555,1598,1605,1628,1650,1655,1662,1674,1686,1698,1710,1721,1732,1744,1754,1759,1764,1805],{"__ignoreMap":861},[865,1371,1372],{"class":867,"line":868},[865,1373,912],{"class":896},[865,1375,1376,1378,1380,1382],{"class":867,"line":887},[865,1377,918],{"class":917},[865,1379,921],{"class":896},[865,1381,596],{"class":875},[865,1383,926],{"class":896},[865,1385,1386,1388,1390,1393],{"class":867,"line":929},[865,1387,932],{"class":917},[865,1389,921],{"class":896},[865,1391,1392],{"class":879},"\"Exams fetched successfully.\"",[865,1394,926],{"class":896},[865,1396,1397,1399],{"class":867,"line":942},[865,1398,945],{"class":917},[865,1400,948],{"class":896},[865,1402,1403],{"class":867,"line":951},[865,1404,954],{"class":896},[865,1406,1407,1409,1411,1414],{"class":867,"line":957},[865,1408,960],{"class":917},[865,1410,921],{"class":896},[865,1412,1413],{"class":879},"\"66f1a2b3c4d5e6f708192a3b\"",[865,1415,926],{"class":896},[865,1417,1418,1421],{"class":867,"line":970},[865,1419,1420],{"class":917},"      \"session\"",[865,1422,1423],{"class":896},": {\n",[865,1425,1426,1429,1431,1434],{"class":867,"line":983},[865,1427,1428],{"class":917},"        \"_id\"",[865,1430,921],{"class":896},[865,1432,1433],{"class":879},"\"66e0c1d2e3f4a5b6c7d8e9f0\"",[865,1435,926],{"class":896},[865,1437,1438,1441,1443,1446],{"class":867,"line":996},[865,1439,1440],{"class":917},"        \"sessionName\"",[865,1442,921],{"class":896},[865,1444,1445],{"class":879},"\"November 2026\"",[865,1447,926],{"class":896},[865,1449,1450,1453,1455,1458],{"class":867,"line":1009},[865,1451,1452],{"class":917},"        \"date\"",[865,1454,921],{"class":896},[865,1456,1457],{"class":879},"\"2026-11-14T09:00:00.000Z\"",[865,1459,926],{"class":896},[865,1461,1462,1465,1467,1470],{"class":867,"line":1021},[865,1463,1464],{"class":917},"        \"startTime\"",[865,1466,921],{"class":896},[865,1468,1469],{"class":879},"\"12:00\"",[865,1471,926],{"class":896},[865,1473,1474,1477,1479,1482],{"class":867,"line":1034},[865,1475,1476],{"class":917},"        \"tz\"",[865,1478,921],{"class":896},[865,1480,1481],{"class":879},"\"global\"",[865,1483,926],{"class":896},[865,1485,1486,1489,1491,1494],{"class":867,"line":1049},[865,1487,1488],{"class":917},"        \"sessionAlias\"",[865,1490,921],{"class":896},[865,1492,1493],{"class":879},"\"Autumn sitting\"",[865,1495,926],{"class":896},[865,1497,1498,1501,1503],{"class":867,"line":1062},[865,1499,1500],{"class":917},"        \"sessionNote\"",[865,1502,921],{"class":896},[865,1504,1505],{"class":879},"\"Online. A webcam is required.\"\n",[865,1507,1508],{"class":867,"line":1073},[865,1509,1510],{"class":896},"      },\n",[865,1512,1513,1516,1518,1521,1523,1525,1527,1530,1532,1534,1536,1539,1541,1543,1545,1548,1550,1552],{"class":867,"line":1079},[865,1514,1515],{"class":917},"      \"category\"",[865,1517,1189],{"class":896},[865,1519,1520],{"class":917},"\"_id\"",[865,1522,921],{"class":896},[865,1524,965],{"class":879},[865,1526,436],{"class":896},[865,1528,1529],{"class":917},"\"name\"",[865,1531,921],{"class":896},[865,1533,978],{"class":879},[865,1535,436],{"class":896},[865,1537,1538],{"class":917},"\"order\"",[865,1540,921],{"class":896},[865,1542,1004],{"class":875},[865,1544,436],{"class":896},[865,1546,1547],{"class":917},"\"isActive\"",[865,1549,921],{"class":896},[865,1551,596],{"class":875},[865,1553,1554],{"class":896}," },\n",[865,1556,1557,1560,1562,1564,1566,1569,1571,1573,1575,1578,1580,1583,1585,1588,1590,1592,1594,1596],{"class":867,"line":1084},[865,1558,1559],{"class":917},"      \"language\"",[865,1561,1189],{"class":896},[865,1563,1520],{"class":917},[865,1565,921],{"class":896},[865,1567,1568],{"class":879},"\"64a1f0b2c9d8e7f600118899\"",[865,1570,436],{"class":896},[865,1572,1529],{"class":917},[865,1574,921],{"class":896},[865,1576,1577],{"class":879},"\"English\"",[865,1579,436],{"class":896},[865,1581,1582],{"class":917},"\"code\"",[865,1584,921],{"class":896},[865,1586,1587],{"class":879},"\"en\"",[865,1589,436],{"class":896},[865,1591,1538],{"class":917},[865,1593,921],{"class":896},[865,1595,1004],{"class":875},[865,1597,1554],{"class":896},[865,1599,1600,1603],{"class":867,"line":1095},[865,1601,1602],{"class":917},"      \"grades\"",[865,1604,948],{"class":896},[865,1606,1607,1610,1612,1614,1617,1619,1621,1623,1626],{"class":867,"line":1107},[865,1608,1609],{"class":896},"        { ",[865,1611,1520],{"class":917},[865,1613,921],{"class":896},[865,1615,1616],{"class":879},"\"630e01826836e67ec53dc7a6\"",[865,1618,436],{"class":896},[865,1620,1529],{"class":917},[865,1622,921],{"class":896},[865,1624,1625],{"class":879},"\"9\"",[865,1627,1554],{"class":896},[865,1629,1630,1632,1634,1636,1639,1641,1643,1645,1648],{"class":867,"line":1119},[865,1631,1609],{"class":896},[865,1633,1520],{"class":917},[865,1635,921],{"class":896},[865,1637,1638],{"class":879},"\"630e01826836e67ec53dc7a7\"",[865,1640,436],{"class":896},[865,1642,1529],{"class":917},[865,1644,921],{"class":896},[865,1646,1647],{"class":879},"\"10\"",[865,1649,1228],{"class":896},[865,1651,1652],{"class":867,"line":1130},[865,1653,1654],{"class":896},"      ],\n",[865,1656,1657,1660],{"class":867,"line":1141},[865,1658,1659],{"class":917},"      \"countries\"",[865,1661,1146],{"class":896},[865,1663,1664,1667,1669,1672],{"class":867,"line":1149},[865,1665,1666],{"class":917},"      \"price\"",[865,1668,921],{"class":896},[865,1670,1671],{"class":875},"25",[865,1673,926],{"class":896},[865,1675,1676,1679,1681,1684],{"class":867,"line":1161},[865,1677,1678],{"class":917},"      \"duration\"",[865,1680,921],{"class":896},[865,1682,1683],{"class":875},"15",[865,1685,926],{"class":896},[865,1687,1688,1691,1693,1696],{"class":867,"line":1171},[865,1689,1690],{"class":917},"      \"examTime\"",[865,1692,921],{"class":896},[865,1694,1695],{"class":875},"75",[865,1697,926],{"class":896},[865,1699,1700,1703,1705,1708],{"class":867,"line":1177},[865,1701,1702],{"class":917},"      \"examType\"",[865,1704,921],{"class":896},[865,1706,1707],{"class":879},"\"standard\"",[865,1709,926],{"class":896},[865,1711,1712,1715,1717,1719],{"class":867,"line":1183},[865,1713,1714],{"class":917},"      \"maxPartners\"",[865,1716,921],{"class":896},[865,1718,1004],{"class":875},[865,1720,926],{"class":896},[865,1722,1723,1726,1728,1730],{"class":867,"line":1231},[865,1724,1725],{"class":917},"      \"preventApplication\"",[865,1727,921],{"class":896},[865,1729,1029],{"class":875},[865,1731,926],{"class":896},[865,1733,1735,1737,1739,1742],{"class":867,"line":1734},29,[865,1736,1052],{"class":917},[865,1738,921],{"class":896},[865,1740,1741],{"class":879},"\"2026-05-02T09:12:44.000Z\"",[865,1743,926],{"class":896},[865,1745,1747,1749,1751],{"class":867,"line":1746},30,[865,1748,1065],{"class":917},[865,1750,921],{"class":896},[865,1752,1753],{"class":879},"\"2026-08-20T14:03:10.000Z\"\n",[865,1755,1757],{"class":867,"line":1756},31,[865,1758,1174],{"class":896},[865,1760,1762],{"class":867,"line":1761},32,[865,1763,1180],{"class":896},[865,1765,1767,1769,1771,1773,1775,1777,1779,1781,1783,1786,1788,1790,1792,1795,1797,1799,1801,1803],{"class":867,"line":1766},33,[865,1768,1186],{"class":917},[865,1770,1189],{"class":896},[865,1772,1192],{"class":917},[865,1774,921],{"class":896},[865,1776,1004],{"class":875},[865,1778,436],{"class":896},[865,1780,1201],{"class":917},[865,1782,921],{"class":896},[865,1784,1785],{"class":875},"20",[865,1787,436],{"class":896},[865,1789,1211],{"class":917},[865,1791,921],{"class":896},[865,1793,1794],{"class":875},"37",[865,1796,436],{"class":896},[865,1798,1221],{"class":917},[865,1800,921],{"class":896},[865,1802,1216],{"class":875},[865,1804,1228],{"class":896},[865,1806,1808],{"class":867,"line":1807},34,[865,1809,1234],{"class":896},[358,1811,1812,1813,436,1815,436,1817,436,1819,684,1821,1823],{},"Every reference comes back as a document, not an id: ",[379,1814,512],{},[379,1816,515],{},[379,1818,518],{},[379,1820,521],{},[379,1822,524],{},". You can show an exam without any further calls.",[358,1825,1826],{},"Two things to know about this list:",[1308,1828,1829,1835],{},[644,1830,1831,1834],{},[362,1832,1833],{},"It isn't a catalog."," Closed, past and retired exams never appear, so an exam you saw last month can be missing today. The single read below follows the same rule.",[644,1836,1837,1840,1841,1844,1845,374],{},[362,1838,1839],{},"It knows nothing about any student."," It doesn't filter by grade or country, and it includes exams with no language (",[379,1842,1843],{},"\"language\": null","), which nobody can apply to. To choose an exam for a particular student, use ",[371,1846,1848],{"href":1847},"#the-per-student-picker","the picker",[394,1850,1852],{"id":1851},"get-one-exam","Get one exam",[358,1854,1855,1857],{},[379,1856,815],{}," returns one open exam, in the same shape as a list item.",[399,1859,1860,1870],{},[402,1861,1862],{},[405,1863,1864,1867],{},[408,1865,1866],{},"Situation",[408,1868,1869],{},"Answer",[418,1871,1872,1885,1897,1909],{},[405,1873,1874,1877],{},[423,1875,1876],{},"The exam exists and is open",[423,1878,1879,436,1882],{},[379,1880,1881],{},"200",[379,1883,1884],{},"Exam fetched successfully.",[405,1886,1887,1890],{},[423,1888,1889],{},"No exam has this id",[423,1891,1892,436,1894],{},[379,1893,1324],{},[379,1895,1896],{},"Exam not found!",[405,1898,1899,1902],{},[423,1900,1901],{},"The exam exists but is closed",[423,1903,1904,436,1906],{},[379,1905,1324],{},[379,1907,1908],{},"Exam is not open for application, so it is not available through this API.",[405,1910,1911,1914],{},[423,1912,1913],{},"The id isn't 24 hexadecimal characters",[423,1915,1916],{},[379,1917,1315],{},[358,1919,1920,1921,1924],{},"The two ",[379,1922,1923],{},"404","s differ only in their message. Both mean the same thing for your integration: this exam can't be applied to now.",[394,1926,1928],{"id":1927},"the-per-student-picker","The per-student picker",[358,1930,1931,1933,1934,1937],{},[379,1932,797],{}," answers one question: ",[362,1935,1936],{},"which exams could this student be entered for right now?"," It returns the answer as a tree, grouped the way the student panel offers exams: by category, then sitting, then language. Every leaf carries the exam to post when you create an application.",[358,1939,1940,1943,1944,1946],{},[379,1941,1942],{},"\u003CstudentId>"," is the student's core id, the ",[379,1945,385],{}," that registration returned.",[1948,1949,1951],"h3",{"id":1950},"what-the-picker-filters-by","What the picker filters by",[358,1953,1954,1955,684,1958,1961],{},"An exam is offered to the student only if every rule below holds. ",[371,1956,1957],{"href":238},"Creating",[371,1959,1960],{"href":250},"moving"," an application apply exactly the same rules. So a leaf you just fetched is accepted, unless something changed in the meantime: the sitting passed, the student's grade changed, or another application was made.",[399,1963,1964,1974],{},[402,1965,1966],{},[405,1967,1968,1971],{},[408,1969,1970],{},"Rule",[408,1972,1973],{},"Detail",[418,1975,1976,1987,1997,2005,2013],{},[405,1977,1978,1981],{},[423,1979,1980],{},"The exam is open",[423,1982,1983,1984,374],{},"The three conditions in ",[371,1985,633],{"href":1986},"#what-open-means",[405,1988,1989,1994],{},[423,1990,1991,1992],{},"The student's grade is in the exam's ",[379,1993,521],{},[423,1995,1996],{},"A hard filter. An exam with no grades is offered to nobody.",[405,1998,1999,2002],{},[423,2000,2001],{},"The exam is available in the student's country",[423,2003,2004],{},"The exam lists the student's country, or lists no countries. The student's country is matched by name within the organization. If it can't be matched there, only exams open to every country are offered, so the picker may hide an exam but never offers one the student can't sit.",[405,2006,2007,2010],{},[423,2008,2009],{},"The exam has a language",[423,2011,2012],{},"An exam with no language can't be picked, so it is never offered.",[405,2014,2015,2018],{},[423,2016,2017],{},"The student doesn't already hold that category on that sitting",[423,2019,2020,2021,2024],{},"If the student has an application in, say, Science on the November sitting, no Science exam on that sitting is offered, in any language (the one they hold included). To switch languages, ",[371,2022,2023],{"href":1300},"move the application"," instead.",[358,2026,2027,2028,2032],{},"The student doesn't need to have signed in to the organization yet. A student who never has holds no applications there, so nothing is excluded for them. ",[371,2029,2031],{"href":2030},"\u002Fapi\u002Fguides\u002Fapplications#before-you-create-one","Creating an application"," is different: it does need that first sign-in.",[1948,2034,2036],{"id":2035},"refusals","Refusals",[399,2038,2039,2047],{},[402,2040,2041],{},[405,2042,2043,2045],{},[408,2044,1866],{},[408,2046,1869],{},[418,2048,2049,2062,2074],{},[405,2050,2051,2054],{},[423,2052,2053],{},"The student isn't yours, or doesn't exist",[423,2055,2056,436,2058,2061],{},[379,2057,1324],{},[379,2059,2060],{},"Student not found!",". The two cases look the same on purpose.",[405,2063,2064,2067],{},[423,2065,2066],{},"The student has no grade",[423,2068,2069,436,2071],{},[379,2070,1315],{},[379,2072,2073],{},"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.",[405,2075,2076,2081],{},[423,2077,2078,2080],{},[379,2079,1942],{}," isn't 24 hexadecimal characters",[423,2082,2083],{},[379,2084,1315],{},[358,2086,2087,2088,684,2090,2093],{},"A student with nothing to choose from gets ",[379,2089,1881],{},[379,2091,2092],{},"\"data\": []",", not an error.",[1948,2095,2097],{"id":2096},"the-tree","The tree",[856,2099,2104],{"className":2100,"code":2102,"language":2103,"meta":861},[2101],"language-text","data[]                   one node per category\n └─ sessions[]           the sittings of that category\n     └─ languages[]      the languages that sitting can be sat in (the leaves)\n         └─ matchedExam  the one exam this position identifies\n","text",[379,2105,2102],{"__ignoreMap":861},[1308,2107,2108,2117,2123,2139,2145],{},[644,2109,2110,2113,2114,2116],{},[362,2111,2112],{},"Every level is a whole document"," (a category, a sitting or a language), plus an array of the level below it. Each level's ",[379,2115,385],{}," is a string.",[644,2118,2119,2122],{},[362,2120,2121],{},"Nothing is empty."," A sitting appears only if at least one language is offered under it, and a category only if at least one sitting is.",[644,2124,2125,2128,2129,2131,2132,2134,2135,2131,2137,374],{},[362,2126,2127],{},"It is sorted."," Categories by ",[379,2130,439],{},", then ",[379,2133,435],{},". Sittings soonest first. Languages by ",[379,2136,439],{},[379,2138,435],{},[644,2140,2141,2144],{},[362,2142,2143],{},"The same sitting can appear under several categories",", once under each category that runs an exam on it. Each copy is its own node.",[644,2146,2147,2150],{},[362,2148,2149],{},"It isn't paginated."," One student's options are a handful of categories, sittings and languages, and the whole tree comes back at once.",[358,2152,2153,2156,2157,436,2159,684,2161,2163,2164,2167,2168,684,2170,2172,2173,2175],{},[379,2154,2155],{},"matchedExam"," is the exam at that position. Its ",[379,2158,512],{},[379,2160,515],{},[379,2162,518],{}," are ",[362,2165,2166],{},"ids",", because the documents they point to are the levels the leaf already hangs under. Its ",[379,2169,521],{},[379,2171,524],{}," are ids too. ",[379,2174,527],{}," is absent when the exam has no price, exactly as on the exam list.",[1948,2177,2179],{"id":2178},"a-full-example","A full example",[856,2181,2183],{"className":858,"code":2182,"language":860,"meta":861,"style":861},"curl -s \"https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fexam\u002Favailable\u002F652f1c9b8e4b2a0012a3c4d5\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n",[379,2184,2185,2196],{"__ignoreMap":861},[865,2186,2187,2189,2191,2194],{"class":867,"line":868},[865,2188,872],{"class":871},[865,2190,876],{"class":875},[865,2192,2193],{"class":879}," \"https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fexam\u002Favailable\u002F652f1c9b8e4b2a0012a3c4d5\"",[865,2195,884],{"class":883},[865,2197,2198,2200,2202,2204],{"class":867,"line":887},[865,2199,890],{"class":875},[865,2201,893],{"class":879},[865,2203,897],{"class":896},[865,2205,900],{"class":879},[856,2207,2209],{"className":903,"code":2208,"language":905,"meta":861,"style":861},"{\n  \"success\": true,\n  \"message\": \"Available exams fetched successfully.\",\n  \"data\": [\n    {\n      \"_id\": \"64b7e1f0a1b2c3d4e5f60711\",\n      \"name\": \"Science\",\n      \"altName\": \"Science Olympiad\",\n      \"order\": 1,\n      \"isActive\": true,\n      \"nonAcceptedReplacements\": [\"64b7e1f0a1b2c3d4e5f60799\"],\n      \"sessions\": [\n        {\n          \"_id\": \"66e0c1d2e3f4a5b6c7d8e9f0\",\n          \"sessionName\": \"November 2026\",\n          \"date\": \"2026-11-14T09:00:00.000Z\",\n          \"startTime\": \"12:00\",\n          \"tz\": \"global\",\n          \"sessionAlias\": \"Autumn sitting\",\n          \"sessionNote\": \"Online. A webcam is required.\",\n          \"languages\": [\n            {\n              \"_id\": \"64a1f0b2c9d8e7f600118899\",\n              \"name\": \"English\",\n              \"code\": \"en\",\n              \"order\": 1,\n              \"matchedExam\": {\n                \"_id\": \"66f1a2b3c4d5e6f708192a3b\",\n                \"session\": \"66e0c1d2e3f4a5b6c7d8e9f0\",\n                \"category\": \"64b7e1f0a1b2c3d4e5f60711\",\n                \"language\": \"64a1f0b2c9d8e7f600118899\",\n                \"grades\": [\"630e01826836e67ec53dc7a6\", \"630e01826836e67ec53dc7a7\"],\n                \"countries\": [],\n                \"price\": 25,\n                \"duration\": 15,\n                \"examTime\": 75,\n                \"examType\": \"standard\",\n                \"maxPartners\": 1,\n                \"preventApplication\": false\n              }\n            },\n            {\n              \"_id\": \"64a1f0b2c9d8e7f60011889a\",\n              \"name\": \"German\",\n              \"code\": \"de\",\n              \"order\": 2,\n              \"matchedExam\": {\n                \"_id\": \"66f1a2b3c4d5e6f708192a3c\",\n                \"session\": \"66e0c1d2e3f4a5b6c7d8e9f0\",\n                \"category\": \"64b7e1f0a1b2c3d4e5f60711\",\n                \"language\": \"64a1f0b2c9d8e7f60011889a\",\n                \"grades\": [\"630e01826836e67ec53dc7a6\", \"630e01826836e67ec53dc7a7\"],\n                \"countries\": [\"5f8d0a1b2c3d4e5f6a7b8c9d\", \"5f8d0a1b2c3d4e5f6a7b8c9e\"],\n                \"price\": 25,\n                \"duration\": 15,\n                \"examTime\": 75,\n                \"examType\": \"standard\",\n                \"maxPartners\": 1,\n                \"preventApplication\": false\n              }\n            }\n          ]\n        },\n        {\n          \"_id\": \"66e0c1d2e3f4a5b6c7d8e9f7\",\n          \"sessionName\": \"March 2027\",\n          \"date\": \"2027-03-20T09:00:00.000Z\",\n          \"startTime\": \"12:00\",\n          \"tz\": \"global\",\n          \"languages\": [\n            {\n              \"_id\": \"64a1f0b2c9d8e7f600118899\",\n              \"name\": \"English\",\n              \"code\": \"en\",\n              \"order\": 1,\n              \"matchedExam\": {\n                \"_id\": \"66f1a2b3c4d5e6f708192a40\",\n                \"session\": \"66e0c1d2e3f4a5b6c7d8e9f7\",\n                \"category\": \"64b7e1f0a1b2c3d4e5f60711\",\n                \"language\": \"64a1f0b2c9d8e7f600118899\",\n                \"grades\": [\"630e01826836e67ec53dc7a7\"],\n                \"countries\": [],\n                \"price\": 30,\n                \"duration\": 15,\n                \"examTime\": 75,\n                \"examType\": \"standard\",\n                \"maxPartners\": 1,\n                \"preventApplication\": false\n              }\n            }\n          ]\n        }\n      ]\n    },\n    {\n      \"_id\": \"64b7e1f0a1b2c3d4e5f60712\",\n      \"name\": \"Mathematics\",\n      \"order\": 2,\n      \"isActive\": true,\n      \"nonAcceptedReplacements\": [],\n      \"sessions\": [\n        {\n          \"_id\": \"66e0c1d2e3f4a5b6c7d8e9f0\",\n          \"sessionName\": \"November 2026\",\n          \"date\": \"2026-11-14T09:00:00.000Z\",\n          \"startTime\": \"12:00\",\n          \"tz\": \"global\",\n          \"languages\": [\n            {\n              \"_id\": \"64a1f0b2c9d8e7f600118899\",\n              \"name\": \"English\",\n              \"code\": \"en\",\n              \"order\": 1,\n              \"matchedExam\": {\n                \"_id\": \"66f1a2b3c4d5e6f708192a41\",\n                \"session\": \"66e0c1d2e3f4a5b6c7d8e9f0\",\n                \"category\": \"64b7e1f0a1b2c3d4e5f60712\",\n                \"language\": \"64a1f0b2c9d8e7f600118899\",\n                \"grades\": [\"630e01826836e67ec53dc7a6\"],\n                \"countries\": [],\n                \"duration\": 15,\n                \"examTime\": 75,\n                \"examType\": \"standard\",\n                \"maxPartners\": 1,\n                \"preventApplication\": false\n              }\n            }\n          ]\n        }\n      ]\n    }\n  ]\n}\n",[379,2210,2211,2215,2225,2236,2242,2246,2256,2266,2276,2286,2296,2306,2313,2318,2329,2340,2351,2362,2373,2384,2396,2403,2408,2419,2430,2441,2452,2459,2470,2481,2492,2503,2518,2525,2536,2548,2560,2572,2584,2595,2601,2607,2612,2624,2636,2648,2659,2666,2678,2689,2700,2711,2726,2743,2754,2765,2776,2787,2798,2807,2812,2818,2824,2830,2835,2847,2859,2871,2882,2893,2900,2905,2916,2927,2938,2949,2956,2968,2979,2990,3001,3012,3019,3031,3042,3053,3064,3075,3084,3089,3094,3099,3105,3111,3116,3121,3133,3145,3156,3167,3174,3181,3186,3197,3208,3219,3230,3241,3248,3253,3264,3275,3286,3297,3304,3316,3327,3338,3349,3360,3367,3378,3389,3400,3411,3420,3425,3430,3435,3440,3445,3450,3456],{"__ignoreMap":861},[865,2212,2213],{"class":867,"line":868},[865,2214,912],{"class":896},[865,2216,2217,2219,2221,2223],{"class":867,"line":887},[865,2218,918],{"class":917},[865,2220,921],{"class":896},[865,2222,596],{"class":875},[865,2224,926],{"class":896},[865,2226,2227,2229,2231,2234],{"class":867,"line":929},[865,2228,932],{"class":917},[865,2230,921],{"class":896},[865,2232,2233],{"class":879},"\"Available exams fetched successfully.\"",[865,2235,926],{"class":896},[865,2237,2238,2240],{"class":867,"line":942},[865,2239,945],{"class":917},[865,2241,948],{"class":896},[865,2243,2244],{"class":867,"line":951},[865,2245,954],{"class":896},[865,2247,2248,2250,2252,2254],{"class":867,"line":957},[865,2249,960],{"class":917},[865,2251,921],{"class":896},[865,2253,965],{"class":879},[865,2255,926],{"class":896},[865,2257,2258,2260,2262,2264],{"class":867,"line":970},[865,2259,973],{"class":917},[865,2261,921],{"class":896},[865,2263,978],{"class":879},[865,2265,926],{"class":896},[865,2267,2268,2270,2272,2274],{"class":867,"line":983},[865,2269,986],{"class":917},[865,2271,921],{"class":896},[865,2273,991],{"class":879},[865,2275,926],{"class":896},[865,2277,2278,2280,2282,2284],{"class":867,"line":996},[865,2279,999],{"class":917},[865,2281,921],{"class":896},[865,2283,1004],{"class":875},[865,2285,926],{"class":896},[865,2287,2288,2290,2292,2294],{"class":867,"line":1009},[865,2289,1012],{"class":917},[865,2291,921],{"class":896},[865,2293,596],{"class":875},[865,2295,926],{"class":896},[865,2297,2298,2300,2302,2304],{"class":867,"line":1021},[865,2299,1037],{"class":917},[865,2301,1040],{"class":896},[865,2303,1043],{"class":879},[865,2305,1046],{"class":896},[865,2307,2308,2311],{"class":867,"line":1034},[865,2309,2310],{"class":917},"      \"sessions\"",[865,2312,948],{"class":896},[865,2314,2315],{"class":867,"line":1049},[865,2316,2317],{"class":896},"        {\n",[865,2319,2320,2323,2325,2327],{"class":867,"line":1062},[865,2321,2322],{"class":917},"          \"_id\"",[865,2324,921],{"class":896},[865,2326,1433],{"class":879},[865,2328,926],{"class":896},[865,2330,2331,2334,2336,2338],{"class":867,"line":1073},[865,2332,2333],{"class":917},"          \"sessionName\"",[865,2335,921],{"class":896},[865,2337,1445],{"class":879},[865,2339,926],{"class":896},[865,2341,2342,2345,2347,2349],{"class":867,"line":1079},[865,2343,2344],{"class":917},"          \"date\"",[865,2346,921],{"class":896},[865,2348,1457],{"class":879},[865,2350,926],{"class":896},[865,2352,2353,2356,2358,2360],{"class":867,"line":1084},[865,2354,2355],{"class":917},"          \"startTime\"",[865,2357,921],{"class":896},[865,2359,1469],{"class":879},[865,2361,926],{"class":896},[865,2363,2364,2367,2369,2371],{"class":867,"line":1095},[865,2365,2366],{"class":917},"          \"tz\"",[865,2368,921],{"class":896},[865,2370,1481],{"class":879},[865,2372,926],{"class":896},[865,2374,2375,2378,2380,2382],{"class":867,"line":1107},[865,2376,2377],{"class":917},"          \"sessionAlias\"",[865,2379,921],{"class":896},[865,2381,1493],{"class":879},[865,2383,926],{"class":896},[865,2385,2386,2389,2391,2394],{"class":867,"line":1119},[865,2387,2388],{"class":917},"          \"sessionNote\"",[865,2390,921],{"class":896},[865,2392,2393],{"class":879},"\"Online. A webcam is required.\"",[865,2395,926],{"class":896},[865,2397,2398,2401],{"class":867,"line":1130},[865,2399,2400],{"class":917},"          \"languages\"",[865,2402,948],{"class":896},[865,2404,2405],{"class":867,"line":1141},[865,2406,2407],{"class":896},"            {\n",[865,2409,2410,2413,2415,2417],{"class":867,"line":1149},[865,2411,2412],{"class":917},"              \"_id\"",[865,2414,921],{"class":896},[865,2416,1568],{"class":879},[865,2418,926],{"class":896},[865,2420,2421,2424,2426,2428],{"class":867,"line":1161},[865,2422,2423],{"class":917},"              \"name\"",[865,2425,921],{"class":896},[865,2427,1577],{"class":879},[865,2429,926],{"class":896},[865,2431,2432,2435,2437,2439],{"class":867,"line":1171},[865,2433,2434],{"class":917},"              \"code\"",[865,2436,921],{"class":896},[865,2438,1587],{"class":879},[865,2440,926],{"class":896},[865,2442,2443,2446,2448,2450],{"class":867,"line":1177},[865,2444,2445],{"class":917},"              \"order\"",[865,2447,921],{"class":896},[865,2449,1004],{"class":875},[865,2451,926],{"class":896},[865,2453,2454,2457],{"class":867,"line":1183},[865,2455,2456],{"class":917},"              \"matchedExam\"",[865,2458,1423],{"class":896},[865,2460,2461,2464,2466,2468],{"class":867,"line":1231},[865,2462,2463],{"class":917},"                \"_id\"",[865,2465,921],{"class":896},[865,2467,1413],{"class":879},[865,2469,926],{"class":896},[865,2471,2472,2475,2477,2479],{"class":867,"line":1734},[865,2473,2474],{"class":917},"                \"session\"",[865,2476,921],{"class":896},[865,2478,1433],{"class":879},[865,2480,926],{"class":896},[865,2482,2483,2486,2488,2490],{"class":867,"line":1746},[865,2484,2485],{"class":917},"                \"category\"",[865,2487,921],{"class":896},[865,2489,965],{"class":879},[865,2491,926],{"class":896},[865,2493,2494,2497,2499,2501],{"class":867,"line":1756},[865,2495,2496],{"class":917},"                \"language\"",[865,2498,921],{"class":896},[865,2500,1568],{"class":879},[865,2502,926],{"class":896},[865,2504,2505,2508,2510,2512,2514,2516],{"class":867,"line":1761},[865,2506,2507],{"class":917},"                \"grades\"",[865,2509,1040],{"class":896},[865,2511,1616],{"class":879},[865,2513,436],{"class":896},[865,2515,1638],{"class":879},[865,2517,1046],{"class":896},[865,2519,2520,2523],{"class":867,"line":1766},[865,2521,2522],{"class":917},"                \"countries\"",[865,2524,1146],{"class":896},[865,2526,2527,2530,2532,2534],{"class":867,"line":1807},[865,2528,2529],{"class":917},"                \"price\"",[865,2531,921],{"class":896},[865,2533,1671],{"class":875},[865,2535,926],{"class":896},[865,2537,2539,2542,2544,2546],{"class":867,"line":2538},35,[865,2540,2541],{"class":917},"                \"duration\"",[865,2543,921],{"class":896},[865,2545,1683],{"class":875},[865,2547,926],{"class":896},[865,2549,2551,2554,2556,2558],{"class":867,"line":2550},36,[865,2552,2553],{"class":917},"                \"examTime\"",[865,2555,921],{"class":896},[865,2557,1695],{"class":875},[865,2559,926],{"class":896},[865,2561,2563,2566,2568,2570],{"class":867,"line":2562},37,[865,2564,2565],{"class":917},"                \"examType\"",[865,2567,921],{"class":896},[865,2569,1707],{"class":879},[865,2571,926],{"class":896},[865,2573,2575,2578,2580,2582],{"class":867,"line":2574},38,[865,2576,2577],{"class":917},"                \"maxPartners\"",[865,2579,921],{"class":896},[865,2581,1004],{"class":875},[865,2583,926],{"class":896},[865,2585,2587,2590,2592],{"class":867,"line":2586},39,[865,2588,2589],{"class":917},"                \"preventApplication\"",[865,2591,921],{"class":896},[865,2593,2594],{"class":875},"false\n",[865,2596,2598],{"class":867,"line":2597},40,[865,2599,2600],{"class":896},"              }\n",[865,2602,2604],{"class":867,"line":2603},41,[865,2605,2606],{"class":896},"            },\n",[865,2608,2610],{"class":867,"line":2609},42,[865,2611,2407],{"class":896},[865,2613,2615,2617,2619,2622],{"class":867,"line":2614},43,[865,2616,2412],{"class":917},[865,2618,921],{"class":896},[865,2620,2621],{"class":879},"\"64a1f0b2c9d8e7f60011889a\"",[865,2623,926],{"class":896},[865,2625,2627,2629,2631,2634],{"class":867,"line":2626},44,[865,2628,2423],{"class":917},[865,2630,921],{"class":896},[865,2632,2633],{"class":879},"\"German\"",[865,2635,926],{"class":896},[865,2637,2639,2641,2643,2646],{"class":867,"line":2638},45,[865,2640,2434],{"class":917},[865,2642,921],{"class":896},[865,2644,2645],{"class":879},"\"de\"",[865,2647,926],{"class":896},[865,2649,2651,2653,2655,2657],{"class":867,"line":2650},46,[865,2652,2445],{"class":917},[865,2654,921],{"class":896},[865,2656,1216],{"class":875},[865,2658,926],{"class":896},[865,2660,2662,2664],{"class":867,"line":2661},47,[865,2663,2456],{"class":917},[865,2665,1423],{"class":896},[865,2667,2669,2671,2673,2676],{"class":867,"line":2668},48,[865,2670,2463],{"class":917},[865,2672,921],{"class":896},[865,2674,2675],{"class":879},"\"66f1a2b3c4d5e6f708192a3c\"",[865,2677,926],{"class":896},[865,2679,2681,2683,2685,2687],{"class":867,"line":2680},49,[865,2682,2474],{"class":917},[865,2684,921],{"class":896},[865,2686,1433],{"class":879},[865,2688,926],{"class":896},[865,2690,2692,2694,2696,2698],{"class":867,"line":2691},50,[865,2693,2485],{"class":917},[865,2695,921],{"class":896},[865,2697,965],{"class":879},[865,2699,926],{"class":896},[865,2701,2703,2705,2707,2709],{"class":867,"line":2702},51,[865,2704,2496],{"class":917},[865,2706,921],{"class":896},[865,2708,2621],{"class":879},[865,2710,926],{"class":896},[865,2712,2714,2716,2718,2720,2722,2724],{"class":867,"line":2713},52,[865,2715,2507],{"class":917},[865,2717,1040],{"class":896},[865,2719,1616],{"class":879},[865,2721,436],{"class":896},[865,2723,1638],{"class":879},[865,2725,1046],{"class":896},[865,2727,2729,2731,2733,2736,2738,2741],{"class":867,"line":2728},53,[865,2730,2522],{"class":917},[865,2732,1040],{"class":896},[865,2734,2735],{"class":879},"\"5f8d0a1b2c3d4e5f6a7b8c9d\"",[865,2737,436],{"class":896},[865,2739,2740],{"class":879},"\"5f8d0a1b2c3d4e5f6a7b8c9e\"",[865,2742,1046],{"class":896},[865,2744,2746,2748,2750,2752],{"class":867,"line":2745},54,[865,2747,2529],{"class":917},[865,2749,921],{"class":896},[865,2751,1671],{"class":875},[865,2753,926],{"class":896},[865,2755,2757,2759,2761,2763],{"class":867,"line":2756},55,[865,2758,2541],{"class":917},[865,2760,921],{"class":896},[865,2762,1683],{"class":875},[865,2764,926],{"class":896},[865,2766,2768,2770,2772,2774],{"class":867,"line":2767},56,[865,2769,2553],{"class":917},[865,2771,921],{"class":896},[865,2773,1695],{"class":875},[865,2775,926],{"class":896},[865,2777,2779,2781,2783,2785],{"class":867,"line":2778},57,[865,2780,2565],{"class":917},[865,2782,921],{"class":896},[865,2784,1707],{"class":879},[865,2786,926],{"class":896},[865,2788,2790,2792,2794,2796],{"class":867,"line":2789},58,[865,2791,2577],{"class":917},[865,2793,921],{"class":896},[865,2795,1004],{"class":875},[865,2797,926],{"class":896},[865,2799,2801,2803,2805],{"class":867,"line":2800},59,[865,2802,2589],{"class":917},[865,2804,921],{"class":896},[865,2806,2594],{"class":875},[865,2808,2810],{"class":867,"line":2809},60,[865,2811,2600],{"class":896},[865,2813,2815],{"class":867,"line":2814},61,[865,2816,2817],{"class":896},"            }\n",[865,2819,2821],{"class":867,"line":2820},62,[865,2822,2823],{"class":896},"          ]\n",[865,2825,2827],{"class":867,"line":2826},63,[865,2828,2829],{"class":896},"        },\n",[865,2831,2833],{"class":867,"line":2832},64,[865,2834,2317],{"class":896},[865,2836,2838,2840,2842,2845],{"class":867,"line":2837},65,[865,2839,2322],{"class":917},[865,2841,921],{"class":896},[865,2843,2844],{"class":879},"\"66e0c1d2e3f4a5b6c7d8e9f7\"",[865,2846,926],{"class":896},[865,2848,2850,2852,2854,2857],{"class":867,"line":2849},66,[865,2851,2333],{"class":917},[865,2853,921],{"class":896},[865,2855,2856],{"class":879},"\"March 2027\"",[865,2858,926],{"class":896},[865,2860,2862,2864,2866,2869],{"class":867,"line":2861},67,[865,2863,2344],{"class":917},[865,2865,921],{"class":896},[865,2867,2868],{"class":879},"\"2027-03-20T09:00:00.000Z\"",[865,2870,926],{"class":896},[865,2872,2874,2876,2878,2880],{"class":867,"line":2873},68,[865,2875,2355],{"class":917},[865,2877,921],{"class":896},[865,2879,1469],{"class":879},[865,2881,926],{"class":896},[865,2883,2885,2887,2889,2891],{"class":867,"line":2884},69,[865,2886,2366],{"class":917},[865,2888,921],{"class":896},[865,2890,1481],{"class":879},[865,2892,926],{"class":896},[865,2894,2896,2898],{"class":867,"line":2895},70,[865,2897,2400],{"class":917},[865,2899,948],{"class":896},[865,2901,2903],{"class":867,"line":2902},71,[865,2904,2407],{"class":896},[865,2906,2908,2910,2912,2914],{"class":867,"line":2907},72,[865,2909,2412],{"class":917},[865,2911,921],{"class":896},[865,2913,1568],{"class":879},[865,2915,926],{"class":896},[865,2917,2919,2921,2923,2925],{"class":867,"line":2918},73,[865,2920,2423],{"class":917},[865,2922,921],{"class":896},[865,2924,1577],{"class":879},[865,2926,926],{"class":896},[865,2928,2930,2932,2934,2936],{"class":867,"line":2929},74,[865,2931,2434],{"class":917},[865,2933,921],{"class":896},[865,2935,1587],{"class":879},[865,2937,926],{"class":896},[865,2939,2941,2943,2945,2947],{"class":867,"line":2940},75,[865,2942,2445],{"class":917},[865,2944,921],{"class":896},[865,2946,1004],{"class":875},[865,2948,926],{"class":896},[865,2950,2952,2954],{"class":867,"line":2951},76,[865,2953,2456],{"class":917},[865,2955,1423],{"class":896},[865,2957,2959,2961,2963,2966],{"class":867,"line":2958},77,[865,2960,2463],{"class":917},[865,2962,921],{"class":896},[865,2964,2965],{"class":879},"\"66f1a2b3c4d5e6f708192a40\"",[865,2967,926],{"class":896},[865,2969,2971,2973,2975,2977],{"class":867,"line":2970},78,[865,2972,2474],{"class":917},[865,2974,921],{"class":896},[865,2976,2844],{"class":879},[865,2978,926],{"class":896},[865,2980,2982,2984,2986,2988],{"class":867,"line":2981},79,[865,2983,2485],{"class":917},[865,2985,921],{"class":896},[865,2987,965],{"class":879},[865,2989,926],{"class":896},[865,2991,2993,2995,2997,2999],{"class":867,"line":2992},80,[865,2994,2496],{"class":917},[865,2996,921],{"class":896},[865,2998,1568],{"class":879},[865,3000,926],{"class":896},[865,3002,3004,3006,3008,3010],{"class":867,"line":3003},81,[865,3005,2507],{"class":917},[865,3007,1040],{"class":896},[865,3009,1638],{"class":879},[865,3011,1046],{"class":896},[865,3013,3015,3017],{"class":867,"line":3014},82,[865,3016,2522],{"class":917},[865,3018,1146],{"class":896},[865,3020,3022,3024,3026,3029],{"class":867,"line":3021},83,[865,3023,2529],{"class":917},[865,3025,921],{"class":896},[865,3027,3028],{"class":875},"30",[865,3030,926],{"class":896},[865,3032,3034,3036,3038,3040],{"class":867,"line":3033},84,[865,3035,2541],{"class":917},[865,3037,921],{"class":896},[865,3039,1683],{"class":875},[865,3041,926],{"class":896},[865,3043,3045,3047,3049,3051],{"class":867,"line":3044},85,[865,3046,2553],{"class":917},[865,3048,921],{"class":896},[865,3050,1695],{"class":875},[865,3052,926],{"class":896},[865,3054,3056,3058,3060,3062],{"class":867,"line":3055},86,[865,3057,2565],{"class":917},[865,3059,921],{"class":896},[865,3061,1707],{"class":879},[865,3063,926],{"class":896},[865,3065,3067,3069,3071,3073],{"class":867,"line":3066},87,[865,3068,2577],{"class":917},[865,3070,921],{"class":896},[865,3072,1004],{"class":875},[865,3074,926],{"class":896},[865,3076,3078,3080,3082],{"class":867,"line":3077},88,[865,3079,2589],{"class":917},[865,3081,921],{"class":896},[865,3083,2594],{"class":875},[865,3085,3087],{"class":867,"line":3086},89,[865,3088,2600],{"class":896},[865,3090,3092],{"class":867,"line":3091},90,[865,3093,2817],{"class":896},[865,3095,3097],{"class":867,"line":3096},91,[865,3098,2823],{"class":896},[865,3100,3102],{"class":867,"line":3101},92,[865,3103,3104],{"class":896},"        }\n",[865,3106,3108],{"class":867,"line":3107},93,[865,3109,3110],{"class":896},"      ]\n",[865,3112,3114],{"class":867,"line":3113},94,[865,3115,1076],{"class":896},[865,3117,3119],{"class":867,"line":3118},95,[865,3120,954],{"class":896},[865,3122,3124,3126,3128,3131],{"class":867,"line":3123},96,[865,3125,960],{"class":917},[865,3127,921],{"class":896},[865,3129,3130],{"class":879},"\"64b7e1f0a1b2c3d4e5f60712\"",[865,3132,926],{"class":896},[865,3134,3136,3138,3140,3143],{"class":867,"line":3135},97,[865,3137,973],{"class":917},[865,3139,921],{"class":896},[865,3141,3142],{"class":879},"\"Mathematics\"",[865,3144,926],{"class":896},[865,3146,3148,3150,3152,3154],{"class":867,"line":3147},98,[865,3149,999],{"class":917},[865,3151,921],{"class":896},[865,3153,1216],{"class":875},[865,3155,926],{"class":896},[865,3157,3159,3161,3163,3165],{"class":867,"line":3158},99,[865,3160,1012],{"class":917},[865,3162,921],{"class":896},[865,3164,596],{"class":875},[865,3166,926],{"class":896},[865,3168,3170,3172],{"class":867,"line":3169},100,[865,3171,1037],{"class":917},[865,3173,1146],{"class":896},[865,3175,3177,3179],{"class":867,"line":3176},101,[865,3178,2310],{"class":917},[865,3180,948],{"class":896},[865,3182,3184],{"class":867,"line":3183},102,[865,3185,2317],{"class":896},[865,3187,3189,3191,3193,3195],{"class":867,"line":3188},103,[865,3190,2322],{"class":917},[865,3192,921],{"class":896},[865,3194,1433],{"class":879},[865,3196,926],{"class":896},[865,3198,3200,3202,3204,3206],{"class":867,"line":3199},104,[865,3201,2333],{"class":917},[865,3203,921],{"class":896},[865,3205,1445],{"class":879},[865,3207,926],{"class":896},[865,3209,3211,3213,3215,3217],{"class":867,"line":3210},105,[865,3212,2344],{"class":917},[865,3214,921],{"class":896},[865,3216,1457],{"class":879},[865,3218,926],{"class":896},[865,3220,3222,3224,3226,3228],{"class":867,"line":3221},106,[865,3223,2355],{"class":917},[865,3225,921],{"class":896},[865,3227,1469],{"class":879},[865,3229,926],{"class":896},[865,3231,3233,3235,3237,3239],{"class":867,"line":3232},107,[865,3234,2366],{"class":917},[865,3236,921],{"class":896},[865,3238,1481],{"class":879},[865,3240,926],{"class":896},[865,3242,3244,3246],{"class":867,"line":3243},108,[865,3245,2400],{"class":917},[865,3247,948],{"class":896},[865,3249,3251],{"class":867,"line":3250},109,[865,3252,2407],{"class":896},[865,3254,3256,3258,3260,3262],{"class":867,"line":3255},110,[865,3257,2412],{"class":917},[865,3259,921],{"class":896},[865,3261,1568],{"class":879},[865,3263,926],{"class":896},[865,3265,3267,3269,3271,3273],{"class":867,"line":3266},111,[865,3268,2423],{"class":917},[865,3270,921],{"class":896},[865,3272,1577],{"class":879},[865,3274,926],{"class":896},[865,3276,3278,3280,3282,3284],{"class":867,"line":3277},112,[865,3279,2434],{"class":917},[865,3281,921],{"class":896},[865,3283,1587],{"class":879},[865,3285,926],{"class":896},[865,3287,3289,3291,3293,3295],{"class":867,"line":3288},113,[865,3290,2445],{"class":917},[865,3292,921],{"class":896},[865,3294,1004],{"class":875},[865,3296,926],{"class":896},[865,3298,3300,3302],{"class":867,"line":3299},114,[865,3301,2456],{"class":917},[865,3303,1423],{"class":896},[865,3305,3307,3309,3311,3314],{"class":867,"line":3306},115,[865,3308,2463],{"class":917},[865,3310,921],{"class":896},[865,3312,3313],{"class":879},"\"66f1a2b3c4d5e6f708192a41\"",[865,3315,926],{"class":896},[865,3317,3319,3321,3323,3325],{"class":867,"line":3318},116,[865,3320,2474],{"class":917},[865,3322,921],{"class":896},[865,3324,1433],{"class":879},[865,3326,926],{"class":896},[865,3328,3330,3332,3334,3336],{"class":867,"line":3329},117,[865,3331,2485],{"class":917},[865,3333,921],{"class":896},[865,3335,3130],{"class":879},[865,3337,926],{"class":896},[865,3339,3341,3343,3345,3347],{"class":867,"line":3340},118,[865,3342,2496],{"class":917},[865,3344,921],{"class":896},[865,3346,1568],{"class":879},[865,3348,926],{"class":896},[865,3350,3352,3354,3356,3358],{"class":867,"line":3351},119,[865,3353,2507],{"class":917},[865,3355,1040],{"class":896},[865,3357,1616],{"class":879},[865,3359,1046],{"class":896},[865,3361,3363,3365],{"class":867,"line":3362},120,[865,3364,2522],{"class":917},[865,3366,1146],{"class":896},[865,3368,3370,3372,3374,3376],{"class":867,"line":3369},121,[865,3371,2541],{"class":917},[865,3373,921],{"class":896},[865,3375,1683],{"class":875},[865,3377,926],{"class":896},[865,3379,3381,3383,3385,3387],{"class":867,"line":3380},122,[865,3382,2553],{"class":917},[865,3384,921],{"class":896},[865,3386,1695],{"class":875},[865,3388,926],{"class":896},[865,3390,3392,3394,3396,3398],{"class":867,"line":3391},123,[865,3393,2565],{"class":917},[865,3395,921],{"class":896},[865,3397,1707],{"class":879},[865,3399,926],{"class":896},[865,3401,3403,3405,3407,3409],{"class":867,"line":3402},124,[865,3404,2577],{"class":917},[865,3406,921],{"class":896},[865,3408,1004],{"class":875},[865,3410,926],{"class":896},[865,3412,3414,3416,3418],{"class":867,"line":3413},125,[865,3415,2589],{"class":917},[865,3417,921],{"class":896},[865,3419,2594],{"class":875},[865,3421,3423],{"class":867,"line":3422},126,[865,3424,2600],{"class":896},[865,3426,3428],{"class":867,"line":3427},127,[865,3429,2817],{"class":896},[865,3431,3433],{"class":867,"line":3432},128,[865,3434,2823],{"class":896},[865,3436,3438],{"class":867,"line":3437},129,[865,3439,3104],{"class":896},[865,3441,3443],{"class":867,"line":3442},130,[865,3444,3110],{"class":896},[865,3446,3448],{"class":867,"line":3447},131,[865,3449,1174],{"class":896},[865,3451,3453],{"class":867,"line":3452},132,[865,3454,3455],{"class":896},"  ]\n",[865,3457,3459],{"class":867,"line":3458},133,[865,3460,1234],{"class":896},[358,3462,3463,3464,3466],{},"Reading it: the student can sit Science in November in English or German, or in March in English. They can also sit Mathematics in November in English, and that exam has no ",[379,3465,527],{},", so it is free. The November sitting appears twice, once under each category. The German Science exam is restricted to two countries, and the student's country is one of them. Otherwise it wouldn't be in the tree.",[1948,3468,3470],{"id":3469},"choosing-a-leaf","Choosing a leaf",[641,3472,3473,3476,3482],{},[644,3474,3475],{},"Choose a category, then a sitting under it, then a language under that sitting.",[644,3477,3478,3479,374],{},"Take that leaf's ",[379,3480,3481],{},"matchedExam._id",[644,3483,3484,3485,3488,3489,3492,3493,374],{},"Send it as ",[379,3486,3487],{},"examId",", with the same ",[379,3490,3491],{},"studentId",", to ",[371,3494,3495],{"href":238},[379,3496,3497],{},"POST \u002Fv1\u002F\u003CorganizationId>\u002Fapplication",[358,3499,3500],{},"Nothing needs to be looked up in between. If you show the choices as one flat list, flatten the tree like this:",[856,3502,3506],{"className":3503,"code":3504,"language":3505,"meta":861,"style":861},"language-js shiki shiki-themes github-light-high-contrast github-dark-high-contrast","const res = await fetch(\n  `https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F${organizationId}\u002Fexam\u002Favailable\u002F${studentId}`,\n  { headers: { Authorization: `Bearer ${await getToken()}` } },\n);\nconst { data: tree } = await res.json();\n\nconst options = [];\nfor (const category of tree) {\n  for (const session of category.sessions) {\n    for (const language of session.languages) {\n      options.push({\n        examId: language.matchedExam._id,\n        label: `${category.name} · ${session.date.slice(0, 10)} · ${language.name}`,\n        price: language.matchedExam.price ?? 0,\n      });\n    }\n  }\n}\n\u002F\u002F [{ examId: '66f1a2b3c4d5e6f708192a3b', label: 'Science · 2026-11-14 · English', price: 25 }, …]\n","js",[379,3507,3508,3529,3547,3569,3574,3605,3611,3623,3642,3659,3676,3687,3692,3746,3759,3764,3768,3773,3777],{"__ignoreMap":861},[865,3509,3510,3513,3516,3519,3522,3526],{"class":867,"line":868},[865,3511,3512],{"class":883},"const",[865,3514,3515],{"class":875}," res",[865,3517,3518],{"class":883}," =",[865,3520,3521],{"class":883}," await",[865,3523,3525],{"class":3524},"sKwhi"," fetch",[865,3527,3528],{"class":896},"(\n",[865,3530,3531,3534,3537,3540,3542,3545],{"class":867,"line":887},[865,3532,3533],{"class":879},"  `https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F${",[865,3535,3536],{"class":896},"organizationId",[865,3538,3539],{"class":879},"}\u002Fexam\u002Favailable\u002F${",[865,3541,3491],{"class":896},[865,3543,3544],{"class":879},"}`",[865,3546,926],{"class":896},[865,3548,3549,3552,3555,3558,3561,3564,3566],{"class":867,"line":929},[865,3550,3551],{"class":896},"  { headers: { Authorization: ",[865,3553,3554],{"class":879},"`Bearer ${",[865,3556,3557],{"class":883},"await",[865,3559,3560],{"class":3524}," getToken",[865,3562,3563],{"class":879},"()",[865,3565,3544],{"class":879},[865,3567,3568],{"class":896}," } },\n",[865,3570,3571],{"class":867,"line":942},[865,3572,3573],{"class":896},");\n",[865,3575,3576,3578,3581,3584,3586,3589,3592,3595,3597,3600,3602],{"class":867,"line":951},[865,3577,3512],{"class":883},[865,3579,3580],{"class":896}," { ",[865,3582,3583],{"class":871},"data",[865,3585,921],{"class":896},[865,3587,3588],{"class":875},"tree",[865,3590,3591],{"class":896}," } ",[865,3593,3594],{"class":883},"=",[865,3596,3521],{"class":883},[865,3598,3599],{"class":896}," res.",[865,3601,905],{"class":3524},[865,3603,3604],{"class":896},"();\n",[865,3606,3607],{"class":867,"line":957},[865,3608,3610],{"emptyLinePlaceholder":3609},true,"\n",[865,3612,3613,3615,3618,3620],{"class":867,"line":970},[865,3614,3512],{"class":883},[865,3616,3617],{"class":875}," options",[865,3619,3518],{"class":883},[865,3621,3622],{"class":896}," [];\n",[865,3624,3625,3628,3631,3633,3636,3639],{"class":867,"line":983},[865,3626,3627],{"class":883},"for",[865,3629,3630],{"class":896}," (",[865,3632,3512],{"class":883},[865,3634,3635],{"class":875}," category",[865,3637,3638],{"class":883}," of",[865,3640,3641],{"class":896}," tree) {\n",[865,3643,3644,3647,3649,3651,3654,3656],{"class":867,"line":996},[865,3645,3646],{"class":883},"  for",[865,3648,3630],{"class":896},[865,3650,3512],{"class":883},[865,3652,3653],{"class":875}," session",[865,3655,3638],{"class":883},[865,3657,3658],{"class":896}," category.sessions) {\n",[865,3660,3661,3664,3666,3668,3671,3673],{"class":867,"line":1009},[865,3662,3663],{"class":883},"    for",[865,3665,3630],{"class":896},[865,3667,3512],{"class":883},[865,3669,3670],{"class":875}," language",[865,3672,3638],{"class":883},[865,3674,3675],{"class":896}," session.languages) {\n",[865,3677,3678,3681,3684],{"class":867,"line":1021},[865,3679,3680],{"class":896},"      options.",[865,3682,3683],{"class":3524},"push",[865,3685,3686],{"class":896},"({\n",[865,3688,3689],{"class":867,"line":1034},[865,3690,3691],{"class":896},"        examId: language.matchedExam._id,\n",[865,3693,3694,3697,3700,3702,3704,3706,3709,3711,3713,3715,3717,3720,3723,3726,3728,3731,3734,3736,3738,3740,3742,3744],{"class":867,"line":1049},[865,3695,3696],{"class":896},"        label: ",[865,3698,3699],{"class":879},"`${",[865,3701,515],{"class":896},[865,3703,374],{"class":879},[865,3705,435],{"class":896},[865,3707,3708],{"class":879},"} · ${",[865,3710,512],{"class":896},[865,3712,374],{"class":879},[865,3714,461],{"class":896},[865,3716,374],{"class":879},[865,3718,3719],{"class":3524},"slice",[865,3721,3722],{"class":879},"(",[865,3724,3725],{"class":875},"0",[865,3727,436],{"class":879},[865,3729,3730],{"class":875},"10",[865,3732,3733],{"class":879},")",[865,3735,3708],{"class":879},[865,3737,518],{"class":896},[865,3739,374],{"class":879},[865,3741,435],{"class":896},[865,3743,3544],{"class":879},[865,3745,926],{"class":896},[865,3747,3748,3751,3754,3757],{"class":867,"line":1062},[865,3749,3750],{"class":896},"        price: language.matchedExam.price ",[865,3752,3753],{"class":883},"??",[865,3755,3756],{"class":875}," 0",[865,3758,926],{"class":896},[865,3760,3761],{"class":867,"line":1073},[865,3762,3763],{"class":896},"      });\n",[865,3765,3766],{"class":867,"line":1079},[865,3767,1174],{"class":896},[865,3769,3770],{"class":867,"line":1084},[865,3771,3772],{"class":896},"  }\n",[865,3774,3775],{"class":867,"line":1095},[865,3776,1234],{"class":896},[865,3778,3779],{"class":867,"line":1107},[865,3780,3782],{"class":3781},"sLBg1","\u002F\u002F [{ examId: '66f1a2b3c4d5e6f708192a3b', label: 'Science · 2026-11-14 · English', price: 25 }, …]\n",[856,3784,3788],{"className":3785,"code":3786,"language":3787,"meta":861,"style":861},"language-php shiki shiki-themes github-light-high-contrast github-dark-high-contrast","\u003C?php\n$ch = curl_init(\"https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F{$organizationId}\u002Fexam\u002Favailable\u002F{$studentId}\");\ncurl_setopt_array($ch, [\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getToken()],\n]);\n$tree = json_decode(curl_exec($ch), true)['data'];\ncurl_close($ch);\n\n$options = [];\nforeach ($tree as $category) {\n    foreach ($category['sessions'] as $session) {\n        foreach ($session['languages'] as $language) {\n            $options[] = [\n                'examId' => $language['matchedExam']['_id'],\n                'label'  => sprintf('%s · %s · %s', $category['name'], substr($session['date'], 0, 10), $language['name']),\n                'price'  => $language['matchedExam']['price'] ?? 0,\n            ];\n        }\n    }\n}\n","php",[379,3789,3790,3798,3827,3835,3848,3869,3874,3903,3911,3915,3924,3938,3957,3975,3985,4006,4056,4080,4085,4089,4093],{"__ignoreMap":861},[865,3791,3792,3795],{"class":867,"line":868},[865,3793,3794],{"class":883},"\u003C?",[865,3796,3797],{"class":875},"php\n",[865,3799,3800,3803,3805,3808,3810,3813,3816,3819,3822,3825],{"class":867,"line":887},[865,3801,3802],{"class":896},"$ch ",[865,3804,3594],{"class":883},[865,3806,3807],{"class":875}," curl_init",[865,3809,3722],{"class":896},[865,3811,3812],{"class":879},"\"https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F{",[865,3814,3815],{"class":896},"$organizationId",[865,3817,3818],{"class":879},"}\u002Fexam\u002Favailable\u002F{",[865,3820,3821],{"class":896},"$studentId",[865,3823,3824],{"class":879},"}\"",[865,3826,3573],{"class":896},[865,3828,3829,3832],{"class":867,"line":929},[865,3830,3831],{"class":875},"curl_setopt_array",[865,3833,3834],{"class":896},"($ch, [\n",[865,3836,3837,3840,3843,3846],{"class":867,"line":942},[865,3838,3839],{"class":875},"    CURLOPT_RETURNTRANSFER",[865,3841,3842],{"class":883}," =>",[865,3844,3845],{"class":875}," true",[865,3847,926],{"class":896},[865,3849,3850,3853,3855,3858,3861,3864,3866],{"class":867,"line":951},[865,3851,3852],{"class":875},"    CURLOPT_HTTPHEADER",[865,3854,3842],{"class":883},[865,3856,3857],{"class":896}," [",[865,3859,3860],{"class":879},"'Authorization: Bearer '",[865,3862,3863],{"class":883}," .",[865,3865,3560],{"class":3524},[865,3867,3868],{"class":896},"()],\n",[865,3870,3871],{"class":867,"line":957},[865,3872,3873],{"class":896},"]);\n",[865,3875,3876,3879,3881,3884,3886,3889,3892,3894,3897,3900],{"class":867,"line":970},[865,3877,3878],{"class":896},"$tree ",[865,3880,3594],{"class":883},[865,3882,3883],{"class":875}," json_decode",[865,3885,3722],{"class":896},[865,3887,3888],{"class":875},"curl_exec",[865,3890,3891],{"class":896},"($ch), ",[865,3893,596],{"class":875},[865,3895,3896],{"class":896},")[",[865,3898,3899],{"class":879},"'data'",[865,3901,3902],{"class":896},"];\n",[865,3904,3905,3908],{"class":867,"line":983},[865,3906,3907],{"class":875},"curl_close",[865,3909,3910],{"class":896},"($ch);\n",[865,3912,3913],{"class":867,"line":996},[865,3914,3610],{"emptyLinePlaceholder":3609},[865,3916,3917,3920,3922],{"class":867,"line":1009},[865,3918,3919],{"class":896},"$options ",[865,3921,3594],{"class":883},[865,3923,3622],{"class":896},[865,3925,3926,3929,3932,3935],{"class":867,"line":1021},[865,3927,3928],{"class":883},"foreach",[865,3930,3931],{"class":896}," ($tree ",[865,3933,3934],{"class":883},"as",[865,3936,3937],{"class":896}," $category) {\n",[865,3939,3940,3943,3946,3949,3952,3954],{"class":867,"line":1034},[865,3941,3942],{"class":883},"    foreach",[865,3944,3945],{"class":896}," ($category[",[865,3947,3948],{"class":879},"'sessions'",[865,3950,3951],{"class":896},"] ",[865,3953,3934],{"class":883},[865,3955,3956],{"class":896}," $session) {\n",[865,3958,3959,3962,3965,3968,3970,3972],{"class":867,"line":1049},[865,3960,3961],{"class":883},"        foreach",[865,3963,3964],{"class":896}," ($session[",[865,3966,3967],{"class":879},"'languages'",[865,3969,3951],{"class":896},[865,3971,3934],{"class":883},[865,3973,3974],{"class":896}," $language) {\n",[865,3976,3977,3980,3982],{"class":867,"line":1062},[865,3978,3979],{"class":896},"            $options[] ",[865,3981,3594],{"class":883},[865,3983,3984],{"class":896}," [\n",[865,3986,3987,3990,3992,3995,3998,4001,4004],{"class":867,"line":1073},[865,3988,3989],{"class":879},"                'examId'",[865,3991,3842],{"class":883},[865,3993,3994],{"class":896}," $language[",[865,3996,3997],{"class":879},"'matchedExam'",[865,3999,4000],{"class":896},"][",[865,4002,4003],{"class":879},"'_id'",[865,4005,1046],{"class":896},[865,4007,4008,4011,4014,4017,4019,4022,4025,4028,4031,4034,4037,4040,4042,4044,4046,4048,4051,4053],{"class":867,"line":1079},[865,4009,4010],{"class":879},"                'label'",[865,4012,4013],{"class":883},"  =>",[865,4015,4016],{"class":875}," sprintf",[865,4018,3722],{"class":896},[865,4020,4021],{"class":879},"'%s · %s · %s'",[865,4023,4024],{"class":896},", $category[",[865,4026,4027],{"class":879},"'name'",[865,4029,4030],{"class":896},"], ",[865,4032,4033],{"class":875},"substr",[865,4035,4036],{"class":896},"($session[",[865,4038,4039],{"class":879},"'date'",[865,4041,4030],{"class":896},[865,4043,3725],{"class":875},[865,4045,436],{"class":896},[865,4047,3730],{"class":875},[865,4049,4050],{"class":896},"), $language[",[865,4052,4027],{"class":879},[865,4054,4055],{"class":896},"]),\n",[865,4057,4058,4061,4063,4065,4067,4069,4072,4074,4076,4078],{"class":867,"line":1084},[865,4059,4060],{"class":879},"                'price'",[865,4062,4013],{"class":883},[865,4064,3994],{"class":896},[865,4066,3997],{"class":879},[865,4068,4000],{"class":896},[865,4070,4071],{"class":879},"'price'",[865,4073,3951],{"class":896},[865,4075,3753],{"class":883},[865,4077,3756],{"class":875},[865,4079,926],{"class":896},[865,4081,4082],{"class":867,"line":1095},[865,4083,4084],{"class":896},"            ];\n",[865,4086,4087],{"class":867,"line":1107},[865,4088,3104],{"class":896},[865,4090,4091],{"class":867,"line":1119},[865,4092,1174],{"class":896},[865,4094,4095],{"class":867,"line":1130},[865,4096,1234],{"class":896},[358,4098,4099],{},"Fetch the tree right before you offer choices, and don't cache it for long. It changes as sittings pass and as the student's applications change.",[394,4101,4103],{"id":4102},"when-to-use-which-exam-list","When to use which exam list",[399,4105,4106,4116],{},[402,4107,4108],{},[405,4109,4110,4113],{},[408,4111,4112],{},"You want to…",[408,4114,4115],{},"Use",[418,4117,4118,4128,4137,4146,4161],{},[405,4119,4120,4123],{},[423,4121,4122],{},"Choose an exam for one student",[423,4124,4125],{},[371,4126,4127],{"href":226},"The picker",[405,4129,4130,4133],{},[423,4131,4132],{},"Show everything the organization currently has open",[423,4134,4135],{},[371,4136,772],{"href":217},[405,4138,4139,4142],{},[423,4140,4141],{},"Show one exam you already have the id of",[423,4143,4144],{},[371,4145,810],{"href":229},[405,4147,4148,4151],{},[423,4149,4150],{},"Look up an exam an application points to, even a past one",[423,4152,4153,4154,4157,4158,374],{},"The application itself: its ",[379,4155,4156],{},"exam"," comes back as a document. See ",[371,4159,86],{"href":4160},"\u002Fapi\u002Fguides\u002Fapplications#read-applications",[405,4162,4163,4166],{},[423,4164,4165],{},"Show category names and their order",[423,4167,4168],{},[371,4169,733],{"href":220},[394,4171,4173],{"id":4172},"caching","Caching",[399,4175,4176,4186],{},[402,4177,4178],{},[405,4179,4180,4183],{},[408,4181,4182],{},"Data",[408,4184,4185],{},"How long it stays useful",[418,4187,4188,4195,4203],{},[405,4189,4190,4192],{},[423,4191,842],{},[423,4193,4194],{},"Changes rarely. Caching for a day is reasonable.",[405,4196,4197,4200],{},[423,4198,4199],{},"Open exams",[423,4201,4202],{},"Changes as sittings pass and as the organization opens or closes exams. Refresh at least hourly.",[405,4204,4205,4207],{},[423,4206,4127],{},[423,4208,4209],{},"Changes with time and with the student's own applications. Fetch it every time you offer choices.",[358,4211,4212,4213,374],{},"Every call counts against the rate limit of its route: 100 requests per 60 seconds per API account. See ",[371,4214,45],{"href":46},[394,4216,4218],{"id":4217},"related","Related",[1308,4220,4221,4226,4231,4236,4240],{},[644,4222,4223,4225],{},[371,4224,86],{"href":87},": create, move and delete",[644,4227,4228,4230],{},[371,4229,62],{"href":63},": setting a student's grade and country",[644,4232,4233,4235],{},[371,4234,74],{"href":75},": grades and countries",[644,4237,4238],{},[371,4239,106],{"href":107},[644,4241,4242,4243,436,4249],{},"Error codes: ",[371,4244,4246],{"href":4245},"\u002Fapi\u002Ferrors#bad_request",[379,4247,4248],{},"bad_request",[371,4250,4252],{"href":4251},"\u002Fapi\u002Ferrors#not_found",[379,4253,4254],{},"not_found",[4256,4257,4258],"style",{},"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 .sne4z, html code.shiki .sne4z{--shiki-default:#024C1A;--shiki-dark:#72F088}html pre.shiki code .sKwhi, html code.shiki .sKwhi{--shiki-default:#622CBC;--shiki-dark:#DBB7FF}html pre.shiki code .sLBg1, html code.shiki .sLBg1{--shiki-default:#66707B;--shiki-dark:#BDC4CC}",{"title":861,"searchDepth":887,"depth":929,"links":4260},[4261,4262,4263,4264,4265,4266,4267,4274,4275,4276],{"id":396,"depth":887,"text":397},{"id":632,"depth":887,"text":633},{"id":705,"depth":887,"text":706},{"id":841,"depth":887,"text":842},{"id":1330,"depth":887,"text":772},{"id":1851,"depth":887,"text":1852},{"id":1927,"depth":887,"text":1928,"children":4268},[4269,4270,4271,4272,4273],{"id":1950,"depth":929,"text":1951},{"id":2035,"depth":929,"text":2036},{"id":2096,"depth":929,"text":2097},{"id":2178,"depth":929,"text":2179},{"id":3469,"depth":929,"text":3470},{"id":4102,"depth":887,"text":4103},{"id":4172,"depth":887,"text":4173},{"id":4217,"depth":887,"text":4218},"What makes an exam open, how categories, sittings and languages fit together, and how to choose an exam for one student from the picker tree.","md",{},[4281,4282,4283,4284,4285],"listExamCategories","getExamCategory","listExams","listAvailableExams","getExam","70",{"title":353,"description":4277},"api\u002Fguides\u002Fexams","TN_OYeex3HmGH9hILbWT_Q8U7ChLCWLK1RDjo-mAjnc",[4291,4296,4299,4303,4306],{"operationId":4281,"slug":4292,"method":133,"path":4293,"tag":83,"summary":219,"deprecated":134,"public":134,"permission":4294,"scope":4295,"order":1161},"list-exam-categories","\u002Fv1\u002F{organizationId}\u002Fexam-category","exam-category\u002Fread:$org:$ID","organization",{"operationId":4282,"slug":4297,"method":133,"path":4298,"tag":83,"summary":222,"deprecated":134,"public":134,"permission":4294,"scope":4295,"order":1171},"get-exam-category","\u002Fv1\u002F{organizationId}\u002Fexam-category\u002F{categoryId}",{"operationId":4283,"slug":4300,"method":133,"path":4301,"tag":83,"summary":216,"deprecated":134,"public":134,"permission":4302,"scope":4295,"order":1149},"list-exams","\u002Fv1\u002F{organizationId}\u002Fexam","exam\u002Fread:$org:$ID",{"operationId":4284,"slug":4304,"method":133,"path":4305,"tag":83,"summary":225,"deprecated":134,"public":134,"permission":4302,"scope":4295,"order":1177},"list-available-exams","\u002Fv1\u002F{organizationId}\u002Fexam\u002Favailable\u002F{studentId}",{"operationId":4285,"slug":4307,"method":133,"path":4308,"tag":83,"summary":228,"deprecated":134,"public":134,"permission":4302,"scope":4295,"order":1183},"get-exam","\u002Fv1\u002F{organizationId}\u002Fexam\u002F{examId}",1791554615176]