{"openapi":"3.1.0","info":{"title":"Youtrack Issues (BYOK) API","version":"0.1.0","description":"Youtrack Issues (BYOK) lets an AI assistant read your own Youtrack Issues data through the Youtrack Issues API with a key you supply (YouTrack permanent token). Read-only: 8 tools (list_issues, get_issue, list_issue_comments, list_issue_links, list_issue_attachments, list_issue_work_items, list_issue_tags, list_issue_activities). The BYOK key travels with each request, is used for that one call...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-youtrack-issues.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-youtrack-issues/docs"},"termsOfService":"https://connectorbay.com/byok-youtrack-issues/terms"},"servers":[{"url":"https://byok-youtrack-issues.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-youtrack-issues/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_issues":{"post":{"operationId":"list_issues","summary":"Search issues with YouTrack query syntax, for example 'project: DEMO #Unresolved' or 'for: me'; returns id, summary, dat","description":"Search issues with YouTrack query syntax, for example 'project: DEMO #Unresolved' or 'for: me'; returns id, summary, dates, votes, project, reporter and tags. Newest updates first by default. Use for \"Which unresolved issues are assigned to me in YouTrack\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site":{"description":"Your YouTrack Cloud name: the part before .youtrack.cloud, for example 'mycompany' for mycompany.youtrack.cloud.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Site","type":"string"},"query":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"YouTrack search query, for example 'project: DEMO State: Open sort by: updated desc'; leave out for all issues.","title":"Query"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100, default 25).","title":"Top"},"skip":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many items to skip before the first returned one, for paging (default 0).","title":"Skip"},"fields":{"anyOf":[{"const":"idReadable,summary,created,updated,resolved,commentsCount,votes,project(shortName,name),reporter(fullName),tags(name)","type":"string"},{"type":"null"}],"default":"idReadable,summary,created,updated,resolved,commentsCount,votes,project(shortName,name),reporter(fullName),tags(name)","description":"Fixed field selection sent to YouTrack; leave as is.","title":"Fields"}},"required":["site"],"title":"list_issuesArguments","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_issue":{"post":{"operationId":"get_issue","summary":"Get one issue by id: summary, description, dates, votes, comment count, project, reporter, updater and tags. Use for \"Sh","description":"Get one issue by id: summary, description, dates, votes, comment count, project, reporter, updater and tags. Use for \"Show YouTrack issue DEMO-12\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site":{"description":"Your YouTrack Cloud name: the part before .youtrack.cloud, for example 'mycompany' for mycompany.youtrack.cloud.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Site","type":"string"},"issue_id":{"description":"Issue id as shown in YouTrack, for example 'DEMO-12' (or the internal database id).","maxLength":60,"title":"Issue Id","type":"string"},"fields":{"anyOf":[{"const":"idReadable,summary,created,updated,resolved,commentsCount,votes,project(shortName,name),reporter(fullName),tags(name),description,updater(fullName)","type":"string"},{"type":"null"}],"default":"idReadable,summary,created,updated,resolved,commentsCount,votes,project(shortName,name),reporter(fullName),tags(name),description,updater(fullName)","description":"Fixed field selection sent to YouTrack; leave as is.","title":"Fields"}},"required":["site","issue_id"],"title":"get_issueArguments","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_issue_comments":{"post":{"operationId":"list_issue_comments","summary":"List the comments of an issue as metadata only (id, author, times, pinned and deleted flags); the comment text is not re","description":"List the comments of an issue as metadata only (id, author, times, pinned and deleted flags); the comment text is not returned. Use for \"Who commented on YouTrack issue DEMO-12 and when\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site":{"description":"Your YouTrack Cloud name: the part before .youtrack.cloud, for example 'mycompany' for mycompany.youtrack.cloud.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Site","type":"string"},"issue_id":{"description":"Issue id as shown in YouTrack, for example 'DEMO-12' (or the internal database id).","maxLength":60,"title":"Issue Id","type":"string"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100, default 25).","title":"Top"},"skip":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many items to skip before the first returned one, for paging (default 0).","title":"Skip"},"fields":{"anyOf":[{"const":"id,created,updated,deleted,pinned,author(fullName)","type":"string"},{"type":"null"}],"default":"id,created,updated,deleted,pinned,author(fullName)","description":"Fixed field selection sent to YouTrack; leave as is.","title":"Fields"}},"required":["site","issue_id"],"title":"list_issue_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_issue_links":{"post":{"operationId":"list_issue_links","summary":"List an issue's links grouped by link type (relates to, depends on, parent for ...), with the linked issues' ids, summar","description":"List an issue's links grouped by link type (relates to, depends on, parent for ...), with the linked issues' ids, summaries and resolved time. Use for \"Which issues are linked to YouTrack issue DEMO-12\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site":{"description":"Your YouTrack Cloud name: the part before .youtrack.cloud, for example 'mycompany' for mycompany.youtrack.cloud.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Site","type":"string"},"issue_id":{"description":"Issue id as shown in YouTrack, for example 'DEMO-12' (or the internal database id).","maxLength":60,"title":"Issue Id","type":"string"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100, default 25).","title":"Top"},"skip":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many items to skip before the first returned one, for paging (default 0).","title":"Skip"},"fields":{"anyOf":[{"const":"direction,linkType(name,sourceToTarget,targetToSource),issues(idReadable,summary,resolved)","type":"string"},{"type":"null"}],"default":"direction,linkType(name,sourceToTarget,targetToSource),issues(idReadable,summary,resolved)","description":"Fixed field selection sent to YouTrack; leave as is.","title":"Fields"}},"required":["site","issue_id"],"title":"list_issue_linksArguments","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_issue_attachments":{"post":{"operationId":"list_issue_attachments","summary":"List an issue's attachments: name, size, MIME type, author and dates (file contents are not returned). Use for \"What fil","description":"List an issue's attachments: name, size, MIME type, author and dates (file contents are not returned). Use for \"What files are attached to YouTrack issue DEMO-12\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site":{"description":"Your YouTrack Cloud name: the part before .youtrack.cloud, for example 'mycompany' for mycompany.youtrack.cloud.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Site","type":"string"},"issue_id":{"description":"Issue id as shown in YouTrack, for example 'DEMO-12' (or the internal database id).","maxLength":60,"title":"Issue Id","type":"string"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100, default 25).","title":"Top"},"skip":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many items to skip before the first returned one, for paging (default 0).","title":"Skip"},"fields":{"anyOf":[{"const":"id,name,size,mimeType,created,author(fullName)","type":"string"},{"type":"null"}],"default":"id,name,size,mimeType,created,author(fullName)","description":"Fixed field selection sent to YouTrack; leave as is.","title":"Fields"}},"required":["site","issue_id"],"title":"list_issue_attachmentsArguments","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_issue_work_items":{"post":{"operationId":"list_issue_work_items","summary":"List the time tracking work items logged on an issue: date, duration, work type and author (descriptions not returned). ","description":"List the time tracking work items logged on an issue: date, duration, work type and author (descriptions not returned). Use for \"How much time was logged on YouTrack issue DEMO-12\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site":{"description":"Your YouTrack Cloud name: the part before .youtrack.cloud, for example 'mycompany' for mycompany.youtrack.cloud.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Site","type":"string"},"issue_id":{"description":"Issue id as shown in YouTrack, for example 'DEMO-12' (or the internal database id).","maxLength":60,"title":"Issue Id","type":"string"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100, default 25).","title":"Top"},"skip":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many items to skip before the first returned one, for paging (default 0).","title":"Skip"},"fields":{"anyOf":[{"const":"id,date,created,duration(minutes,presentation),type(name),author(fullName)","type":"string"},{"type":"null"}],"default":"id,date,created,duration(minutes,presentation),type(name),author(fullName)","description":"Fixed field selection sent to YouTrack; leave as is.","title":"Fields"}},"required":["site","issue_id"],"title":"list_issue_work_itemsArguments","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_issue_tags":{"post":{"operationId":"list_issue_tags","summary":"List the tags on an issue visible to the key's user. Use for \"Which tags does YouTrack issue DEMO-12 have\".","description":"List the tags on an issue visible to the key's user. Use for \"Which tags does YouTrack issue DEMO-12 have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site":{"description":"Your YouTrack Cloud name: the part before .youtrack.cloud, for example 'mycompany' for mycompany.youtrack.cloud.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Site","type":"string"},"issue_id":{"description":"Issue id as shown in YouTrack, for example 'DEMO-12' (or the internal database id).","maxLength":60,"title":"Issue Id","type":"string"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100, default 25).","title":"Top"},"skip":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many items to skip before the first returned one, for paging (default 0).","title":"Skip"},"fields":{"anyOf":[{"const":"id,name,untagOnResolve","type":"string"},{"type":"null"}],"default":"id,name,untagOnResolve","description":"Fixed field selection sent to YouTrack; leave as is.","title":"Fields"}},"required":["site","issue_id"],"title":"list_issue_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_issue_activities":{"post":{"operationId":"list_issue_activities","summary":"List the change history of an issue (activity stream) for chosen categories: when, who and what was added or removed. Us","description":"List the change history of an issue (activity stream) for chosen categories: when, who and what was added or removed. Use for \"What changed on YouTrack issue DEMO-12, newest first\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"site":{"description":"Your YouTrack Cloud name: the part before .youtrack.cloud, for example 'mycompany' for mycompany.youtrack.cloud.","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Site","type":"string"},"issue_id":{"description":"Issue id as shown in YouTrack, for example 'DEMO-12' (or the internal database id).","maxLength":60,"title":"Issue Id","type":"string"},"categories":{"description":"Which kind of activity to include.","enum":["IssueCreatedCategory","SummaryCategory","CommentsCategory","WorkItemCategory","ProjectCategory","IssueVisibilityCategory","AttachmentsCategory"],"title":"Categories","type":"string"},"reverse":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for newest first (default false, oldest first).","title":"Reverse"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100, default 25).","title":"Top"},"skip":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many items to skip before the first returned one, for paging (default 0).","title":"Skip"},"fields":{"anyOf":[{"const":"id,timestamp,targetMember,added,removed,author(fullName)","type":"string"},{"type":"null"}],"default":"id,timestamp,targetMember,added,removed,author(fullName)","description":"Fixed field selection sent to YouTrack; leave as is.","title":"Fields"}},"required":["site","issue_id","categories"],"title":"list_issue_activitiesArguments","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}}}}