{"openapi":"3.1.0","info":{"title":"Discord Platform (BYOK) API","version":"0.1.0","description":"Discord Platform (BYOK) lets an AI assistant read your own Discord Platform data through the Discord Platform API with a key you supply (bot token (the token only, without the word Bot)). Read-only: 9 tools (list_sticker_packs, get_sticker_pack, get_sticker, list_voice_regions, get_gateway_info, list_default_soundboard_sounds, list_guild_soundboard_sounds, get_stage_instance,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-discord-platform.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-discord-platform/docs"},"termsOfService":"https://connectorbay.com/byok-discord-platform/terms"},"servers":[{"url":"https://byok-discord-platform.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-discord-platform/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_sticker_packs":{"post":{"operationId":"list_sticker_packs","summary":"List Discord's official (Nitro) sticker packs: id, name, description, SKU id and cover sticker id (the stickers inside a","description":"List Discord's official (Nitro) sticker packs: id, name, description, SKU id and cover sticker id (the stickers inside are left out; use get_sticker_pack). Use for \"Which official sticker packs does Discord offer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_sticker_packsArguments","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_sticker_pack":{"post":{"operationId":"get_sticker_pack","summary":"Get one official sticker pack with its stickers (id, name, tags, description, sort order). Use for \"Which stickers are i","description":"Get one official sticker pack with its stickers (id, name, tags, description, sort order). Use for \"Which stickers are in sticker pack 1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"pack_id":{"description":"Sticker pack id (a snowflake number) from list_sticker_packs.","maxLength":25,"title":"Pack Id","type":"string"}},"required":["pack_id"],"title":"get_sticker_packArguments","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_sticker":{"post":{"operationId":"get_sticker","summary":"Get one sticker (standard or server sticker) by id: name, tags, description, type, availability and pack or server id. U","description":"Get one sticker (standard or server sticker) by id: name, tags, description, type, availability and pack or server id. Uploaders' accounts are left out. Use for \"What is sticker 749054660769218631\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sticker_id":{"description":"Sticker id (a snowflake number).","maxLength":25,"title":"Sticker Id","type":"string"}},"required":["sticker_id"],"title":"get_stickerArguments","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_voice_regions":{"post":{"operationId":"list_voice_regions","summary":"List the voice regions a Discord server or channel can use, with id, name, optimal, deprecated and custom flags. Use for","description":"List the voice regions a Discord server or channel can use, with id, name, optimal, deprecated and custom flags. Use for \"Which voice regions does Discord offer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_voice_regionsArguments","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_gateway_info":{"post":{"operationId":"get_gateway_info","summary":"Get the gateway URL, the recommended number of shards and the bot's session start limits (total, remaining, reset time a","description":"Get the gateway URL, the recommended number of shards and the bot's session start limits (total, remaining, reset time and max concurrency). Use for \"How many gateway sessions does my Discord bot have left\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_gateway_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/list_default_soundboard_sounds":{"post":{"operationId":"list_default_soundboard_sounds","summary":"List the default soundboard sounds available to every server: name, id, volume and emoji. Uploaders' accounts are left o","description":"List the default soundboard sounds available to every server: name, id, volume and emoji. Uploaders' accounts are left out. Use for \"Which default soundboard sounds does Discord have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_default_soundboard_soundsArguments","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_guild_soundboard_sounds":{"post":{"operationId":"list_guild_soundboard_sounds","summary":"List a server's custom soundboard sounds: name, id, volume and emoji. Uploaders' accounts are left out. The bot must be ","description":"List a server's custom soundboard sounds: name, id, volume and emoji. Uploaders' accounts are left out. The bot must be in the server. Use for \"Which custom soundboard sounds does my Discord server have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"guild_id":{"description":"Server (guild) id, a snowflake number such as 41771983423143937.","maxLength":25,"title":"Guild Id","type":"string"}},"required":["guild_id"],"title":"list_guild_soundboard_soundsArguments","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_stage_instance":{"post":{"operationId":"get_stage_instance","summary":"Get the live stage of a stage channel: topic, privacy level, server and scheduled event link. Answers 404 when no stage ","description":"Get the live stage of a stage channel: topic, privacy level, server and scheduled event link. Answers 404 when no stage is live. Use for \"Is there a live stage in my Discord stage channel\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"channel_id":{"description":"Stage channel id, a snowflake number.","maxLength":25,"title":"Channel Id","type":"string"}},"required":["channel_id"],"title":"get_stage_instanceArguments","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_server_template":{"post":{"operationId":"get_server_template","summary":"Get a public server template by its code: name, description, usage count, dates and the source server's name, language a","description":"Get a public server template by its code: name, description, usage count, dates and the source server's name, language and verification settings (creator account left out). Use for \"What does Discord server template hgM48av5Q69A include\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"template_code":{"description":"Template code from a discord.new link, for example 'hgM48av5Q69A'.","maxLength":40,"title":"Template Code","type":"string"}},"required":["template_code"],"title":"get_server_templateArguments","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}}}}