{"openapi":"3.1.0","info":{"title":"Yandex Disk (BYOK) API","version":"0.1.0","description":"Yandex Disk (BYOK) lets an AI assistant read your own Yandex Disk data through the Yandex Disk API with a key you supply (Yandex OAuth token with Yandex Disk read access). Read-only: 6 tools (get_disk_info, list_folder, list_all_files, list_recent_files, list_trash, get_public_resource). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached;...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-yandex-disk.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-yandex-disk/docs"},"termsOfService":"https://connectorbay.com/byok-yandex-disk/terms"},"servers":[{"url":"https://byok-yandex-disk.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-yandex-disk/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_disk_info":{"post":{"operationId":"get_disk_info","summary":"Show total, used and trash space (bytes) of the Yandex Disk and the paths of its system folders. Use for \"How much space","description":"Show total, used and trash space (bytes) of the Yandex Disk and the paths of its system folders. Use for \"How much space is left on my Yandex Disk\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_disk_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_folder":{"post":{"operationId":"list_folder","summary":"Describe a file or folder on Yandex Disk by path and list the entries inside a folder (folders first). Use 'disk:/' for ","description":"Describe a file or folder on Yandex Disk by path and list the entries inside a folder (folders first). Use 'disk:/' for the root. Use for \"What is in my Yandex Disk folder /Documents\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"path":{"description":"Path on the Disk such as 'disk:/Documents' or '/Documents'; 'disk:/' is the root.","maxLength":500,"title":"Path","type":"string"},"sort":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Sort key: name, path, created, modified or size; prefix '-' for descending, for example '-modified'.","title":"Sort"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many entries to return (default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many entries to skip from the top of the list, for paging.","title":"Offset"},"fields":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":"name,path,type,size,mime_type,modified,public_url,_embedded.items.name,_embedded.items.path,_embedded.items.type,_embedded.items.size,_embedded.items.mime_type,_embedded.items.modified,_embedded.total,_embedded.limit,_embedded.offset","description":"Comma-separated JSON keys to keep (dots for nested keys); the default keeps names, paths, types, sizes and dates and drops previews and links.","title":"Fields"}},"required":["path"],"title":"list_folderArguments","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_all_files":{"post":{"operationId":"list_all_files","summary":"List every file on the Disk as one flat alphabetical list, optionally only some kinds (images, documents, video ...), wi","description":"List every file on the Disk as one flat alphabetical list, optionally only some kinds (images, documents, video ...), with size, type and dates. Use for \"List all the images on my Yandex Disk\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"media_type":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated file kinds to keep, for example 'image', 'video' or 'document,spreadsheet'. Kinds: audio, backup, book, compressed, data, development, diskimage, document, encoded, executable, flash, font, image, settings, spreadsheet, text, unknown, video, web.","title":"Media Type"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many entries to return (default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many entries to skip from the top of the list, for paging.","title":"Offset"}},"title":"list_all_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_recent_files":{"post":{"operationId":"list_recent_files","summary":"List the most recently uploaded files, newest first, optionally only some kinds. Use for \"Which files did I upload to Ya","description":"List the most recently uploaded files, newest first, optionally only some kinds. Use for \"Which files did I upload to Yandex Disk most recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"media_type":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated file kinds to keep, for example 'image', 'video' or 'document,spreadsheet'. Kinds: audio, backup, book, compressed, data, development, diskimage, document, encoded, executable, flash, font, image, settings, spreadsheet, text, unknown, video, web.","title":"Media Type"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many entries to return (default 20).","title":"Limit"}},"title":"list_recent_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_trash":{"post":{"operationId":"list_trash","summary":"List what is in the Disk's Trash (use '/' for the Trash root) with names, original paths, sizes and deletion times. Use ","description":"List what is in the Disk's Trash (use '/' for the Trash root) with names, original paths, sizes and deletion times. Use for \"What is in my Yandex Disk trash\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"path":{"description":"Path inside the Trash, '/' for its root.","maxLength":500,"title":"Path","type":"string"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many entries to return (default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many entries to skip from the top of the list, for paging.","title":"Offset"},"fields":{"anyOf":[{"maxLength":600,"type":"string"},{"type":"null"}],"default":"name,path,type,size,mime_type,modified,public_url,_embedded.items.name,_embedded.items.path,_embedded.items.type,_embedded.items.size,_embedded.items.mime_type,_embedded.items.modified,_embedded.total,_embedded.limit,_embedded.offset","description":"Comma-separated JSON keys to keep (dots for nested keys); the default keeps names, paths, types, sizes and dates and drops previews and links.","title":"Fields"}},"required":["path"],"title":"list_trashArguments","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_public_resource":{"post":{"operationId":"get_public_resource","summary":"Describe a published file or folder from its public link or key (no token rights on the owner's Disk needed), listing fo","description":"Describe a published file or folder from its public link or key (no token rights on the owner's Disk needed), listing folder contents. Use for \"What is inside the shared Yandex Disk folder https://disk.yandex.com/d/AaaBbb1122Ccc\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"public_key":{"description":"Public link (https://disk.yandex.com/d/...) or public key of the published resource.","maxLength":300,"title":"Public Key","type":"string"},"path":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Path inside a published folder, to look at a sub-folder or file.","title":"Path"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many entries to return (default 20).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many entries to skip from the top of the list, for paging.","title":"Offset"}},"required":["public_key"],"title":"get_public_resourceArguments","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}}}}