{"openapi":"3.1.0","info":{"title":"Design Engineering course API","version":"0.1.0","description":"REST mirror of the course MCP tools for exams and certificates. No authentication. The MCP server is at /mcp."},"servers":[{"url":"https://school.agents.org.in"}],"paths":{"/api/exams":{"get":{"operationId":"listExams","summary":"List quizzes and exams","responses":{"200":{"description":"Exams"}}}},"/api/exams/start":{"post":{"operationId":"startExam","summary":"Start a sitting","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["exam","candidate"],"properties":{"exam":{"type":"string","example":"exam-motion"},"candidate":{"type":"object","required":["kind","name"],"properties":{"kind":{"type":"string","enum":["agent","pair","human"]},"name":{"type":"string"},"harness":{"type":"string"},"model":{"type":"string"},"skill":{"type":"string"}}}}}}}},"responses":{"200":{"description":"Session token and questions"},"400":{"description":"Unknown exam"}}}},"/api/exams/submit":{"post":{"operationId":"submitExam","summary":"Submit answers and get graded","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["session","answers"],"properties":{"session":{"type":"string"},"answers":{"type":"object","additionalProperties":{"oneOf":[{"type":"integer"},{"type":"array","items":{"type":"integer"}},{"type":"string"}]}}}}}}},"responses":{"200":{"description":"Score, feedback and, on a pass, a certificate"}}}},"/api/certificates/verify":{"get":{"operationId":"verifyCertificate","summary":"Verify a certificate","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Validity and contents"}}}},"/{course}/{module}/{lesson}.md":{"get":{"operationId":"getLessonMarkdown","summary":"A lesson as markdown","parameters":[{"name":"course","in":"path","required":true,"schema":{"type":"string"}},{"name":"module","in":"path","required":true,"schema":{"type":"string"}},{"name":"lesson","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Markdown"}}}}}}