[{"data":1,"prerenderedAt":1898},["ShallowReactive",2],{"api-nav":3,"api-spec:index":351,"api-spec:op:submit-group-challenge-step":636,"api-permissions-guide":1206,"api-reference-doc:submit-group-challenge-step":1207},[4,28,57,95,115,301,317,331],{"id":5,"title":6,"links":7,"groups":27},"start","Start here",[8,11,15,18,21,24],{"title":9,"to":10},"Overview","\u002Fapi",{"title":12,"to":13,"status":14},"Quickstart","\u002Fapi\u002Fquickstart","available",{"title":16,"to":17,"status":14},"Environments","\u002Fapi\u002Fenvironments",{"title":19,"to":20,"status":14},"Authentication","\u002Fapi\u002Fauthentication",{"title":22,"to":23,"status":14},"Organizations","\u002Fapi\u002Forganizations",{"title":25,"to":26,"status":14},"Permissions","\u002Fapi\u002Fpermissions",[],{"id":29,"title":30,"links":31,"groups":56},"concepts","Concepts",[32,35,38,41,44,47,50,53],{"title":33,"to":34,"status":14},"Requests and responses","\u002Fapi\u002Frequests-and-responses",{"title":36,"to":37,"status":14},"Identifiers","\u002Fapi\u002Fidentifiers",{"title":39,"to":40,"status":14},"Pagination","\u002Fapi\u002Fpagination",{"title":42,"to":43},"Errors","\u002Fapi\u002Ferrors",{"title":45,"to":46,"status":14},"Rate limits","\u002Fapi\u002Frate-limits",{"title":48,"to":49,"status":14},"Retries","\u002Fapi\u002Fretries-and-idempotency",{"title":51,"to":52,"status":14},"Security","\u002Fapi\u002Fsecurity",{"title":54,"to":55,"status":14},"Versioning","\u002Fapi\u002Fversioning",[],{"id":58,"title":59,"links":60,"groups":94},"resources","Guides",[61,64,67,70,73,76,79,82,85,88,91],{"title":62,"to":63,"status":14},"Students","\u002Fapi\u002Fguides\u002Fstudents",{"title":65,"to":66,"status":14},"Bulk registration","\u002Fapi\u002Fguides\u002Fbulk-registration",{"title":68,"to":69,"status":14},"Passwords","\u002Fapi\u002Fguides\u002Fpasswords",{"title":71,"to":72,"status":14},"Supervisors","\u002Fapi\u002Fguides\u002Fsupervisors",{"title":74,"to":75,"status":14},"Reference data","\u002Fapi\u002Fguides\u002Freference-data",{"title":77,"to":78,"status":14},"API account","\u002Fapi\u002Fguides\u002Fapi-account",{"title":80,"to":81,"status":14},"Sign-in links","\u002Fapi\u002Fguides\u002Fsign-in-links",{"title":83,"to":84,"status":14},"Exams","\u002Fapi\u002Fguides\u002Fexams",{"title":86,"to":87,"status":14},"Applications","\u002Fapi\u002Fguides\u002Fapplications",{"title":89,"to":90,"status":14},"Group challenges","\u002Fapi\u002Fguides\u002Fgroup-challenges",{"title":92,"to":93,"status":14},"Certificates and reports","\u002Fapi\u002Fguides\u002Fcertificates-and-reports",[],{"id":96,"title":97,"links":98,"groups":114},"tutorials","Tutorials",[99,102,105,108,111],{"title":100,"to":101,"status":14},"Register and apply","\u002Fapi\u002Ftutorials\u002Fregister-and-apply",{"title":103,"to":104,"status":14},"Send a student to the panel","\u002Fapi\u002Ftutorials\u002Fsend-student-to-panel",{"title":106,"to":107,"status":14},"Change an application","\u002Fapi\u002Ftutorials\u002Fchange-an-application",{"title":109,"to":110,"status":14},"Collect results","\u002Fapi\u002Ftutorials\u002Fcollect-results",{"title":112,"to":113,"status":14},"Token handling","\u002Fapi\u002Ftutorials\u002Ftoken-handling",[],{"id":116,"title":117,"links":118,"groups":125},"reference","Reference",[119,122],{"title":120,"to":121},"All endpoints","\u002Fapi\u002Freference",{"title":123,"to":124},"Sandbox console","\u002Fapi\u002Fconsole",[126,135,145,166,206,212,230,255,271],{"tag":127,"slug":128,"links":129},"Health","health",[130],{"title":131,"to":132,"method":133,"deprecated":134},"Check that the API is up","\u002Fapi\u002Freference\u002Fget-health","GET",false,{"tag":77,"slug":136,"links":137},"api-account",[138,142],{"title":139,"to":140,"method":141,"deprecated":134},"Revoke the token you send, before it expires","\u002Fapi\u002Freference\u002Frevoke-token","POST",{"title":143,"to":144,"method":133,"deprecated":134},"Fetch the API account your token belongs to","\u002Fapi\u002Freference\u002Fget-current-api-account",{"tag":74,"slug":146,"links":147},"reference-data",[148,151,154,157,160,163],{"title":149,"to":150,"method":133,"deprecated":134},"List the countries a student can be registered in","\u002Fapi\u002Freference\u002Flist-countries",{"title":152,"to":153,"method":133,"deprecated":134},"Fetch one country by its id","\u002Fapi\u002Freference\u002Fget-country",{"title":155,"to":156,"method":133,"deprecated":134},"List the grades a student can be registered with","\u002Fapi\u002Freference\u002Flist-grades",{"title":158,"to":159,"method":133,"deprecated":134},"Fetch one grade by its id","\u002Fapi\u002Freference\u002Fget-grade",{"title":161,"to":162,"method":133,"deprecated":134},"List the organizations and their ids","\u002Fapi\u002Freference\u002Flist-organizations",{"title":164,"to":165,"method":133,"deprecated":134},"Fetch one organization by its id","\u002Fapi\u002Freference\u002Fget-organization",{"tag":62,"slug":167,"links":168},"students",[169,172,175,178,181,184,187,191,194,197,200,203],{"title":170,"to":171,"method":133,"deprecated":134},"List your students","\u002Fapi\u002Freference\u002Flist-students",{"title":173,"to":174,"method":141,"deprecated":134},"Register a student","\u002Fapi\u002Freference\u002Fregister-student",{"title":176,"to":177,"method":141,"deprecated":134},"Check a registration without registering the student","\u002Fapi\u002Freference\u002Fcheck-student-registration",{"title":179,"to":180,"method":141,"deprecated":134},"Register many students at once","\u002Fapi\u002Freference\u002Fcreate-student-import",{"title":182,"to":183,"method":133,"deprecated":134},"Follow a batch of students you sent","\u002Fapi\u002Freference\u002Fget-student-import",{"title":185,"to":186,"method":133,"deprecated":134},"Fetch one of your students","\u002Fapi\u002Freference\u002Fget-student",{"title":188,"to":189,"method":190,"deprecated":134},"Update one of your students","\u002Fapi\u002Freference\u002Fupdate-student","PUT",{"title":192,"to":193,"method":190,"deprecated":134},"Set the sign-in password of one of your students","\u002Fapi\u002Freference\u002Fset-student-password",{"title":195,"to":196,"method":133,"deprecated":134},"List your students who can use this organization","\u002Fapi\u002Freference\u002Flist-org-students",{"title":198,"to":199,"method":133,"deprecated":134},"Fetch one of your students, if they can use this organization","\u002Fapi\u002Freference\u002Fget-org-student",{"title":201,"to":202,"method":190,"deprecated":134},"Update one of your students and give them access to this organization","\u002Fapi\u002Freference\u002Fupdate-org-student",{"title":204,"to":205,"method":190,"deprecated":134},"Link one of your students to a supervisor on this organization","\u002Fapi\u002Freference\u002Flink-student-supervisor",{"tag":80,"slug":207,"links":208},"sign-in-links",[209],{"title":210,"to":211,"method":141,"deprecated":134},"Create a single-use sign-in link for one of your students","\u002Fapi\u002Freference\u002Fcreate-signin-link",{"tag":83,"slug":213,"links":214},"exams",[215,218,221,224,227],{"title":216,"to":217,"method":133,"deprecated":134},"List the exams open for applications","\u002Fapi\u002Freference\u002Flist-exams",{"title":219,"to":220,"method":133,"deprecated":134},"List an organization’s exam categories","\u002Fapi\u002Freference\u002Flist-exam-categories",{"title":222,"to":223,"method":133,"deprecated":134},"Fetch one exam category","\u002Fapi\u002Freference\u002Fget-exam-category",{"title":225,"to":226,"method":133,"deprecated":134},"List the exams one of your students can apply to","\u002Fapi\u002Freference\u002Flist-available-exams",{"title":228,"to":229,"method":133,"deprecated":134},"Fetch one exam that is open for applications","\u002Fapi\u002Freference\u002Fget-exam",{"tag":86,"slug":231,"links":232},"applications",[233,236,239,242,245,248,251],{"title":234,"to":235,"method":133,"deprecated":134},"List your students’ applications in this organization","\u002Fapi\u002Freference\u002Flist-applications",{"title":237,"to":238,"method":141,"deprecated":134},"Enter one of your students for an exam","\u002Fapi\u002Freference\u002Fcreate-application",{"title":240,"to":241,"method":133,"deprecated":134},"List your students’ applications for one exam","\u002Fapi\u002Freference\u002Flist-exam-applications",{"title":243,"to":244,"method":133,"deprecated":134},"List one of your students’ applications in this organization","\u002Fapi\u002Freference\u002Flist-student-applications",{"title":246,"to":247,"method":133,"deprecated":134},"Fetch one of your students’ applications","\u002Fapi\u002Freference\u002Fget-application",{"title":249,"to":250,"method":190,"deprecated":134},"Move one of your students’ applications to another exam","\u002Fapi\u002Freference\u002Fmove-application",{"title":252,"to":253,"method":254,"deprecated":134},"Withdraw one of your students from an exam","\u002Fapi\u002Freference\u002Fdelete-application","DELETE",{"tag":256,"slug":257,"links":258},"Documents","documents",[259,262,265,268],{"title":260,"to":261,"method":133,"deprecated":134},"Download a certificate file","\u002Fapi\u002Freference\u002Fdownload-certificate",{"title":263,"to":264,"method":133,"deprecated":134},"List one of your students’ released certificates","\u002Fapi\u002Freference\u002Flist-student-certificates",{"title":266,"to":267,"method":133,"deprecated":134},"Download a result report file","\u002Fapi\u002Freference\u002Fdownload-report",{"title":269,"to":270,"method":133,"deprecated":134},"List one of your students’ released result reports","\u002Fapi\u002Freference\u002Flist-student-reports",{"tag":89,"slug":272,"links":273},"group-challenges",[274,277,280,283,286,289,292,295,298],{"title":275,"to":276,"method":133,"deprecated":134},"List the group challenges an organization runs","\u002Fapi\u002Freference\u002Flist-group-challenges",{"title":278,"to":279,"method":133,"deprecated":134},"Fetch one group challenge","\u002Fapi\u002Freference\u002Fget-group-challenge",{"title":281,"to":282,"method":133,"deprecated":134},"List the groups your students are in for a group challenge","\u002Fapi\u002Freference\u002Flist-group-challenge-groups",{"title":284,"to":285,"method":133,"deprecated":134},"Fetch one group, with its steps and files","\u002Fapi\u002Freference\u002Fget-group-challenge-group",{"title":287,"to":288,"method":133,"deprecated":134},"List what has happened in one group","\u002Fapi\u002Freference\u002Flist-group-challenge-activity",{"title":290,"to":291,"method":141,"deprecated":134},"Send a group’s finished work for one of your students","\u002Fapi\u002Freference\u002Fsubmit-group-challenge-work",{"title":293,"to":294,"method":141,"deprecated":134},"Submit one step of a group for one of your students","\u002Fapi\u002Freference\u002Fsubmit-group-challenge-step",{"title":296,"to":297,"method":133,"deprecated":134},"List your students’ eligibility and groups for a group challenge","\u002Fapi\u002Freference\u002Flist-group-challenge-students",{"title":299,"to":300,"method":133,"deprecated":134},"Fetch one of your students’ eligibility and group for a group challenge","\u002Fapi\u002Freference\u002Fget-group-challenge-student",{"id":302,"title":303,"links":304,"groups":316},"clients","Clients",[305,307,310,313],{"title":9,"to":306,"status":14},"\u002Fapi\u002Fclients",{"title":308,"to":309,"status":14},"Node.js","\u002Fapi\u002Fclients\u002Fnode",{"title":311,"to":312,"status":14},"PHP","\u002Fapi\u002Fclients\u002Fphp",{"title":314,"to":315,"status":14},"Build your own","\u002Fapi\u002Fclients\u002Fbuild-your-own",[],{"id":318,"title":319,"links":320,"groups":330},"agents","AI agents",[321,324,327],{"title":322,"to":323},"AI connections","\u002Fapi\u002Fmcp",{"title":325,"to":326},"What it can do","\u002Fapi\u002Fmcp\u002Ftools",{"title":328,"to":329},"Agent skills","\u002Fapi\u002Fskills",[],{"id":332,"title":333,"links":334,"groups":350},"help","Help",[335,338,341,344,347],{"title":336,"to":337,"status":14},"Glossary","\u002Fapi\u002Fglossary",{"title":339,"to":340,"status":14},"FAQ","\u002Fapi\u002Ffaq",{"title":342,"to":343,"status":14},"Troubleshooting","\u002Fapi\u002Ftroubleshooting",{"title":345,"to":346,"status":14},"Support","\u002Fapi\u002Fsupport",{"title":348,"to":349},"Changelog","\u002Fapi\u002Fchangelog",[],{"title":352,"version":353,"description":354,"baseUrl":355,"groups":356},"Main Team API","1.2.0","Register your students, enter them for exams, follow their applications, download their certificates and reports, and sign them in to an organization’s panel.\n\nEvery operation except the health check needs a bearer token: a JWT you sign yourself with HS256 and your account’s `apiSecret`. Put your `apiKey` in both the `kid` header and the `sub` claim, and set `iat` and `exp` at most 3600 seconds apart. Every authentication failure answers the same `401 unauthorized`.","https:\u002F\u002Fapi.main-team.org",[357,368,383,419,484,492,522,561,586],{"tag":127,"slug":128,"description":358,"guide":17,"operations":359},"Whether the API is up. No token needed, so it is the first call to make against an environment.",[360],{"operationId":361,"slug":362,"method":133,"path":363,"tag":127,"summary":131,"deprecated":134,"public":364,"permission":365,"scope":366,"order":367},"getHealth","get-health","\u002Fv1\u002Fhealth",true,null,"public",1,{"tag":77,"slug":136,"description":369,"guide":78,"operations":370},"The account your token belongs to, and revoking a token before it expires.",[371,378],{"operationId":372,"slug":373,"method":141,"path":374,"tag":77,"summary":139,"deprecated":134,"public":134,"permission":375,"scope":376,"order":377},"revokeToken","revoke-token","\u002Fv1\u002Fapi-account\u002Frevoke-token","api\u002F*:$org:$ID","flat",2,{"operationId":379,"slug":380,"method":133,"path":381,"tag":77,"summary":143,"deprecated":134,"public":134,"permission":375,"scope":376,"order":382},"getCurrentApiAccount","get-current-api-account","\u002Fv1\u002Fapi-account\u002Fvalidate-me",3,{"tag":74,"slug":146,"description":384,"guide":75,"operations":385},"Countries, grades and organizations. A student’s `country` and `grade` take these `_id`s, and so does every `:organizationId` in a path.",[386,392,397,403,408,414],{"operationId":387,"slug":388,"method":133,"path":389,"tag":74,"summary":149,"deprecated":134,"public":134,"permission":390,"scope":376,"order":391},"listCountries","list-countries","\u002Fv1\u002Fcountry","country\u002Fread:$org:$ID",4,{"operationId":393,"slug":394,"method":133,"path":395,"tag":74,"summary":152,"deprecated":134,"public":134,"permission":390,"scope":376,"order":396},"getCountry","get-country","\u002Fv1\u002Fcountry\u002F{id}",5,{"operationId":398,"slug":399,"method":133,"path":400,"tag":74,"summary":155,"deprecated":134,"public":134,"permission":401,"scope":376,"order":402},"listGrades","list-grades","\u002Fv1\u002Fgrade","grade\u002Fread:$org:$ID",6,{"operationId":404,"slug":405,"method":133,"path":406,"tag":74,"summary":158,"deprecated":134,"public":134,"permission":401,"scope":376,"order":407},"getGrade","get-grade","\u002Fv1\u002Fgrade\u002F{id}",7,{"operationId":409,"slug":410,"method":133,"path":411,"tag":74,"summary":161,"deprecated":134,"public":134,"permission":412,"scope":376,"order":413},"listOrganizations","list-organizations","\u002Fv1\u002Forganization","organization\u002Fread:$org:$ID",8,{"operationId":415,"slug":416,"method":133,"path":417,"tag":74,"summary":164,"deprecated":134,"public":134,"permission":412,"scope":376,"order":418},"getOrganization","get-organization","\u002Fv1\u002Forganization\u002F{id}",9,{"tag":62,"slug":167,"description":420,"guide":63,"operations":421},"Registering your students, reading and updating them, setting a password, and what each organization holds for them. You only ever see the students your account registered.",[422,428,433,438,443,448,453,458,464,470,475,479],{"operationId":423,"slug":424,"method":133,"path":425,"tag":62,"summary":170,"deprecated":134,"public":134,"permission":426,"scope":376,"order":427},"listStudents","list-students","\u002Fv1\u002Fstudent","student\u002Fread:$org:$ID",10,{"operationId":429,"slug":430,"method":141,"path":425,"tag":62,"summary":173,"deprecated":134,"public":134,"permission":431,"scope":376,"order":432},"registerStudent","register-student","student\u002Fcreate:$org:$ID",11,{"operationId":434,"slug":435,"method":141,"path":436,"tag":62,"summary":176,"deprecated":134,"public":134,"permission":431,"scope":376,"order":437},"checkStudentRegistration","check-student-registration","\u002Fv1\u002Fstudent\u002Fcheck",12,{"operationId":439,"slug":440,"method":141,"path":441,"tag":62,"summary":179,"deprecated":134,"public":134,"permission":431,"scope":376,"order":442},"createStudentImport","create-student-import","\u002Fv1\u002Fstudent\u002Fimport",13,{"operationId":444,"slug":445,"method":133,"path":446,"tag":62,"summary":182,"deprecated":134,"public":134,"permission":431,"scope":376,"order":447},"getStudentImport","get-student-import","\u002Fv1\u002Fstudent\u002Fimport\u002F{importId}",14,{"operationId":449,"slug":450,"method":133,"path":451,"tag":62,"summary":185,"deprecated":134,"public":134,"permission":426,"scope":376,"order":452},"getStudent","get-student","\u002Fv1\u002Fstudent\u002F{studentId}",15,{"operationId":454,"slug":455,"method":190,"path":451,"tag":62,"summary":188,"deprecated":134,"public":134,"permission":456,"scope":376,"order":457},"updateStudent","update-student","student\u002Fupdate:$org:$ID",16,{"operationId":459,"slug":460,"method":190,"path":461,"tag":62,"summary":192,"deprecated":134,"public":134,"permission":462,"scope":376,"order":463},"setStudentPassword","set-student-password","\u002Fv1\u002Fstudent\u002F{studentId}\u002Fpassword","auth\u002Fsignin:$org:$ID",17,{"operationId":465,"slug":466,"method":133,"path":467,"tag":62,"summary":195,"deprecated":134,"public":134,"permission":426,"scope":468,"order":469},"listOrgStudents","list-org-students","\u002Fv1\u002F{organizationId}\u002Fstudent","organization",18,{"operationId":471,"slug":472,"method":133,"path":473,"tag":62,"summary":198,"deprecated":134,"public":134,"permission":426,"scope":468,"order":474},"getOrgStudent","get-org-student","\u002Fv1\u002F{organizationId}\u002Fstudent\u002F{studentId}",19,{"operationId":476,"slug":477,"method":190,"path":473,"tag":62,"summary":201,"deprecated":134,"public":134,"permission":456,"scope":468,"order":478},"updateOrgStudent","update-org-student",20,{"operationId":480,"slug":481,"method":190,"path":482,"tag":62,"summary":204,"deprecated":134,"public":134,"permission":456,"scope":468,"order":483},"linkStudentSupervisor","link-student-supervisor","\u002Fv1\u002F{organizationId}\u002Fstudent\u002F{studentId}\u002Fsupervisor",21,{"tag":80,"slug":207,"description":485,"guide":81,"operations":486},"Links that sign one of your students into an organization’s panel. Each works once and expires two minutes after it is issued.",[487],{"operationId":488,"slug":489,"method":141,"path":490,"tag":80,"summary":210,"deprecated":134,"public":134,"permission":462,"scope":468,"order":491},"createSigninLink","create-signin-link","\u002Fv1\u002F{organizationId}\u002Fauth\u002Fsignin",22,{"tag":83,"slug":213,"description":493,"guide":84,"operations":494},"The exam categories and exams an organization runs, and the ones one of your students can apply to.",[495,501,507,512,517],{"operationId":496,"slug":497,"method":133,"path":498,"tag":83,"summary":216,"deprecated":134,"public":134,"permission":499,"scope":468,"order":500},"listExams","list-exams","\u002Fv1\u002F{organizationId}\u002Fexam","exam\u002Fread:$org:$ID",23,{"operationId":502,"slug":503,"method":133,"path":504,"tag":83,"summary":219,"deprecated":134,"public":134,"permission":505,"scope":468,"order":506},"listExamCategories","list-exam-categories","\u002Fv1\u002F{organizationId}\u002Fexam-category","exam-category\u002Fread:$org:$ID",24,{"operationId":508,"slug":509,"method":133,"path":510,"tag":83,"summary":222,"deprecated":134,"public":134,"permission":505,"scope":468,"order":511},"getExamCategory","get-exam-category","\u002Fv1\u002F{organizationId}\u002Fexam-category\u002F{categoryId}",25,{"operationId":513,"slug":514,"method":133,"path":515,"tag":83,"summary":225,"deprecated":134,"public":134,"permission":499,"scope":468,"order":516},"listAvailableExams","list-available-exams","\u002Fv1\u002F{organizationId}\u002Fexam\u002Favailable\u002F{studentId}",26,{"operationId":518,"slug":519,"method":133,"path":520,"tag":83,"summary":228,"deprecated":134,"public":134,"permission":499,"scope":468,"order":521},"getExam","get-exam","\u002Fv1\u002F{organizationId}\u002Fexam\u002F{examId}",27,{"tag":86,"slug":231,"description":523,"guide":87,"operations":524},"Entering your students for exams: creating, reading, moving and deleting their applications.",[525,531,536,541,546,551,556],{"operationId":526,"slug":527,"method":133,"path":528,"tag":86,"summary":234,"deprecated":134,"public":134,"permission":529,"scope":468,"order":530},"listApplications","list-applications","\u002Fv1\u002F{organizationId}\u002Fapplication","application\u002Fread:$org:$ID",28,{"operationId":532,"slug":533,"method":141,"path":528,"tag":86,"summary":237,"deprecated":134,"public":134,"permission":534,"scope":468,"order":535},"createApplication","create-application","application\u002Fcreate:$org:$ID",29,{"operationId":537,"slug":538,"method":133,"path":539,"tag":86,"summary":240,"deprecated":134,"public":134,"permission":529,"scope":468,"order":540},"listExamApplications","list-exam-applications","\u002Fv1\u002F{organizationId}\u002Fapplication\u002Fexam-applications\u002F{examId}",30,{"operationId":542,"slug":543,"method":133,"path":544,"tag":86,"summary":243,"deprecated":134,"public":134,"permission":529,"scope":468,"order":545},"listStudentApplications","list-student-applications","\u002Fv1\u002F{organizationId}\u002Fapplication\u002Fstudent-applications\u002F{studentId}",31,{"operationId":547,"slug":548,"method":133,"path":549,"tag":86,"summary":246,"deprecated":134,"public":134,"permission":529,"scope":468,"order":550},"getApplication","get-application","\u002Fv1\u002F{organizationId}\u002Fapplication\u002F{applicationId}",32,{"operationId":552,"slug":553,"method":190,"path":549,"tag":86,"summary":249,"deprecated":134,"public":134,"permission":554,"scope":468,"order":555},"moveApplication","move-application","application\u002Fupdate:$org:$ID",33,{"operationId":557,"slug":558,"method":254,"path":549,"tag":86,"summary":252,"deprecated":134,"public":134,"permission":559,"scope":468,"order":560},"deleteApplication","delete-application","application\u002Fdelete:$org:$ID",34,{"tag":256,"slug":257,"description":562,"guide":93,"operations":563},"Your students’ certificates and reports: listing them and downloading the files.",[564,570,575,581],{"operationId":565,"slug":566,"method":133,"path":567,"tag":256,"summary":260,"deprecated":134,"public":134,"permission":568,"scope":468,"order":569},"downloadCertificate","download-certificate","\u002Fv1\u002F{organizationId}\u002Fcertificate\u002Fdownload\u002F{certificateId}","certificate\u002Fread:$org:$ID",35,{"operationId":571,"slug":572,"method":133,"path":573,"tag":256,"summary":263,"deprecated":134,"public":134,"permission":568,"scope":468,"order":574},"listStudentCertificates","list-student-certificates","\u002Fv1\u002F{organizationId}\u002Fcertificate\u002F{userId}",36,{"operationId":576,"slug":577,"method":133,"path":578,"tag":256,"summary":266,"deprecated":134,"public":134,"permission":579,"scope":468,"order":580},"downloadReport","download-report","\u002Fv1\u002F{organizationId}\u002Freport\u002Fdownload\u002F{reportId}","report\u002Fread:$org:$ID",37,{"operationId":582,"slug":583,"method":133,"path":584,"tag":256,"summary":269,"deprecated":134,"public":134,"permission":579,"scope":468,"order":585},"listStudentReports","list-student-reports","\u002Fv1\u002F{organizationId}\u002Freport\u002F{userId}",38,{"tag":89,"slug":272,"description":587,"guide":90,"operations":588},"Online group challenges your students take part in: the challenges, which of your students can join, the groups they are in, each step and its files, what happened in a group, and submitting on your student’s behalf.",[589,595,600,605,610,615,621,626,631],{"operationId":590,"slug":591,"method":133,"path":592,"tag":89,"summary":275,"deprecated":134,"public":134,"permission":593,"scope":468,"order":594},"listGroupChallenges","list-group-challenges","\u002Fv1\u002F{organizationId}\u002Fgroup-challenge","group-challenge\u002Fread:$org:$ID",39,{"operationId":596,"slug":597,"method":133,"path":598,"tag":89,"summary":278,"deprecated":134,"public":134,"permission":593,"scope":468,"order":599},"getGroupChallenge","get-group-challenge","\u002Fv1\u002F{organizationId}\u002Fgroup-challenge\u002F{challengeId}",40,{"operationId":601,"slug":602,"method":133,"path":603,"tag":89,"summary":281,"deprecated":134,"public":134,"permission":593,"scope":468,"order":604},"listGroupChallengeGroups","list-group-challenge-groups","\u002Fv1\u002F{organizationId}\u002Fgroup-challenge\u002F{challengeId}\u002Fgroup",41,{"operationId":606,"slug":607,"method":133,"path":608,"tag":89,"summary":284,"deprecated":134,"public":134,"permission":593,"scope":468,"order":609},"getGroupChallengeGroup","get-group-challenge-group","\u002Fv1\u002F{organizationId}\u002Fgroup-challenge\u002F{challengeId}\u002Fgroup\u002F{groupId}",42,{"operationId":611,"slug":612,"method":133,"path":613,"tag":89,"summary":287,"deprecated":134,"public":134,"permission":593,"scope":468,"order":614},"listGroupChallengeActivity","list-group-challenge-activity","\u002Fv1\u002F{organizationId}\u002Fgroup-challenge\u002F{challengeId}\u002Fgroup\u002F{groupId}\u002Factivity",43,{"operationId":616,"slug":617,"method":141,"path":618,"tag":89,"summary":290,"deprecated":134,"public":134,"permission":619,"scope":468,"order":620},"submitGroupChallengeWork","submit-group-challenge-work","\u002Fv1\u002F{organizationId}\u002Fgroup-challenge\u002F{challengeId}\u002Fgroup\u002F{groupId}\u002Ffinal-submit","group-challenge\u002Fsubmit:$org:$ID",44,{"operationId":622,"slug":623,"method":141,"path":624,"tag":89,"summary":293,"deprecated":134,"public":134,"permission":619,"scope":468,"order":625},"submitGroupChallengeStep","submit-group-challenge-step","\u002Fv1\u002F{organizationId}\u002Fgroup-challenge\u002F{challengeId}\u002Fgroup\u002F{groupId}\u002Fstep\u002F{stepId}\u002Fsubmit",45,{"operationId":627,"slug":628,"method":133,"path":629,"tag":89,"summary":296,"deprecated":134,"public":134,"permission":593,"scope":468,"order":630},"listGroupChallengeStudents","list-group-challenge-students","\u002Fv1\u002F{organizationId}\u002Fgroup-challenge\u002F{challengeId}\u002Fstudent",46,{"operationId":632,"slug":633,"method":133,"path":634,"tag":89,"summary":299,"deprecated":134,"public":134,"permission":593,"scope":468,"order":635},"getGroupChallengeStudent","get-group-challenge-student","\u002Fv1\u002F{organizationId}\u002Fgroup-challenge\u002F{challengeId}\u002Fstudent\u002F{studentId}",47,{"operationId":622,"slug":623,"method":141,"path":624,"tag":89,"summary":293,"deprecated":134,"public":134,"permission":619,"scope":468,"order":625,"description":637,"permissions":638,"errors":639,"guide":365,"parameters":742,"requestBody":763,"responses":776,"successStatus":1204,"kind":1205,"paginated":134,"baseUrl":355,"tagDescription":587,"sandbox":364},"Submits the open step of a group, for one of your students who is a member of it, exactly as the student would in the panel: the files uploaded for the step are submitted with it, and the next step opens. The members upload the work in the panel or the app; this API does not upload. Read the group first: a step’s `canSubmit` says whether this would be accepted now.\n\nThe body names the student you act for: `{ \"studentId\": \"\u003CstudentId>\" }`. The group’s history records the submit as your account (`partner`) acting for them.\n\n**Checks, in order.** The first that fails decides the answer, and nothing is written for any of them.\n\n1. The student is yours (`404`), and has signed in to this organization once (`409`).\n2. The challenge exists and is published or closed (`404`).\n3. The group belongs to the challenge and the student is an active member of it (`404`).\n4. The step has not been submitted already. If it has, the answer is `200` with `changed: false` and \"Step already submitted.\", and nothing changes, so a retry after a timeout is safe.\n5. The challenge is published (`409`, `challenge_closed`) and now is between `windowStart` and `windowEnd` (`409`, `window_closed`).\n6. The teacher has confirmed the group (`409`, `payment_pending` or `group_not_confirmed`).\n7. The group has this step (`404`).\n8. The step is open, not `locked` (`409`, `step_locked`).\n9. At least one file has been uploaded for it (`409`, `step_empty`). Do not retry this one in a loop: a member uploads the work first.\n\nEvery `409` carries `error.details.reason`, one of the codes above; branch on it, not on the message.\n\n**Side effects.** The step becomes `submitted`, and its uploaded files with it. An upload still running for the step is stopped. The next step, if there is one, opens. An entry is added to the group’s history, and a second one when the next step opens.\n\n**Busy.** A group is changed by one request at a time. If someone is changing it at that moment the answer is `503` with `Retry-After: 1` and `details.reason: busy`, and nothing was written: send the same request again.",[619],[640,644,647,650,653,657,662,667,669,672,675,678,681,685,690,697,702,707,712,717,722,727,731,735],{"code":641,"status":642,"when":643},"bad_request",400,"The body is not valid JSON, breaks a field’s rules, or has a field this operation does not accept (\"property \u003Cname> should not exist\").",{"code":641,"message":645,"status":642,"when":646},"Invalid value for 'challengeId': expected ObjectId.","`challengeId` is not 24 hexadecimal digits.",{"code":641,"message":648,"status":642,"when":649},"Invalid value for 'groupId': expected ObjectId.","`groupId` is not 24 hexadecimal digits.",{"code":641,"message":651,"status":642,"when":652},"Invalid value for 'stepId': expected ObjectId.","`stepId` is not 24 hexadecimal digits.",{"code":654,"status":655,"when":656},"unauthorized",401,"The token is missing or malformed, is not signed with your account’s `apiSecret`, breaks the `iat` and `exp` rules, has expired or been revoked, or its account is not active. All of these answer the same.",{"code":658,"message":659,"status":660,"when":661},"forbidden","Insufficient role permissions",403,"The token is valid, but no role on your account allows `group-challenge\u002Fsubmit` on the organization in the path, or a role denies it.",{"code":663,"message":664,"status":665,"when":666},"not_found","Organization not found!",404,"`organizationId` is not the `_id` of an organization.",{"code":663,"status":665,"when":668},"Group challenges are not switched on for this organization. The answer is the one an unknown path gets; nothing was read.",{"code":663,"message":670,"status":665,"when":671},"Student not found!","No student of yours has this id: it matches nobody, or another account registered the student.",{"code":663,"message":673,"status":665,"when":674},"Group challenge not found!","No group challenge of this organization has this id, or it is not published: a draft, archived or deleted challenge answers the same.",{"code":663,"message":676,"status":665,"when":677},"Group not found!","No group of this challenge has this id with the student as an active member: a missing group, a deleted one and one the student is not in get the same answer.",{"code":663,"message":679,"status":665,"when":680},"Step not found!","The group has no step with this id. A group has its steps once the teacher confirms it.",{"code":682,"status":683,"when":684},"conflict",409,"The student has never signed in to this organization, so it holds no record of them yet. Send them a sign-in link (`createSigninLink`), and try again once they have used it.",{"code":682,"details":686,"message":688,"status":683,"when":689},{"reason":687},"challenge_closed","This group challenge is closed.","The organizers have closed the challenge (`status: closed`).",{"code":682,"details":691,"message":695,"status":683,"when":696},{"reason":692,"windowEnd":693,"windowStart":694},"window_closed","2026-12-21T23:59:59.999Z","2026-10-01T00:00:00.000Z","The group challenge takes no submissions outside its dates (windowStart to windowEnd).","Now is before `windowStart` or after `windowEnd`. `details` carries both.",{"code":682,"details":698,"message":700,"status":683,"when":701},{"reason":699},"payment_pending","The group is still being prepared by its teacher, so it has no steps yet.","The teacher is still preparing the group (`status: awaiting_payment`).",{"code":682,"details":703,"message":705,"status":683,"when":706},{"reason":704},"group_not_confirmed","The teacher has not confirmed the group yet, so it has no steps yet.","The teacher has not confirmed the group yet (`status: draft`), so it has no steps.",{"code":682,"details":708,"message":710,"status":683,"when":711},{"reason":709},"step_locked","This step is not open yet: the steps before it come first.","The step is still locked: the steps before it are not all submitted.",{"code":682,"details":713,"message":715,"status":683,"when":716},{"reason":714},"step_empty","Nothing has been uploaded for this step yet. A member of the group uploads the work first.","Nothing has been uploaded for the step yet. A member uploads the work in the panel or the app first; retrying does not help.",{"code":718,"message":719,"status":720,"when":721},"payload_too_large","request entity too large",413,"The body is larger than 100 kB.",{"code":723,"message":724,"status":725,"when":726},"unsupported_media_type","unsupported charset \"ISO-8859-1\"",415,"The body declares a charset that is not a UTF one (send UTF-8), or a `Content-Encoding` other than gzip, deflate or br.",{"code":728,"status":729,"when":730},"too_many_requests",429,"Your account has made more than 100 requests to this operation in the current 60-second window. Wait the seconds in `Retry-After` before sending again.",{"code":732,"status":733,"when":734},"internal_error",500,"Something failed on our side. Retry later, and quote `request_id` if it goes on.",{"code":736,"details":737,"message":739,"status":740,"when":741},"service_unavailable",{"reason":738},"busy","The group is being changed by someone else. Try again in a second.",503,"Someone else — a member in the panel or the app, or another request of yours — is changing the group at this moment. Nothing was written. Wait the second in `Retry-After` and send the same request again.",[743,751,755,759],{"description":744,"example":745,"in":746,"name":747,"required":364,"schema":748},"The organization’s `_id`: 24 hexadecimal digits, as `listOrganizations` (`GET \u002Fv1\u002Forganization`) lists it.","64b7f0c2a1d3e4f5a6b7c8d9","path","organizationId",{"pattern":749,"type":750},"^[0-9a-f]{24}$","string",{"description":752,"in":746,"name":753,"required":364,"schema":754},"The group challenge’s `_id`, from `listGroupChallenges`.","challengeId",{"type":750},{"description":756,"in":746,"name":757,"required":364,"schema":758},"The group’s `_id`, from `listGroupChallengeGroups` or a student’s `group`.","groupId",{"type":750},{"description":760,"in":746,"name":761,"required":364,"schema":762},"The step’s `_id`, from the group’s `steps` (`getGroupChallengeGroup`) or the challenge’s.","stepId",{"type":750},{"content":764,"required":364},{"application\u002Fjson":765},{"schema":766},{"x-ref":767,"description":768,"properties":769,"required":773,"type":775},"#\u002Fcomponents\u002Fschemas\u002FSubmitGroupChallengeRequest","The body of a group challenge submit: the student of yours it is made for.",{"studentId":770},{"description":771,"example":772,"type":750},"The student the submit is made for: their `_id`, as `registerStudent` returned it. They must be one of your students and an active member of the group; the group’s log records the submit as your account acting for them.","6650a1b2c3d4e5f6a7b8c9d0",[774],"studentId","object",{"200":777,"400":914,"401":964,"403":986,"404":1007,"409":1043,"413":1089,"415":1110,"429":1131,"500":1157,"503":1179},{"content":778,"description":902,"headers":903},{"application\u002Fjson":779},{"examples":780,"schema":802},{"success":781,"unchanged":795},{"summary":782,"value":783},"Success",{"data":784,"message":794,"success":364},{"changed":364,"groupId":785,"groupStatus":786,"nextStep":787,"step":790},"6650a1b2c3d4e5f6a7b8c9ed","finalized",{"_id":788,"order":377,"state":789},"6650a1b2c3d4e5f6a7b8c9f1","open",{"_id":791,"order":367,"state":792,"submittedAt":793},"6650a1b2c3d4e5f6a7b8c9ee","submitted","2026-10-20T16:02:11.000Z","Step submitted.",{"summary":796,"value":797},"The step had already been submitted, by anyone. `changed` is `false` and nothing changed.",{"data":798,"message":801,"success":364},{"changed":364,"groupId":785,"groupStatus":786,"nextStep":799,"step":800},{"_id":788,"order":377,"state":789},{"_id":791,"order":367,"state":792,"submittedAt":793},"Step already submitted.",{"allOf":803},[804,842],{"x-ref":805,"description":806,"properties":807,"required":839,"type":775},"#\u002Fcomponents\u002Fschemas\u002FSuccessEnvelope","How every successful JSON response is wrapped. `data` is the result, and each operation declares its shape; list operations add `pagination`. `GET \u002Fv1\u002Fapi-account\u002Fvalidate-me` is the one operation that answers without this envelope.",{"success":808,"message":812,"pagination":815},{"description":809,"enum":810,"example":364,"type":811},"Always `true` on a success.",[364],"boolean",{"description":813,"example":814,"type":750},"A sentence saying what happened, written for a person. Branch on the status and on `data`, not on this.","Request completed successfully.",{"allOf":816,"description":838},[817],{"x-ref":818,"description":819,"properties":820,"required":833,"type":775},"#\u002Fcomponents\u002Fschemas\u002FPaginationMeta","Where one page sits in the whole list.",{"page":821,"limit":824,"total":827,"totalPages":831},{"description":822,"example":367,"minimum":367,"type":823},"The page returned, counting from 1.","number",{"description":825,"example":478,"maximum":826,"minimum":367,"type":823},"Items per page: the `limit` you sent, 20 if you sent none, and never more than 100.",100,{"description":828,"example":829,"minimum":830,"type":823},"Items across every page.",57,0,{"description":832,"example":382,"minimum":830,"type":823},"Pages at this `limit`: `total \u002F limit`, rounded up.",[834,835,836,837],"page","limit","total","totalPages","On list operations only.",[840,841],"success","message",{"properties":843,"required":900,"type":775},{"message":844,"data":845},{"example":794,"type":750},{"x-ref":846,"description":847,"properties":848,"required":895,"type":775},"#\u002Fcomponents\u002Fschemas\u002FGroupChallengeStepSubmitResponse","A step submitted for one of your students.",{"groupId":849,"groupStatus":851,"step":857,"nextStep":879,"changed":893},{"description":850,"example":785,"type":750},"The group’s id.",{"description":852,"enum":853,"example":786,"type":750},"The group’s state now: `finalized` while steps remain open.",[854,855,786,856],"awaiting_payment","draft","completed",{"allOf":858,"description":878},[859],{"x-ref":860,"description":861,"properties":862,"required":873,"type":775},"#\u002Fcomponents\u002Fschemas\u002FGroupChallengeSubmittedStepResponse","The step a submit was for.",{"_id":863,"order":865,"state":867,"submittedAt":870},{"description":864,"example":791,"type":750},"The step’s id.",{"description":866,"example":367,"nullable":364,"type":775},"Its position, from 1.",{"description":868,"enum":869,"example":792,"type":750},"Always `submitted`.",[792],{"description":871,"example":793,"format":872,"nullable":364,"type":750},"When it was submitted: now, or the first time on a repeat.","date-time",[874,875,876,877],"_id","order","state","submittedAt","The step you submitted.",{"allOf":880,"description":892,"nullable":364,"type":775},[881],{"x-ref":882,"description":883,"properties":884,"required":891,"type":775},"#\u002Fcomponents\u002Fschemas\u002FGroupChallengeOpenedStepResponse","The step a submit opened.",{"_id":885,"order":886,"state":888},{"description":864,"example":788,"type":750},{"description":887,"example":377,"type":823},"Its position.",{"description":889,"enum":890,"example":789,"type":750},"Always `open`: the group can work on it now.",[789],[874,875,876],"The step this submit opened, or `null` when it was the last one, or on a repeat.",{"description":894,"example":364,"type":811},"`true` when this request submitted the step; `false` when it had already been submitted, and nothing changed.",[757,896,897,898,899],"groupStatus","step","nextStep","changed",[901],"data","Success: `message` is \"Step submitted.\".\n\nOr `message` is \"Step already submitted.\": The step had already been submitted, by anyone. `changed` is `false` and nothing changed.",{"X-RateLimit-Limit":904,"X-RateLimit-Remaining":908,"X-RateLimit-Reset":911},{"description":905,"schema":906},"Requests your account may make to this operation per window (100).",{"type":907},"integer",{"description":909,"schema":910},"Requests left in the current window.",{"type":907},{"description":912,"schema":913},"Seconds until the current window ends.",{"type":907},{"content":915,"description":963},{"application\u002Fjson":916},{"examples":917,"schema":933},{"bad_request":918,"bad_request_2":924,"bad_request_3":927,"bad_request_4":930},{"summary":643,"value":919},{"error":920},{"code":641,"documentation_url":921,"message":922,"request_id":923},"https:\u002F\u002Fhub.main-team.org\u002Fapi\u002Ferrors#bad_request","The request was malformed or contained invalid parameters.","0b5c6d0e-8f7a-4b1c-9d2e-3f4a5b6c7d8e",{"summary":646,"value":925},{"error":926},{"code":641,"documentation_url":921,"message":645,"request_id":923},{"summary":649,"value":928},{"error":929},{"code":641,"documentation_url":921,"message":648,"request_id":923},{"summary":652,"value":931},{"error":932},{"code":641,"documentation_url":921,"message":651,"request_id":923},{"x-ref":934,"description":935,"properties":936,"required":961,"type":775},"#\u002Fcomponents\u002Fschemas\u002FErrorEnvelope","How every error response is wrapped.",{"error":937},{"x-ref":938,"description":939,"properties":940,"required":957,"type":775},"#\u002Fcomponents\u002Fschemas\u002FErrorDetail","What went wrong.",{"code":941,"message":946,"documentation_url":949,"request_id":953,"details":955},{"description":942,"enum":943,"example":663,"type":750},"A stable machine code: branch on this. Each one is explained at `documentation_url`.",[944,641,654,658,663,682,718,723,945,728,732,736],"invalid_email","unprocessable_entity",{"description":947,"example":948,"type":750},"Written for a person, and may change: never branch on it.","Not found!",{"description":950,"example":951,"format":952,"type":750},"Where this code is explained.","https:\u002F\u002Fhub.main-team.org\u002Fapi\u002Ferrors#not_found","uri",{"description":954,"example":923,"type":750},"This request’s id, also sent as the `X-Request-Id` response header: the one you sent, when it was acceptable, or else one the API made. Quote it when you report a problem.",{"additionalProperties":364,"description":956,"type":775},"Present only where an operation says so, and then with the shape that operation documents — the rows it could not accept, say. Treat it as absent everywhere else, and ignore a `details` you do not recognise.",[958,841,959,960],"code","documentation_url","request_id",[962],"error","- `bad_request`: The body is not valid JSON, breaks a field’s rules, or has a field this operation does not accept (\"property \u003Cname> should not exist\").\n- `bad_request`: `challengeId` is not 24 hexadecimal digits.\n- `bad_request`: `groupId` is not 24 hexadecimal digits.\n- `bad_request`: `stepId` is not 24 hexadecimal digits.",{"content":965,"description":985},{"application\u002Fjson":966},{"examples":967,"schema":973},{"unauthorized":968},{"summary":654,"value":969},{"error":970},{"code":654,"documentation_url":971,"message":972,"request_id":923},"https:\u002F\u002Fhub.main-team.org\u002Fapi\u002Ferrors#unauthorized","Authentication is required or the provided credentials are invalid.",{"x-ref":934,"description":935,"properties":974,"required":984,"type":775},{"error":975},{"x-ref":938,"description":939,"properties":976,"required":983,"type":775},{"code":977,"message":979,"documentation_url":980,"request_id":981,"details":982},{"description":942,"enum":978,"example":663,"type":750},[944,641,654,658,663,682,718,723,945,728,732,736],{"description":947,"example":948,"type":750},{"description":950,"example":951,"format":952,"type":750},{"description":954,"example":923,"type":750},{"additionalProperties":364,"description":956,"type":775},[958,841,959,960],[962],"`unauthorized`: The token is missing or malformed, is not signed with your account’s `apiSecret`, breaks the `iat` and `exp` rules, has expired or been revoked, or its account is not active. All of these answer the same.",{"content":987,"description":1006},{"application\u002Fjson":988},{"examples":989,"schema":994},{"forbidden":990},{"summary":658,"value":991},{"error":992},{"code":658,"documentation_url":993,"message":659,"request_id":923},"https:\u002F\u002Fhub.main-team.org\u002Fapi\u002Ferrors#forbidden",{"x-ref":934,"description":935,"properties":995,"required":1005,"type":775},{"error":996},{"x-ref":938,"description":939,"properties":997,"required":1004,"type":775},{"code":998,"message":1000,"documentation_url":1001,"request_id":1002,"details":1003},{"description":942,"enum":999,"example":663,"type":750},[944,641,654,658,663,682,718,723,945,728,732,736],{"description":947,"example":948,"type":750},{"description":950,"example":951,"format":952,"type":750},{"description":954,"example":923,"type":750},{"additionalProperties":364,"description":956,"type":775},[958,841,959,960],[962],"`forbidden`: The token is valid, but no role on your account allows `group-challenge\u002Fsubmit` on the organization in the path, or a role denies it.",{"content":1008,"description":1042},{"application\u002Fjson":1009},{"examples":1010,"schema":1030},{"not_found":1011,"not_found_2":1014,"not_found_3":1018,"not_found_4":1021,"not_found_5":1024,"not_found_6":1027},{"summary":666,"value":1012},{"error":1013},{"code":663,"documentation_url":951,"message":664,"request_id":923},{"summary":668,"value":1015},{"error":1016},{"code":663,"documentation_url":951,"message":1017,"request_id":923},"The requested resource could not be found.",{"summary":671,"value":1019},{"error":1020},{"code":663,"documentation_url":951,"message":670,"request_id":923},{"summary":674,"value":1022},{"error":1023},{"code":663,"documentation_url":951,"message":673,"request_id":923},{"summary":677,"value":1025},{"error":1026},{"code":663,"documentation_url":951,"message":676,"request_id":923},{"summary":680,"value":1028},{"error":1029},{"code":663,"documentation_url":951,"message":679,"request_id":923},{"x-ref":934,"description":935,"properties":1031,"required":1041,"type":775},{"error":1032},{"x-ref":938,"description":939,"properties":1033,"required":1040,"type":775},{"code":1034,"message":1036,"documentation_url":1037,"request_id":1038,"details":1039},{"description":942,"enum":1035,"example":663,"type":750},[944,641,654,658,663,682,718,723,945,728,732,736],{"description":947,"example":948,"type":750},{"description":950,"example":951,"format":952,"type":750},{"description":954,"example":923,"type":750},{"additionalProperties":364,"description":956,"type":775},[958,841,959,960],[962],"- `not_found`: `organizationId` is not the `_id` of an organization.\n- `not_found`: Group challenges are not switched on for this organization. The answer is the one an unknown path gets; nothing was read.\n- `not_found`: No student of yours has this id: it matches nobody, or another account registered the student.\n- `not_found`: No group challenge of this organization has this id, or it is not published: a draft, archived or deleted challenge answers the same.\n- `not_found`: No group of this challenge has this id with the student as an active member: a missing group, a deleted one and one the student is not in get the same answer.\n- `not_found`: The group has no step with this id. A group has its steps once the teacher confirms it.",{"content":1044,"description":1088},{"application\u002Fjson":1045},{"examples":1046,"schema":1076},{"conflict":1047,"conflict_2":1052,"conflict_3":1056,"conflict_4":1060,"conflict_5":1064,"conflict_6":1068,"conflict_7":1072},{"summary":684,"value":1048},{"error":1049},{"code":682,"documentation_url":1050,"message":1051,"request_id":923},"https:\u002F\u002Fhub.main-team.org\u002Fapi\u002Ferrors#conflict","The request conflicts with the current state of the resource.",{"summary":689,"value":1053},{"error":1054},{"code":682,"details":1055,"documentation_url":1050,"message":688,"request_id":923},{"reason":687},{"summary":696,"value":1057},{"error":1058},{"code":682,"details":1059,"documentation_url":1050,"message":695,"request_id":923},{"reason":692,"windowEnd":693,"windowStart":694},{"summary":701,"value":1061},{"error":1062},{"code":682,"details":1063,"documentation_url":1050,"message":700,"request_id":923},{"reason":699},{"summary":706,"value":1065},{"error":1066},{"code":682,"details":1067,"documentation_url":1050,"message":705,"request_id":923},{"reason":704},{"summary":711,"value":1069},{"error":1070},{"code":682,"details":1071,"documentation_url":1050,"message":710,"request_id":923},{"reason":709},{"summary":716,"value":1073},{"error":1074},{"code":682,"details":1075,"documentation_url":1050,"message":715,"request_id":923},{"reason":714},{"x-ref":934,"description":935,"properties":1077,"required":1087,"type":775},{"error":1078},{"x-ref":938,"description":939,"properties":1079,"required":1086,"type":775},{"code":1080,"message":1082,"documentation_url":1083,"request_id":1084,"details":1085},{"description":942,"enum":1081,"example":663,"type":750},[944,641,654,658,663,682,718,723,945,728,732,736],{"description":947,"example":948,"type":750},{"description":950,"example":951,"format":952,"type":750},{"description":954,"example":923,"type":750},{"additionalProperties":364,"description":956,"type":775},[958,841,959,960],[962],"- `conflict`: The student has never signed in to this organization, so it holds no record of them yet. Send them a sign-in link (`createSigninLink`), and try again once they have used it.\n- `conflict`: The organizers have closed the challenge (`status: closed`).\n- `conflict`: Now is before `windowStart` or after `windowEnd`. `details` carries both.\n- `conflict`: The teacher is still preparing the group (`status: awaiting_payment`).\n- `conflict`: The teacher has not confirmed the group yet (`status: draft`), so it has no steps.\n- `conflict`: The step is still locked: the steps before it are not all submitted.\n- `conflict`: Nothing has been uploaded for the step yet. A member uploads the work in the panel or the app first; retrying does not help.",{"content":1090,"description":1109},{"application\u002Fjson":1091},{"examples":1092,"schema":1097},{"payload_too_large":1093},{"summary":718,"value":1094},{"error":1095},{"code":718,"documentation_url":1096,"message":719,"request_id":923},"https:\u002F\u002Fhub.main-team.org\u002Fapi\u002Ferrors#payload_too_large",{"x-ref":934,"description":935,"properties":1098,"required":1108,"type":775},{"error":1099},{"x-ref":938,"description":939,"properties":1100,"required":1107,"type":775},{"code":1101,"message":1103,"documentation_url":1104,"request_id":1105,"details":1106},{"description":942,"enum":1102,"example":663,"type":750},[944,641,654,658,663,682,718,723,945,728,732,736],{"description":947,"example":948,"type":750},{"description":950,"example":951,"format":952,"type":750},{"description":954,"example":923,"type":750},{"additionalProperties":364,"description":956,"type":775},[958,841,959,960],[962],"`payload_too_large`: The body is larger than 100 kB.",{"content":1111,"description":1130},{"application\u002Fjson":1112},{"examples":1113,"schema":1118},{"unsupported_media_type":1114},{"summary":723,"value":1115},{"error":1116},{"code":723,"documentation_url":1117,"message":724,"request_id":923},"https:\u002F\u002Fhub.main-team.org\u002Fapi\u002Ferrors#unsupported_media_type",{"x-ref":934,"description":935,"properties":1119,"required":1129,"type":775},{"error":1120},{"x-ref":938,"description":939,"properties":1121,"required":1128,"type":775},{"code":1122,"message":1124,"documentation_url":1125,"request_id":1126,"details":1127},{"description":942,"enum":1123,"example":663,"type":750},[944,641,654,658,663,682,718,723,945,728,732,736],{"description":947,"example":948,"type":750},{"description":950,"example":951,"format":952,"type":750},{"description":954,"example":923,"type":750},{"additionalProperties":364,"description":956,"type":775},[958,841,959,960],[962],"`unsupported_media_type`: The body declares a charset that is not a UTF one (send UTF-8), or a `Content-Encoding` other than gzip, deflate or br.",{"content":1132,"description":1152,"headers":1153},{"application\u002Fjson":1133},{"examples":1134,"schema":1140},{"too_many_requests":1135},{"summary":728,"value":1136},{"error":1137},{"code":728,"documentation_url":1138,"message":1139,"request_id":923},"https:\u002F\u002Fhub.main-team.org\u002Fapi\u002Ferrors#too_many_requests","Too many requests to this operation. Wait the number of seconds in Retry-After, then try again.",{"x-ref":934,"description":935,"properties":1141,"required":1151,"type":775},{"error":1142},{"x-ref":938,"description":939,"properties":1143,"required":1150,"type":775},{"code":1144,"message":1146,"documentation_url":1147,"request_id":1148,"details":1149},{"description":942,"enum":1145,"example":663,"type":750},[944,641,654,658,663,682,718,723,945,728,732,736],{"description":947,"example":948,"type":750},{"description":950,"example":951,"format":952,"type":750},{"description":954,"example":923,"type":750},{"additionalProperties":364,"description":956,"type":775},[958,841,959,960],[962],"`too_many_requests`: Your account has made more than 100 requests to this operation in the current 60-second window. Wait the seconds in `Retry-After` before sending again.",{"Retry-After":1154},{"description":1155,"schema":1156},"Seconds to wait before sending again; a request sent sooner is refused too.",{"type":907},{"content":1158,"description":1178},{"application\u002Fjson":1159},{"examples":1160,"schema":1166},{"internal_error":1161},{"summary":732,"value":1162},{"error":1163},{"code":732,"documentation_url":1164,"message":1165,"request_id":923},"https:\u002F\u002Fhub.main-team.org\u002Fapi\u002Ferrors#internal_error","An unexpected error occurred.",{"x-ref":934,"description":935,"properties":1167,"required":1177,"type":775},{"error":1168},{"x-ref":938,"description":939,"properties":1169,"required":1176,"type":775},{"code":1170,"message":1172,"documentation_url":1173,"request_id":1174,"details":1175},{"description":942,"enum":1171,"example":663,"type":750},[944,641,654,658,663,682,718,723,945,728,732,736],{"description":947,"example":948,"type":750},{"description":950,"example":951,"format":952,"type":750},{"description":954,"example":923,"type":750},{"additionalProperties":364,"description":956,"type":775},[958,841,959,960],[962],"`internal_error`: Something failed on our side. Retry later, and quote `request_id` if it goes on.",{"content":1180,"description":1200,"headers":1201},{"application\u002Fjson":1181},{"examples":1182,"schema":1188},{"service_unavailable":1183},{"summary":736,"value":1184},{"error":1185},{"code":736,"details":1186,"documentation_url":1187,"message":739,"request_id":923},{"reason":738},"https:\u002F\u002Fhub.main-team.org\u002Fapi\u002Ferrors#service_unavailable",{"x-ref":934,"description":935,"properties":1189,"required":1199,"type":775},{"error":1190},{"x-ref":938,"description":939,"properties":1191,"required":1198,"type":775},{"code":1192,"message":1194,"documentation_url":1195,"request_id":1196,"details":1197},{"description":942,"enum":1193,"example":663,"type":750},[944,641,654,658,663,682,718,723,945,728,732,736],{"description":947,"example":948,"type":750},{"description":950,"example":951,"format":952,"type":750},{"description":954,"example":923,"type":750},{"additionalProperties":364,"description":956,"type":775},[958,841,959,960],[962],"`service_unavailable`: Someone else — a member in the panel or the app, or another request of yours — is changing the group at this moment. Nothing was written. Wait the second in `Retry-After` and send the same request again.",{"Retry-After":1202},{"description":1155,"schema":1203},{"type":907},"200","envelope",{"path":26},{"id":1208,"title":293,"apiPath":624,"body":1209,"deprecated":134,"description":1891,"extension":1892,"meta":1893,"method":141,"navigation":364,"operationId":622,"order":1894,"path":294,"permission":619,"public":134,"seo":1895,"stem":1896,"summary":293,"tag":89,"__hash__":1897},"apiReference\u002Fapi\u002Freference\u002Fsubmit-group-challenge-step.md",{"type":1210,"value":1211,"toc":1889},"minimark",[1212,1885],[1213,1214,1215,1316,1562],"api-code-group",{},[1216,1217,1223],"pre",{"className":1218,"code":1219,"filename":1220,"language":1221,"meta":1222,"style":1222},"language-bash shiki shiki-themes github-light-high-contrast github-dark-high-contrast","# $TOKEN: a short-lived token you minted with your API key and secret\ncurl -sS -X POST 'https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fgroup-challenge\u002F\u003CchallengeId>\u002Fgroup\u002F\u003CgroupId>\u002Fstep\u002F\u003CstepId>\u002Fsubmit' \\\n  -H \"Authorization: Bearer $TOKEN\" \\\n  -H 'Content-Type: application\u002Fjson' \\\n  --data-binary @- \u003C\u003C'JSON'\n{\n  \"studentId\": \"6650a1b2c3d4e5f6a7b8c9d0\"\n}\nJSON\n","curl","bash","",[958,1224,1225,1233,1256,1273,1282,1296,1301,1306,1311],{"__ignoreMap":1222},[1226,1227,1229],"span",{"class":1228,"line":367},"line",[1226,1230,1232],{"class":1231},"sLBg1","# $TOKEN: a short-lived token you minted with your API key and secret\n",[1226,1234,1235,1238,1242,1245,1249,1252],{"class":1228,"line":377},[1226,1236,1220],{"class":1237},"soyes",[1226,1239,1241],{"class":1240},"s-5SL"," -sS",[1226,1243,1244],{"class":1240}," -X",[1226,1246,1248],{"class":1247},"sT6z2"," POST",[1226,1250,1251],{"class":1247}," 'https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fgroup-challenge\u002F\u003CchallengeId>\u002Fgroup\u002F\u003CgroupId>\u002Fstep\u002F\u003CstepId>\u002Fsubmit'",[1226,1253,1255],{"class":1254},"sHUrx"," \\\n",[1226,1257,1258,1261,1264,1268,1271],{"class":1228,"line":382},[1226,1259,1260],{"class":1240},"  -H",[1226,1262,1263],{"class":1247}," \"Authorization: Bearer ",[1226,1265,1267],{"class":1266},"suds8","$TOKEN",[1226,1269,1270],{"class":1247},"\"",[1226,1272,1255],{"class":1254},[1226,1274,1275,1277,1280],{"class":1228,"line":391},[1226,1276,1260],{"class":1240},[1226,1278,1279],{"class":1247}," 'Content-Type: application\u002Fjson'",[1226,1281,1255],{"class":1254},[1226,1283,1284,1287,1290,1293],{"class":1228,"line":396},[1226,1285,1286],{"class":1240},"  --data-binary",[1226,1288,1289],{"class":1247}," @-",[1226,1291,1292],{"class":1254}," \u003C\u003C",[1226,1294,1295],{"class":1266},"'JSON'\n",[1226,1297,1298],{"class":1228,"line":402},[1226,1299,1300],{"class":1247},"{\n",[1226,1302,1303],{"class":1228,"line":407},[1226,1304,1305],{"class":1247},"  \"studentId\": \"6650a1b2c3d4e5f6a7b8c9d0\"\n",[1226,1307,1308],{"class":1228,"line":413},[1226,1309,1310],{"class":1247},"}\n",[1226,1312,1313],{"class":1228,"line":418},[1226,1314,1315],{"class":1266},"JSON\n",[1216,1317,1321],{"className":1318,"code":1319,"filename":308,"language":1320,"meta":1222,"style":1222},"language-js shiki shiki-themes github-light-high-contrast github-dark-high-contrast","const token = process.env.TOKEN; \u002F\u002F a short-lived token you minted with your API key and secret\n\nconst res = await fetch('https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fgroup-challenge\u002F\u003CchallengeId>\u002Fgroup\u002F\u003CgroupId>\u002Fstep\u002F\u003CstepId>\u002Fsubmit', {\n  method: 'POST',\n  headers: {\n    Authorization: `Bearer ${token}`,\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    \"studentId\": \"6650a1b2c3d4e5f6a7b8c9d0\"\n  }),\n});\nconst body = await res.json();\nif (!res.ok) throw new Error(`${res.status} ${body.error.code}: ${body.error.message}`);\nconsole.log(body.data);\n","js",[958,1322,1323,1346,1351,1376,1387,1392,1408,1421,1426,1443,1453,1458,1463,1483,1551],{"__ignoreMap":1222},[1226,1324,1325,1328,1331,1334,1337,1340,1343],{"class":1228,"line":367},[1226,1326,1327],{"class":1254},"const",[1226,1329,1330],{"class":1240}," token",[1226,1332,1333],{"class":1254}," =",[1226,1335,1336],{"class":1266}," process.env.",[1226,1338,1339],{"class":1240},"TOKEN",[1226,1341,1342],{"class":1266},"; ",[1226,1344,1345],{"class":1231},"\u002F\u002F a short-lived token you minted with your API key and secret\n",[1226,1347,1348],{"class":1228,"line":377},[1226,1349,1350],{"emptyLinePlaceholder":364},"\n",[1226,1352,1353,1355,1358,1360,1363,1367,1370,1373],{"class":1228,"line":382},[1226,1354,1327],{"class":1254},[1226,1356,1357],{"class":1240}," res",[1226,1359,1333],{"class":1254},[1226,1361,1362],{"class":1254}," await",[1226,1364,1366],{"class":1365},"sKwhi"," fetch",[1226,1368,1369],{"class":1266},"(",[1226,1371,1372],{"class":1247},"'https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fgroup-challenge\u002F\u003CchallengeId>\u002Fgroup\u002F\u003CgroupId>\u002Fstep\u002F\u003CstepId>\u002Fsubmit'",[1226,1374,1375],{"class":1266},", {\n",[1226,1377,1378,1381,1384],{"class":1228,"line":391},[1226,1379,1380],{"class":1266},"  method: ",[1226,1382,1383],{"class":1247},"'POST'",[1226,1385,1386],{"class":1266},",\n",[1226,1388,1389],{"class":1228,"line":396},[1226,1390,1391],{"class":1266},"  headers: {\n",[1226,1393,1394,1397,1400,1403,1406],{"class":1228,"line":402},[1226,1395,1396],{"class":1266},"    Authorization: ",[1226,1398,1399],{"class":1247},"`Bearer ${",[1226,1401,1402],{"class":1266},"token",[1226,1404,1405],{"class":1247},"}`",[1226,1407,1386],{"class":1266},[1226,1409,1410,1413,1416,1419],{"class":1228,"line":407},[1226,1411,1412],{"class":1247},"    'Content-Type'",[1226,1414,1415],{"class":1266},": ",[1226,1417,1418],{"class":1247},"'application\u002Fjson'",[1226,1420,1386],{"class":1266},[1226,1422,1423],{"class":1228,"line":413},[1226,1424,1425],{"class":1266},"  },\n",[1226,1427,1428,1431,1434,1437,1440],{"class":1228,"line":418},[1226,1429,1430],{"class":1266},"  body: ",[1226,1432,1433],{"class":1240},"JSON",[1226,1435,1436],{"class":1266},".",[1226,1438,1439],{"class":1365},"stringify",[1226,1441,1442],{"class":1266},"({\n",[1226,1444,1445,1448,1450],{"class":1228,"line":427},[1226,1446,1447],{"class":1247},"    \"studentId\"",[1226,1449,1415],{"class":1266},[1226,1451,1452],{"class":1247},"\"6650a1b2c3d4e5f6a7b8c9d0\"\n",[1226,1454,1455],{"class":1228,"line":432},[1226,1456,1457],{"class":1266},"  }),\n",[1226,1459,1460],{"class":1228,"line":437},[1226,1461,1462],{"class":1266},"});\n",[1226,1464,1465,1467,1470,1472,1474,1477,1480],{"class":1228,"line":442},[1226,1466,1327],{"class":1254},[1226,1468,1469],{"class":1240}," body",[1226,1471,1333],{"class":1254},[1226,1473,1362],{"class":1254},[1226,1475,1476],{"class":1266}," res.",[1226,1478,1479],{"class":1365},"json",[1226,1481,1482],{"class":1266},"();\n",[1226,1484,1485,1488,1491,1494,1497,1500,1503,1506,1508,1511,1514,1516,1519,1522,1525,1527,1529,1531,1533,1536,1538,1540,1542,1544,1546,1548],{"class":1228,"line":447},[1226,1486,1487],{"class":1254},"if",[1226,1489,1490],{"class":1266}," (",[1226,1492,1493],{"class":1254},"!",[1226,1495,1496],{"class":1266},"res.ok) ",[1226,1498,1499],{"class":1254},"throw",[1226,1501,1502],{"class":1254}," new",[1226,1504,1505],{"class":1365}," Error",[1226,1507,1369],{"class":1266},[1226,1509,1510],{"class":1247},"`${",[1226,1512,1513],{"class":1266},"res",[1226,1515,1436],{"class":1247},[1226,1517,1518],{"class":1266},"status",[1226,1520,1521],{"class":1247},"} ${",[1226,1523,1524],{"class":1266},"body",[1226,1526,1436],{"class":1247},[1226,1528,962],{"class":1266},[1226,1530,1436],{"class":1247},[1226,1532,958],{"class":1266},[1226,1534,1535],{"class":1247},"}: ${",[1226,1537,1524],{"class":1266},[1226,1539,1436],{"class":1247},[1226,1541,962],{"class":1266},[1226,1543,1436],{"class":1247},[1226,1545,841],{"class":1266},[1226,1547,1405],{"class":1247},[1226,1549,1550],{"class":1266},");\n",[1226,1552,1553,1556,1559],{"class":1228,"line":452},[1226,1554,1555],{"class":1266},"console.",[1226,1557,1558],{"class":1365},"log",[1226,1560,1561],{"class":1266},"(body.data);\n",[1216,1563,1567],{"className":1564,"code":1565,"filename":311,"language":1566,"meta":1222,"style":1222},"language-php shiki shiki-themes github-light-high-contrast github-dark-high-contrast","\u003C?php\n$token = getenv('TOKEN'); \u002F\u002F a short-lived token you minted with your API key and secret\n\n$ch = curl_init('https:\u002F\u002Fapi.main-team.org\u002Fv1\u002F\u003CorganizationId>\u002Fgroup-challenge\u002F\u003CchallengeId>\u002Fgroup\u002F\u003CgroupId>\u002Fstep\u002F\u003CstepId>\u002Fsubmit');\ncurl_setopt_array($ch, [\n    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_HTTPHEADER => [\n        'Authorization: Bearer ' . $token,\n        'Content-Type: application\u002Fjson',\n    ],\n    CURLOPT_POSTFIELDS => json_encode([\n        'studentId' => '6650a1b2c3d4e5f6a7b8c9d0',\n    ]),\n    CURLOPT_RETURNTRANSFER => true,\n]);\n$response = curl_exec($ch);\nif ($response === false) {\n    throw new RuntimeException(curl_error($ch));\n}\n$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);\n$body = json_decode($response, true);\nif ($status >= 400) {\n    $error = $body['error'];\n    throw new RuntimeException(\"$status {$error['code']}: {$error['message']}\");\n}\nprint_r($body['data']);\n","php",[958,1568,1569,1577,1598,1602,1618,1626,1639,1649,1660,1667,1672,1685,1697,1702,1714,1719,1732,1748,1766,1770,1788,1806,1821,1837,1868,1872],{"__ignoreMap":1222},[1226,1570,1571,1574],{"class":1228,"line":367},[1226,1572,1573],{"class":1254},"\u003C?",[1226,1575,1576],{"class":1240},"php\n",[1226,1578,1579,1582,1585,1588,1590,1593,1596],{"class":1228,"line":377},[1226,1580,1581],{"class":1266},"$token ",[1226,1583,1584],{"class":1254},"=",[1226,1586,1587],{"class":1240}," getenv",[1226,1589,1369],{"class":1266},[1226,1591,1592],{"class":1247},"'TOKEN'",[1226,1594,1595],{"class":1266},"); ",[1226,1597,1345],{"class":1231},[1226,1599,1600],{"class":1228,"line":382},[1226,1601,1350],{"emptyLinePlaceholder":364},[1226,1603,1604,1607,1609,1612,1614,1616],{"class":1228,"line":391},[1226,1605,1606],{"class":1266},"$ch ",[1226,1608,1584],{"class":1254},[1226,1610,1611],{"class":1240}," curl_init",[1226,1613,1369],{"class":1266},[1226,1615,1372],{"class":1247},[1226,1617,1550],{"class":1266},[1226,1619,1620,1623],{"class":1228,"line":396},[1226,1621,1622],{"class":1240},"curl_setopt_array",[1226,1624,1625],{"class":1266},"($ch, [\n",[1226,1627,1628,1631,1634,1637],{"class":1228,"line":402},[1226,1629,1630],{"class":1240},"    CURLOPT_CUSTOMREQUEST",[1226,1632,1633],{"class":1254}," =>",[1226,1635,1636],{"class":1247}," 'POST'",[1226,1638,1386],{"class":1266},[1226,1640,1641,1644,1646],{"class":1228,"line":407},[1226,1642,1643],{"class":1240},"    CURLOPT_HTTPHEADER",[1226,1645,1633],{"class":1254},[1226,1647,1648],{"class":1266}," [\n",[1226,1650,1651,1654,1657],{"class":1228,"line":413},[1226,1652,1653],{"class":1247},"        'Authorization: Bearer '",[1226,1655,1656],{"class":1254}," .",[1226,1658,1659],{"class":1266}," $token,\n",[1226,1661,1662,1665],{"class":1228,"line":418},[1226,1663,1664],{"class":1247},"        'Content-Type: application\u002Fjson'",[1226,1666,1386],{"class":1266},[1226,1668,1669],{"class":1228,"line":427},[1226,1670,1671],{"class":1266},"    ],\n",[1226,1673,1674,1677,1679,1682],{"class":1228,"line":432},[1226,1675,1676],{"class":1240},"    CURLOPT_POSTFIELDS",[1226,1678,1633],{"class":1254},[1226,1680,1681],{"class":1240}," json_encode",[1226,1683,1684],{"class":1266},"([\n",[1226,1686,1687,1690,1692,1695],{"class":1228,"line":437},[1226,1688,1689],{"class":1247},"        'studentId'",[1226,1691,1633],{"class":1254},[1226,1693,1694],{"class":1247}," '6650a1b2c3d4e5f6a7b8c9d0'",[1226,1696,1386],{"class":1266},[1226,1698,1699],{"class":1228,"line":442},[1226,1700,1701],{"class":1266},"    ]),\n",[1226,1703,1704,1707,1709,1712],{"class":1228,"line":447},[1226,1705,1706],{"class":1240},"    CURLOPT_RETURNTRANSFER",[1226,1708,1633],{"class":1254},[1226,1710,1711],{"class":1240}," true",[1226,1713,1386],{"class":1266},[1226,1715,1716],{"class":1228,"line":452},[1226,1717,1718],{"class":1266},"]);\n",[1226,1720,1721,1724,1726,1729],{"class":1228,"line":457},[1226,1722,1723],{"class":1266},"$response ",[1226,1725,1584],{"class":1254},[1226,1727,1728],{"class":1240}," curl_exec",[1226,1730,1731],{"class":1266},"($ch);\n",[1226,1733,1734,1736,1739,1742,1745],{"class":1228,"line":463},[1226,1735,1487],{"class":1254},[1226,1737,1738],{"class":1266}," ($response ",[1226,1740,1741],{"class":1254},"===",[1226,1743,1744],{"class":1240}," false",[1226,1746,1747],{"class":1266},") {\n",[1226,1749,1750,1753,1755,1758,1760,1763],{"class":1228,"line":469},[1226,1751,1752],{"class":1254},"    throw",[1226,1754,1502],{"class":1254},[1226,1756,1757],{"class":1240}," RuntimeException",[1226,1759,1369],{"class":1266},[1226,1761,1762],{"class":1240},"curl_error",[1226,1764,1765],{"class":1266},"($ch));\n",[1226,1767,1768],{"class":1228,"line":474},[1226,1769,1310],{"class":1266},[1226,1771,1772,1775,1777,1780,1783,1786],{"class":1228,"line":478},[1226,1773,1774],{"class":1266},"$status ",[1226,1776,1584],{"class":1254},[1226,1778,1779],{"class":1240}," curl_getinfo",[1226,1781,1782],{"class":1266},"($ch, ",[1226,1784,1785],{"class":1240},"CURLINFO_RESPONSE_CODE",[1226,1787,1550],{"class":1266},[1226,1789,1790,1793,1795,1798,1801,1804],{"class":1228,"line":483},[1226,1791,1792],{"class":1266},"$body ",[1226,1794,1584],{"class":1254},[1226,1796,1797],{"class":1240}," json_decode",[1226,1799,1800],{"class":1266},"($response, ",[1226,1802,1803],{"class":1240},"true",[1226,1805,1550],{"class":1266},[1226,1807,1808,1810,1813,1816,1819],{"class":1228,"line":491},[1226,1809,1487],{"class":1254},[1226,1811,1812],{"class":1266}," ($status ",[1226,1814,1815],{"class":1254},">=",[1226,1817,1818],{"class":1240}," 400",[1226,1820,1747],{"class":1266},[1226,1822,1823,1826,1828,1831,1834],{"class":1228,"line":500},[1226,1824,1825],{"class":1266},"    $error ",[1226,1827,1584],{"class":1254},[1226,1829,1830],{"class":1266}," $body[",[1226,1832,1833],{"class":1247},"'error'",[1226,1835,1836],{"class":1266},"];\n",[1226,1838,1839,1841,1843,1845,1847,1849,1852,1855,1858,1861,1863,1866],{"class":1228,"line":506},[1226,1840,1752],{"class":1254},[1226,1842,1502],{"class":1254},[1226,1844,1757],{"class":1240},[1226,1846,1369],{"class":1266},[1226,1848,1270],{"class":1247},[1226,1850,1851],{"class":1266},"$status",[1226,1853,1854],{"class":1247}," {",[1226,1856,1857],{"class":1266},"$error",[1226,1859,1860],{"class":1247},"['code']}: {",[1226,1862,1857],{"class":1266},[1226,1864,1865],{"class":1247},"['message']}\"",[1226,1867,1550],{"class":1266},[1226,1869,1870],{"class":1228,"line":511},[1226,1871,1310],{"class":1266},[1226,1873,1874,1877,1880,1883],{"class":1228,"line":516},[1226,1875,1876],{"class":1240},"print_r",[1226,1878,1879],{"class":1266},"($body[",[1226,1881,1882],{"class":1247},"'data'",[1226,1884,1718],{"class":1266},[1886,1887,1888],"style",{},"html pre.shiki code .sLBg1, html code.shiki .sLBg1{--shiki-default:#66707B;--shiki-dark:#BDC4CC}html pre.shiki code .soyes, html code.shiki .soyes{--shiki-default:#702C00;--shiki-dark:#FFB757}html pre.shiki code .s-5SL, html code.shiki .s-5SL{--shiki-default:#023B95;--shiki-dark:#91CBFF}html pre.shiki code .sT6z2, html code.shiki .sT6z2{--shiki-default:#032563;--shiki-dark:#ADDCFF}html pre.shiki code .sHUrx, html code.shiki .sHUrx{--shiki-default:#A0111F;--shiki-dark:#FF9492}html pre.shiki code .suds8, html code.shiki .suds8{--shiki-default:#0E1116;--shiki-dark:#F0F3F6}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sKwhi, html code.shiki .sKwhi{--shiki-default:#622CBC;--shiki-dark:#DBB7FF}",{"title":1222,"searchDepth":377,"depth":382,"links":1890},[],"Submits the open step of a group, for one of your students who is a member of it, exactly as the student would in the panel: the files uploaded for the step ar…","md",{},"45",{"title":293,"description":1891},"api\u002Freference\u002Fsubmit-group-challenge-step","uYKA04GINoy7NLB_cEImtLZ2h-uRTjPJvWnQPQe9V5E",1791554613405]