---
title: "Get a project's bill of materials"
method: GET
path: "/v1/catalog/{org_name}/{project}/bill-of-materials"
tags: ["Projects"]
---

# Get a project's bill of materials

`GET /v1/catalog/{org_name}/{project}/bill-of-materials`

Get the bill of materials for the latest alignment or, optionally, a specific alignment for the project based on the revision or alignment id.

To request an bill of materials, both a file format and SBOM type must be specified.

The file format can be specified in several ways:
  * using the `format` query parameter
  * using the `Accept` header
  * using a file extension on the route (e.g. sbom.json to request the JSON file format).

The SBOM type can be specified using the `sbom_type` query parameter.

Supported combinations:
  * `format=json, sbom_type=tidelift`: generic Tidelift JSON bill of materials
    * This format will also be used if both `format` and `sbom_type` are omitted
  * `format=json`, `sbom_type=cyclonedx`
  * `format=csv, sbom_type=tidelift`: generic Tidelift CSV bill of materials
    * This format will also be used if `sbom_type` is omitted
  * `format=xml`, `sbom_type=cyclonedx`
  * `format=spdx`, `sbom_type=spdx`
    * for SPDX, only specifying `format` is necessary, `sbom_type` can be inferred

Older versions of the API supported using only the `format` query parameter (without also specifying an `sbom_type`).
The following mappings are provided to maintain backwards compatibility.
  * `format=cyclonedx` or `format=cyclone_dx` implies `format=xml` and `sbom_type=cyclonedx`.
  * `format=spdx` also implies `sbom_type=spdx`

## Path parameters

- `org_name` string, required
- `project` string, required

## Query parameters

- `revision` string
- `alignment_id` string
- `format` 'json' | 'csv' | 'spdx' | 'xml' — Determines the file format the BoM data is formatted in. Defaults to a JSON format. Legacy values are supported here, for example `cyclonedx` will default to `xml`.
- `sbom_type` 'tidelift' | 'cyclonedx' | 'spdx' — Determines the BoM format to use to for the data.

## Response `200`

Bill of materials for a given alignment

- object[]
  - `name` string, required
  - `platform` string, required
  - `version` string, required
  - `license_analysis` object, required
    - `platform` string
    - `name` string
    - `version` string
    - `license` string
    - `source` string, nullable
    - `original_license` string, nullable
    - `status` string
  - `direct` boolean, required
  - `sources` object[], required
    - `type` string
    - `kind` string
    - `requirement` string
    - `path` string

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Couldn't find scan by revision or latest from default branch, or unable to build BOM from Scan.

---

[API](https://skmtc.net/tidelift/apis/tidelift-external-api.md) · [All operations](https://skmtc.net/tidelift/apis/tidelift-external-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tidelift/tidelift-external-api/revisions/5f36bed372bb/schema)
