{"openapi":"3.1.0","info":{"title":"Gambit API","version":"0.1.0","description":"A fully local chess opening theory reference: 50+ hand-curated named openings and variations with verified move sequences, ECO code ranges, strategic ideas and typical pawn structures, plus style-based suggestions, a gambit guide, opening principles and a glossary.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://gambit.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/gambit/docs"},"termsOfService":"https://connectorbay.com/gambit/terms"},"servers":[{"url":"https://gambit.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/gambit/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/opening_info":{"post":{"operationId":"opening_info","summary":"One named opening's move sequence (algebraic notation), ECO code range, strategic idea, and typical","description":"One named opening's move sequence (algebraic notation), ECO code range, strategic idea, and typical\n    resulting pawn structure/plan. Use for \"what's the Ruy Lopez\", \"moves for the Italian Game\", \"what's the idea\n    of the Grünfeld\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"An opening's name.","examples":["Ruy Lopez","Sicilian Najdorf","Queen's Gambit Declined","King's Indian Defense"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"opening_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/opening_search":{"post":{"operationId":"opening_search","summary":"Search the dataset by partial opening name, alias, ECO family, or a keyword from its strategic idea. Use","description":"Search the dataset by partial opening name, alias, ECO family, or a keyword from its strategic idea. Use\n    for \"which openings involve a fianchetto\", \"list Sicilian variations in this dataset\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Partial name, family, or idea keyword.","examples":["gambit","fianchetto","sicilian","queen's pawn"],"minLength":1,"title":"Query","type":"string"}},"required":["query"],"title":"opening_searchArguments","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/openings_by_eco_code":{"post":{"operationId":"openings_by_eco_code","summary":"Every opening in this dataset under one ECO classification letter (A: flank/irregular, B: 1.e4 non-e5","description":"Every opening in this dataset under one ECO classification letter (A: flank/irregular, B: 1.e4 non-e5\n    replies incl. the Sicilian, C: 1.e4 e5 and the French, D: 1.d4 d5 closed games, E: 1.d4 Nf6 Indian systems),\n    plus a plain-language summary of that letter range. Use for \"what's in ECO class B\", \"list all the C-code\n    openings here\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"eco_letter":{"description":"One ECO letter: A, B, C, D, or E.","examples":["C","B"],"title":"Eco Letter","type":"string"}},"required":["eco_letter"],"title":"openings_by_eco_codeArguments","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/openings_for_white":{"post":{"operationId":"openings_for_white","summary":"A few named openings commonly recommended for a given style, played as White. Use for \"aggressive opening","description":"A few named openings commonly recommended for a given style, played as White. Use for \"aggressive opening\n    for White\", \"what's a solid opening to play as White\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"style":{"description":"aggressive | positional | gambit | solid","title":"Style","type":"string"}},"required":["style"],"title":"openings_for_whiteArguments","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/openings_for_black":{"post":{"operationId":"openings_for_black","summary":"Common Black replies to a given White first move, optionally filtered by style. Use for \"what should Black","description":"Common Black replies to a given White first move, optionally filtered by style. Use for \"what should Black\n    play against 1.e4\", \"aggressive reply to 1.d4\", \"how should Black meet 1.c4\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"response_to":{"description":"White's first move: 1.e4 | 1.d4 | 1.c4 | 1.Nf3","title":"Response To","type":"string"},"style":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional: aggressive | positional | gambit | solid. Omit for the full breakdown.","title":"Style"}},"required":["response_to"],"title":"openings_for_blackArguments","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/gambit_guide":{"post":{"operationId":"gambit_guide","summary":"What a chess gambit is (deliberately offering material — usually a pawn — for development, central","description":"What a chess gambit is (deliberately offering material — usually a pawn — for development, central\n    control, open lines, or the initiative) plus a list of well-known named gambits in this dataset with their\n    basic idea. Use for \"what's a gambit\", \"list some famous chess gambits\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"gambit_guideArguments","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/opening_principles":{"post":{"operationId":"opening_principles","summary":"General chess opening principles (control the center, develop knights before bishops as a common","description":"General chess opening principles (control the center, develop knights before bishops as a common\n    guideline, castle early, don't move the same piece twice without reason, don't bring the queen out too\n    early, ...), phrased as guidelines rather than absolute rules. Use for \"what are the opening principles in\n    chess\", \"chess opening rules for beginners\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"opening_principlesArguments","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/eco_code_lookup":{"post":{"operationId":"eco_code_lookup","summary":"Reverse lookup: given one specific ECO code (e.g. 'C60'), returns which opening family it refers to in","description":"Reverse lookup: given one specific ECO code (e.g. 'C60'), returns which opening family it refers to in\n    this dataset — the narrowest matching entry plus any broader families it also falls under — where known. Use\n    for \"what opening is ECO code C60\", \"what does B90 mean\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"code":{"description":"A specific ECO code, e.g. C60.","examples":["C60","B90","D35"],"maxLength":3,"minLength":3,"title":"Code","type":"string"}},"required":["code"],"title":"eco_code_lookupArguments","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/chess_glossary":{"post":{"operationId":"chess_glossary","summary":"Definitions of common chess opening-theory terms (ECO code, gambit, fianchetto, transposition, tempo,","description":"Definitions of common chess opening-theory terms (ECO code, gambit, fianchetto, transposition, tempo,\n    zwischenzug, opening theory vs. middlegame, ...). Use for \"what does fianchetto mean\", \"what's a\n    zwischenzug\".","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":"chess_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}}}}