{"openapi":"3.0.3","info":{"title":"Safety Over Silence — Student Protection Readiness API","version":"2.0.0","description":"Public REST API for the Student Protection Readiness Checklist. The canonical tool `run_student_safety_checklist` runs a 12-question decision-support assessment and returns a normalized readiness score (0-100), a score band/category, key findings (top protection gaps), a plain-language interpretation, per-category scores, a recommended next step, and safety limitations. Decision support only — it does not diagnose bullying, abuse, or mental-health conditions and does not replace emergency services or professionals.","contact":{"name":"Safety Over Silence","url":"https://soschecklist.net"}},"servers":[{"url":"https://soschecklist.net"}],"paths":{"/api/v1/run-student-safety-checklist":{"post":{"operationId":"run_student_safety_checklist","summary":"Run the Student Protection Readiness Checklist","description":"Submit answers to the 12 readiness questions (q1-q12, each an integer 1-4) and receive the canonical structured result.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChecklistInput"},"example":{"answers":{"q1":3,"q2":2,"q3":3,"q4":1,"q5":2,"q6":3,"q7":2,"q8":1,"q9":3,"q10":2,"q11":3,"q12":2}}}}},"responses":{"200":{"description":"Assessment result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChecklistResult"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResult"}}}}}},"get":{"operationId":"get_checklist_descriptor","summary":"Descriptor and input schema for the checklist tool","responses":{"200":{"description":"Descriptor with input schema and limitations"}}}}},"components":{"schemas":{"ChecklistInput":{"type":"object","required":["answers"],"properties":{"answers":{"type":"object","description":"Answers to the 12 readiness questions, keys q1-q12, values integers 1 (lowest readiness) to 4 (highest readiness).","required":["q1","q2","q3","q4","q5","q6","q7","q8","q9","q10","q11","q12"],"properties":{"q1":{"type":"integer","minimum":1,"maximum":4,"description":"[warning_signs] How confident are you that you could recognize early changes in your child's mood, behavior, or social patterns?"},"q2":{"type":"integer","minimum":1,"maximum":4,"description":"[communication] If something was bothering your child at school, how likely is it they would tell you about it?"},"q3":{"type":"integer","minimum":1,"maximum":4,"description":"[warning_signs] How well do you understand the difference between normal social conflict and patterns that may require attention?"},"q4":{"type":"integer","minimum":1,"maximum":4,"description":"[documentation] If a concern started to develop, would you know what to document and how to track it?"},"q5":{"type":"integer","minimum":1,"maximum":4,"description":"[warning_signs] How often do you check in with your child about their social experiences at school?"},"q6":{"type":"integer","minimum":1,"maximum":4,"description":"[warning_signs] Would you notice if your child started avoiding certain activities, people, or places?"},"q7":{"type":"integer","minimum":1,"maximum":4,"description":"[escalation] Do you know when it would be appropriate to involve the school in a concern about your child?"},"q8":{"type":"integer","minimum":1,"maximum":4,"description":"[escalation] Do you know who to contact at your child's school if you needed to raise a concern?"},"q9":{"type":"integer","minimum":1,"maximum":4,"description":"[response] If you confirmed something concerning was happening, how confident are you in knowing what to do next?"},"q10":{"type":"integer","minimum":1,"maximum":4,"description":"[response] Do you feel you could stay calm and structured if your child disclosed something upsetting?"},"q11":{"type":"integer","minimum":1,"maximum":4,"description":"[communication] Does your child have other trusted adults they could talk to if they were not comfortable coming to you?"},"q12":{"type":"integer","minimum":1,"maximum":4,"description":"[response] Overall, how prepared do you feel to protect your child if a situation was developing at school?"}}}}},"CategoryScore":{"type":"object","properties":{"category":{"type":"string"},"average":{"type":"number"}}},"ChecklistResult":{"type":"object","properties":{"success":{"type":"boolean"},"tool":{"type":"string","example":"run_student_safety_checklist"},"version":{"type":"string"},"score":{"type":"integer","description":"Normalized readiness score, 0-100."},"category":{"type":"string","description":"Score band classification."},"key_findings":{"type":"array","items":{"type":"string"},"description":"Top 2-3 protection gaps."},"next_steps":{"type":"string"},"limitations":{"type":"array","items":{"type":"string"}},"result":{"type":"object","properties":{"score":{"type":"integer"},"score_band":{"type":"string"},"interpretation":{"type":"string"},"top_gaps":{"type":"array","items":{"type":"string"}},"category_scores":{"type":"array","items":{"$ref":"#/components/schemas/CategoryScore"}},"recommendation":{"type":"string"}}}}},"ErrorResult":{"type":"object","properties":{"success":{"type":"boolean","example":false},"error":{"type":"string"}}}}},"x-limitations":["This tool provides decision support only. It does not diagnose bullying, abuse, or mental health conditions.","It does not replace emergency services, crisis resources, school authorities, medical care, or legal advice.","It cannot determine whether a specific child is or is not in danger.","If a child is in immediate danger, contact emergency services, or call the Childhelp National Child Abuse Hotline at 1-800-422-4453."],"x-other-interfaces":{"remote_mcp":"https://soschecklist.net/mcp","webmcp_http":"https://soschecklist.net/api/webmcp","mcp_discovery":"https://soschecklist.net/.well-known/mcp.json","capability_manifest":"https://soschecklist.net/capability-manifest.json"}}