{"openapi":"3.1.0","info":{"title":"Youtrack Config (BYOK) API","version":"0.1.0","description":"Youtrack Config (BYOK) lets an AI assistant read your own Youtrack Config data through the Youtrack Config API with a key you supply (YouTrack permanent token). Read-only: 7 tools (list_custom_field_definitions, list_state_bundles, list_enum_bundles, list_version_bundles, list_user_groups, list_time_tracking_work_item_types, get_project_time_tracking_settings). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-youtrack-config.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-youtrack-config/docs"},"termsOfService":"https://connectorbay.com/byok-youtrack-config/terms"},"servers":[{"url":"https://byok-youtrack-config.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-youtrack-config/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_custom_field_definitions":{"post":{"operationId":"list_custom_field_definitions","summary":"List the instance-wide custom field definitions with name, localized name, field type, aliases, whether they attach to n","description":"List the instance-wide custom field definitions with name, localized name, field type, aliases, whether they attach to new projects automatically and display order. Needs permission to read custom field settings. Use for \"Which custom fields are defined 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"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":42,"description":"How many items to return (1 to 100, default 42).","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,localizedName,aliases,isAutoAttached,isDisplayedInIssueList,ordinal,fieldType(id)","type":"string"},{"type":"null"}],"default":"id,name,localizedName,aliases,isAutoAttached,isDisplayedInIssueList,ordinal,fieldType(id)","description":"Fixed field selection sent to YouTrack; leave as is.","title":"Fields"}},"required":["site"],"title":"list_custom_field_definitionsArguments","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_state_bundles":{"post":{"operationId":"list_state_bundles","summary":"List the state bundles (sets of workflow states) with each state's name, resolved flag and order. Use for \"Which state s","description":"List the state bundles (sets of workflow states) with each state's name, resolved flag and order. Use for \"Which state sets does YouTrack define and which states count as resolved\".","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"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":42,"description":"How many items to return (1 to 100, default 42).","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,isUpdateable,values(id,name,isResolved,ordinal)","type":"string"},{"type":"null"}],"default":"id,name,isUpdateable,values(id,name,isResolved,ordinal)","description":"Fixed field selection sent to YouTrack; leave as is.","title":"Fields"}},"required":["site"],"title":"list_state_bundlesArguments","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_enum_bundles":{"post":{"operationId":"list_enum_bundles","summary":"List the enumeration bundles (sets of allowed values such as priorities or types) with value names, descriptions and ord","description":"List the enumeration bundles (sets of allowed values such as priorities or types) with value names, descriptions and order. Use for \"Which value sets (priorities, types) does YouTrack define\".","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"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":42,"description":"How many items to return (1 to 100, default 42).","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,isUpdateable,values(id,name,description,ordinal)","type":"string"},{"type":"null"}],"default":"id,name,isUpdateable,values(id,name,description,ordinal)","description":"Fixed field selection sent to YouTrack; leave as is.","title":"Fields"}},"required":["site"],"title":"list_enum_bundlesArguments","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_version_bundles":{"post":{"operationId":"list_version_bundles","summary":"List the version bundles (sets of product versions) with version ids and names. Use for \"Which version sets does YouTrac","description":"List the version bundles (sets of product versions) with version ids and names. Use for \"Which version sets does YouTrack define\".","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"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":42,"description":"How many items to return (1 to 100, default 42).","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,isUpdateable,values(id,name)","type":"string"},{"type":"null"}],"default":"id,name,isUpdateable,values(id,name)","description":"Fixed field selection sent to YouTrack; leave as is.","title":"Fields"}},"required":["site"],"title":"list_version_bundlesArguments","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_user_groups":{"post":{"operationId":"list_user_groups","summary":"List YouTrack user groups with name, number of members and whether the group contains all users. Member lists are not re","description":"List YouTrack user groups with name, number of members and whether the group contains all users. Member lists are not returned. Use for \"How many people are in each YouTrack group\".","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":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only groups matching this text.","title":"Query"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":42,"description":"How many items to return (1 to 100, default 42).","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,usersCount,allUsersGroup,ringId","type":"string"},{"type":"null"}],"default":"id,name,usersCount,allUsersGroup,ringId","description":"Fixed field selection sent to YouTrack; leave as is.","title":"Fields"}},"required":["site"],"title":"list_user_groupsArguments","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_time_tracking_work_item_types":{"post":{"operationId":"list_time_tracking_work_item_types","summary":"List the work item types (categories such as Development or Testing) available for time tracking, with the auto-attach f","description":"List the work item types (categories such as Development or Testing) available for time tracking, with the auto-attach flag. Use for \"Which time tracking categories does YouTrack offer\".","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"},"top":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":42,"description":"How many items to return (1 to 100, default 42).","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,autoAttached","type":"string"},{"type":"null"}],"default":"id,name,autoAttached","description":"Fixed field selection sent to YouTrack; leave as is.","title":"Fields"}},"required":["site"],"title":"list_time_tracking_work_item_typesArguments","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_project_time_tracking_settings":{"post":{"operationId":"get_project_time_tracking_settings","summary":"Get a project's time tracking settings: whether it is on, which fields hold estimate and time spent, and the work item t","description":"Get a project's time tracking settings: whether it is on, which fields hold estimate and time spent, and the work item types it uses. Use for \"Is time tracking enabled in YouTrack project 0-0\".","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"},"project_id":{"description":"Database id of the project, for example '0-0' (from list_projects in the YouTrack Projects connector).","maxLength":40,"title":"Project Id","type":"string"},"fields":{"anyOf":[{"const":"id,enabled,estimate(field(name)),timeSpent(field(name)),workItemTypes(id,name)","type":"string"},{"type":"null"}],"default":"id,enabled,estimate(field(name)),timeSpent(field(name)),workItemTypes(id,name)","description":"Fixed field selection sent to YouTrack; leave as is.","title":"Fields"}},"required":["site","project_id"],"title":"get_project_time_tracking_settingsArguments","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}}}}