Dependency-Track Bom API

The bom API from Dependency-Track — 4 operation(s) for bom.

Operations 5

POST /v1/bom Upload a supported bill of material format document #
PUT /v1/bom Upload a supported bill of material format document #
GET /v1/bom/cyclonedx/component/{uuid} Returns dependency metadata for a specific component in CycloneDX format #
GET /v1/bom/cyclonedx/project/{uuid} Returns dependency metadata for a project in CycloneDX format #
GET /v1/bom/token/{uuid} Determines if there are any tasks associated with the token that are being… #

Documentation

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dependency-track/refs/heads/main/json-schema/dependency-track-component-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dependency-track/refs/heads/main/json-schema/dependency-track-vulnerability-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dependency-track/refs/heads/main/json-schema/dependency-track-project-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dependency-track/refs/heads/main/json-schema/dependency-track-notification-rule-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dependency-track/refs/heads/main/json-schema/dependency-track-portfolio-metrics-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dependency-track/refs/heads/main/json-schema/dependency-track-project-metrics-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dependency-track/refs/heads/main/json-schema/dependency-track-workload-identity-provider-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dependency-track/refs/heads/main/json-schema/dependency-track-clone-project-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dependency-track/refs/heads/main/json-schema/dependency-track-create-workload-identity-provider-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dependency-track/refs/heads/main/json-schema/dependency-track-create-oauth-token-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dependency-track/refs/heads/main/json-schema/dependency-track-create-component-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/dependency-track/refs/heads/main/json-schema/dependency-track-update-workload-identity-provider-request-schema.json

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/dependency-track:dependency-track-bom-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

dependency-track-bom-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Dependency Track Bom API
  version: 1.0.0
  contact:
    name: The Dependency-Track Authors
    url: https://github.com/DependencyTrack/dependency-track
  license:
    name: Apache-2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  description: 'Operations tagged bom across 2 of this provider''s published API definitions: dependency-track-openapi-v1.yaml, dependency-track-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: /api
