Ketryx Documentation
Book a DemoFAQTraining Videos
  • Introduction
  • 📄Manuals
    • MAN-01 Ketryx Lifecycle Management
    • MAN-02 Software Release Process
    • MAN-03 Supply Chain Management: Software Dependencies
      • Threat Modeling
      • Vulnerability Management
      • Working with CycloneDX
      • Working with SPDX
    • MAN-04 Supply Chain Management: Cloud Dependencies
    • MAN-05 Milestones
    • MAN-06 Test Management
    • MAN-07 Traceability
    • MAN-08 Risk Management
    • MAN-09 Git-Based Configuration Items
    • MAN-10 Managing items in Ketryx
    • MAN-11 Approval Rules
    • MAN-12 Computational Controls
    • MAN-13 Data Export
  • 🛠️Work Instructions
    • WI-01 Requirement
    • WI-02 Software Item Specification
    • WI-03 Task
    • WI-04 Test Case
    • WI-05 Test Execution
    • WI-06 Anomaly
    • WI-07 Complaint
    • WI-08 Change Request
    • WI-09 Corrective and Preventive Action (CAPA)
    • WI-10 Risk
    • WI-11 Document
  • 🌐Integrations
    • Jira
    • Azure DevOps
    • TestRail
    • Jama
    • Polarion
    • Chrome extension
    • Source Code
      • Azure DevOps
      • Bitbucket
      • GitHub
      • GitLab
      • Code Change Reviews
    • Release documents
      • Google Workspace
    • Authentication
  • 📚Reference
    • Ketryx Query Language
    • Advanced Settings
    • Glob Pattern Matching Algorithm
    • Traceability Configuration
    • Document Templating
    • Project Settings
    • Custom Item Types
    • Assistant
    • Agents
    • Release Notes
  • 🔃API
    • Authentication
    • Build API
    • Project API
    • Item API
    • Webhooks
Powered by GitBook

Ketryx

  • ketryx.com
  • What is Ketryx?

Resources

  • FAQ
  • Training Videos

© 2025 Ketryx Corporation

On this page

Was this helpful?

Export as PDF
  1. API

Project API

API to manage projects, versions, and documents in Ketryx

PreviousBuild APINextItem API

Last updated 3 months ago

Was this helpful?

Ketryx exposes an API to manage projects programmatically. There is also a formal defining this API, and a separate page about .

Projects

Project

Versions

Version

Generated documents

Use this API to generate and download the SBOM document for a given project. Optionally, a certain version ID can be specified:

  • If no versionId is specified, the document for the "current draft" state (corresponding to the main analyzed branch, not specific to a certain version) is downloaded.

  • If a versionId is specified, the document is generated for the given version (and its corresponding release ref).

By default, the response is an Excel file in binary form (xslx). Optionally, a format parameter with value cyclonedx can be used to generate and download the SBOM document in CycloneDX JSON format (specifically, ).

🔃
CyclonedX version 1.5
OpenAPI specification
authentication and API keys

Get a list of projects

get

Gets a list of Ketryx projects in the current organization.

Authorizations
Query parameters
namestringOptional

Project name to filter for

startAtintegerOptional

Start listing projects at the given index. Defaults to 0.

maxResultsintegerOptional

Maximum number of projects to return. Defaults to no limit.

Responses
200
OK
application/json
400
The request is not valid.
application/json
401
The requester is not authenticated.
application/json
403
The requester is unauthorized.
application/json
404
The resource was not found.
application/json
get
GET /api/v1/projects HTTP/1.1
Host: app.ketryx.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "projects": [
    {
      "id": "text",
      "name": "text"
    }
  ]
}

Get the project settings

get
Authorizations
Path parameters
projectIdstringRequired
Responses
200
OK
application/json
400
The request is not valid.
application/json
401
The requester is not authenticated.
application/json
403
The requester is unauthorized.
application/json
404
The resource was not found.
application/json
get
GET /api/v1/projects/{projectId} HTTP/1.1
Host: app.ketryx.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "text",
  "name": "text",
  "repositories": [
    {
      "url": "text",
      "mainRef": "text",
      "releaseRef": "text",
      "hasAuth": true
    }
  ]
}

Delete a project

delete
Authorizations
Path parameters
projectIdstringRequired
Responses
204
Deletion successful, no content returned
400
The request is not valid.
application/json
401
The requester is not authenticated.
application/json
403
The requester is unauthorized.
application/json
404
The resource was not found.
application/json
delete
DELETE /api/v1/projects/{projectId} HTTP/1.1
Host: app.ketryx.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Get a list of versions

