{"openapi":"3.1.0","info":{"title":"itch.io (BYOK) API","version":"0.1.0","description":"itch.io (BYOK) lets an AI assistant read your own itch.io data through the itch.io API with a key you supply (API key (an unscoped key from your itch.io user settings reaches all of these endpoints)). Read-only: 10 tools (get_credentials_info, get_profile, list_my_games, list_owned_keys, find_game_purchases, find_download_keys, list_claimed_rewards, list_my_collections, get_collection,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-itchio.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-itchio/docs"},"termsOfService":"https://connectorbay.com/byok-itchio/terms"},"servers":[{"url":"https://byok-itchio.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-itchio/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/get_credentials_info":{"post":{"operationId":"get_credentials_info","summary":"Show what kind of credential the key is (key or jwt), which scopes it has and when it expires. Use for \"What kind of itc","description":"Show what kind of credential the key is (key or jwt), which scopes it has and when it expires. Use for \"What kind of itch.io credential am I using\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_credentials_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/get_profile":{"post":{"operationId":"get_profile","summary":"Show the itch.io account the key belongs to: username, display name, profile URL and whether it is a developer. Use for ","description":"Show the itch.io account the key belongs to: username, display name, profile URL and whether it is a developer. Use for \"Which itch.io account is my key for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_profileArguments","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_my_games":{"post":{"operationId":"list_my_games","summary":"List the games you uploaded or can edit with title, URL, publish state, minimum price, views, downloads, purchases and e","description":"List the games you uploaded or can edit with title, URL, publish state, minimum price, views, downloads, purchases and earnings per currency. Use for \"How many views and downloads do my itch.io games have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_my_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/list_owned_keys":{"post":{"operationId":"list_owned_keys","summary":"List the download keys the account owns (purchases, claims, bundles, gifts), newest first, with the game title and devel","description":"List the download keys the account owns (purchases, claims, bundles, gifts), newest first, with the game title and developer. A page can hold fewer than per_page keys; keep paging until one is empty. Use for \"Which itch.io games do I own\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Keys per page (1 to 500, default 50).","title":"Per Page"},"game_ids":{"anyOf":[{"maxLength":400,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated list of up to 50 game IDs to restrict to, for example '3,341190'.","title":"Game Ids"}},"title":"list_owned_keysArguments","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/find_game_purchases":{"post":{"operationId":"find_game_purchases","summary":"Look up the completed purchases of one of your games made by an email address or itch.io user ID (give one of the two). ","description":"Look up the completed purchases of one of your games made by an email address or itch.io user ID (give one of the two). Contains buyer email addresses. Use for \"Did buyer@example.com purchase my itch.io game 3\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"game_id":{"description":"itch.io game ID, a number from list_my_games, for example '3'.","maxLength":20,"title":"Game Id","type":"string"},"email":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Buyer's email address (give this or user_id).","title":"Email"},"user_id":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Buyer's itch.io user ID (give this or email).","title":"User Id"}},"required":["game_id"],"title":"find_game_purchasesArguments","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/find_download_keys":{"post":{"operationId":"find_download_keys","summary":"Check whether a download key exists for one of your games, by key, email or user ID (give exactly one), and show its dow","description":"Check whether a download key exists for one of your games, by key, email or user ID (give exactly one), and show its downloads and owner. Use for \"Does buyer@example.com have a download key for my itch.io game 3\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"game_id":{"description":"itch.io game ID, a number from list_my_games, for example '3'.","maxLength":20,"title":"Game Id","type":"string"},"download_key":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"The download key to look up (the last part of a buyer's download URL).","title":"Download Key"},"email":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Email address to look up keys for.","title":"Email"},"user_id":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"itch.io user ID to look up keys for.","title":"User Id"}},"required":["game_id"],"title":"find_download_keysArguments","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_claimed_rewards":{"post":{"operationId":"list_claimed_rewards","summary":"List the rewards buyers claimed for one of your games, newest first (50 per page), with reward title, purchase details a","description":"List the rewards buyers claimed for one of your games, newest first (50 per page), with reward title, purchase details and the answers buyers gave (such as a shipping address). Contains personal data. Use for \"Which rewards were claimed for my itch.io game 3\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"game_id":{"description":"itch.io game ID, a number from list_my_games, for example '3'.","maxLength":20,"title":"Game Id","type":"string"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["game_id"],"title":"list_claimed_rewardsArguments","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_my_collections":{"post":{"operationId":"list_my_collections","summary":"List the collections you own or administer with title, URL, game count, privacy and layout. Use for \"Which itch.io colle","description":"List the collections you own or administer with title, URL, game count, privacy and layout. Use for \"Which itch.io collections do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"game_id":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Game ID: when given, each collection also says whether it contains that game (has_game).","title":"Game Id"}},"title":"list_my_collectionsArguments","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_collection":{"post":{"operationId":"get_collection","summary":"Get one collection by ID with title, URL, game count, privacy, description and dates. Private collections only show to t","description":"Get one collection by ID with title, URL, game count, privacy, description and dates. Private collections only show to those who can edit them. Use for \"Show itch.io collection 1234\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"collection_id":{"description":"itch.io collection ID, a number from list_my_collections, for example '1234'.","maxLength":20,"title":"Collection Id","type":"string"}},"required":["collection_id"],"title":"get_collectionArguments","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_collection_games":{"post":{"operationId":"list_collection_games","summary":"List the games in a collection in display order with position, blurb and game title and URL. Use for \"Which games are in","description":"List the games in a collection in display order with position, blurb and game title and URL. Use for \"Which games are in my itch.io collection 1234\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"collection_id":{"description":"itch.io collection ID, a number from list_my_collections, for example '1234'.","maxLength":20,"title":"Collection Id","type":"string"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Items per page (1 to 500, default 100).","title":"Per Page"}},"required":["collection_id"],"title":"list_collection_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}}}}