{"openapi":"3.1.0","info":{"title":"mod.io (BYOK) API","version":"0.1.0","description":"mod.io (BYOK) lets an AI assistant read your own mod.io data through the mod.io API with a key you supply (mod.io API key). Read-only: 9 tools (list_games, get_game, get_game_stats, list_mods, get_mod, list_mod_files, list_mod_comments, list_mod_tags, list_mods_stats). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-modio.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-modio/docs"},"termsOfService":"https://connectorbay.com/byok-modio/terms"},"servers":[{"url":"https://byok-modio.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-modio/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_games":{"post":{"operationId":"list_games","summary":"List games on mod.io with name, summary, mod and download totals. Full-text search by name is available. Use for \"Which ","description":"List games on mod.io with name, summary, mod and download totals. Full-text search by name is available. Use for \"Which games support mods on mod.io\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Words to find in the game name.","title":"Search"},"sort":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Sort column; prefix with - for descending, for example '-date_live' or 'name'.","title":"Sort"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100, default 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of results to skip, for paging.","title":"Offset"}},"title":"list_gamesArguments","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/get_game":{"post":{"operationId":"get_game","summary":"Get one game: name, summary, instructions link, tag options and download statistics. Use for \"Show mod.io game 2\".","description":"Get one game: name, summary, instructions link, tag options and download statistics. Use for \"Show mod.io game 2\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"game_id":{"description":"mod.io game ID (a number) or the game's name_id, from list_games.","maxLength":60,"title":"Game Id","type":"string"}},"required":["game_id"],"title":"get_gameArguments","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/get_game_stats":{"post":{"operationId":"get_game_stats","summary":"Get a game's totals: number of mods, downloads today, total downloads, daily average and subscribers. Use for \"How many ","description":"Get a game's totals: number of mods, downloads today, total downloads, daily average and subscribers. Use for \"How many mod downloads does mod.io game 2 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"game_id":{"description":"mod.io game ID (a number) or the game's name_id, from list_games.","maxLength":60,"title":"Game Id","type":"string"}},"required":["game_id"],"title":"get_game_statsArguments","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/list_mods":{"post":{"operationId":"list_mods","summary":"List or search the mods of a game, with author, tags, current version and download, subscriber and rating statistics. Us","description":"List or search the mods of a game, with author, tags, current version and download, subscriber and rating statistics. Use for \"What are the most downloaded mods for mod.io game 2\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"game_id":{"description":"mod.io game ID (a number) or the game's name_id, from list_games.","maxLength":60,"title":"Game Id","type":"string"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Words to find in the mod name.","title":"Search"},"sort":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Sort column; prefix with - for descending. Useful: -downloads_total, -downloads_today, -subscribers_total, -ratings_weighted_aggregate, -date_live, -date_updated, name.","title":"Sort"},"tags":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated tag names; only mods with all of them are returned.","title":"Tags"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100, default 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of results to skip, for paging.","title":"Offset"}},"required":["game_id"],"title":"list_modsArguments","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/get_mod":{"post":{"operationId":"get_mod","summary":"Get one mod: name, summary, author, tags, latest file version and size, and statistics. Use for \"Show details of mod 2 i","description":"Get one mod: name, summary, author, tags, latest file version and size, and statistics. Use for \"Show details of mod 2 in mod.io game 2\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"game_id":{"description":"mod.io game ID (a number) or the game's name_id, from list_games.","maxLength":60,"title":"Game Id","type":"string"},"mod_id":{"description":"mod.io mod ID, from list_mods.","maxLength":20,"title":"Mod Id","type":"string"}},"required":["game_id","mod_id"],"title":"get_modArguments","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/list_mod_files":{"post":{"operationId":"list_mod_files","summary":"List the published files of a mod with version, size, changelog and upload date. Use for \"What versions exist for mod 2 ","description":"List the published files of a mod with version, size, changelog and upload date. Use for \"What versions exist for mod 2 in mod.io game 2\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"game_id":{"description":"mod.io game ID (a number) or the game's name_id, from list_games.","maxLength":60,"title":"Game Id","type":"string"},"mod_id":{"description":"mod.io mod ID, from list_mods.","maxLength":20,"title":"Mod Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100, default 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of results to skip, for paging.","title":"Offset"}},"required":["game_id","mod_id"],"title":"list_mod_filesArguments","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/list_mod_comments":{"post":{"operationId":"list_mod_comments","summary":"List the public comments on a mod with author, text, date and reply position. Use for \"What do people say about mod 2 in","description":"List the public comments on a mod with author, text, date and reply position. Use for \"What do people say about mod 2 in mod.io game 2\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"game_id":{"description":"mod.io game ID (a number) or the game's name_id, from list_games.","maxLength":60,"title":"Game Id","type":"string"},"mod_id":{"description":"mod.io mod ID, from list_mods.","maxLength":20,"title":"Mod Id","type":"string"},"sort":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Sort column; prefix with - for descending, for example '-date_added'.","title":"Sort"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100, default 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of results to skip, for paging.","title":"Offset"}},"required":["game_id","mod_id"],"title":"list_mod_commentsArguments","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/list_mod_tags":{"post":{"operationId":"list_mod_tags","summary":"List the tags set on a mod. Use for \"Which tags does mod 2 in mod.io game 2 have\".","description":"List the tags set on a mod. Use for \"Which tags does mod 2 in mod.io game 2 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"game_id":{"description":"mod.io game ID (a number) or the game's name_id, from list_games.","maxLength":60,"title":"Game Id","type":"string"},"mod_id":{"description":"mod.io mod ID, from list_mods.","maxLength":20,"title":"Mod Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100, default 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of results to skip, for paging.","title":"Offset"}},"required":["game_id","mod_id"],"title":"list_mod_tagsArguments","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/list_mods_stats":{"post":{"operationId":"list_mods_stats","summary":"List download, subscriber and rating statistics for the mods of a game, one row per mod. Use for \"Which mods of mod.io g","description":"List download, subscriber and rating statistics for the mods of a game, one row per mod. Use for \"Which mods of mod.io game 2 have the best ratings\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"game_id":{"description":"mod.io game ID (a number) or the game's name_id, from list_games.","maxLength":60,"title":"Game Id","type":"string"},"sort":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Sort column; prefix with - for descending, for example '-downloads_total'.","title":"Sort"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return (1 to 100, default 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of results to skip, for paging.","title":"Offset"}},"required":["game_id"],"title":"list_mods_statsArguments","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}}}}