tags:
- name: bom
paths:
  /v1/bom:
    post:
      description: 'Expects CycloneDX and a valid project UUID. If a UUID is not specified,

        then the projectName and projectVersion must be specified.

        Optionally, if autoCreate is specified and true and the project does not exist,

        the project will be created. In this scenario, the principal making the request will

        additionally need the PORTFOLIO_MANAGEMENT, PORTFOLIO_MANAGEMENT_CREATE,

        or PROJECT_CREATION_UPLOAD permission.


        The BOM artifact may be supplied uncompressed or compressed. If the BOM is uncompressed,

        the supported MediaType is ''application/xml'' or ''application/json''. If the BOM is compressed,

        the supported MediaType is ''application/gzip'' or ''application/zstd'' and must match the actual

        compression of the data.

        The BOM will be validated against the CycloneDX schema. If schema validation fails,

        a response with problem details in RFC 9457 format will be returned. In this case,

        the response''s content type will be application/problem+json.


        When creating projects, parentUUID or parentName and

        parentVersion can place the new project under a parent,

        projectTags can apply tags, and isLatest can mark it as

        the latest version. The isActive parameter sets the project''s active

        state whenever it is provided, including when the target project already exists, so

        clients should send it only when they intend to change that state.


        Requires permission BOM_UPLOAD'
      operationId: UploadBom
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                autoCreate:
                  type: boolean
                  default: false
                bom:
                  type: string
                  format: binary
                isActive:
                  type: boolean
                isLatest:
                  type: boolean
                  default: false
                parentName:
                  type: string
                parentUUID:
                  type: string
                parentVersion:
                  type: string
                project:
                  type: string
                projectName:
                  type: string
                projectTags:
                  type: string
                projectVersion:
                  type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BomUploadResponse'
          description: Token to be used for checking BOM processing progress
        '400':
          description: The uploaded BOM is invalid
        '401':
          description: Unauthorized
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Access to the requested project is forbidden
        '404':
          description: The project could not be found
        '413':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: The uploaded document is too large
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      summary: Upload a supported bill of material format document
      tags:
      - bom
    put:
      description: 'Expects CycloneDX and a valid project UUID. If a UUID is not specified,

        then the projectName and projectVersion must be specified.

        Optionally, if autoCreate is specified and true and the project does not exist,

        the project will be created. In this scenario, the principal making the request will

        additionally need the PORTFOLIO_MANAGEMENT, PORTFOLIO_MANAGEMENT_CREATE,

        or PROJECT_CREATION_UPLOAD permission.


        The BOM will be validated against the CycloneDX schema. If schema validation fails,

        a response with problem details in RFC 9457 format will be returned. In this case,

        the response''s content type will be application/problem+json.


        When creating projects, parentUUID or parentName and

        parentVersion can place the new project under a parent,

        projectTags can apply tags, and isLatest can mark it as

        the latest version. The isActive parameter sets the project''s active

        state whenever it is provided, including when the target project already exists, so

        clients should send it only when they intend to change that state.


        The maximum allowed length of the bom value is 20''000''000 characters.

        When uploading large BOMs, the POST endpoint is preferred,

        as it does not have this limit.


        Requires permission BOM_UPLOAD'
      operationId: UploadBomBase64Encoded
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BomSubmitRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BomUploadResponse'
          description: Token to be used for checking BOM processing progress
        '400':
          description: The uploaded BOM is invalid
        '401':
          description: Unauthorized
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Access to the requested project is forbidden
        '404':
          description: The project could not be found
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      summary: Upload a supported bill of material format document
      tags:
      - bom
    servers:
    - url: /api
  /v1/bom/cyclonedx/component/{uuid}:
    get:
      description: Requires permission VIEW_PORTFOLIO
      operationId: exportComponentAsCycloneDx
      parameters:
      - description: The UUID of the component to export
        in: path
        name: uuid
        required: true
        schema:
          type: string
          format: uuid
      - description: The format to output (defaults to JSON)
        in: query
        name: format
        schema:
          type: string
      - description: 'The CycloneDX Spec variant exported (defaults to: ''1.5'')'
        in: query
        name: version
        schema:
          type: string
      responses:
        '200':
          content:
            application/vnd.cyclonedx+json:
              schema:
                type: string
            application/vnd.cyclonedx+xml:
              schema:
                type: string
          description: Dependency metadata for a specific component in CycloneDX format
        '401':
          description: Unauthorized
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Access to the requested project is forbidden
        '404':
          description: The component could not be found
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      summary: Returns dependency metadata for a specific component in CycloneDX format
      tags:
      - bom
    servers:
    - url: /api
  /v1/bom/cyclonedx/project/{uuid}:
    get:
      description: 'Requires permission VIEW_PORTFOLIO


        The withVulnerabilities and vdr variants

        further require any of the following permissions:


        VIEW_VULNERABILITY


        VULNERABILITY_ANALYSIS


        VULNERABILITY_ANALYSIS_READ'
      operationId: exportProjectAsCycloneDx
      parameters:
      - description: The UUID of the project to export
        in: path
        name: uuid
        required: true
        schema:
          type: string
          format: uuid
      - description: The format to output (defaults to JSON)
        in: query
        name: format
        schema:
          type: string
      - description: Specifies the CycloneDX variant to export. Value options are 'inventory' and 'withVulnerabilities'. (defaults to 'inventory')
        in: query
        name: variant
        schema:
          type: string
      - description: Force the resulting BOM to be downloaded as a file (defaults to 'false')
        in: query
        name: download
        schema:
          type: boolean
      - description: 'The CycloneDX Spec variant exported (defaults to: ''1.5'')'
        in: query
        name: version
        schema:
          type: string
      responses:
        '200':
          content:
            application/octet-stream:
              schema:
                type: string
            application/vnd.cyclonedx+json:
              schema:
                type: string
            application/vnd.cyclonedx+xml:
              schema:
                type: string
          description: Dependency metadata for a project in CycloneDX format
        '401':
          description: Unauthorized
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          description: Access to the requested project is forbidden
        '404':
          description: The project could not be found
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      summary: Returns dependency metadata for a project in CycloneDX format
      tags:
      - bom
    servers:
    - url: /api
  /v1/bom/token/{uuid}:
    get:
      deprecated: true
      description: 'This endpoint is intended to be used in conjunction with uploading a supported BOM document.

        Upon upload, a token will be returned. The token can then be queried using this endpoint to

        determine if any tasks (such as vulnerability analysis) is being performed on the BOM:


        A value of true indicates processing is occurring.


        A value of false indicates that no processing is occurring for the specified token.


        However, a value of false also does not confirm the token is valid,

        only that no processing is associated with the specified token.


        Requires permission BOM_UPLOAD


        Deprecated. Use /v1/event/token/{uuid} instead.'
      operationId: isTokenBeingProcessed
      parameters:
      - description: The UUID of the token to query
        in: path
        name: uuid
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IsTokenBeingProcessedResponse'
          description: The processing status of the provided token
        '401':
          description: Unauthorized
      security:
      - ApiKeyAuth: []
      - BearerAuth: []
      summary: Determines if there are any tasks associated with the token that are being…
      tags:
      - bom
    servers:
    - url: /api
