openapi: 3.1.0 info: title: Azure DevOps Artifacts Attachments Work Items API description: 'REST API for managing packages, feeds, and artifact dependencies in Azure Artifacts. Supports NuGet, npm, Maven, Python, and Universal package formats in private or public feeds. Enables programmatic management of package feeds, discovery of packages and their versions, and lifecycle operations such as deprecating or deleting package versions. ' version: '7.1' contact: name: Microsoft Azure DevOps url: https://learn.microsoft.com/en-us/rest/api/azure/devops/artifacts/ license: name: MIT url: https://opensource.org/licenses/MIT servers: - url: https://feeds.dev.azure.com/{organization}/{project}/_apis description: Azure DevOps Artifacts API (project-scoped) variables: organization: description: Azure DevOps organization name or ID default: myorganization project: description: Azure DevOps project name or ID default: myproject security: - bearerAuth: [] - basicAuth: [] tags: - name: Work Items description: Operations for managing work items (Bugs, Tasks, User Stories, etc.) paths: /wit/workitems: get: operationId: workItems_list summary: Azure DevOps List work items by IDs description: 'Returns a list of work items by their IDs. You must provide a comma-separated list of work item IDs. Optionally filter by specific fields, as-of date, or expand relations and links. ' tags: - Work Items parameters: - $ref: '#/components/parameters/ApiVersion' - name: ids in: query required: true description: Comma-separated list of work item IDs (up to 200) schema: type: string example: 1,2,3,4,5 - name: fields in: query required: false description: Comma-separated list of fields to return (e.g., System.Title,System.State) schema: type: string - name: asOf in: query required: false description: Work items as of a specific date and time (ISO 8601 format) schema: type: string format: date-time - name: $expand in: query required: false description: Expand relations, links, or fields in the response schema: type: string enum: - none - relations - links - fields - all responses: '200': description: List of work items returned successfully content: application/json: schema: type: object properties: count: type: integer description: Number of work items returned value: type: array items: $ref: '#/components/schemas/WorkItem' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /wit/workitems/{type}: post: operationId: workItems_create summary: Azure DevOps Create a work item description: 'Creates a new work item of the specified type. The request body must be a JSON Patch document describing the fields to set on the new work item. Common types include Bug, Task, User Story, Feature, and Epic. ' tags: - Work Items parameters: - $ref: '#/components/parameters/ApiVersion' - name: type in: path required: true description: Work item type (e.g., Bug, Task, User Story) schema: type: string example: Bug - name: validateOnly in: query required: false description: Validate the fields without saving the work item schema: type: boolean - name: bypassRules in: query required: false description: Do not enforce the work item type rules on this update schema: type: boolean - name: suppressNotifications in: query required: false description: Do not fire any notifications for this change schema: type: boolean requestBody: required: true description: JSON Patch document with field operations for the new work item content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/JsonPatchOperation' example: - op: add path: /fields/System.Title value: Fix login button alignment - op: add path: /fields/System.Description value: The login button is misaligned on mobile screens responses: '200': description: Work item created successfully content: application/json: schema: $ref: '#/components/schemas/WorkItem' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /wit/workitems/{id}: get: operationId: workItems_get summary: Azure DevOps Get a work item by ID description: 'Returns a single work item by its numeric ID. Optionally filter the fields returned, specify a point-in-time with asOf, or expand relations and links. ' tags: - Work Items parameters: - $ref: '#/components/parameters/ApiVersion' - name: id in: path required: true description: Numeric ID of the work item schema: type: integer example: 42 - name: fields in: query required: false description: Comma-separated list of fields to return schema: type: string - name: asOf in: query required: false description: Work item as of a specific date and time schema: type: string format: date-time - name: $expand in: query required: false description: Expand relations, links, or fields schema: type: string enum: - none - relations - links - fields - all responses: '200': description: Work item returned successfully content: application/json: schema: $ref: '#/components/schemas/WorkItem' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' patch: operationId: workItems_update summary: Azure DevOps Update a work item description: 'Updates an existing work item by applying a JSON Patch document. Supports updating fields, adding relations, and modifying links. Use the add, replace, remove, and test operations to make changes. ' tags: - Work Items parameters: - $ref: '#/components/parameters/ApiVersion' - name: id in: path required: true description: Numeric ID of the work item to update schema: type: integer - name: validateOnly in: query required: false description: Validate fields without saving the work item schema: type: boolean - name: bypassRules in: query required: false description: Do not enforce work item type rules on this update schema: type: boolean - name: suppressNotifications in: query required: false description: Do not fire any notifications for this change schema: type: boolean requestBody: required: true description: JSON Patch document with field update operations content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/JsonPatchOperation' example: - op: replace path: /fields/System.State value: Active - op: replace path: /fields/System.AssignedTo value: user@example.com responses: '200': description: Work item updated successfully content: application/json: schema: $ref: '#/components/schemas/WorkItem' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' delete: operationId: workItems_delete summary: Azure DevOps Delete a work item description: 'Moves a work item to the recycle bin. The work item can be recovered from the recycle bin or permanently deleted. Deletion requires appropriate permissions. ' tags: - Work Items parameters: - $ref: '#/components/parameters/ApiVersion' - name: id in: path required: true description: Numeric ID of the work item to delete schema: type: integer - name: destroy in: query required: false description: Permanently delete the work item instead of moving to recycle bin schema: type: boolean responses: '204': description: Work item deleted successfully '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' components: responses: Forbidden: description: Forbidden - insufficient permissions to perform this operation content: application/json: schema: $ref: '#/components/schemas/ApiError' Unauthorized: description: Unauthorized - missing or invalid authentication credentials content: application/json: schema: $ref: '#/components/schemas/ApiError' BadRequest: description: Bad request - invalid parameters or request body content: application/json: schema: $ref: '#/components/schemas/ApiError' NotFound: description: Not found - the requested resource does not exist content: application/json: schema: $ref: '#/components/schemas/ApiError' parameters: ApiVersion: name: api-version in: query required: true description: Azure DevOps REST API version. Use 7.1 for the latest stable version. schema: type: string default: '7.1' enum: - '7.1' - '7.0' - '6.0' schemas: JsonPatchOperation: type: object description: A single operation in a JSON Patch document (RFC 6902) required: - op - path properties: op: type: string description: Operation type enum: - add - remove - replace - move - copy - test path: type: string description: JSON Pointer path (RFC 6901) to the target location example: /fields/System.Title from: type: string description: Source path for move and copy operations value: description: Value to apply (for add, replace, test operations) WorkItem: type: object description: An Azure DevOps work item (Bug, Task, User Story, etc.) properties: id: type: integer description: Unique numeric identifier of the work item example: 42 rev: type: integer description: Revision number of the work item (increments on each update) example: 3 fields: type: object description: 'Dynamic map of field reference names to values. Common fields include System.Title, System.State, System.AssignedTo, System.Description, System.WorkItemType, System.AreaPath, System.IterationPath, etc. ' additionalProperties: true example: System.Title: Fix login button alignment System.State: Active System.AssignedTo: User Name System.WorkItemType: Bug System.TeamProject: MyProject System.AreaPath: MyProject\\Frontend System.IterationPath: MyProject\\Sprint 5 relations: type: array description: Links and relations to other work items or external resources items: $ref: '#/components/schemas/WorkItemRelation' _links: type: object description: HAL links for navigating related resources additionalProperties: type: object properties: href: type: string format: uri url: type: string format: uri description: URL to access this work item via the REST API example: https://dev.azure.com/myorg/myproject/_apis/wit/workItems/42 WorkItemRelation: type: object description: A relation between a work item and another resource properties: rel: type: string description: Relation type (e.g., System.LinkTypes.Hierarchy-Reverse, AttachedFile) example: System.LinkTypes.Hierarchy-Reverse url: type: string format: uri description: URL of the related resource attributes: type: object description: Additional attributes for the relation (e.g., comment, isLocked) additionalProperties: true ApiError: type: object description: Error response from the Azure DevOps API properties: id: type: string format: uuid description: Unique identifier for the error instance innerException: type: object nullable: true description: Inner exception details if applicable message: type: string description: Human-readable error message typeName: type: string description: Type name of the exception typeKey: type: string description: Short type key for the error errorCode: type: integer description: Numeric error code eventId: type: integer description: Event ID for logging and tracing securitySchemes: bearerAuth: type: http scheme: bearer description: Azure AD OAuth 2.0 bearer token basicAuth: type: http scheme: basic description: Basic authentication using a Personal Access Token (PAT). Use any string as the username and the PAT as the password, then base64-encode the result.