[{"data":1,"prerenderedAt":3809},["ShallowReactive",2],{"api-nav":3,"api-guide:\u002Fapi\u002Fguides\u002Fapplications":351,"api-spec:guide:\u002Fapi\u002Fguides\u002Fapplications":3785},[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":86,"body":353,"description":3770,"extension":3771,"meta":3772,"navTitle":86,"navigation":1549,"operations":3773,"order":3781,"path":87,"section":58,"seo":3782,"status":14,"stem":3783,"__hash__":3784},"apiGuides\u002Fapi\u002Fguides\u002Fapplications.md",{"type":354,"value":355,"toc":3747},"minimark",[356,369,378,383,523,533,537,600,603,607,671,689,762,945,948,990,995,998,1221,1228,1237,1240,1260,1264,1284,1308,1312,1315,1363,1366,1381,1385,1676,2033,2037,2044,2107,2132,2214,2229,2232,2240,2257,2305,2425,2432,2435,2630,2636,2639,2646,2665,2669,2672,2680,2683,2688,2771,2774,2782,2793,2797,2800,2894,2923,2940,2967,3377,3401,3405,3442,3456,3471,3475,3533,3543,3547,3702,3715,3719,3743],[357,358,359,360,364,365,368],"p",{},"An ",[361,362,363],"strong",{},"application"," enters one student for one exam in one organization. It lives in that organization and always has a ",[361,366,367],{},"payment"," record attached. This page covers creating, moving, deleting and reading applications, with every rule the API enforces, in the order it enforces them.",[357,370,371,372,377],{},"Choose the exam first, from the ",[373,374,376],"a",{"href":375},"\u002Fapi\u002Fguides\u002Fexams#the-per-student-picker","exam picker",". Every rule on this page that concerns the exam is the picker's rule, so a leaf from the picker is accepted.",[379,380,382],"h2",{"id":381},"operations","Operations",[384,385,386,402],"table",{},[387,388,389],"thead",{},[390,391,392,396,399],"tr",{},[393,394,395],"th",{},"Operation",[393,397,398],{},"Request",[393,400,401],{},"Permission",[403,404,405,424,441,458,475,491,507],"tbody",{},[390,406,407,413,419],{},[408,409,410],"td",{},[373,411,412],{"href":238},"Create an application",[408,414,415],{},[416,417,418],"code",{},"POST \u002Fv1\u002F\u003CorganizationId>\u002Fapplication",[408,420,421],{},[416,422,423],{},"application\u002Fcreate",[390,425,426,431,436],{},[408,427,428],{},[373,429,430],{"href":250},"Move an application",[408,432,433],{},[416,434,435],{},"PUT \u002Fv1\u002F\u003CorganizationId>\u002Fapplication\u002F\u003CapplicationId>",[408,437,438],{},[416,439,440],{},"application\u002Fupdate",[390,442,443,448,453],{},[408,444,445],{},[373,446,447],{"href":253},"Delete an application",[408,449,450],{},[416,451,452],{},"DELETE \u002Fv1\u002F\u003CorganizationId>\u002Fapplication\u002F\u003CapplicationId>",[408,454,455],{},[416,456,457],{},"application\u002Fdelete",[390,459,460,465,470],{},[408,461,462],{},[373,463,464],{"href":235},"List applications",[408,466,467],{},[416,468,469],{},"GET \u002Fv1\u002F\u003CorganizationId>\u002Fapplication",[408,471,472],{},[416,473,474],{},"application\u002Fread",[390,476,477,482,487],{},[408,478,479],{},[373,480,481],{"href":241},"List applications for an exam",[408,483,484],{},[416,485,486],{},"GET \u002Fv1\u002F\u003CorganizationId>\u002Fapplication\u002Fexam-applications\u002F\u003CexamId>",[408,488,489],{},[416,490,474],{},[390,492,493,498,503],{},[408,494,495],{},[373,496,497],{"href":244},"List a student's applications",[408,499,500],{},[416,501,502],{},"GET \u002Fv1\u002F\u003CorganizationId>\u002Fapplication\u002Fstudent-applications\u002F\u003CstudentId>",[408,504,505],{},[416,506,474],{},[390,508,509,514,519],{},[408,510,511],{},[373,512,513],{"href":247},"Get an application",[408,515,516],{},[416,517,518],{},"GET \u002Fv1\u002F\u003CorganizationId>\u002Fapplication\u002F\u003CapplicationId>",[408,520,521],{},[416,522,474],{},[357,524,525,526,529,530,532],{},"Every permission's target is the organization in the path, or ",[416,527,528],{},"*",". Each operation is its own permission, so your operator can grant an account creation without deletion. See ",[373,531,25],{"href":26},".",[379,534,536],{"id":535},"before-you-create-one","Before you create one",[384,538,539,549],{},[387,540,541],{},[390,542,543,546],{},[393,544,545],{},"Requirement",[393,547,548],{},"If it isn't met",[403,550,551,565,580,590],{},[390,552,553,556],{},[408,554,555],{},"The student is yours",[408,557,558,561,562],{},[416,559,560],{},"404 not_found",", ",[416,563,564],{},"Student not found!",[390,566,567,570],{},[408,568,569],{},"The student has signed in to this organization at least once, which creates the organization's copy of them",[408,571,572,575,576,579],{},[416,573,574],{},"409 conflict",". Send them a ",[373,577,578],{"href":81},"sign-in link"," first.",[390,581,582,585],{},[408,583,584],{},"The student has a grade",[408,586,587],{},[416,588,589],{},"400 bad_request",[390,591,592,595],{},[408,593,594],{},"The exam is one the picker offers this student",[408,596,597,599],{},[416,598,574],{},", naming the rule that failed",[379,601,412],{"id":602},"create-an-application",[357,604,605],{},[416,606,418],{},[384,608,609,625],{},[387,610,611],{},[390,612,613,616,619,622],{},[393,614,615],{},"Field",[393,617,618],{},"Type",[393,620,621],{},"Required",[393,623,624],{},"Rules",[403,626,627,647],{},[390,628,629,634,637,640],{},[408,630,631],{},[416,632,633],{},"studentId",[408,635,636],{},"string",[408,638,639],{},"yes",[408,641,642,643,646],{},"The student's core id: the ",[416,644,645],{},"_id"," that registration returned. 24 hexadecimal characters.",[390,648,649,654,656,658],{},[408,650,651],{},[416,652,653],{},"examId",[408,655,636],{},[408,657,639],{},[408,659,660,661,663,664,667,668,670],{},"The exam's ",[416,662,645],{}," in this organization: a picker leaf's ",[416,665,666],{},"matchedExam._id",", or an ",[416,669,645],{}," from the exam list. 24 hexadecimal characters.",[357,672,673,674,677,678,681,682,684,685,688],{},"Nothing else is accepted. Any other field, such as ",[416,675,676],{},"price"," or ",[416,679,680],{},"participated",", is refused with ",[416,683,589],{}," (",[416,686,687],{},"property \u003Cname> should not exist",").",[690,691,696],"pre",{"className":692,"code":693,"language":694,"meta":695,"style":695},"language-bash shiki shiki-themes github-light-high-contrast github-dark-high-contrast","curl -s -X POST \"https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fapplication\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"studentId\": \"652f1c9b8e4b2a0012a3c4d5\", \"examId\": \"66f1a2b3c4d5e6f708192a3b\" }'\n","bash","",[416,697,698,725,743,753],{"__ignoreMap":695},[699,700,703,707,711,714,718,721],"span",{"class":701,"line":702},"line",1,[699,704,706],{"class":705},"soyes","curl",[699,708,710],{"class":709},"s-5SL"," -s",[699,712,713],{"class":709}," -X",[699,715,717],{"class":716},"sT6z2"," POST",[699,719,720],{"class":716}," \"https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fapplication\"",[699,722,724],{"class":723},"sHUrx"," \\\n",[699,726,728,731,734,738,741],{"class":701,"line":727},2,[699,729,730],{"class":709},"  -H",[699,732,733],{"class":716}," \"Authorization: Bearer ",[699,735,737],{"class":736},"suds8","$TOKEN",[699,739,740],{"class":716},"\"",[699,742,724],{"class":723},[699,744,746,748,751],{"class":701,"line":745},3,[699,747,730],{"class":709},[699,749,750],{"class":716}," \"Content-Type: application\u002Fjson\"",[699,752,724],{"class":723},[699,754,756,759],{"class":701,"line":755},4,[699,757,758],{"class":709},"  -d",[699,760,761],{"class":716}," '{ \"studentId\": \"652f1c9b8e4b2a0012a3c4d5\", \"examId\": \"66f1a2b3c4d5e6f708192a3b\" }'\n",[690,763,767],{"className":764,"code":765,"language":766,"meta":695,"style":695},"language-json shiki shiki-themes github-light-high-contrast github-dark-high-contrast","{\n  \"success\": true,\n  \"message\": \"Application created successfully.\",\n  \"data\": {\n    \"_id\": \"6703d4e5f6a7b8c9d0e1f203\",\n    \"exam\": \"66f1a2b3c4d5e6f708192a3b\",\n    \"user\": \"66fa0b1c2d3e4f5a6b7c8d9e\",\n    \"payment\": \"6703d4e5f6a7b8c9d0e1f204\",\n    \"participated\": false,\n    \"partners\": [],\n    \"carriedPoints\": 0,\n    \"uuid\": \"3fa-9c0-1be\",\n    \"createdAt\": \"2026-09-15T10:42:07.512Z\",\n    \"updatedAt\": \"2026-09-15T10:42:07.512Z\"\n  }\n}\n","json",[416,768,769,774,789,801,809,822,835,848,861,874,883,896,909,922,933,939],{"__ignoreMap":695},[699,770,771],{"class":701,"line":702},[699,772,773],{"class":736},"{\n",[699,775,776,780,783,786],{"class":701,"line":727},[699,777,779],{"class":778},"sne4z","  \"success\"",[699,781,782],{"class":736},": ",[699,784,785],{"class":709},"true",[699,787,788],{"class":736},",\n",[699,790,791,794,796,799],{"class":701,"line":745},[699,792,793],{"class":778},"  \"message\"",[699,795,782],{"class":736},[699,797,798],{"class":716},"\"Application created successfully.\"",[699,800,788],{"class":736},[699,802,803,806],{"class":701,"line":755},[699,804,805],{"class":778},"  \"data\"",[699,807,808],{"class":736},": {\n",[699,810,812,815,817,820],{"class":701,"line":811},5,[699,813,814],{"class":778},"    \"_id\"",[699,816,782],{"class":736},[699,818,819],{"class":716},"\"6703d4e5f6a7b8c9d0e1f203\"",[699,821,788],{"class":736},[699,823,825,828,830,833],{"class":701,"line":824},6,[699,826,827],{"class":778},"    \"exam\"",[699,829,782],{"class":736},[699,831,832],{"class":716},"\"66f1a2b3c4d5e6f708192a3b\"",[699,834,788],{"class":736},[699,836,838,841,843,846],{"class":701,"line":837},7,[699,839,840],{"class":778},"    \"user\"",[699,842,782],{"class":736},[699,844,845],{"class":716},"\"66fa0b1c2d3e4f5a6b7c8d9e\"",[699,847,788],{"class":736},[699,849,851,854,856,859],{"class":701,"line":850},8,[699,852,853],{"class":778},"    \"payment\"",[699,855,782],{"class":736},[699,857,858],{"class":716},"\"6703d4e5f6a7b8c9d0e1f204\"",[699,860,788],{"class":736},[699,862,864,867,869,872],{"class":701,"line":863},9,[699,865,866],{"class":778},"    \"participated\"",[699,868,782],{"class":736},[699,870,871],{"class":709},"false",[699,873,788],{"class":736},[699,875,877,880],{"class":701,"line":876},10,[699,878,879],{"class":778},"    \"partners\"",[699,881,882],{"class":736},": [],\n",[699,884,886,889,891,894],{"class":701,"line":885},11,[699,887,888],{"class":778},"    \"carriedPoints\"",[699,890,782],{"class":736},[699,892,893],{"class":709},"0",[699,895,788],{"class":736},[699,897,899,902,904,907],{"class":701,"line":898},12,[699,900,901],{"class":778},"    \"uuid\"",[699,903,782],{"class":736},[699,905,906],{"class":716},"\"3fa-9c0-1be\"",[699,908,788],{"class":736},[699,910,912,915,917,920],{"class":701,"line":911},13,[699,913,914],{"class":778},"    \"createdAt\"",[699,916,782],{"class":736},[699,918,919],{"class":716},"\"2026-09-15T10:42:07.512Z\"",[699,921,788],{"class":736},[699,923,925,928,930],{"class":701,"line":924},14,[699,926,927],{"class":778},"    \"updatedAt\"",[699,929,782],{"class":736},[699,931,932],{"class":716},"\"2026-09-15T10:42:07.512Z\"\n",[699,934,936],{"class":701,"line":935},15,[699,937,938],{"class":736},"  }\n",[699,940,942],{"class":701,"line":941},16,[699,943,944],{"class":736},"}\n",[357,946,947],{},"The examples on this page are trimmed: applications and payments come back with every stored field, so expect more than shown and ignore what you don't use.",[357,949,950,951,956,957,561,960,963,964,966,967,969,970,973,974,976,977,979,980,982,983,985,986,989],{},"A new application answers ",[361,952,953],{},[416,954,955],{},"201",". In this response ",[416,958,959],{},"exam",[416,961,962],{},"user"," and ",[416,965,367],{}," are ids. ",[416,968,962],{}," is the ",[361,971,972],{},"organization's"," id for the student, not the ",[416,975,633],{}," you sent. Every organization keeps its own copy of a student under its own ",[416,978,645],{}," (see ",[373,981,36],{"href":37},"). Match applications to your records by the ",[416,984,633],{}," you sent, or by ",[416,987,988],{},"user.mainId"," when you read them back.",[991,992,994],"h3",{"id":993},"what-is-checked-in-order","What is checked, in order",[357,996,997],{},"The first check that fails decides the answer.",[384,999,1000,1013],{},[387,1001,1002],{},[390,1003,1004,1007,1010],{},[393,1005,1006],{},"#",[393,1008,1009],{},"Check",[393,1011,1012],{},"Refusal",[403,1014,1015,1049,1062,1077,1092,1107,1121,1141,1156,1171,1191,1206],{},[390,1016,1017,1020,1023],{},[408,1018,1019],{},"1",[408,1021,1022],{},"Token, organization, permission, rate limit and body, as on every route",[408,1024,1025,561,1028,684,1031,1034,1035,561,1038,561,1041,1044,1045,1048],{},[416,1026,1027],{},"401",[416,1029,1030],{},"404",[416,1032,1033],{},"Organization not found!","), ",[416,1036,1037],{},"403",[416,1039,1040],{},"429",[416,1042,1043],{},"400"," (for example ",[416,1046,1047],{},"examId must be a mongodb id",")",[390,1050,1051,1054,1056],{},[408,1052,1053],{},"2",[408,1055,555],{},[408,1057,1058,561,1060],{},[416,1059,560],{},[416,1061,564],{},[390,1063,1064,1067,1070],{},[408,1065,1066],{},"3",[408,1068,1069],{},"The organization holds a copy of the student",[408,1071,1072,561,1074],{},[416,1073,574],{},[416,1075,1076],{},"Student has never signed in to stem, so stem holds no record for them. Generate a sign-in link first with POST \u002F:organizationId\u002Fauth\u002Fsignin.",[390,1078,1079,1082,1085],{},[408,1080,1081],{},"4",[408,1083,1084],{},"The exam exists in this organization",[408,1086,1087,561,1089],{},[416,1088,560],{},[416,1090,1091],{},"Exam not found!",[390,1093,1094,1097,1100],{},[408,1095,1096],{},"5",[408,1098,1099],{},"The exam is open",[408,1101,1102,561,1104],{},[416,1103,574],{},[416,1105,1106],{},"Exam is not open for application. Only exams returned by GET \u002F:organizationId\u002Fexam can be applied to.",[390,1108,1109,1112,1114],{},[408,1110,1111],{},"6",[408,1113,584],{},[408,1115,1116,561,1118],{},[416,1117,589],{},[416,1119,1120],{},"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 applying.",[390,1122,1123,1126,1129],{},[408,1124,1125],{},"7",[408,1127,1128],{},"The student's grade is one the exam accepts",[408,1130,1131,1133,1134,1137,1138],{},[416,1132,574],{},", for example ",[416,1135,1136],{},"Exam is not available for grade 8. It accepts grade 9, 10."," An exam with no grades at all ends in ",[416,1139,1140],{},"It accepts no grades.",[390,1142,1143,1146,1149],{},[408,1144,1145],{},"8",[408,1147,1148],{},"The exam is available in the student's country",[408,1150,1151,1133,1153],{},[416,1152,574],{},[416,1154,1155],{},"Exam is not available in this student’s country. It is offered in GERMANY, AUSTRIA.",[390,1157,1158,1161,1164],{},[408,1159,1160],{},"9",[408,1162,1163],{},"The exam has a language",[408,1165,1166,561,1168],{},[416,1167,574],{},[416,1169,1170],{},"Exam has no language set, so it is not offered to students and cannot be applied to.",[390,1172,1173,1176,1181],{},[408,1174,1175],{},"10",[408,1177,1178],{},[361,1179,1180],{},"The student already has this exact exam",[408,1182,1183,1184,561,1187,1190],{},"not a refusal: ",[416,1185,1186],{},"200",[416,1188,1189],{},"Application already exists.",", with the existing application",[390,1192,1193,1196,1199],{},[408,1194,1195],{},"11",[408,1197,1198],{},"The student has no other exam in the same category on the same sitting",[408,1200,1201,1133,1203],{},[416,1202,574],{},[416,1204,1205],{},"Student already has an application for Science on this sitting. Two exams in one category on one date cannot both be sat.",[390,1207,1208,1211,1214],{},[408,1209,1210],{},"12",[408,1212,1213],{},"All checks passed",[408,1215,1216,561,1218],{},[416,1217,955],{},[416,1219,1220],{},"Application created successfully.",[357,1222,1223,1224,1227],{},"Country names in these messages are upper case, as the platform stores them. Check 8 compares the student's country ",[361,1225,1226],{},"by name"," with the countries the organization knows. If the student has no country, or the organization has no country of that name, only exams open to every country pass.",[357,1229,1230,1231,782,1233,1236],{},"If checks 5 to 9 ever disagree with the picker, the answer is a general ",[416,1232,574],{},[416,1234,1235],{},"Exam is not available to this student. Only exams returned by GET \u002F:organizationId\u002Fexam\u002Favailable\u002F:studentId can be applied to."," You should never see it.",[357,1238,1239],{},"Why the rules exist:",[1241,1242,1243,1250],"ul",{},[1244,1245,1246,1249],"li",{},[361,1247,1248],{},"Open, grade, country, language (5 to 9)."," These are the picker's rules. An exam the student panel would never show a student can't be reached by passing its id either. The messages name the grades or countries the exam does accept, so you can act on them without looking anything up.",[1244,1251,1252,1255,1256,532],{},[361,1253,1254],{},"One category per sitting (11)."," Nobody can sit two papers in the same category at the same time, and the second application would be a payment for something that can't happen. To change the language of an exam a student already holds, ",[373,1257,1259],{"href":1258},"#move-an-application","move the application",[991,1261,1263],{"id":1262},"repeating-a-create-is-safe","Repeating a create is safe",[357,1265,1266,1267,963,1269,1271,1272,1274,1275,1277,1278,1280,1281,1283],{},"Sending the same ",[416,1268,633],{},[416,1270,653],{}," again doesn't create a second application. It answers ",[416,1273,1186],{}," with ",[416,1276,1189],{}," and the application that is already there. That makes create safe to retry after a timeout: a ",[416,1279,955],{}," or a ",[416,1282,1186],{}," both mean the student is entered.",[357,1285,1286,1287,1290,1291,1293,1294,1297,1298,561,1300,1304,1305,532],{},"One caveat: the exam checks (5 to 9) run ",[361,1288,1289],{},"before"," the repeat check (10). A repeat therefore returns ",[416,1292,1186],{}," only while the exam is still offered to the student. After the sitting's date has passed, or if the student's grade changed, the same request answers ",[416,1295,1296],{},"409",". The existing application is untouched either way. If a retry gives you a ",[416,1299,1296],{},[373,1301,1303],{"href":1302},"#read-applications","list the student's applications"," to see where you stand. See also ",[373,1306,1307],{"href":49},"Retries and idempotency",[991,1309,1311],{"id":1310},"what-a-new-application-contains","What a new application contains",[357,1313,1314],{},"Creating an application also creates its payment record:",[384,1316,1317,1329],{},[387,1318,1319],{},[390,1320,1321,1326],{},[393,1322,1323,1324],{},"Exam ",[416,1325,676],{},[393,1327,1328],{},"Payment created",[403,1330,1331,1347],{},[390,1332,1333,1338],{},[408,1334,1335,1336],{},"absent or ",[416,1337,893],{},[408,1339,1340,561,1343,1346],{},[416,1341,1342],{},"amount: 0",[416,1344,1345],{},"status: \"paid\"",". A free exam needs no payment, so its record starts out settled.",[390,1348,1349,1355],{},[408,1350,1351,1352],{},"a positive number, for example ",[416,1353,1354],{},"25",[408,1356,1357,561,1360],{},[416,1358,1359],{},"amount: 25",[416,1361,1362],{},"status: \"pending\"",[357,1364,1365],{},"The student can see the application in the organization's panel straight away.",[357,1367,1368,1369,1372,1373,1376,1377,1380],{},"An application for a ",[361,1370,1371],{},"make-up sitting"," (a sitting whose ",[416,1374,1375],{},"relatedSession"," is set) is temporary. It is created with a ",[416,1378,1379],{},"removeAfter"," time six hours ahead, just like one made in the student panel. Don't treat it as permanent.",[991,1382,1384],{"id":1383},"code-create-with-every-outcome-handled","Code: create with every outcome handled",[690,1386,1390],{"className":1387,"code":1388,"language":1389,"meta":695,"style":695},"language-js shiki shiki-themes github-light-high-contrast github-dark-high-contrast","async function enterStudent(organizationId, studentId, examId) {\n  const res = await fetch(`https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F${organizationId}\u002Fapplication`, {\n    method: 'POST',\n    headers: {\n      Authorization: `Bearer ${await getToken()}`,\n      'Content-Type': 'application\u002Fjson',\n    },\n    body: JSON.stringify({ studentId, examId }),\n  });\n  const body = await res.json();\n\n  if (res.status === 201) return { created: true, application: body.data };\n  if (res.status === 200) return { created: false, application: body.data }; \u002F\u002F already entered\n\n  \u002F\u002F 400, 404 and 409 are final: retrying the same request gives the same answer.\n  \u002F\u002F Show error.message to whoever chose the exam, because it says which rule failed.\n  const { code, message, request_id } = body.error;\n  throw Object.assign(new Error(message), { status: res.status, code, requestId: request_id });\n}\n","js",[416,1391,1392,1421,1451,1461,1466,1488,1500,1505,1521,1526,1545,1551,1579,1605,1609,1614,1619,1648,1671],{"__ignoreMap":695},[699,1393,1394,1397,1400,1404,1407,1410,1412,1414,1416,1418],{"class":701,"line":702},[699,1395,1396],{"class":723},"async",[699,1398,1399],{"class":723}," function",[699,1401,1403],{"class":1402},"sKwhi"," enterStudent",[699,1405,1406],{"class":736},"(",[699,1408,1409],{"class":705},"organizationId",[699,1411,561],{"class":736},[699,1413,633],{"class":705},[699,1415,561],{"class":736},[699,1417,653],{"class":705},[699,1419,1420],{"class":736},") {\n",[699,1422,1423,1426,1429,1432,1435,1438,1440,1443,1445,1448],{"class":701,"line":727},[699,1424,1425],{"class":723},"  const",[699,1427,1428],{"class":709}," res",[699,1430,1431],{"class":723}," =",[699,1433,1434],{"class":723}," await",[699,1436,1437],{"class":1402}," fetch",[699,1439,1406],{"class":736},[699,1441,1442],{"class":716},"`https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F${",[699,1444,1409],{"class":736},[699,1446,1447],{"class":716},"}\u002Fapplication`",[699,1449,1450],{"class":736},", {\n",[699,1452,1453,1456,1459],{"class":701,"line":745},[699,1454,1455],{"class":736},"    method: ",[699,1457,1458],{"class":716},"'POST'",[699,1460,788],{"class":736},[699,1462,1463],{"class":701,"line":755},[699,1464,1465],{"class":736},"    headers: {\n",[699,1467,1468,1471,1474,1477,1480,1483,1486],{"class":701,"line":811},[699,1469,1470],{"class":736},"      Authorization: ",[699,1472,1473],{"class":716},"`Bearer ${",[699,1475,1476],{"class":723},"await",[699,1478,1479],{"class":1402}," getToken",[699,1481,1482],{"class":716},"()",[699,1484,1485],{"class":716},"}`",[699,1487,788],{"class":736},[699,1489,1490,1493,1495,1498],{"class":701,"line":824},[699,1491,1492],{"class":716},"      'Content-Type'",[699,1494,782],{"class":736},[699,1496,1497],{"class":716},"'application\u002Fjson'",[699,1499,788],{"class":736},[699,1501,1502],{"class":701,"line":837},[699,1503,1504],{"class":736},"    },\n",[699,1506,1507,1510,1513,1515,1518],{"class":701,"line":850},[699,1508,1509],{"class":736},"    body: ",[699,1511,1512],{"class":709},"JSON",[699,1514,532],{"class":736},[699,1516,1517],{"class":1402},"stringify",[699,1519,1520],{"class":736},"({ studentId, examId }),\n",[699,1522,1523],{"class":701,"line":863},[699,1524,1525],{"class":736},"  });\n",[699,1527,1528,1530,1533,1535,1537,1540,1542],{"class":701,"line":876},[699,1529,1425],{"class":723},[699,1531,1532],{"class":709}," body",[699,1534,1431],{"class":723},[699,1536,1434],{"class":723},[699,1538,1539],{"class":736}," res.",[699,1541,766],{"class":1402},[699,1543,1544],{"class":736},"();\n",[699,1546,1547],{"class":701,"line":885},[699,1548,1550],{"emptyLinePlaceholder":1549},true,"\n",[699,1552,1553,1556,1559,1562,1565,1568,1571,1574,1576],{"class":701,"line":898},[699,1554,1555],{"class":723},"  if",[699,1557,1558],{"class":736}," (res.status ",[699,1560,1561],{"class":723},"===",[699,1563,1564],{"class":709}," 201",[699,1566,1567],{"class":736},") ",[699,1569,1570],{"class":723},"return",[699,1572,1573],{"class":736}," { created: ",[699,1575,785],{"class":709},[699,1577,1578],{"class":736},", application: body.data };\n",[699,1580,1581,1583,1585,1587,1590,1592,1594,1596,1598,1601],{"class":701,"line":911},[699,1582,1555],{"class":723},[699,1584,1558],{"class":736},[699,1586,1561],{"class":723},[699,1588,1589],{"class":709}," 200",[699,1591,1567],{"class":736},[699,1593,1570],{"class":723},[699,1595,1573],{"class":736},[699,1597,871],{"class":709},[699,1599,1600],{"class":736},", application: body.data }; ",[699,1602,1604],{"class":1603},"sLBg1","\u002F\u002F already entered\n",[699,1606,1607],{"class":701,"line":924},[699,1608,1550],{"emptyLinePlaceholder":1549},[699,1610,1611],{"class":701,"line":935},[699,1612,1613],{"class":1603},"  \u002F\u002F 400, 404 and 409 are final: retrying the same request gives the same answer.\n",[699,1615,1616],{"class":701,"line":941},[699,1617,1618],{"class":1603},"  \u002F\u002F Show error.message to whoever chose the exam, because it says which rule failed.\n",[699,1620,1622,1624,1627,1629,1631,1634,1636,1639,1642,1645],{"class":701,"line":1621},17,[699,1623,1425],{"class":723},[699,1625,1626],{"class":736}," { ",[699,1628,416],{"class":709},[699,1630,561],{"class":736},[699,1632,1633],{"class":709},"message",[699,1635,561],{"class":736},[699,1637,1638],{"class":709},"request_id",[699,1640,1641],{"class":736}," } ",[699,1643,1644],{"class":723},"=",[699,1646,1647],{"class":736}," body.error;\n",[699,1649,1651,1654,1657,1660,1662,1665,1668],{"class":701,"line":1650},18,[699,1652,1653],{"class":723},"  throw",[699,1655,1656],{"class":736}," Object.",[699,1658,1659],{"class":1402},"assign",[699,1661,1406],{"class":736},[699,1663,1664],{"class":723},"new",[699,1666,1667],{"class":1402}," Error",[699,1669,1670],{"class":736},"(message), { status: res.status, code, requestId: request_id });\n",[699,1672,1674],{"class":701,"line":1673},19,[699,1675,944],{"class":736},[690,1677,1681],{"className":1678,"code":1679,"language":1680,"meta":695,"style":695},"language-php shiki shiki-themes github-light-high-contrast github-dark-high-contrast","\u003C?php\nfunction enterStudent(string $organizationId, string $studentId, string $examId): array\n{\n    $ch = curl_init(\"https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F{$organizationId}\u002Fapplication\");\n    curl_setopt_array($ch, [\n        CURLOPT_POST => true,\n        CURLOPT_RETURNTRANSFER => true,\n        CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getToken(), 'Content-Type: application\u002Fjson'],\n        CURLOPT_POSTFIELDS => json_encode(['studentId' => $studentId, 'examId' => $examId]),\n    ]);\n    $body = json_decode(curl_exec($ch), true);\n    $status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\n    curl_close($ch);\n\n    if ($status === 201) return ['created' => true, 'application' => $body['data']];\n    if ($status === 200) return ['created' => false, 'application' => $body['data']];\n\n    $e = $body['error'];\n    throw new RuntimeException(\"{$status} {$e['code']}: {$e['message']} (request {$e['request_id']})\");\n}\n","php",[416,1682,1683,1691,1721,1725,1749,1757,1770,1781,1808,1836,1841,1863,1881,1889,1893,1934,1969,1973,1988,2028],{"__ignoreMap":695},[699,1684,1685,1688],{"class":701,"line":702},[699,1686,1687],{"class":723},"\u003C?",[699,1689,1690],{"class":709},"php\n",[699,1692,1693,1696,1698,1700,1702,1705,1707,1710,1712,1715,1718],{"class":701,"line":727},[699,1694,1695],{"class":723},"function",[699,1697,1403],{"class":1402},[699,1699,1406],{"class":736},[699,1701,636],{"class":723},[699,1703,1704],{"class":736}," $organizationId, ",[699,1706,636],{"class":723},[699,1708,1709],{"class":736}," $studentId, ",[699,1711,636],{"class":723},[699,1713,1714],{"class":736}," $examId)",[699,1716,1717],{"class":723},":",[699,1719,1720],{"class":723}," array\n",[699,1722,1723],{"class":701,"line":745},[699,1724,773],{"class":736},[699,1726,1727,1730,1732,1735,1737,1740,1743,1746],{"class":701,"line":755},[699,1728,1729],{"class":736},"    $ch ",[699,1731,1644],{"class":723},[699,1733,1734],{"class":709}," curl_init",[699,1736,1406],{"class":736},[699,1738,1739],{"class":716},"\"https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F{",[699,1741,1742],{"class":736},"$organizationId",[699,1744,1745],{"class":716},"}\u002Fapplication\"",[699,1747,1748],{"class":736},");\n",[699,1750,1751,1754],{"class":701,"line":811},[699,1752,1753],{"class":709},"    curl_setopt_array",[699,1755,1756],{"class":736},"($ch, [\n",[699,1758,1759,1762,1765,1768],{"class":701,"line":824},[699,1760,1761],{"class":709},"        CURLOPT_POST",[699,1763,1764],{"class":723}," =>",[699,1766,1767],{"class":709}," true",[699,1769,788],{"class":736},[699,1771,1772,1775,1777,1779],{"class":701,"line":837},[699,1773,1774],{"class":709},"        CURLOPT_RETURNTRANSFER",[699,1776,1764],{"class":723},[699,1778,1767],{"class":709},[699,1780,788],{"class":736},[699,1782,1783,1786,1788,1791,1794,1797,1799,1802,1805],{"class":701,"line":850},[699,1784,1785],{"class":709},"        CURLOPT_HTTPHEADER",[699,1787,1764],{"class":723},[699,1789,1790],{"class":736}," [",[699,1792,1793],{"class":716},"'Authorization: Bearer '",[699,1795,1796],{"class":723}," .",[699,1798,1479],{"class":1402},[699,1800,1801],{"class":736},"(), ",[699,1803,1804],{"class":716},"'Content-Type: application\u002Fjson'",[699,1806,1807],{"class":736},"],\n",[699,1809,1810,1813,1815,1818,1821,1824,1826,1828,1831,1833],{"class":701,"line":863},[699,1811,1812],{"class":709},"        CURLOPT_POSTFIELDS",[699,1814,1764],{"class":723},[699,1816,1817],{"class":709}," json_encode",[699,1819,1820],{"class":736},"([",[699,1822,1823],{"class":716},"'studentId'",[699,1825,1764],{"class":723},[699,1827,1709],{"class":736},[699,1829,1830],{"class":716},"'examId'",[699,1832,1764],{"class":723},[699,1834,1835],{"class":736}," $examId]),\n",[699,1837,1838],{"class":701,"line":876},[699,1839,1840],{"class":736},"    ]);\n",[699,1842,1843,1846,1848,1851,1853,1856,1859,1861],{"class":701,"line":885},[699,1844,1845],{"class":736},"    $body ",[699,1847,1644],{"class":723},[699,1849,1850],{"class":709}," json_decode",[699,1852,1406],{"class":736},[699,1854,1855],{"class":709},"curl_exec",[699,1857,1858],{"class":736},"($ch), ",[699,1860,785],{"class":709},[699,1862,1748],{"class":736},[699,1864,1865,1868,1870,1873,1876,1879],{"class":701,"line":898},[699,1866,1867],{"class":736},"    $status ",[699,1869,1644],{"class":723},[699,1871,1872],{"class":709}," curl_getinfo",[699,1874,1875],{"class":736},"($ch, ",[699,1877,1878],{"class":709},"CURLINFO_RESPONSE_CODE",[699,1880,1748],{"class":736},[699,1882,1883,1886],{"class":701,"line":911},[699,1884,1885],{"class":709},"    curl_close",[699,1887,1888],{"class":736},"($ch);\n",[699,1890,1891],{"class":701,"line":924},[699,1892,1550],{"emptyLinePlaceholder":1549},[699,1894,1895,1898,1901,1903,1905,1907,1909,1911,1914,1916,1918,1920,1923,1925,1928,1931],{"class":701,"line":935},[699,1896,1897],{"class":723},"    if",[699,1899,1900],{"class":736}," ($status ",[699,1902,1561],{"class":723},[699,1904,1564],{"class":709},[699,1906,1567],{"class":736},[699,1908,1570],{"class":723},[699,1910,1790],{"class":736},[699,1912,1913],{"class":716},"'created'",[699,1915,1764],{"class":723},[699,1917,1767],{"class":709},[699,1919,561],{"class":736},[699,1921,1922],{"class":716},"'application'",[699,1924,1764],{"class":723},[699,1926,1927],{"class":736}," $body[",[699,1929,1930],{"class":716},"'data'",[699,1932,1933],{"class":736},"]];\n",[699,1935,1936,1938,1940,1942,1944,1946,1948,1950,1952,1954,1957,1959,1961,1963,1965,1967],{"class":701,"line":941},[699,1937,1897],{"class":723},[699,1939,1900],{"class":736},[699,1941,1561],{"class":723},[699,1943,1589],{"class":709},[699,1945,1567],{"class":736},[699,1947,1570],{"class":723},[699,1949,1790],{"class":736},[699,1951,1913],{"class":716},[699,1953,1764],{"class":723},[699,1955,1956],{"class":709}," false",[699,1958,561],{"class":736},[699,1960,1922],{"class":716},[699,1962,1764],{"class":723},[699,1964,1927],{"class":736},[699,1966,1930],{"class":716},[699,1968,1933],{"class":736},[699,1970,1971],{"class":701,"line":1621},[699,1972,1550],{"emptyLinePlaceholder":1549},[699,1974,1975,1978,1980,1982,1985],{"class":701,"line":1650},[699,1976,1977],{"class":736},"    $e ",[699,1979,1644],{"class":723},[699,1981,1927],{"class":736},[699,1983,1984],{"class":716},"'error'",[699,1986,1987],{"class":736},"];\n",[699,1989,1990,1993,1996,1999,2001,2004,2007,2010,2013,2016,2018,2021,2023,2026],{"class":701,"line":1673},[699,1991,1992],{"class":723},"    throw",[699,1994,1995],{"class":723}," new",[699,1997,1998],{"class":709}," RuntimeException",[699,2000,1406],{"class":736},[699,2002,2003],{"class":716},"\"{",[699,2005,2006],{"class":736},"$status",[699,2008,2009],{"class":716},"} {",[699,2011,2012],{"class":736},"$e",[699,2014,2015],{"class":716},"['code']}: {",[699,2017,2012],{"class":736},[699,2019,2020],{"class":716},"['message']} (request {",[699,2022,2012],{"class":736},[699,2024,2025],{"class":716},"['request_id']})\"",[699,2027,1748],{"class":736},[699,2029,2031],{"class":701,"line":2030},20,[699,2032,944],{"class":736},[379,2034,2036],{"id":2035},"payments","Payments",[357,2038,2039,2040,2043],{},"The API records what an application costs and whether it has been paid. It ",[361,2041,2042],{},"never takes, charges or refunds money",". Payment happens on the platform, outside this API. That one fact explains most of the rules below.",[384,2045,2046,2056],{},[387,2047,2048],{},[390,2049,2050,2053],{},[393,2051,2052],{},"Payment field",[393,2054,2055],{},"Meaning",[403,2057,2058,2076,2086,2097],{},[390,2059,2060,2065],{},[408,2061,2062],{},[416,2063,2064],{},"status",[408,2066,2067,561,2070,677,2073],{},[416,2068,2069],{},"pending",[416,2071,2072],{},"paid",[416,2074,2075],{},"canceled",[390,2077,2078,2083],{},[408,2079,2080],{},[416,2081,2082],{},"amount",[408,2084,2085],{},"What the application costs. For a settled payment, what was actually paid.",[390,2087,2088,2094],{},[408,2089,2090,561,2092],{},[416,2091,959],{},[416,2093,363],{},[408,2095,2096],{},"What the payment is for.",[390,2098,2099,2104],{},[408,2100,2101],{},[416,2102,2103],{},"for",[408,2105,2106],{},"The organization's id for the student.",[357,2108,2109,2112,2113,2115,2116,2118,2119,2118,2122,2124,2125,2127,2128,2131],{},[361,2110,2111],{},"Settled"," means ",[416,2114,2064],{}," is ",[416,2117,2072],{}," ",[361,2120,2121],{},"and",[416,2123,2082],{}," is greater than ",[416,2126,893],{},": someone actually paid money. A free exam's ",[416,2129,2130],{},"{ \"amount\": 0, \"status\": \"paid\" }"," isn't settled, so it never blocks a move or a delete.",[384,2133,2134,2144],{},[387,2135,2136],{},[390,2137,2138,2141],{},[393,2139,2140],{},"Action",[393,2142,2143],{},"Effect on the payment",[403,2145,2146,2157,2177,2185,2196,2204],{},[390,2147,2148,2151],{},[408,2149,2150],{},"Create",[408,2152,2153,2154,532],{},"Created as in ",[373,2155,1311],{"href":2156},"#what-a-new-application-contains",[390,2158,2159,2162],{},[408,2160,2161],{},"Move, payment not settled",[408,2163,2164,2165,2167,2168,2170,2171,2173,2174,2176],{},"Rewritten to the new exam's price. ",[416,2166,2064],{}," becomes ",[416,2169,2072],{}," if the new price is ",[416,2172,893],{},", and ",[416,2175,2069],{}," otherwise.",[390,2178,2179,2182],{},[408,2180,2181],{},"Move, payment settled, same price",[408,2183,2184],{},"Only the exam it's for changes. The amount paid is left as it was.",[390,2186,2187,2190],{},[408,2188,2189],{},"Move, payment settled, different price",[408,2191,2192,2193,2195],{},"Refused with ",[416,2194,1296],{},", because the API can't charge the difference or refund it.",[390,2197,2198,2201],{},[408,2199,2200],{},"Delete, not settled",[408,2202,2203],{},"Allowed.",[390,2205,2206,2209],{},[408,2207,2208],{},"Delete, settled",[408,2210,2192,2211,2213],{},[416,2212,1296],{},", because deleting doesn't refund anything.",[2215,2216,2218],"callout",{"type":2217},"warn",[357,2219,2220,2221,1274,2223,2225,2226,2228],{},"Moving a student from a free exam to a priced one leaves them owing the new price. Their payment goes from ",[416,2222,2072],{},[416,2224,1342],{}," to ",[416,2227,2069],{}," with the new amount. Tell the student or their school before you make that move.",[379,2230,430],{"id":2231},"move-an-application",[357,2233,2234,2236,2237,2239],{},[416,2235,435],{}," points an existing application at a different exam. Use it to change the language, the sitting or, where the category allows it, the category. The application keeps its ",[416,2238,645],{}," and its payment record, so it works like the \"Update\" button on the student's own exam card.",[357,2241,2242,2243,2245,2246,2248,2249,2251,2252,684,2254,688],{},"The body has one field, ",[416,2244,653],{},". It must be 24 hexadecimal characters, and it is usually a picker leaf's ",[416,2247,666],{},". The student isn't in the body: the application already says whose it is, so sending ",[416,2250,633],{}," is refused with ",[416,2253,589],{},[416,2255,2256],{},"property studentId should not exist",[690,2258,2260],{"className":692,"code":2259,"language":694,"meta":695,"style":695},"curl -s -X PUT \"https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fapplication\u002F6703d4e5f6a7b8c9d0e1f203\" \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"examId\": \"66f1a2b3c4d5e6f708192a3c\" }'\n",[416,2261,2262,2278,2290,2298],{"__ignoreMap":695},[699,2263,2264,2266,2268,2270,2273,2276],{"class":701,"line":702},[699,2265,706],{"class":705},[699,2267,710],{"class":709},[699,2269,713],{"class":709},[699,2271,2272],{"class":716}," PUT",[699,2274,2275],{"class":716}," \"https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fapplication\u002F6703d4e5f6a7b8c9d0e1f203\"",[699,2277,724],{"class":723},[699,2279,2280,2282,2284,2286,2288],{"class":701,"line":727},[699,2281,730],{"class":709},[699,2283,733],{"class":716},[699,2285,737],{"class":736},[699,2287,740],{"class":716},[699,2289,724],{"class":723},[699,2291,2292,2294,2296],{"class":701,"line":745},[699,2293,730],{"class":709},[699,2295,750],{"class":716},[699,2297,724],{"class":723},[699,2299,2300,2302],{"class":701,"line":755},[699,2301,758],{"class":709},[699,2303,2304],{"class":716}," '{ \"examId\": \"66f1a2b3c4d5e6f708192a3c\" }'\n",[690,2306,2308],{"className":764,"code":2307,"language":766,"meta":695,"style":695},"{\n  \"success\": true,\n  \"message\": \"Application updated successfully.\",\n  \"data\": {\n    \"_id\": \"6703d4e5f6a7b8c9d0e1f203\",\n    \"exam\": \"66f1a2b3c4d5e6f708192a3c\",\n    \"user\": \"66fa0b1c2d3e4f5a6b7c8d9e\",\n    \"payment\": \"6703d4e5f6a7b8c9d0e1f204\",\n    \"participated\": false,\n    \"partners\": [],\n    \"createdAt\": \"2026-09-15T10:42:07.512Z\",\n    \"updatedAt\": \"2026-09-16T08:05:51.004Z\"\n  }\n}\n",[416,2309,2310,2314,2324,2335,2341,2351,2362,2372,2382,2392,2398,2408,2417,2421],{"__ignoreMap":695},[699,2311,2312],{"class":701,"line":702},[699,2313,773],{"class":736},[699,2315,2316,2318,2320,2322],{"class":701,"line":727},[699,2317,779],{"class":778},[699,2319,782],{"class":736},[699,2321,785],{"class":709},[699,2323,788],{"class":736},[699,2325,2326,2328,2330,2333],{"class":701,"line":745},[699,2327,793],{"class":778},[699,2329,782],{"class":736},[699,2331,2332],{"class":716},"\"Application updated successfully.\"",[699,2334,788],{"class":736},[699,2336,2337,2339],{"class":701,"line":755},[699,2338,805],{"class":778},[699,2340,808],{"class":736},[699,2342,2343,2345,2347,2349],{"class":701,"line":811},[699,2344,814],{"class":778},[699,2346,782],{"class":736},[699,2348,819],{"class":716},[699,2350,788],{"class":736},[699,2352,2353,2355,2357,2360],{"class":701,"line":824},[699,2354,827],{"class":778},[699,2356,782],{"class":736},[699,2358,2359],{"class":716},"\"66f1a2b3c4d5e6f708192a3c\"",[699,2361,788],{"class":736},[699,2363,2364,2366,2368,2370],{"class":701,"line":837},[699,2365,840],{"class":778},[699,2367,782],{"class":736},[699,2369,845],{"class":716},[699,2371,788],{"class":736},[699,2373,2374,2376,2378,2380],{"class":701,"line":850},[699,2375,853],{"class":778},[699,2377,782],{"class":736},[699,2379,858],{"class":716},[699,2381,788],{"class":736},[699,2383,2384,2386,2388,2390],{"class":701,"line":863},[699,2385,866],{"class":778},[699,2387,782],{"class":736},[699,2389,871],{"class":709},[699,2391,788],{"class":736},[699,2393,2394,2396],{"class":701,"line":876},[699,2395,879],{"class":778},[699,2397,882],{"class":736},[699,2399,2400,2402,2404,2406],{"class":701,"line":885},[699,2401,914],{"class":778},[699,2403,782],{"class":736},[699,2405,919],{"class":716},[699,2407,788],{"class":736},[699,2409,2410,2412,2414],{"class":701,"line":898},[699,2411,927],{"class":778},[699,2413,782],{"class":736},[699,2415,2416],{"class":716},"\"2026-09-16T08:05:51.004Z\"\n",[699,2418,2419],{"class":701,"line":911},[699,2420,938],{"class":736},[699,2422,2423],{"class":701,"line":924},[699,2424,944],{"class":736},[357,2426,2427,2428,2431],{},"The application being moved doesn't count against itself. You can move it to another language on the same sitting, which is the most common move. Every ",[361,2429,2430],{},"other"," application the student holds still counts.",[991,2433,994],{"id":2434},"what-is-checked-in-order-1",[384,2436,2437,2448],{},[387,2438,2439],{},[390,2440,2441,2443,2445],{},[393,2442,1006],{},[393,2444,1009],{},[393,2446,2447],{},"Refusal, and why",[403,2449,2450,2460,2481,2495,2518,2531,2546,2559,2577,2589,2603,2617],{},[390,2451,2452,2454,2457],{},[408,2453,1019],{},[408,2455,2456],{},"Token, organization, permission, rate limit and body",[408,2458,2459],{},"as on every route",[390,2461,2462,2464,2467],{},[408,2463,1053],{},[408,2465,2466],{},"The application exists",[408,2468,2469,561,2471,2474,2475,2478,2479,532],{},[416,2470,560],{},[416,2472,2473],{},"Application not found!",". An ",[416,2476,2477],{},"\u003CapplicationId>"," that isn't 24 hexadecimal characters answers ",[416,2480,589],{},[390,2482,2483,2485,2488],{},[408,2484,1066],{},[408,2486,2487],{},"It belongs to one of your students",[408,2489,2490,561,2492,2494],{},[416,2491,560],{},[416,2493,2473],{},": the same answer as check 2, so a refusal never says whether the id exists",[390,2496,2497,2499,2510],{},[408,2498,1081],{},[408,2500,2501,2502,963,2504,2507,2508,1048],{},"The exam hasn't been started (",[416,2503,680],{},[416,2505,2506],{},"examSubmitted"," are not ",[416,2509,785],{},[408,2511,2512,561,2514,2517],{},[416,2513,574],{},[416,2515,2516],{},"This exam has already been started and can no longer be changed."," A student's answers belong to the questions of the exam they started, and the exam's clock is read from the application's current exam.",[390,2519,2520,2522,2525],{},[408,2521,1096],{},[408,2523,2524],{},"The new exam exists",[408,2526,2527,561,2529],{},[416,2528,560],{},[416,2530,1091],{},[390,2532,2533,2535,2538],{},[408,2534,1111],{},[408,2536,2537],{},"The new exam is the one it already has",[408,2539,1183,2540,561,2542,2545],{},[416,2541,1186],{},[416,2543,2544],{},"Application already uses that exam.",", with nothing changed. This makes a retried move safe.",[390,2547,2548,2550,2553],{},[408,2549,1125],{},[408,2551,2552],{},"The picker offers the new exam to this student",[408,2554,2555,2556,2558],{},"the same refusals as create checks 5 to 9: closed, no grade (",[416,2557,1043],{},"), grade, country, no language",[390,2560,2561,2563,2566],{},[408,2562,1145],{},[408,2564,2565],{},"The old exam's category accepts the new category",[408,2567,2568,1133,2570,2573,2574,688],{},[416,2569,574],{},[416,2571,2572],{},"An application for Science cannot be moved to that category."," The organization lists, on each category, the categories it can't be swapped for (",[416,2575,2576],{},"nonAcceptedReplacements",[390,2578,2579,2581,2584],{},[408,2580,1160],{},[408,2582,2583],{},"The student has no other exam in that category on that sitting",[408,2585,2586,2588],{},[416,2587,574],{},", the same message as create check 11",[390,2590,2591,2593,2596],{},[408,2592,1175],{},[408,2594,2595],{},"The AI Challenge rule",[408,2597,2598,561,2600],{},[416,2599,574],{},[416,2601,2602],{},"Training has already started for this AI Challenge application, so it can no longer be moved.",[390,2604,2605,2607,2610],{},[408,2606,1195],{},[408,2608,2609],{},"A settled payment keeps its price",[408,2611,2612,1133,2614],{},[416,2613,574],{},[416,2615,2616],{},"Application has been paid for at 25, and that exam costs 40. Moving it would change what the payment bought, and this API neither charges a difference nor refunds.",[390,2618,2619,2621,2623],{},[408,2620,1210],{},[408,2622,1213],{},[408,2624,2625,561,2627],{},[416,2626,1186],{},[416,2628,2629],{},"Application updated successfully.",[357,2631,2632,2633,2635],{},"A move onto a make-up sitting makes the application temporary, exactly as creating one there does (see ",[373,2634,1311],{"href":2156},"). A move off a make-up sitting makes it permanent again.",[991,2637,2595],{"id":2638},"the-ai-challenge-rule",[357,2640,2641,2642,2645],{},"Students in the AI Challenge category have an image quota, which they use up as they train. Once a student has used any of their quota in an organization, none of their applications whose ",[361,2643,2644],{},"current"," exam is in the AI Challenge category can be moved there. What they used can't be carried to another exam, and moving the application would leave no record of it.",[1241,2647,2648,2659,2662],{},[1244,2649,2650,2651,2654,2655,2658],{},"The rule looks at the category the application is moving ",[361,2652,2653],{},"from",". Moving an application ",[361,2656,2657],{},"into"," AI Challenge isn't affected.",[1244,2660,2661],{},"It applies whether or not the application has been paid for.",[1244,2663,2664],{},"A student who hasn't used any quota yet can be moved like anyone else.",[991,2666,2668],{"id":2667},"a-paid-application-can-move","A paid application can move",[357,2670,2671],{},"Paid applications aren't frozen. Changing the language of an exam that has already been paid for, at the same price, is an ordinary move. What the API refuses is a move that would change what the money bought (check 11). If the price differs, the student has to arrange it on the platform, or you can wait for an equal-price option.",[357,2673,2674,2675,2677,2678,532],{},"The ",[373,2676,106],{"href":107}," tutorial walks through a language swap and each ",[416,2679,1296],{},[379,2681,447],{"id":2682},"delete-an-application",[357,2684,2685,2687],{},[416,2686,452],{}," withdraws the student from the exam.",[384,2689,2690,2700],{},[387,2691,2692],{},[390,2693,2694,2696,2698],{},[393,2695,1006],{},[393,2697,1009],{},[393,2699,1012],{},[403,2701,2702,2711,2727,2740,2754],{},[390,2703,2704,2706,2709],{},[408,2705,1019],{},[408,2707,2708],{},"Token, organization, permission and rate limit",[408,2710,2459],{},[390,2712,2713,2715,2717],{},[408,2714,1053],{},[408,2716,2466],{},[408,2718,2719,561,2721,2474,2723,2478,2725,532],{},[416,2720,560],{},[416,2722,2473],{},[416,2724,2477],{},[416,2726,589],{},[390,2728,2729,2731,2733],{},[408,2730,1066],{},[408,2732,2487],{},[408,2734,2735,561,2737,2739],{},[416,2736,560],{},[416,2738,2473],{},": the same answer as check 2",[390,2741,2742,2744,2747],{},[408,2743,1081],{},[408,2745,2746],{},"Its payment isn't settled",[408,2748,2749,561,2751],{},[416,2750,574],{},[416,2752,2753],{},"Application has been paid for and cannot be deleted. Cancelling a paid application requires a refund, which this API does not perform.",[390,2755,2756,2758,2760],{},[408,2757,1096],{},[408,2759,1213],{},[408,2761,2762,561,2764,2767,2768],{},[416,2763,1186],{},[416,2765,2766],{},"Application deleted successfully.",", with the deleted application in ",[416,2769,2770],{},"data",[357,2772,2773],{},"Why a settled application can't be deleted: deleting refunds nothing. The payment would be left pointing at an application that no longer exists, and the money would have bought nothing anyone can find. Canceling a paid sitting is a refund, and refunds happen outside this API.",[357,2775,2776,2777,561,2779,2781],{},"Deleting a second time answers ",[416,2778,560],{},[416,2780,2473],{},". The application is already gone, so treat that as success when you retry.",[357,2783,2784,2785,963,2787,2789,2790,2792],{},"Payment is the only state the delete checks. It doesn't check whether the student has started the exam, or whether the sitting is still ahead, so look at ",[416,2786,680],{},[416,2788,2506],{}," before you delete. If your integration should never delete, ask your operator to leave ",[416,2791,457],{}," off your account's roles.",[379,2794,2796],{"id":2795},"read-applications","Read applications",[357,2798,2799],{},"Three lists and one single read. All of them resolve references, so a row is usable on its own:",[384,2801,2802,2823],{},[387,2803,2804],{},[390,2805,2806,2808,2811,2815,2819],{},[393,2807,395],{},[393,2809,2810],{},"Returns",[393,2812,2813],{},[416,2814,959],{},[393,2816,2817],{},[416,2818,962],{},[393,2820,2821],{},[416,2822,367],{},[403,2824,2825,2843,2862,2878],{},[390,2826,2827,2832,2835,2838,2841],{},[408,2828,2829],{},[416,2830,2831],{},"GET …\u002Fapplication",[408,2833,2834],{},"Every application of your students in this organization",[408,2836,2837],{},"document",[408,2839,2840],{},"student summary",[408,2842,2837],{},[390,2844,2845,2850,2853,2858,2860],{},[408,2846,2847],{},[416,2848,2849],{},"GET …\u002Fapplication\u002Fexam-applications\u002F\u003CexamId>",[408,2851,2852],{},"Your students' applications for one exam",[408,2854,2855],{},[361,2856,2857],{},"id",[408,2859,2840],{},[408,2861,2837],{},[390,2863,2864,2869,2872,2874,2876],{},[408,2865,2866],{},[416,2867,2868],{},"GET …\u002Fapplication\u002Fstudent-applications\u002F\u003CstudentId>",[408,2870,2871],{},"One student's applications",[408,2873,2837],{},[408,2875,2840],{},[408,2877,2837],{},[390,2879,2880,2885,2888,2890,2892],{},[408,2881,2882],{},[416,2883,2884],{},"GET …\u002Fapplication\u002F\u003CapplicationId>",[408,2886,2887],{},"One application",[408,2889,2837],{},[408,2891,2840],{},[408,2893,2837],{},[357,2895,2896,2897,561,2899,561,2902,963,2905,2908,2909,2914,2915,2917,2918,532],{},"The student summary is deliberately short: ",[416,2898,645],{},[416,2900,2901],{},"mainId",[416,2903,2904],{},"firstName",[416,2906,2907],{},"lastName",". ",[361,2910,2911,2912],{},"Match on ",[416,2913,2901],{},", which is the core id you registered the student with. ",[416,2916,645],{}," is the organization's own id for them. For the full profile, call ",[373,2919,2920],{"href":186},[416,2921,2922],{},"GET \u002Fv1\u002Fstudent\u002F\u003CmainId>",[357,2924,2925,2926,2929,2930,2933,2934,2936,2937,2939],{},"On ",[416,2927,2928],{},"exam-applications\u002F\u003CexamId>"," the exam stays an id because you already named it in the path, and every row would repeat the same document. On a team application, each entry in ",[416,2931,2932],{},"partners"," names its co-participant by ",[416,2935,962],{},", and that ",[416,2938,962],{}," always stays an id. Co-participants can be other accounts' students, and the API only returns details of your own.",[690,2941,2943],{"className":692,"code":2942,"language":694,"meta":695,"style":695},"curl -s \"https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fapplication\u002Fstudent-applications\u002F652f1c9b8e4b2a0012a3c4d5\" \\\n  -H \"Authorization: Bearer $TOKEN\"\n",[416,2944,2945,2956],{"__ignoreMap":695},[699,2946,2947,2949,2951,2954],{"class":701,"line":702},[699,2948,706],{"class":705},[699,2950,710],{"class":709},[699,2952,2953],{"class":716}," \"https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fapplication\u002Fstudent-applications\u002F652f1c9b8e4b2a0012a3c4d5\"",[699,2955,724],{"class":723},[699,2957,2958,2960,2962,2964],{"class":701,"line":727},[699,2959,730],{"class":709},[699,2961,733],{"class":716},[699,2963,737],{"class":736},[699,2965,2966],{"class":716},"\"\n",[690,2968,2970],{"className":764,"code":2969,"language":766,"meta":695,"style":695},"{\n  \"success\": true,\n  \"message\": \"Applications fetched successfully.\",\n  \"data\": [\n    {\n      \"_id\": \"6703d4e5f6a7b8c9d0e1f203\",\n      \"exam\": {\n        \"_id\": \"66f1a2b3c4d5e6f708192a3c\",\n        \"session\": \"66e0c1d2e3f4a5b6c7d8e9f0\",\n        \"category\": \"64b7e1f0a1b2c3d4e5f60711\",\n        \"language\": \"64a1f0b2c9d8e7f60011889a\",\n        \"grades\": [\"630e01826836e67ec53dc7a6\", \"630e01826836e67ec53dc7a7\"],\n        \"price\": 25\n      },\n      \"user\": {\n        \"_id\": \"66fa0b1c2d3e4f5a6b7c8d9e\",\n        \"mainId\": \"652f1c9b8e4b2a0012a3c4d5\",\n        \"firstName\": \"Ada\",\n        \"lastName\": \"Lovelace\"\n      },\n      \"payment\": {\n        \"_id\": \"6703d4e5f6a7b8c9d0e1f204\",\n        \"application\": \"6703d4e5f6a7b8c9d0e1f203\",\n        \"exam\": \"66f1a2b3c4d5e6f708192a3c\",\n        \"for\": \"66fa0b1c2d3e4f5a6b7c8d9e\",\n        \"amount\": 25,\n        \"status\": \"paid\",\n        \"createdAt\": \"2026-09-15T10:42:07.498Z\",\n        \"updatedAt\": \"2026-09-15T11:20:13.220Z\"\n      },\n      \"participated\": false,\n      \"partners\": [],\n      \"createdAt\": \"2026-09-15T10:42:07.512Z\",\n      \"updatedAt\": \"2026-09-16T08:05:51.004Z\"\n    }\n  ],\n  \"pagination\": { \"page\": 1, \"limit\": 20, \"total\": 1, \"totalPages\": 1 }\n}\n",[416,2971,2972,2976,2986,2997,3004,3009,3020,3027,3038,3050,3062,3074,3092,3102,3107,3114,3124,3136,3148,3158,3162,3170,3181,3193,3205,3217,3229,3242,3255,3266,3271,3283,3291,3303,3313,3319,3325,3372],{"__ignoreMap":695},[699,2973,2974],{"class":701,"line":702},[699,2975,773],{"class":736},[699,2977,2978,2980,2982,2984],{"class":701,"line":727},[699,2979,779],{"class":778},[699,2981,782],{"class":736},[699,2983,785],{"class":709},[699,2985,788],{"class":736},[699,2987,2988,2990,2992,2995],{"class":701,"line":745},[699,2989,793],{"class":778},[699,2991,782],{"class":736},[699,2993,2994],{"class":716},"\"Applications fetched successfully.\"",[699,2996,788],{"class":736},[699,2998,2999,3001],{"class":701,"line":755},[699,3000,805],{"class":778},[699,3002,3003],{"class":736},": [\n",[699,3005,3006],{"class":701,"line":811},[699,3007,3008],{"class":736},"    {\n",[699,3010,3011,3014,3016,3018],{"class":701,"line":824},[699,3012,3013],{"class":778},"      \"_id\"",[699,3015,782],{"class":736},[699,3017,819],{"class":716},[699,3019,788],{"class":736},[699,3021,3022,3025],{"class":701,"line":837},[699,3023,3024],{"class":778},"      \"exam\"",[699,3026,808],{"class":736},[699,3028,3029,3032,3034,3036],{"class":701,"line":850},[699,3030,3031],{"class":778},"        \"_id\"",[699,3033,782],{"class":736},[699,3035,2359],{"class":716},[699,3037,788],{"class":736},[699,3039,3040,3043,3045,3048],{"class":701,"line":863},[699,3041,3042],{"class":778},"        \"session\"",[699,3044,782],{"class":736},[699,3046,3047],{"class":716},"\"66e0c1d2e3f4a5b6c7d8e9f0\"",[699,3049,788],{"class":736},[699,3051,3052,3055,3057,3060],{"class":701,"line":876},[699,3053,3054],{"class":778},"        \"category\"",[699,3056,782],{"class":736},[699,3058,3059],{"class":716},"\"64b7e1f0a1b2c3d4e5f60711\"",[699,3061,788],{"class":736},[699,3063,3064,3067,3069,3072],{"class":701,"line":885},[699,3065,3066],{"class":778},"        \"language\"",[699,3068,782],{"class":736},[699,3070,3071],{"class":716},"\"64a1f0b2c9d8e7f60011889a\"",[699,3073,788],{"class":736},[699,3075,3076,3079,3082,3085,3087,3090],{"class":701,"line":898},[699,3077,3078],{"class":778},"        \"grades\"",[699,3080,3081],{"class":736},": [",[699,3083,3084],{"class":716},"\"630e01826836e67ec53dc7a6\"",[699,3086,561],{"class":736},[699,3088,3089],{"class":716},"\"630e01826836e67ec53dc7a7\"",[699,3091,1807],{"class":736},[699,3093,3094,3097,3099],{"class":701,"line":911},[699,3095,3096],{"class":778},"        \"price\"",[699,3098,782],{"class":736},[699,3100,3101],{"class":709},"25\n",[699,3103,3104],{"class":701,"line":924},[699,3105,3106],{"class":736},"      },\n",[699,3108,3109,3112],{"class":701,"line":935},[699,3110,3111],{"class":778},"      \"user\"",[699,3113,808],{"class":736},[699,3115,3116,3118,3120,3122],{"class":701,"line":941},[699,3117,3031],{"class":778},[699,3119,782],{"class":736},[699,3121,845],{"class":716},[699,3123,788],{"class":736},[699,3125,3126,3129,3131,3134],{"class":701,"line":1621},[699,3127,3128],{"class":778},"        \"mainId\"",[699,3130,782],{"class":736},[699,3132,3133],{"class":716},"\"652f1c9b8e4b2a0012a3c4d5\"",[699,3135,788],{"class":736},[699,3137,3138,3141,3143,3146],{"class":701,"line":1650},[699,3139,3140],{"class":778},"        \"firstName\"",[699,3142,782],{"class":736},[699,3144,3145],{"class":716},"\"Ada\"",[699,3147,788],{"class":736},[699,3149,3150,3153,3155],{"class":701,"line":1673},[699,3151,3152],{"class":778},"        \"lastName\"",[699,3154,782],{"class":736},[699,3156,3157],{"class":716},"\"Lovelace\"\n",[699,3159,3160],{"class":701,"line":2030},[699,3161,3106],{"class":736},[699,3163,3165,3168],{"class":701,"line":3164},21,[699,3166,3167],{"class":778},"      \"payment\"",[699,3169,808],{"class":736},[699,3171,3173,3175,3177,3179],{"class":701,"line":3172},22,[699,3174,3031],{"class":778},[699,3176,782],{"class":736},[699,3178,858],{"class":716},[699,3180,788],{"class":736},[699,3182,3184,3187,3189,3191],{"class":701,"line":3183},23,[699,3185,3186],{"class":778},"        \"application\"",[699,3188,782],{"class":736},[699,3190,819],{"class":716},[699,3192,788],{"class":736},[699,3194,3196,3199,3201,3203],{"class":701,"line":3195},24,[699,3197,3198],{"class":778},"        \"exam\"",[699,3200,782],{"class":736},[699,3202,2359],{"class":716},[699,3204,788],{"class":736},[699,3206,3208,3211,3213,3215],{"class":701,"line":3207},25,[699,3209,3210],{"class":778},"        \"for\"",[699,3212,782],{"class":736},[699,3214,845],{"class":716},[699,3216,788],{"class":736},[699,3218,3220,3223,3225,3227],{"class":701,"line":3219},26,[699,3221,3222],{"class":778},"        \"amount\"",[699,3224,782],{"class":736},[699,3226,1354],{"class":709},[699,3228,788],{"class":736},[699,3230,3232,3235,3237,3240],{"class":701,"line":3231},27,[699,3233,3234],{"class":778},"        \"status\"",[699,3236,782],{"class":736},[699,3238,3239],{"class":716},"\"paid\"",[699,3241,788],{"class":736},[699,3243,3245,3248,3250,3253],{"class":701,"line":3244},28,[699,3246,3247],{"class":778},"        \"createdAt\"",[699,3249,782],{"class":736},[699,3251,3252],{"class":716},"\"2026-09-15T10:42:07.498Z\"",[699,3254,788],{"class":736},[699,3256,3258,3261,3263],{"class":701,"line":3257},29,[699,3259,3260],{"class":778},"        \"updatedAt\"",[699,3262,782],{"class":736},[699,3264,3265],{"class":716},"\"2026-09-15T11:20:13.220Z\"\n",[699,3267,3269],{"class":701,"line":3268},30,[699,3270,3106],{"class":736},[699,3272,3274,3277,3279,3281],{"class":701,"line":3273},31,[699,3275,3276],{"class":778},"      \"participated\"",[699,3278,782],{"class":736},[699,3280,871],{"class":709},[699,3282,788],{"class":736},[699,3284,3286,3289],{"class":701,"line":3285},32,[699,3287,3288],{"class":778},"      \"partners\"",[699,3290,882],{"class":736},[699,3292,3294,3297,3299,3301],{"class":701,"line":3293},33,[699,3295,3296],{"class":778},"      \"createdAt\"",[699,3298,782],{"class":736},[699,3300,919],{"class":716},[699,3302,788],{"class":736},[699,3304,3306,3309,3311],{"class":701,"line":3305},34,[699,3307,3308],{"class":778},"      \"updatedAt\"",[699,3310,782],{"class":736},[699,3312,2416],{"class":716},[699,3314,3316],{"class":701,"line":3315},35,[699,3317,3318],{"class":736},"    }\n",[699,3320,3322],{"class":701,"line":3321},36,[699,3323,3324],{"class":736},"  ],\n",[699,3326,3328,3331,3334,3337,3339,3341,3343,3346,3348,3351,3353,3356,3358,3360,3362,3365,3367,3369],{"class":701,"line":3327},37,[699,3329,3330],{"class":778},"  \"pagination\"",[699,3332,3333],{"class":736},": { ",[699,3335,3336],{"class":778},"\"page\"",[699,3338,782],{"class":736},[699,3340,1019],{"class":709},[699,3342,561],{"class":736},[699,3344,3345],{"class":778},"\"limit\"",[699,3347,782],{"class":736},[699,3349,3350],{"class":709},"20",[699,3352,561],{"class":736},[699,3354,3355],{"class":778},"\"total\"",[699,3357,782],{"class":736},[699,3359,1019],{"class":709},[699,3361,561],{"class":736},[699,3363,3364],{"class":778},"\"totalPages\"",[699,3366,782],{"class":736},[699,3368,1019],{"class":709},[699,3370,3371],{"class":736}," }\n",[699,3373,3375],{"class":701,"line":3374},38,[699,3376,944],{"class":736},[357,3378,3379,3380,3382,3383,561,3386,963,3389,3392,3393,3396,3397,3400],{},"Inside a resolved ",[416,3381,959],{},", the ",[416,3384,3385],{},"session",[416,3387,3388],{},"category",[416,3390,3391],{},"language"," are ids. To show their names, use the ",[373,3394,3395],{"href":217},"open exam list"," or the ",[373,3398,3399],{"href":220},"exam categories",". A past exam no longer appears there, but its category still does.",[991,3402,3404],{"id":3403},"who-appears-in-the-lists","Who appears in the lists",[384,3406,3407,3417],{},[387,3408,3409],{},[390,3410,3411,3414],{},[393,3412,3413],{},"List",[393,3415,3416],{},"Includes",[403,3418,3419,3427],{},[390,3420,3421,3424],{},[408,3422,3423],{},"All applications, and applications for an exam",[408,3425,3426],{},"Students of yours who have access to this organization and have signed in to it at least once. A student with neither never appears; the list isn't an error, it just leaves them out.",[390,3428,3429,3431],{},[408,3430,2871],{},[408,3432,3433,3434,561,3436,3438,3439,3441],{},"That student, if they are yours (",[416,3435,560],{},[416,3437,564],{}," otherwise) and have signed in to this organization (",[416,3440,574],{}," otherwise).",[357,3443,3444,3445,3447,3448,677,3451,2478,3454,532],{},"All three lists include applications for closed and past exams. ",[416,3446,2928],{}," doesn't check that the exam exists: an unknown id returns an empty list, and it works for past sittings too. An ",[416,3449,3450],{},"\u003CexamId>",[416,3452,3453],{},"\u003CstudentId>",[416,3455,589],{},[357,3457,3458,3459,963,3462,3465,3466,3468,3469,532],{},"Lists are paginated with ",[416,3460,3461],{},"page",[416,3463,3464],{},"limit"," (default 20, at most 100) and have no documented order. To take a complete snapshot, walk every page and remove duplicates by ",[416,3467,645],{},". See ",[373,3470,39],{"href":40},[991,3472,3474],{"id":3473},"a-single-application","A single application",[384,3476,3477,3487],{},[387,3478,3479],{},[390,3480,3481,3484],{},[393,3482,3483],{},"Situation",[393,3485,3486],{},"Answer",[403,3488,3489,3501,3512,3524],{},[390,3490,3491,3494],{},[408,3492,3493],{},"Found and yours",[408,3495,3496,561,3498],{},[416,3497,1186],{},[416,3499,3500],{},"Application fetched successfully.",[390,3502,3503,3506],{},[408,3504,3505],{},"No application with this id",[408,3507,3508,561,3510],{},[416,3509,560],{},[416,3511,2473],{},[390,3513,3514,3517],{},[408,3515,3516],{},"It belongs to another account's student",[408,3518,3519,561,3521],{},[416,3520,560],{},[416,3522,3523],{},"Not found!",[390,3525,3526,3529],{},[408,3527,3528],{},"The id isn't 24 hexadecimal characters",[408,3530,3531],{},[416,3532,589],{},[357,3534,3535,3536,3538,3539,3542],{},"The two ",[416,3537,1030],{},"s have different messages, but they mean the same thing to you: this application isn't available to your account. Branch on the status and ",[416,3540,3541],{},"error.code",", never on the message.",[379,3544,3546],{"id":3545},"the-409s-at-a-glance","The 409s at a glance",[384,3548,3549,3561],{},[387,3550,3551],{},[390,3552,3553,3556,3558],{},[393,3554,3555],{},"Message starts with",[393,3557,395],{},[393,3559,3560],{},"What to do",[403,3562,3563,3579,3592,3604,3616,3628,3640,3653,3665,3677,3689],{},[390,3564,3565,3570,3573],{},[408,3566,3567],{},[416,3568,3569],{},"Student has never signed in to …",[408,3571,3572],{},"create, student list",[408,3574,3575,3576,3578],{},"Send a ",[373,3577,578],{"href":81},", let the student follow it, then try again.",[390,3580,3581,3586,3589],{},[408,3582,3583],{},[416,3584,3585],{},"Exam is not open for application",[408,3587,3588],{},"create, move",[408,3590,3591],{},"Choose another exam from the picker.",[390,3593,3594,3599,3601],{},[408,3595,3596],{},[416,3597,3598],{},"Exam is not available for grade …",[408,3600,3588],{},[408,3602,3603],{},"Choose an exam for the student's grade, or correct their grade if it's wrong.",[390,3605,3606,3611,3613],{},[408,3607,3608],{},[416,3609,3610],{},"Exam is not available in this student’s country",[408,3612,3588],{},[408,3614,3615],{},"Choose an exam offered in the student's country.",[390,3617,3618,3623,3625],{},[408,3619,3620],{},[416,3621,3622],{},"Exam has no language set",[408,3624,3588],{},[408,3626,3627],{},"Choose another exam. The organization hasn't set this one up for students.",[390,3629,3630,3635,3637],{},[408,3631,3632],{},[416,3633,3634],{},"Student already has an application for …",[408,3636,3588],{},[408,3638,3639],{},"Move the existing application instead of creating another.",[390,3641,3642,3647,3650],{},[408,3643,3644],{},[416,3645,3646],{},"This exam has already been started",[408,3648,3649],{},"move",[408,3651,3652],{},"Nothing. A started exam stays where it is.",[390,3654,3655,3660,3662],{},[408,3656,3657],{},[416,3658,3659],{},"An application for … cannot be moved to that category",[408,3661,3649],{},[408,3663,3664],{},"Choose an exam in a category the old one accepts.",[390,3666,3667,3672,3674],{},[408,3668,3669],{},[416,3670,3671],{},"Training has already started for this AI Challenge application",[408,3673,3649],{},[408,3675,3676],{},"Nothing. This application stays where it is.",[390,3678,3679,3684,3686],{},[408,3680,3681],{},[416,3682,3683],{},"Application has been paid for at …",[408,3685,3649],{},[408,3687,3688],{},"Choose an exam at the same price.",[390,3690,3691,3696,3699],{},[408,3692,3693],{},[416,3694,3695],{},"Application has been paid for and cannot be deleted",[408,3697,3698],{},"delete",[408,3700,3701],{},"Canceling a paid application is a refund. Arrange it outside the API.",[357,3703,3704,3705,3711,3712,3714],{},"None of these changes on a retry. Fix the cause first. The ",[373,3706,3708],{"href":3707},"\u002Fapi\u002Ferrors#conflict",[416,3709,3710],{},"conflict"," error page and ",[373,3713,342],{"href":343}," cover them too.",[379,3716,3718],{"id":3717},"related","Related",[1241,3720,3721,3726,3731,3735,3739],{},[1244,3722,3723],{},[373,3724,3725],{"href":84},"Exams and the exam picker",[1244,3727,3728],{},[373,3729,3730],{"href":101},"Register a student and apply",[1244,3732,3733],{},[373,3734,106],{"href":107},[1244,3736,3737],{},[373,3738,80],{"href":81},[1244,3740,3741],{},[373,3742,1307],{"href":49},[3744,3745,3746],"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":695,"searchDepth":727,"depth":745,"links":3748},[3749,3750,3751,3757,3758,3763,3764,3768,3769],{"id":381,"depth":727,"text":382},{"id":535,"depth":727,"text":536},{"id":602,"depth":727,"text":412,"children":3752},[3753,3754,3755,3756],{"id":993,"depth":745,"text":994},{"id":1262,"depth":745,"text":1263},{"id":1310,"depth":745,"text":1311},{"id":1383,"depth":745,"text":1384},{"id":2035,"depth":727,"text":2036},{"id":2231,"depth":727,"text":430,"children":3759},[3760,3761,3762],{"id":2434,"depth":745,"text":994},{"id":2638,"depth":745,"text":2595},{"id":2667,"depth":745,"text":2668},{"id":2682,"depth":727,"text":447},{"id":2795,"depth":727,"text":2796,"children":3765},[3766,3767],{"id":3403,"depth":745,"text":3404},{"id":3473,"depth":745,"text":3474},{"id":3545,"depth":727,"text":3546},{"id":3717,"depth":727,"text":3718},"Enter a student for an exam, move them to another exam, withdraw them, and read their applications, with every rule and refusal in the order it's checked.","md",{},[3774,3775,3776,3777,3778,3779,3780],"listApplications","listExamApplications","listStudentApplications","getApplication","createApplication","moveApplication","deleteApplication","80",{"title":86,"description":3770},"api\u002Fguides\u002Fapplications","NkoR_avmnw8v8zd6djPlQj6S7FXoK19VoFAXVjlWSUY",[3786,3791,3794,3797,3800,3803,3806],{"operationId":3774,"slug":3787,"method":133,"path":3788,"tag":86,"summary":234,"deprecated":134,"public":134,"permission":3789,"scope":3790,"order":3244},"list-applications","\u002Fv1\u002F{organizationId}\u002Fapplication","application\u002Fread:$org:$ID","organization",{"operationId":3775,"slug":3792,"method":133,"path":3793,"tag":86,"summary":240,"deprecated":134,"public":134,"permission":3789,"scope":3790,"order":3268},"list-exam-applications","\u002Fv1\u002F{organizationId}\u002Fapplication\u002Fexam-applications\u002F{examId}",{"operationId":3776,"slug":3795,"method":133,"path":3796,"tag":86,"summary":243,"deprecated":134,"public":134,"permission":3789,"scope":3790,"order":3273},"list-student-applications","\u002Fv1\u002F{organizationId}\u002Fapplication\u002Fstudent-applications\u002F{studentId}",{"operationId":3777,"slug":3798,"method":133,"path":3799,"tag":86,"summary":246,"deprecated":134,"public":134,"permission":3789,"scope":3790,"order":3285},"get-application","\u002Fv1\u002F{organizationId}\u002Fapplication\u002F{applicationId}",{"operationId":3778,"slug":3801,"method":141,"path":3788,"tag":86,"summary":237,"deprecated":134,"public":134,"permission":3802,"scope":3790,"order":3257},"create-application","application\u002Fcreate:$org:$ID",{"operationId":3779,"slug":3804,"method":190,"path":3799,"tag":86,"summary":249,"deprecated":134,"public":134,"permission":3805,"scope":3790,"order":3293},"move-application","application\u002Fupdate:$org:$ID",{"operationId":3780,"slug":3807,"method":254,"path":3799,"tag":86,"summary":252,"deprecated":134,"public":134,"permission":3808,"scope":3790,"order":3305},"delete-application","application\u002Fdelete:$org:$ID",1791554615200]