openapi: 3.0.3 info: title: Snyk AccessRequests SBOM API version: REST servers: - description: Snyk REST API url: https://api.snyk.io/rest security: - APIToken: [] - BearerAuth: [] tags: - name: SBOM paths: /orgs/{org_id}/projects/{project_id}/sbom: get: description: 'This endpoint lets you retrieve the SBOM document of a software project. It supports the following formats: * CycloneDX version 1.6 in JSON (set `format` to `cyclonedx1.6+json`). * CycloneDX version 1.6 in XML (set `format` to `cyclonedx1.6+xml`). * CycloneDX version 1.5 in JSON (set `format` to `cyclonedx1.5+json`). * CycloneDX version 1.5 in XML (set `format` to `cyclonedx1.5+xml`). * CycloneDX version 1.4 in JSON (set `format` to `cyclonedx1.4+json`). * CycloneDX version 1.4 in XML (set `format` to `cyclonedx1.4+xml`). * SPDX version 2.3 in JSON (set `format` to `spdx2.3+json`). By default it will respond with an empty JSON:API response. #### Required permissions - `View Project history (org.project.snapshot.read)`' operationId: getSbom parameters: - $ref: '#/components/parameters/Version' - description: Unique identifier for an organization in: path name: org_id required: true schema: format: uuid type: string - description: Unique identifier for a project in: path name: project_id required: true schema: format: uuid type: string - $ref: '#/components/parameters/Format' - $ref: '#/components/parameters/Exclude' - $ref: '#/components/parameters/GoModuleLevel' responses: '200': content: application/json: schema: $ref: '#/components/schemas/SbomDocument' application/vnd.api+json: schema: $ref: '#/components/schemas/SbomResponse' application/vnd.cyclonedx+json: schema: $ref: '#/components/schemas/SbomDocument' application/vnd.cyclonedx+xml: schema: $ref: '#/components/schemas/SbomDocument' description: Returns the SBOM document of a project headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '409': $ref: '#/components/responses/409' '500': $ref: '#/components/responses/500' summary: Get a project’s SBOM document tags: - SBOM x-snyk-api-lifecycle: released x-snyk-api-releases: - 2022-03-31~experimental - 2022-12-06~beta - '2023-03-20' - 2024-03-12~experimental - 2024-08-15~beta - '2024-08-22' x-snyk-api-resource: sboms x-snyk-api-stability: ga x-snyk-api-version: '2024-08-22' x-stability-level: stable /orgs/{org_id}/sbom_tests: post: description: 'Create an SBOM test run by supplying an SBOM document. The components contained in the given document will get analyzed for known vulnerabilities. In order for component identification to be successful, they must have a PackageURL (purl) of a supported purl type assigned. Analysis will be skipped for any component that does not fulfill this requirement. Supported SBOM formats: CycloneDX 1.4 JSON, CycloneDX 1.5 JSON, CycloneDX 1.6 JSON, SPDX 2.3 JSON Supported purl types: apk, cargo, cocoapods, composer, conan, deb, gem, generic, golang, hex, maven, npm, nuget, pub, pypi, rpm, swift #### Required permissions - `Test Projects (org.project.test)`' operationId: createSbomTestRun parameters: - $ref: '#/components/parameters/Version' - description: Org ID in: path name: org_id required: true schema: format: uuid type: string requestBody: content: application/vnd.api+json: schema: properties: data: additionalProperties: false properties: attributes: $ref: '#/components/schemas/SbomTestCreateAttributes' type: $ref: '#/components/schemas/Types' required: - type type: object required: - data type: object responses: '201': content: application/vnd.api+json: schema: properties: data: additionalProperties: false description: SBOM test resource object properties: id: example: d5b640e5-d88c-4c17-9bf0-93597b7a1ce2 format: uuid type: string type: $ref: '#/components/schemas/Types' required: - id - type type: object jsonapi: $ref: '#/components/schemas/JsonApi' links: $ref: '#/components/schemas/Links' type: object description: Created SBOM test successfully headers: deprecation: $ref: '#/components/headers/DeprecationHeader' location: $ref: '#/components/headers/LocationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '409': $ref: '#/components/responses/409' '500': $ref: '#/components/responses/500' summary: Create an SBOM test run (Early Access) tags: - SBOM x-snyk-api-lifecycle: released x-snyk-api-releases: - 2023-06-02~experimental - 2023-08-31~beta - 2024-04-22~beta - 2024-07-10~beta x-snyk-api-resource: sbom_tests x-snyk-api-stability: beta x-snyk-api-version: 2024-07-10~beta x-stability-level: beta /orgs/{org_id}/sbom_tests/{job_id}: get: description: 'Get an SBOM test run status #### Required permissions - `Test Projects (org.project.test)`' operationId: getSbomTestStatus parameters: - $ref: '#/components/parameters/Version' - description: Org ID in: path name: org_id required: true schema: format: uuid type: string - $ref: '#/components/parameters/JobId' responses: '200': content: application/vnd.api+json: schema: properties: data: description: SBOM test resource object properties: attributes: properties: status: enum: - processing - error - finished type: string type: object id: format: uuid type: string type: $ref: '#/components/schemas/Types' required: - id - type - attributes type: object jsonapi: $ref: '#/components/schemas/JsonApi' links: $ref: '#/components/schemas/Links' type: object description: SBOM test run status headers: deprecation: $ref: '#/components/headers/DeprecationHeader' location: $ref: '#/components/headers/LocationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '409': $ref: '#/components/responses/409' '500': $ref: '#/components/responses/500' summary: Gets an SBOM test run status (Early Access) tags: - SBOM x-snyk-api-lifecycle: released x-snyk-api-releases: - 2023-06-02~experimental - 2023-08-31~beta - 2024-04-22~beta - 2024-07-10~beta x-snyk-api-resource: sbom_tests x-snyk-api-stability: beta x-snyk-api-version: 2024-07-10~beta x-stability-level: beta /orgs/{org_id}/sbom_tests/{job_id}/results: get: description: 'Get an SBOM test run result #### Required permissions - `Test Projects (org.project.test)`' operationId: getSbomTestResult parameters: - $ref: '#/components/parameters/Version' - $ref: '#/components/parameters/StartingAfter' - $ref: '#/components/parameters/EndingBefore' - $ref: '#/components/parameters/Limit' - description: Org ID in: path name: org_id required: true schema: format: uuid type: string - $ref: '#/components/parameters/JobId' - $ref: '#/components/parameters/Accept' responses: '200': content: application/json: schema: additionalProperties: true type: object application/vnd.api+json: schema: properties: data: additionalProperties: false description: SBOM test resource object properties: attributes: $ref: '#/components/schemas/SbomTestResultsAttributes' id: example: d5b640e5-d88c-4c17-9bf0-93597b7a1ce2 format: uuid type: string relationships: properties: affected_packages: properties: data: items: $ref: '#/components/schemas/ResourceReference' type: array type: object type: object type: $ref: '#/components/schemas/Types' required: - id - type type: object included: items: additionalProperties: true type: object type: array jsonapi: $ref: '#/components/schemas/JsonApi' links: $ref: '#/components/schemas/Links' type: object description: SBOM test results headers: deprecation: $ref: '#/components/headers/DeprecationHeader' location: $ref: '#/components/headers/LocationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' summary: Gets an SBOM test run result (Early Access) tags: - SBOM x-snyk-api-lifecycle: released x-snyk-api-releases: - 2023-06-02~experimental - 2023-08-31~beta - 2024-04-22~beta - 2024-07-10~beta x-snyk-api-resource: sbom_tests x-snyk-api-stability: beta x-snyk-api-version: 2024-07-10~beta x-stability-level: beta components: parameters: EndingBefore: description: Return the page of results immediately before this cursor example: v1.eyJpZCI6IjExMDAifQo= in: query name: ending_before schema: type: string StartingAfter: description: Return the page of results immediately after this cursor example: v1.eyJpZCI6IjEwMDAifQo= in: query name: starting_after schema: type: string JobId: description: Job ID in: path name: job_id required: true schema: format: uuid type: string Format: description: The desired SBOM format of the response. in: query name: format schema: enum: - cyclonedx1.6+json - cyclonedx1.6+xml - cyclonedx1.5+json - cyclonedx1.5+xml - cyclonedx1.4+json - cyclonedx1.4+xml - spdx2.3+json example: cyclonedx1.6+json type: string GoModuleLevel: description: When true, consolidate Go package-level dependencies into module-level components in the SBOM. Only applies to gomodules graphs; default is false. in: query name: go_module_level schema: default: false type: boolean Accept: in: header name: Accept schema: type: string Exclude: description: An array of features to be excluded from the generated SBOM. in: query name: exclude schema: items: enum: - licenses type: string type: array Version: description: The requested version of the endpoint to process the request example: '2026-03-25' in: query name: version required: true schema: $ref: '#/components/schemas/QueryVersion' Limit: description: Number of results to return per page example: 10 in: query name: limit schema: default: 10 format: int32 maximum: 100 minimum: 10 multipleOf: 10 type: integer schemas: SbomTestCreateAttributes: properties: format: type: string sbom: additionalProperties: true type: object required: - sbom type: object ActualVersion: description: Resolved API version example: '2026-03-25' pattern: ^((([0-9]{4})-([0-1][0-9]))-((3[01])|(0[1-9])|([12][0-9]))(~(wip|work-in-progress|experimental|beta))?)$ type: string JsonApi: additionalProperties: false example: version: '1.0' properties: version: description: Version of the JSON API specification this server supports. example: '1.0' pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)$ type: string required: - version type: object SbomResource: additionalProperties: false properties: id: example: b68b0b85-d039-4c05-abc0-04eb50ca0fe9 format: uuid type: string type: $ref: '#/components/schemas/Types' required: - id - type type: object QueryVersion: description: Requested API version example: '2026-03-25' pattern: ^(wip|work-in-progress|experimental|beta|((([0-9]{4})-([0-1][0-9]))-((3[01])|(0[1-9])|([12][0-9]))(~(wip|work-in-progress|experimental|beta))?))$ type: string SbomTestResultsAttributes: additionalProperties: true type: object SbomResponse: additionalProperties: false properties: data: $ref: '#/components/schemas/SbomResource' jsonapi: $ref: '#/components/schemas/JsonApi' required: - jsonapi - data type: object ErrorDocument: additionalProperties: false example: errors: - detail: Permission denied for this resource status: '403' jsonapi: version: '1.0' properties: errors: example: - detail: Permission denied for this resource status: '403' items: additionalProperties: false example: detail: Not Found status: '404' properties: code: description: An application-specific error code, expressed as a string value. example: entity-not-found type: string detail: description: A human-readable explanation specific to this occurrence of the problem. example: 'The request was missing these required fields: ...' type: string id: description: A unique identifier for this particular occurrence of the problem. example: f16c31b5-6129-4571-add8-d589da9be524 format: uuid type: string links: additionalProperties: false description: A link that leads to further details about this particular occurrance of the problem. example: about: https://example.com/about_this_error properties: about: example: https://example.com/api/resource oneOf: - description: A string containing the link’s URL. example: https://example.com/api/resource type: string - additionalProperties: false example: href: https://example.com/api/resource properties: href: description: A string containing the link’s URL. example: https://example.com/api/resource type: string meta: additionalProperties: true description: Free-form object that may contain non-standard information. example: key1: value1 key2: sub_key: sub_value key3: - array_value1 - array_value2 type: object required: - href type: object type: object meta: additionalProperties: true example: key: value type: object source: additionalProperties: false example: pointer: /data/attributes properties: parameter: description: A string indicating which URI query parameter caused the error. example: param1 type: string pointer: description: A JSON Pointer [RFC6901] to the associated entity in the request document. example: /data/attributes type: string type: object status: description: The HTTP status code applicable to this problem, expressed as a string value. example: '400' pattern: ^[45]\d\d$ type: string title: description: A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization. example: Bad request type: string required: - status - detail type: object minItems: 1 type: array jsonapi: additionalProperties: false example: version: '1.0' properties: version: description: Version of the JSON API specification this server supports. example: '1.0' pattern: ^(0|[1-9]\d*)\.(0|[1-9]\d*)$ type: string required: - version type: object required: - jsonapi - errors type: object SbomDocument: additionalProperties: true type: object Types: example: resource pattern: ^[a-z][a-z0-9]*(_[a-z][a-z0-9]*)*$ type: string Links: additionalProperties: false properties: first: $ref: '#/components/schemas/LinkProperty' last: $ref: '#/components/schemas/LinkProperty' next: $ref: '#/components/schemas/LinkProperty' prev: $ref: '#/components/schemas/LinkProperty' related: $ref: '#/components/schemas/LinkProperty' self: $ref: '#/components/schemas/LinkProperty' type: object ResourceReference: additionalProperties: false properties: id: example: 4a72d1db-b465-4764-99e1-ecedad03b06a format: uuid type: string type: description: Type of the related resource example: resource pattern: ^[a-z][a-z0-9]*(_[a-z][a-z0-9]*)*$ type: string required: - type - id type: object LinkProperty: example: https://example.com/api/resource oneOf: - description: A string containing the link’s URL. example: https://example.com/api/resource type: string - additionalProperties: false example: href: https://example.com/api/resource properties: href: description: A string containing the link’s URL. example: https://example.com/api/resource type: string meta: additionalProperties: true description: Free-form object that may contain non-standard information. example: key1: value1 key2: sub_key: sub_value key3: - array_value1 - array_value2 type: object required: - href type: object headers: SunsetHeader: description: 'A header containing the date of when the underlying endpoint will be removed. This header is only present if the endpoint has been deprecated. For information purposes only. Returned as a date in the format: YYYY-MM-DD' example: '2021-08-02' schema: format: date type: string VersionRequestedResponseHeader: description: A header containing the version of the endpoint requested by the caller. example: '2026-03-25' schema: $ref: '#/components/schemas/QueryVersion' VersionServedResponseHeader: description: A header containing the version of the endpoint that was served by the API. example: '2026-03-25' schema: $ref: '#/components/schemas/ActualVersion' VersionStageResponseHeader: description: 'A header containing the version stage of the endpoint. This stage describes the guarantees snyk provides surrounding stability of the endpoint. ' schema: enum: - wip - experimental - beta - ga - deprecated - sunset example: ga type: string RequestIdResponseHeader: description: 'A header containing a unique id used for tracking this request. If you are reporting an issue to Snyk it''s very helpful to provide this ID. ' example: 4b58e274-ec62-4fab-917b-1d2c48d6bdef schema: format: uuid type: string LocationHeader: description: 'A header providing a URL for the location of a resource ' example: https://example.com/resource/4 schema: format: url type: string DeprecationHeader: description: 'A header containing the deprecation date of the underlying endpoint. For more information, please refer to the deprecation header RFC: https://tools.ietf.org/id/draft-dalal-deprecation-header-01.html ' example: '2021-07-01T00:00:00Z' schema: format: date-time type: string responses: '400': content: application/vnd.api+json: schema: $ref: '#/components/schemas/ErrorDocument' description: 'Bad Request: A parameter provided as a part of the request was invalid.' headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '409': content: application/vnd.api+json: schema: $ref: '#/components/schemas/ErrorDocument' description: 'Conflict: The requested operation conflicts with the current state of the resource in some way.' headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '500': content: application/vnd.api+json: schema: $ref: '#/components/schemas/ErrorDocument' description: 'Internal Server Error: An error was encountered while attempting to process the request.' headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '403': content: application/vnd.api+json: schema: $ref: '#/components/schemas/ErrorDocument' description: 'Forbidden: the request requires an authentication token with more or different permissions.' headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '404': content: application/vnd.api+json: schema: $ref: '#/components/schemas/ErrorDocument' description: 'Not Found: The resource being operated on could not be found.' headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' '401': content: application/vnd.api+json: schema: $ref: '#/components/schemas/ErrorDocument' description: 'Unauthorized: the request requires an authentication token.' headers: deprecation: $ref: '#/components/headers/DeprecationHeader' snyk-request-id: $ref: '#/components/headers/RequestIdResponseHeader' snyk-version-lifecycle-stage: $ref: '#/components/headers/VersionStageResponseHeader' snyk-version-requested: $ref: '#/components/headers/VersionRequestedResponseHeader' snyk-version-served: $ref: '#/components/headers/VersionServedResponseHeader' sunset: $ref: '#/components/headers/SunsetHeader' securitySchemes: APIToken: description: API key value must be prefixed with \"Token \". in: header name: Authorization type: apiKey BearerAuth: scheme: bearer type: http x-snyk-api-version: '2024-10-15'