{"openapi":"3.1.0","info":{"title":"Timecontrol API","version":"0.1.0","description":"A fully local, hand-curated chess-clock & time-control reference: format explainers (bullet, blitz, rapid, classical, correspondence) with typical time ranges, increment/delay system explainers (Fischer increment, Bronstein delay, simple delay, byoyomi and more), a time-control glossary, typical tournament time controls by event level, clock etiquette, side-by-side format comparison, history notes and beginner tips — covering chess and, where relevant, other timed tabletop games such as Go and Shogi.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://timecontrol.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/timecontrol/docs"},"termsOfService":"https://connectorbay.com/timecontrol/terms"},"servers":[{"url":"https://timecontrol.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/timecontrol/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/format_info":{"post":{"operationId":"format_info","summary":"One speed format's (bullet, blitz, rapid, classical, correspondence) typical time range, description,","description":"One speed format's (bullet, blitz, rapid, classical, correspondence) typical time range, description,\n    common increment and how the idea carries over to other timed games. Omit name to list every format. Use for\n    \"how long is a blitz game\", \"what's classical time control\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A time-control format's name; omit to list all.","examples":["blitz","classical","correspondence"],"title":"Name"}},"title":"format_infoArguments","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/increment_explainer":{"post":{"operationId":"increment_explainer","summary":"How a time-replenishment system works (Fischer increment, Bronstein delay, simple delay, byoyomi, Canadian","description":"How a time-replenishment system works (Fischer increment, Bronstein delay, simple delay, byoyomi, Canadian\n    overtime, sudden death): mechanism, a worked example, typical games it's used in, and pros/cons. Omit system to\n    list them all. Use for \"what's a Bronstein delay\", \"how does byoyomi work\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"system":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"An increment/delay system's name; omit to list all.","examples":["Fischer increment","Bronstein delay","simple delay","byoyomi"],"title":"System"}},"title":"increment_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/term_glossary":{"post":{"operationId":"term_glossary","summary":"Definitions of time-control terms — flag, flag fall, zeitnot, delay, byoyomi period, digital/analog clock,","description":"Definitions of time-control terms — flag, flag fall, zeitnot, delay, byoyomi period, digital/analog clock,\n    pre-move, adjournment, arbiter, and more. Omit term to list them all. Use for \"what does zeitnot mean\", \"what's\n    a flag fall\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific term to look up; omit to list all.","title":"Term"}},"title":"term_glossaryArguments","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/tournament_time_control":{"post":{"operationId":"tournament_time_control","summary":"Typical time controls used at a given level of play, phrased qualitatively rather than as one fixed rule —","description":"Typical time controls used at a given level of play, phrased qualitatively rather than as one fixed rule —\n    club & casual, weekend Swiss, national/regional championship, elite classical, online arena, correspondence,\n    scholastic/youth, and professional Go/Shogi for comparison. Omit event_type to list them all. Use for \"what\n    time control do elite tournaments use\", \"what's typical for a weekend chess tournament\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A level or type of event; omit to list all.","examples":["club","weekend swiss","national championship","elite classical","online arena","correspondence","scholastic","professional Go"],"title":"Event Type"}},"title":"tournament_time_controlArguments","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/clock_etiquette":{"post":{"operationId":"clock_etiquette","summary":"Practical guidance on a clock-related courtesy or procedure — pressing the clock, touch-move and the clock,","description":"Practical guidance on a clock-related courtesy or procedure — pressing the clock, touch-move and the clock,\n    calling an arbiter, using one hand, disputed flag falls, adjusting pieces, digital-vs-analog courtesy, devices\n    near the board, online pre-move/lag norms, correspondence deadlines. Omit topic to list them all. Use for \"is\n    it rude to slap the clock\", \"what do I do if I think my opponent's flag fell\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A clock-related etiquette topic; omit to list all.","examples":["pressing the clock","touch-move","calling the arbiter","disputed flag fall"],"title":"Topic"}},"title":"clock_etiquetteArguments","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/format_comparison":{"post":{"operationId":"format_comparison","summary":"Side-by-side comparison of two named formats' typical time range, common increment and pace. Use for","description":"Side-by-side comparison of two named formats' typical time range, common increment and pace. Use for\n    \"compare rapid and classical\", \"blitz vs bullet\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"a":{"description":"First format's name.","examples":["blitz"],"minLength":1,"title":"A","type":"string"},"b":{"description":"Second format's name.","examples":["classical"],"minLength":1,"title":"B","type":"string"}},"required":["a","b"],"title":"format_comparisonArguments","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/history_note":{"post":{"operationId":"history_note","summary":"A short history note on how chess clocks and time controls evolved — sandglasses, mechanical flag clocks,","description":"A short history note on how chess clocks and time controls evolved — sandglasses, mechanical flag clocks,\n    the move to digital, the Fischer increment's origin, byoyomi's origin, correspondence chess and adjournments.\n    Omit topic for a general overview. Use for \"who invented the chess clock increment\", \"history of byoyomi\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A history topic; omit for a general overview.","examples":["sandglass era","mechanical flag clocks","the digital era","the Fischer increment's origin","byoyomi's origin"],"title":"Topic"}},"title":"history_noteArguments","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/beginner_tips":{"post":{"operationId":"beginner_tips","summary":"A ranked shortlist of practical clock-management tips for players new to playing on a clock — from","description":"A ranked shortlist of practical clock-management tips for players new to playing on a clock — from\n    learning your time control before you sit down to not losing a won game on time. Use for \"clock tips for\n    beginners\", \"how do I not lose on time in a winning position\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"count":{"default":5,"description":"How many tips to return.","maximum":8,"minimum":1,"title":"Count","type":"integer"}},"title":"beginner_tipsArguments","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}}}}