Azure DevOps · Arazzo Workflow

Azure DevOps Retrieve Artifacts of the Latest Successful Build

Version 1.0.0

Find the latest succeeded build for a definition, confirm it, and list its artifacts.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub AgileCI/CDDevOpsProject ManagementVersion ControlArazzoWorkflows

Provider

microsoft-azure-devops

Workflows

retrieve-latest-build-artifacts
Find the latest succeeded build and list its artifacts.
Lists succeeded builds for a definition, and when one exists, gets the top build and lists its artifacts.
3 steps inputs: accessToken, apiVersion, definitionId outputs: artifactCount, buildId, buildNumber
1
listSucceededBuilds
List completed, succeeded builds for the definition, newest first.
2
getBuild
Fetch the top build to confirm its result and capture its build number.
3
listArtifacts
List the artifacts published by the selected build.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Azure DevOps Retrieve Artifacts of the Latest Successful Build
  summary: Find the latest succeeded build for a definition, confirm it, and list its artifacts.
  description: >-
    Locates the most recent successful build of a definition and pulls its
    artifact list. The workflow lists builds filtered to a definition with a
    completed status and succeeded result, branches on whether any were found,
    fetches the top build to confirm its result, and lists the artifacts that
    build published. Every step spells out its request inline so the flow can be
    read and executed without opening the underlying OpenAPI description.
  version: 1.0.0
  x-realizes-capability-ids:
  - BC-4210.10
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-4210.10
      capability_name: Continuous Integration Management
      spec: microsoft-azure-devops-builds-api-openapi.yml
      confidence: 0.88
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: buildArtifactsApi
  url: ../openapi/microsoft-azure-devops-build-artifacts-api-openapi.yml
  type: openapi
- name: buildsApi
  url: ../openapi/microsoft-azure-devops-builds-api-openapi.yml
  type: openapi
workflows:
- workflowId: retrieve-latest-build-artifacts
  summary: Find the latest succeeded build and list its artifacts.
  description: >-
    Lists succeeded builds for a definition, and when one exists, gets the top
    build and lists its artifacts.
  inputs:
    type: object
    required:
    - apiVersion
    - definitionId
    properties:
      apiVersion:
        type: string
        description: Azure DevOps REST API version (e.g. 7.1).
      definitionId:
        type: integer
        description: ID of the build definition to search builds for.
      accessToken:
        type: string
        description: Azure DevOps bearer (OAuth 2.0) access token.
  steps:
  - stepId: listSucceededBuilds
    description: >-
      List completed, succeeded builds for the definition, newest first.
    operationId: builds_list
    parameters:
    - name: api-version
      in: query
      value: $inputs.apiVersion
    - name: definitions
      in: query
      value: $inputs.definitionId
    - name: statusFilter
      in: query
      value: completed
    - name: resultFilter
      in: query
      value: succeeded
    - name: $top
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      topBuildId: $response.body#/value/0/id
      buildCount: $response.body#/count
    onSuccess:
    - name: hasBuild
      type: goto
      stepId: getBuild
      criteria:
      - context: $response.body
        condition: $.value.length > 0
        type: jsonpath
    - name: noBuild
      type: end
      criteria:
      - context: $response.body
        condition: $.value.length == 0
        type: jsonpath
  - stepId: getBuild
    description: >-
      Fetch the top build to confirm its result and capture its build number.
    operationId: builds_get
    parameters:
    - name: api-version
      in: query
      value: $inputs.apiVersion
    - name: buildId
      in: path
      value: $steps.listSucceededBuilds.outputs.topBuildId
    successCriteria:
    - condition: $statusCode == 200
    - condition: $response.body#/result == succeeded
    outputs:
      buildNumber: $response.body#/buildNumber
      result: $response.body#/result
  - stepId: listArtifacts
    description: >-
      List the artifacts published by the selected build.
    operationId: builds_listArtifacts
    parameters:
    - name: api-version
      in: query
      value: $inputs.apiVersion
    - name: buildId
      in: path
      value: $steps.listSucceededBuilds.outputs.topBuildId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      artifactCount: $response.body#/count
      firstArtifactName: $response.body#/value/0/name
  outputs:
    buildId: $steps.listSucceededBuilds.outputs.topBuildId
    buildNumber: $steps.getBuild.outputs.buildNumber
    artifactCount: $steps.listArtifacts.outputs.artifactCount

Work with this as data

Every workflow 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 arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • 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 workflow
curl "https://apis.io/api/v1/arazzo/microsoft-azure-devops-build-artifacts-retrieval-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?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.