[{"data":1,"prerenderedAt":831},["ShallowReactive",2],{"api-nav":3,"api-guide:\u002Fapi\u002Fsupport":351,"api-spec:guide:\u002Fapi\u002Fsupport":830},[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":345,"body":353,"description":821,"extension":822,"meta":823,"navTitle":345,"navigation":824,"operations":825,"order":826,"path":346,"section":332,"seo":827,"status":14,"stem":828,"__hash__":829},"apiGuides\u002Fapi\u002Fsupport.md",{"type":354,"value":355,"toc":807},"minimark",[356,369,374,377,408,412,415,474,477,487,504,507,511,594,599,603,609,650,654,665,676,679,684,714,718,735,739,766,770,776,798],[357,358,359,360,368],"p",{},"Write to ",[361,362,363],"strong",{},[364,365,367],"a",{"href":366},"mailto:info@main-team.org","info@main-team.org"," for anything about the API: access, roles, errors you cannot explain, security concerns, and feedback on this documentation.",[370,371,373],"h2",{"id":372},"before-you-write","Before you write",[357,375,376],{},"Many questions are answered faster here than by email:",[378,379,380,386,397,402],"ul",{},[381,382,383,385],"li",{},[364,384,342],{"href":343}," is organized by symptom and quotes the API's error messages exactly. Search it for the message you received.",[381,387,388,389,391,392,396],{},"The ",[364,390,42],{"href":43}," page explains every error code. The ",[393,394,395],"code",{},"documentation_url"," in an error links straight to its entry.",[381,398,388,399,401],{},[364,400,339],{"href":340}," covers access, tokens, students, exams, sign-in links, results and limits.",[381,403,388,404,407],{},[364,405,406],{"href":349},"changelog"," says what changed and when.",[370,409,411],{"id":410},"what-to-include","What to include",[357,413,414],{},"One request id is usually enough to find the problem. Put these in your message:",[416,417,418,430,435,445,459,465],"ol",{},[381,419,420,425,426,429],{},[361,421,388,422],{},[393,423,424],{},"request_id"," from the error body, or the ",[393,427,428],{},"X-Request-Id"," header of the response.",[381,431,432],{},[361,433,434],{},"The time of the request, in UTC.",[381,436,437,440,441,444],{},[361,438,439],{},"The operation."," Give its operationId, for example ",[393,442,443],{},"createApplication",", or the method and path.",[381,446,447,450,451,454,455,458],{},[361,448,449],{},"What you received."," The HTTP status, ",[393,452,453],{},"error.code"," and ",[393,456,457],{},"error.message",".",[381,460,461,464],{},[361,462,463],{},"What you expected",", and what you have already checked.",[381,466,467,473],{},[361,468,469,470,458],{},"Your company name and your ",[393,471,472],{},"apiKey"," The key is a public identifier and is safe to share.",[357,475,476],{},"A template you can copy:",[478,479,485],"pre",{"className":480,"code":482,"language":483,"meta":484},[481],"language-text","Subject: [API] 409 on createApplication\n\nCompany: Example Schools Ltd\napiKey: key_Q2x5c3RhbGxpbmVfZXhhbXBs\nOperation: createApplication — POST \u002Fv1\u002F\u003CorganizationId>\u002Fapplication\nTime (UTC): 2026-10-02 14:03:27\nrequest_id: 7c1e9a52-3f0b-4d8e-9a61-2b5d0c4e8f13\nReceived: 409 conflict — \"Exam is not available for grade 7. It accepts grade 8, 9.\"\nExpected: 201. The exam appeared in the student's available exams list at 14:01 UTC.\nAlready checked: the student's grade is 7 in GET \u002Fv1\u002Fstudent\u002F\u003CstudentId>.\n","text","",[393,486,482],{"__ignoreMap":484},[488,489,491],"callout",{"type":490},"danger",[357,492,493,494,497,498,503],{},"Never send your ",[393,495,496],{},"apiSecret",", a token, a sign-in link URL or a student's password, to us or anyone else. We will never ask for them. If you have sent one by mistake, revoke the token with ",[364,499,500],{"href":140},[393,501,502],{},"POST \u002Fv1\u002Fapi-account\u002Frevoke-token",", treat the link as used, and tell us if it was the secret.",[357,505,506],{},"Keep students' personal details, such as names, birth dates and addresses, out of your message. Their ids are enough for us to find the records.",[370,508,510],{"id":509},"response-times","Response times",[512,513,514,530],"table",{},[515,516,517],"thead",{},[518,519,520,524,527],"tr",{},[521,522,523],"th",{},"Kind of request",[521,525,526],{},"First response",[521,528,529],{},"Notes",[531,532,533,548,559,570,582],"tbody",{},[518,534,535,539,545],{},[536,537,538],"td",{},"Production outage: every request fails",[536,540,541],{},[542,543,544],"span",{},"to be confirmed",[536,546,547],{},"Include several request ids and times.",[518,549,550,553,557],{},[536,551,552],{},"Integration blocked: one operation fails for all students",[536,554,555],{},[542,556,544],{},[536,558],{},[518,560,561,564,568],{},[536,562,563],{},"Question, or a single failing request",[536,565,566],{},[542,567,544],{},[536,569],{},[518,571,572,575,579],{},[536,573,574],{},"Account changes: roles, new account, deactivation",[536,576,577],{},[542,578,544],{},[536,580,581],{},"Role changes take effect within a minute once an operator saves them.",[518,583,584,587,591],{},[536,585,586],{},"Security report",[536,588,589],{},[542,590,544],{},[536,592,593],{},"See below.",[357,595,596,597,458],{},"Support hours: ",[542,598,544],{},[370,600,602],{"id":601},"account-changes","Account changes",[357,604,605,606,608],{},"You cannot manage your API account yourself. An operator does it for you. Write to ",[364,607,367],{"href":366}," from a known contact at your organization to ask for any of these:",[378,610,611,620,626,632,641],{},[381,612,613,616,617,619],{},[361,614,615],{},"New or changed permissions."," Name the operations you need, or a profile from ",[364,618,25],{"href":26},". Changes reach every request within a minute.",[381,621,622,625],{},[361,623,624],{},"Deactivating the account."," Every token stops working within a minute.",[381,627,628,631],{},[361,629,630],{},"A new account."," A new account does not see the students the old account registered, because every student belongs to the account that registered them. Agree with us how to proceed before you switch.",[381,633,634,637,638,458],{},[361,635,636],{},"Access to the client libraries",", which are issued with your credentials. See ",[364,639,640],{"href":306},"Client libraries",[381,642,643,646,647,458],{},[361,644,645],{},"Sandbox access."," Sandbox accounts are separate from production ones, and an operator issues them on request. See ",[364,648,16],{"href":649},"\u002Fapi\u002Fenvironments#sandbox",[370,651,653],{"id":652},"security-reports","Security reports",[357,655,359,656,658,659,664],{},[364,657,367],{"href":366}," with a subject that starts with ",[361,660,661],{},[393,662,663],{},"[Security]",". Include:",[378,666,667,670,673],{},[381,668,669],{},"what you found,",[381,671,672],{},"how to reproduce it,",[381,674,675],{},"the request ids involved.",[357,677,678],{},"Do not include working credentials or real students' data. Please give us a reasonable time to fix the problem before you share it with anyone else.",[680,681,683],"h3",{"id":682},"if-your-apisecret-may-have-leaked","If your apiSecret may have leaked",[416,685,686,692,706],{},[381,687,688,691],{},[361,689,690],{},"Ask us to deactivate the account at once."," Within a minute, every token signed with that secret stops working.",[381,693,694,697,698,702,703,458],{},[361,695,696],{},"Revoke the tokens you know of"," with ",[364,699,700],{"href":140},[393,701,502],{},", if it helps you contain the problem. This works only while the account is still active, and only if it holds ",[393,704,705],{},"api\u002F*",[381,707,708,711,712,458],{},[361,709,710],{},"Agree the next step with us."," Secrets cannot be rotated, so recovery means a new account, and your existing students stay with the old one. See ",[364,713,51],{"href":52},[680,715,717],{"id":716},"if-a-sign-in-link-or-a-token-leaked","If a sign-in link or a token leaked",[378,719,720,726],{},[381,721,722,725],{},[361,723,724],{},"A token",": revoke it. Your secret and your other tokens are unaffected.",[381,727,728,731,732,734],{},[361,729,730],{},"A sign-in link",": it works once and for 120 seconds, so by the time you notice, it is almost always used or expired. If you think someone else used it to sign in as a student, tell us, with the time and the ",[393,733,424],{}," of the call that created it.",[370,736,738],{"id":737},"service-status","Service status",[378,740,741,753,761],{},[381,742,743,748,749,752],{},[364,744,745],{"href":132},[393,746,747],{},"GET \u002Fv1\u002Fhealth"," needs no token and doesn't count against your account's rate limit. It answers ",[393,750,751],{},"200"," while the API is running. Use it for uptime monitoring.",[381,754,755,756,458],{},"To check your whole integration, including your token and your roles, call ",[364,757,758],{"href":144},[393,759,760],{},"GET \u002Fv1\u002Fapi-account\u002Fvalidate-me",[381,762,763,764,458],{},"Status page: ",[542,765,544],{},[370,767,769],{"id":768},"changes-and-deprecations","Changes and deprecations",[357,771,772,773,775],{},"We announce changes in the ",[364,774,406],{"href":349},". Before anything is removed:",[378,777,778,785,795],{},[381,779,780,781,784],{},"it is announced at least ",[361,782,783],{},"6 months"," ahead,",[381,786,787,788,454,791,794],{},"the affected responses carry ",[393,789,790],{},"Deprecation",[393,792,793],{},"Sunset"," headers, and",[381,796,797],{},"removals happen only in a new major version.",[357,799,800,801,804,805,458],{},"Every path stays under ",[393,802,803],{},"\u002Fv1"," for the whole of version 1. See ",[364,806,54],{"href":55},{"title":484,"searchDepth":808,"depth":809,"links":810},2,3,[811,812,813,814,815,819,820],{"id":372,"depth":808,"text":373},{"id":410,"depth":808,"text":411},{"id":509,"depth":808,"text":510},{"id":601,"depth":808,"text":602},{"id":652,"depth":808,"text":653,"children":816},[817,818],{"id":682,"depth":809,"text":683},{"id":716,"depth":809,"text":717},{"id":737,"depth":808,"text":738},{"id":768,"depth":808,"text":769},"How to reach Main Team about the API, what to include so we can help quickly, how to report a security problem, and how account changes are requested.","md",{},true,[],"40",{"title":345,"description":821},"api\u002Fsupport","n7kCT5btA8BfrKaUprdT7NNwZ9WWnpZnzF_hMO7Q9n4",[],1791554615414]