components:
  schemas:
    BomUploadResponse:
      type: object
      properties:
        projectUuid:
          type: string
          format: uuid
          description: UUID of the project the BOM was uploaded for
        token:
          type: string
          format: uuid
          description: Token used to check task progress
      required:
      - projectUuid
      - token
    BomSubmitRequest:
      type: object
      properties:
        autoCreate:
          type: boolean
        bom:
          type: string
          format: bytes
          description: Base64 encoded BOM
          example: ewogICJib21Gb3JtYXQiOiAiQ3ljbG9uZURYIiwKICAic3BlY1ZlcnNpb24iOiAiMS40IiwKICAiY29tcG9uZW50cyI6IFsKICAgIHsKICAgICAgInR5cGUiOiAibGlicmFyeSIsCiAgICAgICJuYW1lIjogImFjbWUtbGliIiwKICAgICAgInZlcnNpb24iOiAiMS4wLjAiCiAgICB9CiAgXQp9
          pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$
        isActive:
          type: boolean
        isLatest:
          type: boolean
        parentName:
          type: string
          example: Example Application Parent
          pattern: ^[\p{IsWhite_Space}\p{L}\p{M}\p{S}\p{N}\p{P}]*$
        parentUUID:
          type: string
          example: 5341f53c-611b-4388-9d9c-731026dc5eec
          pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
        parentVersion:
          type: string
          example: 1.0.0
          pattern: ^[\p{IsWhite_Space}\p{L}\p{M}\p{S}\p{N}\p{P}]*$
        project:
          type: string
          example: 38640b33-4ba9-4733-bdab-cbfc40c6f8aa
          pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
        projectName:
          type: string
          example: Example Application
          minLength: 1
          pattern: ^[\p{IsWhite_Space}\p{L}\p{M}\p{S}\p{N}\p{P}]*$
        projectTags:
          type: array
          example: tag1, tag2
          items:
            $ref: '#/components/schemas/Tag'
        projectVersion:
          type: string
          example: 1.0.0
          minLength: 1
          pattern: ^[\p{IsWhite_Space}\p{L}\p{M}\p{S}\p{N}\p{P}]*$
      required:
      - bom
      - project
      - projectName
      - projectVersion
    Tag:
      type: object
      properties:
        name:
          type: string
          maxLength: 255
          minLength: 1
          pattern: ^[\p{IsWhite_Space}\p{L}\p{M}\p{S}\p{N}\p{P}]*$
      required:
      - name
    IsTokenBeingProcessedResponse:
      type: object
      properties:
        processing:
          type: boolean
        status:
          type:
          - string
          - 'null'
          description: The processing status associated with the token. Null when no processing is associated with the token.
          enum:
          - PENDING
          - RUNNING
          - COMPLETED
          - FAILED
      required:
      - processing
    ProblemDetails:
      type: object
      description: An RFC 9457 problem object
      properties:
        detail:
          type: string
          description: Human-readable explanation specific to this occurrence of the problem
          example: Example detail
        instance:
          type: string
          format: uri
          description: Reference URI that identifies the specific occurrence of the problem
          example: https://api.example.org/foo/bar/example-instance
        status:
          type: integer
          format: int32
          description: HTTP status code generated by the origin server for this occurrence of the problem
          example: 400
        title:
          type: string
          description: Short, human-readable summary of the problem type
          example: Example title
        type:
          type: string
          format: uri
          description: A URI reference that identifies the problem type
          example: https://api.example.org/foo/bar/example-problem
      required:
      - detail
      - status
      - title
  securitySchemes:
    ApiKeyAuth:
      description: Authentication via API key.
      in: header
      name: X-Api-Key
      type: apiKey
    BearerAuth:
      bearerFormat: Opaque
      description: 'Authentication via opaque server-issued session token.

        Tokens are obtained from `POST /api/v1/user/login` or

        `POST /api/v1/user/oidc/login`.'
      scheme: bearer
      type: http
x-refined-from:
- dependency-track-openapi-v1.yaml
- dependency-track-openapi.yml