{"openapi":"3.1.0","info":{"title":"GREMath API","version":"0.1.0","description":"Unofficial GRE-style quant and verbal practice-question generator — real computed quant problems, vocabulary-bank verbal questions — all local.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://gremath.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/gremath/docs"},"termsOfService":"https://connectorbay.com/gremath/terms"},"servers":[{"url":"https://gremath.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/gremath/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/quant_question":{"post":{"operationId":"quant_question","summary":"GRE-style quant question(s) with real random parameters and a genuinely computed correct","description":"GRE-style quant question(s) with real random parameters and a genuinely computed correct\n    answer — arithmetic, algebra, geometry or data interpretation. Use for \"give me a GRE geometry\n    question\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"arithmetic | algebra | geometry | data_interpretation. Omit for a random mix.","title":"Topic"},"difficulty":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"easy | medium | hard","title":"Difficulty"},"count":{"default":1,"maximum":10,"minimum":1,"title":"Count","type":"integer"}},"title":"quant_questionArguments","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/verbal_question":{"post":{"operationId":"verbal_question","summary":"GRE-style verbal question(s) from the vocabulary bank — text completion or sentence","description":"GRE-style verbal question(s) from the vocabulary bank — text completion or sentence\n    equivalence. Use for \"quiz me on GRE sentence equivalence\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"qtype":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"text_completion | sentence_equivalence. Omit for a random mix.","title":"Qtype"},"difficulty":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"easy | medium | hard","title":"Difficulty"},"count":{"default":1,"maximum":10,"minimum":1,"title":"Count","type":"integer"}},"title":"verbal_questionArguments","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/practice_set":{"post":{"operationId":"practice_set","summary":"A mixed quant + verbal practice session in one call. Use for \"build me a 10-question GRE","description":"A mixed quant + verbal practice session in one call. Use for \"build me a 10-question GRE\n    practice set\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"quant_count":{"default":3,"description":"Number of quant questions to include.","maximum":20,"minimum":0,"title":"Quant Count","type":"integer"},"verbal_count":{"default":2,"description":"Number of verbal questions to include.","maximum":20,"minimum":0,"title":"Verbal Count","type":"integer"},"difficulty":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"easy | medium | hard","title":"Difficulty"}},"title":"practice_setArguments","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/vocab_word":{"post":{"operationId":"vocab_word","summary":"Look up a specific GRE-tier word, or sample words (optionally by difficulty). Use for \"what","description":"Look up a specific GRE-tier word, or sample words (optionally by difficulty). Use for \"what\n    does 'sagacious' mean\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"word":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific word to look up.","title":"Word"},"difficulty":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"easy | medium | hard, to sample from instead of a specific word.","title":"Difficulty"},"count":{"default":1,"maximum":15,"minimum":1,"title":"Count","type":"integer"}},"title":"vocab_wordArguments","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/score_summary":{"post":{"operationId":"score_summary","summary":"Map a correct/total practice tally to a rough illustrative 130-170 score band. Use for \"I got","description":"Map a correct/total practice tally to a rough illustrative 130-170 score band. Use for \"I got\n    14 of 20 right, roughly where does that land\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"correct":{"description":"Number of questions answered correctly.","minimum":0,"title":"Correct","type":"integer"},"total":{"description":"Total number of questions attempted.","exclusiveMinimum":0,"title":"Total","type":"integer"}},"required":["correct","total"],"title":"score_summaryArguments","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/topics":{"post":{"operationId":"topics","summary":"List exactly what each quant topic and verbal question type covers. Use for \"what kinds of","description":"List exactly what each quant topic and verbal question type covers. Use for \"what kinds of\n    GRE questions can you generate\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"topicsArguments","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}}}}