Azure DevOps Work Items API

Operations for managing work items (Bugs, Tasks, User Stories, etc.)

Operations 5

GET /wit/workitems Azure DevOps List work items by IDs #
POST /wit/workitems/{type} Azure DevOps Create a work item #
GET /wit/workitems/{id} Azure DevOps Get a work item by ID #
PATCH /wit/workitems/{id} Azure DevOps Update a work item #
DELETE /wit/workitems/{id} Azure DevOps Delete a work item #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/microsoft-azure-devops-work-items-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

microsoft-azure-devops-work-items-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Azure DevOps Work Items API
  description: 'REST API for managing work items, work item types, fields, queries, attachments, and comments in Azure Boards. Enables programmatic access to agile planning and tracking resources across sprints, backlogs, and boards.

    '
  version: '7.1'
  contact:
    name: Microsoft Azure DevOps
    url: https://learn.microsoft.com/en-us/rest/api/azure/devops/wit/
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
- url: https://dev.azure.com/{organization}/{project}/_apis
  description: Azure DevOps Work Item Tracking API
  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:
    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'
    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'
  schemas:
    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 <user@example.com>
            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
    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
    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
    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)
  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'
  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.