get

Gets a list of versions in the given project.

Authorizations
Path parameters
projectIdstringRequired
Responses
200
OK
application/json
400
The request is not valid.
application/json
401
The requester is not authenticated.
application/json
403
The requester is unauthorized.
application/json
404
The resource was not found.
application/json
get
GET /api/v1/projects/{projectId}/versions HTTP/1.1
Host: app.ketryx.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "versions": [
    {
      "id": "text",
      "name": "text"
    }
  ]
}

Delete a version

delete
Authorizations
Path parameters
projectIdstringOptional
versionIdstringOptional
Responses
204
Deletion successful, no content returned
400
The request is not valid.
application/json
401
The requester is not authenticated.
application/json
403
The requester is unauthorized.
application/json
404
The resource was not found.
application/json
delete
DELETE /api/v1/projects/{projectId}/versions/{versionId} HTTP/1.1
Host: app.ketryx.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Generate and retrieve the SBOM document

get
Authorizations
Path parameters
projectIdstringOptional
Query parameters
versionIdstringOptional

Ketryx version ID. If not specified, defaults to using the "current draft" state.

formatstring · enumOptional

SBOM format to return. Defaults to "xslx".

Example: cyclonedxPossible values:
get
GET /api/v1/projects/{projectId}/generated-documents/sbom HTTP/1.1
Host: app.ketryx.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
  • Projects
  • GETGet a list of projects
  • POSTCreate a new project
  • Project
  • GETGet the project settings
  • POSTChange the project settings
  • DELETEDelete a project
  • Versions
  • GETGet a list of versions
  • POSTCreate a new version
  • Version
  • POSTChange the version settings
  • DELETEDelete a version
  • Generated documents
  • GETGenerate and retrieve the SBOM document

Create a new project

post
Authorizations
Body
namestringRequired

Name of the new project

Example: My project
Responses
200
OK
application/json
400
The request is not valid.
application/json
401
The requester is not authenticated.
application/json
403
The requester is unauthorized.
application/json
404
The resource was not found.
application/json
post
POST /api/v1/projects HTTP/1.1
Host: app.ketryx.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 127

{
  "name": "My project",
  "repositories": [
    {
      "url": "text",
      "mainRef": "text",
      "releaseRef": "text",
      "authUser": "text",
      "authToken": "text"
    }
  ]
}
{
  "id": "text"
}

Change the project settings

post
Authorizations
Body
settingsobjectOptional

Object with advanced setting names as keys and a JSON value for each setting

Example: { "statusMapping": { "Backlog": "OPEN", "Done": "RESOLVED" } }
Responses
200
OK
application/json
400
The request is not valid.
application/json
401
The requester is not authenticated.
application/json
403
The requester is unauthorized.
application/json
404
The resource was not found.
application/json
post
POST /api/v1/projects/{projectId} HTTP/1.1
Host: app.ketryx.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 193

{
  "repositories": [
    {
      "url": "text",
      "mainRef": "text",
      "releaseRef": "text",
      "authUser": "text",
      "authToken": "text"
    }
  ],
  "settings": "{ \"statusMapping\": { \"Backlog\": \"OPEN\", \"Done\": \"RESOLVED\" } }"
}
{
  "id": "text"
}

Create a new version

post
Authorizations
Body
namestringOptionalExample: My project
Responses
200
OK
application/json
400
The request is not valid.
application/json
401
The requester is not authenticated.
application/json
403
The requester is unauthorized.
application/json
404
The resource was not found.
application/json
post
POST /api/v1/projects/{projectId}/versions HTTP/1.1
Host: app.ketryx.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 21

{
  "name": "My project"
}
{
  "id": "text"
}

Change the version settings

post
Authorizations
Body
namestringOptional
post
POST /api/v1/projects/{projectId}/versions/{versionId} HTTP/1.1
Host: app.ketryx.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 224

{
  "name": "text",
  "referencedVersions": [
    {
      "project": {
        "id": "KXPRJ49GQYFQ5RR9KRTPWTRTC39YZ9W"
      },
      "version": {
        "id": "KXPRJ49GQYFQ5RR9KRTPWTRTC39YZ9W"
      }
    }
  ],
  "repositorySettings": [
    {
      "url": "text",
      "releaseRefPattern": "refs/tags/version-1.0"
    }
  ]
}