Azure DevOps Packages API

Operations for listing and managing packages within feeds

Documentation

Specifications

Other Resources

OpenAPI Specification

microsoft-azure-devops-packages-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Azure DevOps Artifacts Attachments Packages 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: Packages
  description: Operations for listing and managing packages within feeds
paths:
  /packaging/feeds/{feedId}/packages:
    get:
      operationId: packages_list
      summary: Azure DevOps List packages in a feed
      description: 'Returns a list of packages in a specific feed. Supports filtering by package name, protocol type (nuget, npm, maven, pypi, upack), and whether to include deleted packages.

        '
      tags:
      - Packages
      parameters:
      - $ref: '#/components/parameters/ApiVersion'
      - $ref: '#/components/parameters/FeedId'
      - name: protocolType
        in: query
        required: false
        description: Filter packages by protocol type
        schema:
          type: string
          enum:
          - nuget
          - npm
          - maven
          - pypi
          - upack
          - cargo
          - swift
      - name: packageNameQuery
        in: query
        required: false
        description: Filter packages whose names contain this string
        schema:
          type: string
      - name: normalizedPackageName
        in: query
        required: false
        description: Exact package name match (normalized form)
        schema:
          type: string
      - name: includeUrls
        in: query
        required: false
        description: Whether to include package manager URLs in the response
        schema:
          type: boolean
      - name: includeAllVersions
        in: query
        required: false
        description: Whether to include all versions or only the latest
        schema:
          type: boolean
      - name: isListed
        in: query
        required: false
        description: Filter by listed status (true=published, false=unlisted)
        schema:
          type: boolean
      - name: getTopPackageVersions
        in: query
        required: false
        description: Whether to include the top versions for each package
        schema:
          type: boolean
      - name: isDeleted
        in: query
        required: false
        description: Whether to include deleted packages
        schema:
          type: boolean
      - name: $top
        in: query
        required: false
        description: Maximum number of packages to return
        schema:
          type: integer
      - name: $skip
        in: query
        required: false
        description: Number of packages to skip (for pagination)
        schema:
          type: integer
      - name: continuationToken
        in: query
        required: false
        description: Continuation token for paginated results
        schema:
          type: string
      responses:
        '200':
          description: List of packages returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                  value:
                    type: array
                    items:
                      $ref: '#/components/schemas/Package'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /packaging/feeds/{feedId}/packages/{packageId}:
    get:
      operationId: packages_get
      summary: Azure DevOps Get package details
      description: 'Returns detailed information about a specific package, including all versions, its protocol type, and normalized name. The packageId is the GUID assigned to the package, not the package name.

        '
      tags:
      - Packages
      parameters:
      - $ref: '#/components/parameters/ApiVersion'
      - $ref: '#/components/parameters/FeedId'
      - name: packageId
        in: path
        required: true
        description: GUID identifier of the package
        schema:
          type: string
          format: uuid
      - name: includeAllVersions
        in: query
        required: false
        description: Whether to include all versions or only the latest
        schema:
          type: boolean
      - name: includeUrls
        in: query
        required: false
        description: Whether to include package manager URLs
        schema:
          type: boolean
      - name: isListed
        in: query
        required: false
        description: Filter versions by listed status
        schema:
          type: boolean
      - name: isDeleted
        in: query
        required: false
        description: Whether to include deleted versions
        schema:
          type: boolean
      responses:
        '200':
          description: Package details returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Package'
        '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'
    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'
    FeedId:
      name: feedId
      in: path
      required: true
      description: Feed GUID or feed name
      schema:
        type: string
  schemas:
    PackageVersion:
      type: object
      description: A specific version of a package
      properties:
        id:
          type: string
          format: uuid
          description: Unique GUID identifier of this version
        version:
          type: string
          description: Version string (e.g., '1.2.3' or '1.0.0-beta.1')
          example: 1.2.3
        normalizedVersion:
          type: string
          description: Normalized version string for comparison
          example: 1.2.3
        isLatest:
          type: boolean
          description: Whether this is the latest stable version
        isListed:
          type: boolean
          description: Whether the version is listed (visible in package managers)
        storageId:
          type: string
          description: Storage identifier for the package files
        views:
          type: array
          description: Feed views this version is promoted to
          items:
            $ref: '#/components/schemas/FeedView'
        deletedDate:
          type: string
          format: date-time
          nullable: true
          description: Date the version was deleted (null if active)
        publishDate:
          type: string
          format: date-time
          description: Date and time this version was published
        sourceChain:
          type: array
          description: Upstream source chain for packages from upstream sources
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              upstreamSourceType:
                type: string
              protocol:
                type: string
              location:
                type: string
                format: uri
        url:
          type: string
          format: uri
    Package:
      type: object
      description: A package in an Azure Artifacts feed
      properties:
        id:
          type: string
          format: uuid
          description: Unique GUID identifier of the package
        name:
          type: string
          description: Display name of the package
          example: MyCompany.MyLibrary
        normalizedName:
          type: string
          description: Normalized (lowercase) version of the package name
          example: mycompany.mylibrary
        protocolType:
          type: string
          description: Package manager protocol type
          enum:
          - nuget
          - npm
          - maven
          - pypi
          - upack
          - cargo
          - swift
        versions:
          type: array
          description: List of available versions (if requested)
          items:
            $ref: '#/components/schemas/PackageVersion'
        url:
          type: string
          format: uri
          description: URL to access this package via the REST API
        _links:
          type: object
          additionalProperties:
            type: object
            properties:
              href:
                type: string
                format: uri
    FeedView:
      type: object
      description: A view of a feed (e.g., @local, @prerelease, @release)
      properties:
        id:
          type: string
          format: uuid
          description: View ID
        name:
          type: string
          description: View name (e.g., '@local', '@release')
          example: '@release'
        type:
          type: string
          description: View type
          enum:
          - none
          - release
          - implicit
        url:
          type: string
          format: uri
        _links:
          type: object
          additionalProperties:
            type: object
            properties:
              href:
                type: string
                format: uri
    ApiError:
      type: object
      description: Error response from the Azure DevOps API
      properties:
        id:
          type: string
          format: uuid
        message:
          type: string
        typeName:
          type: string
        typeKey:
          type: string
        errorCode:
          type: integer
        eventId:
          type: integer
  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.