{"openapi":"3.1.0","info":{"title":"StudyTechnique API","version":"0.1.0","description":"Study-methodology reference and study-plan generator — Cornell notes, spaced repetition, active recall, Feynman, interleaving, Pomodoro — all local.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://studytechnique.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/studytechnique/docs"},"termsOfService":"https://connectorbay.com/studytechnique/terms"},"servers":[{"url":"https://studytechnique.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/studytechnique/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/technique_list":{"post":{"operationId":"technique_list","summary":"All supported study techniques with a one-line label each. Use for \"what study techniques do","description":"All supported study techniques with a one-line label each. Use for \"what study techniques do\n    you know about\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"technique_listArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/technique_explainer":{"post":{"operationId":"technique_explainer","summary":"Explain one study technique: its origin, how it works, and its steps where applicable. Use","description":"Explain one study technique: its origin, how it works, and its steps where applicable. Use\n    for \"explain the Feynman technique\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"technique":{"description":"cornell_notes | spaced_repetition | active_recall | feynman_technique | interleaving | pomodoro","title":"Technique","type":"string"}},"required":["technique"],"title":"technique_explainerArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/cornell_template":{"post":{"operationId":"cornell_template","summary":"The Cornell note-taking structure (cue column / notes column / summary) and workflow,","description":"The Cornell note-taking structure (cue column / notes column / summary) and workflow,\n    optionally with example cue questions for a topic. Use for \"give me a Cornell notes template for\n    photosynthesis\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A topic to generate example cue-column questions for.","title":"Topic"}},"title":"cornell_templateArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/feynman_steps":{"post":{"operationId":"feynman_steps","summary":"The four-step Feynman technique, optionally with prompts filled in for a specific concept.","description":"The four-step Feynman technique, optionally with prompts filled in for a specific concept.\n    Use for \"walk me through the Feynman technique for entropy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"concept":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific concept to fill the four steps in for.","title":"Concept"}},"title":"feynman_stepsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/study_plan":{"post":{"operationId":"study_plan","summary":"A technique-weighted study plan for a subject type and session length; the minutes always sum","description":"A technique-weighted study plan for a subject type and session length; the minutes always sum\n    exactly to total_minutes. Use for \"build me a 90-minute study plan for calculus\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"subject_type":{"description":"math_or_problem_solving | language_or_vocab | reading_or_conceptual | technical_or_programming | memorization_heavy","title":"Subject Type","type":"string"},"total_minutes":{"description":"Total study session length in minutes.","maximum":1440,"minimum":3,"title":"Total Minutes","type":"integer"},"goal":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"What you're studying for, echoed back in the result.","title":"Goal"}},"required":["subject_type","total_minutes"],"title":"study_planArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/interleaving_scheduler":{"post":{"operationId":"interleaving_scheduler","summary":"A round-robin interleaved schedule across 2+ topics — no topic repeats in consecutive blocks,","description":"A round-robin interleaved schedule across 2+ topics — no topic repeats in consecutive blocks,\n    block minutes sum exactly to total_minutes. Use for \"interleave these 3 topics over an hour\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topics":{"description":"2 or more distinct topics to interleave.","items":{"type":"string"},"maxItems":8,"minItems":2,"title":"Topics","type":"array"},"total_minutes":{"maximum":1440,"minimum":2,"title":"Total Minutes","type":"integer"},"block_minutes":{"default":15,"maximum":120,"minimum":1,"title":"Block Minutes","type":"integer"}},"required":["topics","total_minutes"],"title":"interleaving_schedulerArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}