API and MCP

Objects

Every object the API accepts or returns, in alphabetical order. Operations link here for their bodies.

ActivityActor

FieldTypeDescription
idstring
emailstring

ActivityEntry

FieldTypeDescription
idstring
actionstringOne of ADD_USER_TO_PROJECT, REMOVE_USER_FROM_PROJECT, ADD_USER_TO_ORG, REMOVE_USER_FROM_ORG, RESTORE_USER_TO_ORG, HARD_DELETE_USER_FROM_ORG, HARD_DELETE_PROJECT, SOFT_DELETE_ORG, RESTORE_ORG, HARD_DELETE_ORG, ADD_USER_TO_TEAM, REMOVE_USER_FROM_TEAM, CREATE_SPICE_PASS, BUNDLE_PRESIGN_REQUESTED, BUNDLE_UPLOADED_TO_STORAGE, BUNDLE_QUEUED_FOR_PROCESSING, BUNDLE_PROCESSING_STARTED, BUNDLE_PROCESSING_COMPLETED, BUNDLE_PROCESSING_FAILED, USER_REGISTERED, CREATE_PROJECT, CREATE_API_TOKEN, REVOKE_TOKEN, BULK_REVOKE_TOKENS, UPDATE_PROJECT_STORAGE, UPDATE_PROJECT_RESOURCES, UPDATE_PROJECT_CUTOFF, UPDATE_ORG_SPICE_LICENSE, ISSUE_SPICE_LICENSE, DELETE_PROJECT, RESTORE_PROJECT, ADMIN_CREATE_ORG, ADMIN_REMOVE_USER_FROM_ORG, ADMIN_CREATE_TEAM, ADMIN_UPDATE_TEAM, ADMIN_DELETE_TEAM, ADMIN_ADD_USER_TO_TEAM, ADMIN_REMOVE_USER_FROM_TEAM, ADMIN_SET_TEAM_ROLES, ADMIN_SET_TEAM_PROJECTS, SYSTEM_CLUSTER_MERGE_STARTED, SYSTEM_CLUSTER_MERGE_COMPLETED.
actorActivityActor
projectActivityProject
datamap of object
createdAtstring (date-time)
traceIdstring

ActivityPage

FieldTypeDescription
activitiesarray of ActivityEntry
paginationPagination
availableActionsarray of string

ActivityProject

FieldTypeDescription
idstring
namestring

AddTeamMember

FieldTypeDescription
userId requiredstring

ApiVersion

Which release of the API is answering.

FieldTypeDescription
releasestringThe build id, the one to quote to support: the commit it was built from. Example "7cbebc87e2f67ca2ec04728b3f92db505fbd00bd".
commitstringThe source commit the build was made from.
built_atstringWhen it was built, as an RFC 3339 timestamp.

AppliedFix

One fix that was simulated.

FieldTypeDescription
item_key requiredstringThe key of the component fixed.
upgrade_tostring or nullThe version upgraded to, or null when the fix is not an upgrade.
finding_keystring or nullThe finding fixed, or null when the whole component was fixed.

AxisScore

One score, from 0 to 100, with the range it could fall in given how old its evidence is. When there is not enough evidence to score, score and the range are null.

FieldTypeDescription
axis requiredstringThe score axis: pqc (post-quantum readiness), vuln (dependency health) or agility (how easily the cryptography can be changed).
as_ofstring (date-time) or nullWhen the oldest evidence behind the score was observed.
scorenumber (double) or nullThe score from 0 to 100; null when there is nothing to score.
band_lownumber (double) or nullThe lowest the score could be once out-of-date evidence is taken into account.
band_highnumber (double) or nullThe highest the score could be once out-of-date evidence is taken into account.
low_coveragebooleanPresent, and true, when the score describes less than half of what it covers because the rest is not assessed or long out of date. The score is still given.
stale_weighted_share requirednumber (double)The share of the evidence, weighted by criticality, that is out of date or not assessed on this axis, from 0 to 1.

BoardRow

One subject's data health.

FieldTypeDescription
subject requiredstringThe subject's name.
evidence requiredarray of stringWhich evidence kinds this subject has produced: inventory, runtime, static. Empty means none has been seen yet, which is a real state.
latest_runany or null or LatestRun
retired_atstring (date-time) or nullWhen the subject was retired. Present only on a retired subject.
completenessany or null or CompletenessWire
first_seen_at requiredstring (date-time)When data for the subject was first seen.
last_observed_at requiredstring (date-time)When data for the subject was last seen.

Bundle

FieldTypeDescription
idstring (uuid)
sha256string
commentstring
mime_typestring
datestring (date-time)

BundlePage

FieldTypeDescription
bundlesarray of Bundle
paginationPagination

ComparedEntry

One finding that differs between the two reports.

FieldTypeDescription
name requiredanyThe finding's name: a string, or a list of strings.
purlstring or nullThe package URL, or null for a finding that is not tied to one package.
toSectionstring or nullThe section the finding is in now. Absent on removed findings.
fromSectionstring or nullThe section the finding was in. Absent on added findings.

ComparedReport

One side of a report comparison.

FieldTypeDescription
jobId requiredstringThe report's job ID.
createdAtstring or nullWhen the report was produced.
surveyTagstring or nullThe tag of the survey the report was built from.

CompletenessWire

How complete one run's results were. Optional fields are omitted when the run did not report them, which means not reported rather than zero.

FieldTypeDescription
itemCount requiredinteger (int64)How many items the run found.
itemDeltainteger (int64) or nullItems gained or lost against the run before it. Absent on a subject's first run: there is no baseline, and a delta of zero would claim one.
recordedAt requiredstring (date-time)When the record was made.
totalBytesinteger (int64) or nullTotal bytes the run examined.
analyzeStatsanyThe scanner's own analysis statistics, as it reported them. Absent means they were not reported, never that nothing was found.
inventoryKey requiredstringThe inventory version this run produced.
identifiedBytesinteger (int64) or nullBytes the run identified as known components.
unattributedBytesinteger (int64) or nullBytes the run could not attribute to any component.

CompleteUpload

FieldTypeDescription
jobIdstring
uploadId requiredstring
blobKey requiredstring
sha256 requiredstring
parts requiredarray of UploadedPart

ContentItem

One component a subject contains.

FieldTypeDescription
purlstring or nullThe component's package URL, or null when it has none.
item_key requiredstringThe component's key.

CreateApiToken

Request to create a new API token

FieldTypeDescription
name requiredstringDisplay name for the token Example "CI/CD Pipeline".
permissions requiredarray of stringPermissions to grant to the token Example ["project:view","project:edit"].
duration_daysinteger (int32)How many days the token lasts: at least 1, and 14 when omitted At least 1. Example 90.

CreatePortfolioRequest

A new portfolio.

FieldTypeDescription
name requiredstringThe portfolio's name.
membersarray of MemberSpecThe portfolio's members: subjects and packages.
subjectsarray of MemberSpecSubjects to include. Accepted for older clients; members is preferred. Both lists are merged.
created_bystring or nullWho created the portfolio.

CreateProject

FieldTypeDescription
name requiredstring

CreateSpicePass

How long the new Spice Pass should last.

FieldTypeDescription
duration_daysinteger (int32)Days until the pass expires, 1 to 367. 14 when omitted. From 1 to 367. Example 30.

CreateTeam

FieldTypeDescription
name requiredstring
allProjectsboolean
projectIdsarray of string
roleIdsarray of string (uuid)

Credential

FieldTypeDescription
idstring
kindstring
namestring
permissionsarray of string
revokedboolean
bearer_tokenstring
created_bystring
created_by_emailstring
created_atstring (date-time)
expires_atstring (date-time)
last_used_atstring (date-time)
revoked_atstring (date-time)
user_agentstring
ip_addressstring
project_uuidstring
project_namestring
org_uuidstring
org_namestring

CriticalityEventResponse

One change to a subject's criticality rating.

FieldTypeDescription
value requiredstringThe rating: high, medium, low or unclassified.
subject requiredstringThe subject rated.
rationalestring or nullWhy the subject has this rating.
created_at requiredstring (date-time)When the rating was made.
prior_valuestring or nullThe rating before this change; null for the subject's first rating.
actor_displaystring or nullThe rater's display name.
actor_user_id requiredstringWho made the rating.

CriticalityRating

One criticality rating of a subject

FieldTypeDescription
subjectstringThe subject rated
valuestringThe rating: high, medium, low or unclassified
prior_valuestringThe rating this one replaced, or null for the first rating
actor_user_idstringThe id of the person who rated
actor_displaystringThe rater's name or email, or null when unknown
rationalestringWhy the rating was given, or null when none was
created_atstring (date-time)When the rating was recorded

DependencyUpgrade

A bundled dependency to patch, and the version that does it.

FieldTypeDescription
package requiredstringThe dependency's package URL, without a version.
fix_versionstring or nullThe version to patch it to: the highest fix version its findings state. Absent when none states one.
clears_count requiredintegerHow many of those fix_version clears. Lower than findings_count when some advisories state no fixed version. At least 0.
upgrade_kindstring or nullHow big the change is: patch, minor or major. Absent when either version is not a numbered release.
findings_count requiredintegerHow many of the component's findings are about this dependency. At least 0.
current_versionstring or nullThe version bundled today; the lowest, when more than one copy is bundled.

Error

The body of every error response.

FieldTypeDescription
errorstringA short human-readable message. It may change; branch on code. Example "Project not found".
statusinteger (int32)The HTTP status code, repeated. Example 404.
codestringA machine-readable reason a client can branch on; the reference lists every value with its status. New values may be added; treat one you do not know as the general code for its status. Example "not_found".
parameterstringOnly with invalid_parameter: the name of the query, path or header parameter that was missing or invalid. Example "limit".
permissionstringOnly with permission_denied: the permission the token lacks. Example "project:edit".

ExportFormats

The export formats a report can be downloaded in right now.

FieldTypeDescription
jobId requiredstringThe report's job ID.
formats requiredarray of stringFormats ready to download. json is always listed; other formats appear once their document has been produced.

ExportProvenance

How a rendered document was produced.

FieldTypeDescription
lens requiredanyThe version fingerprint the document was made with: lensId, and axes naming the version of each input.
format requiredstringThe document format.
parentId requiredstringThe survey the report belongs to.
recordedanyBuild details recorded by the renderer, when it reported them.
projectIdstring or nullThe project the document belongs to.
renderedAt requiredstringWhen the document was rendered.
renderJobId requiredstringThe job that rendered the document.
reportJobId requiredstringThe report the document was rendered from.
bundleSha256string or nullSHA-256 of the uploaded bundle the survey analyzed.
schemaVersion requiredinteger (int64)The version of this record's layout.
bundleCoordinatesanyThe bundle's identity as content coordinates, for example {"sha256": "..."}.

HistoryRow

One recorded score for a portfolio, and what caused it to change.

FieldTypeDescription
axis requiredstringThe score axis.
cause requiredstringWhat caused the change: inventory (new survey data), logic (a new scoring version), knowledge (new vulnerability or dependency knowledge) or rating (a criticality change).
scorenumber (double) or nullThe score; null when there was nothing to score.
detailstring or nullWhat changed, in words. Absent on rows written before it was recorded, and on changes nothing in hand could name.
band_lownumber (double) or nullThe lower end of the score's range when some of the evidence is out of date.
band_highnumber (double) or nullThe upper end of the score's range when some of the evidence is out of date.
created_at requiredstring (date-time)When the score was recorded.
stale_share requirednumber (double)The share of the evidence that was out of date, from 0 to 1.
stamp_logic requiredstringThe version of the scoring logic used.
criticality_rev requiredinteger (int64)The revision of the criticality ratings used.
stamp_inventory requiredstringThe version of the survey data the score was computed from.
stamp_knowledge requiredstringThe version of the vulnerability and dependency knowledge used.
oldest_observed_atstring (date-time) or nullWhen the oldest evidence behind the score was observed.

InviteResult

FieldTypeDescription
messagestring
statusstring
Okboolean

InviteUser

FieldTypeDescription
email requiredstring
projectUuidstring
teamIdsarray of string

Job

FieldTypeDescription
idstring (uuid)
statusstring
progressinteger (int32)
messagestring
metadatamap of object
stepsarray of Job
job_typestring
expires_atstring (date-time)
created_atstring (date-time)
updated_atstring (date-time)
parent_idstring (uuid)
step_typestring
step_labelstring
supersedesstring (uuid)
deleted_atstring

JobPage

FieldTypeDescription
jobsarray of Job
paginationPagination

LastContext

FieldTypeDescription
org_idstring (uuid)The organization id.
project_idstring (uuid)The project id.

LatestRun

The most recent run for a subject.

FieldTypeDescription
run_id requiredstringThe run's job ID.
status requiredstringPENDING, RUNNING, COMPLETED, FAILED or SKIPPED.
created_at requiredstring (date-time)When the run started.
updated_at requiredstring (date-time)When the run last changed.

Member

FieldTypeDescription
idstring
emailstring
namestring
createdAtstring (date-time)

MemberList

FieldTypeDescription
usersarray of Member

MemberResponse

A portfolio member.

FieldTypeDescription
value requiredstringThe subject name, or the package URL.
member_type requiredstringsubject or package.

MemberSpec

A portfolio member: {"type": "subject" or "package", "value": ...}. A plain string is taken as a subject.

string or object

ModuleMemberList

A portfolio's members.

FieldTypeDescription
members requiredarray of MemberResponseThe members, subjects and packages.

ModulePagination

Cursor pagination for a list. Pass lastId as after for the next page, or firstId as before for the previous one.

FieldTypeDescription
limit requiredinteger (int64)The page size used.
total requiredinteger (int64)The number of rows matching the filters, across all pages.
lastIdstring or nullThe ID of the last row on this page.
firstIdstring or nullThe ID of the first row on this page.
hasMore requiredbooleanWhether more rows exist beyond this page in the requested direction.

MyProjects

FieldTypeDescription
projectsarray of ProjectSummary
org_uuidstring
org_namestring
user_uuidstring

NewProject

FieldTypeDescription
projectstring
uuidstring
jwtstring

Occurrence

A subject a component occurs in.

FieldTypeDescription
posturestring or nullThe component's worst finding in that subject, or null when it occurs there but nothing was assessed.
subject requiredstringThe subject's name.

Organization

FieldTypeDescription
idstring (uuid)
publicUuidstring
namestring
slugstring
retentionDaysinteger (int32)
licenseEditionstring
licenseFeaturesarray of string
licenseUntilstring (date-time)
licenseCutoffDurationstring
deletedAtstring (date-time)

PackageScores

One package member's part of a portfolio's scores. A package has no criticality rating of its own; its weight comes from the subjects that contain it.

FieldTypeDescription
axes requiredarray of AxisScoreThe package's own scores, in the same form as the portfolio's. Each score is null while the package is stale.
reach requiredintegerHow many subjects in the project contain the package. At least 0.
stale requiredbooleanWhether that observation is more than 30 days old, or there is none.
posture requiredPostureCounts
base_purl requiredstringThe package URL, without a version.
member_type requiredstringAlways package.
derived_weight requirednumber (double)The package's weight in the portfolio's scores: the criticality of the subjects containing it, times how many there are.
resolved_items requiredintegerHow many items were matched to the package. At least 0.
last_observed_atstring (date-time) or nullWhen a subject containing the package was most recently observed.
containing_subjects requiredarray of stringThe subjects in the project that contain the package.
items_with_findings requiredintegerHow many of those items have at least one finding that is not green. At least 0.

Pagination

FieldTypeDescription
limitinteger (int32)
hasMoreboolean
firstIdstring (uuid)
lastIdstring (uuid)
totalinteger (int64)

PortfolioList

Every portfolio in the project.

FieldTypeDescription
portfolios requiredarray of PortfolioResponseThe portfolios.

PortfolioResponse

A portfolio: a named group of subjects and packages scored together.

FieldTypeDescription
name requiredstringThe portfolio's name.
members requiredarray of MemberResponseEvery member, subjects and packages.
subjects requiredarray of stringThe subject members' names.
created_at requiredstring (date-time)When the portfolio was created.
created_bystring or nullWho created the portfolio.
updated_at requiredstring (date-time)When the portfolio last changed.
is_implicit requiredbooleanWhether this is the project's built-in portfolio of every subject, which cannot be edited or deleted.
portfolio_id requiredstringThe portfolio ID.
dependency_health requiredbooleanThe portfolio's own dependency-health setting.
dependency_health_effective requiredbooleanWhether dependency health is actually applied: the portfolio's setting, unless it is turned off for the whole project. The state and rank reflect this value.

PortfolioState

A portfolio's scored state. A score computed with an older scoring version, served while the portfolio is scored again, can lack fields added since.

FieldTypeDescription
axes requiredarray of AxisScoreThe portfolio's scores, one per score axis, in the order pqc, vuln, agility. The vuln entry is left out when dependency health is turned off for the portfolio or the project, so find an axis by its axis value rather than by position.
rankarray of RankedFix or nullThe whole ranked list of fixes, best first. Only present when you ask for it with rank=true; the rank operation pages through the same list.
stamps requiredScoreStamps
packages requiredarray of PackageScoresOne entry per package member, sorted by package URL. Empty when the portfolio has no package members.
subjects requiredarray of SubjectScoresOne entry per subject in the portfolio, sorted by subject name.
projected requiredbooleanWhether these are simulated scores: false here, true in a simulation.
computed_at requiredstring (date-time)The moment the scores were computed for. How old the evidence is, and so how wide each score's range is, is measured from this moment.
portfolio_id requiredstringThe portfolio's ID.
inactive_count requiredintegerHow many subjects are left out of every score because they were not observed in the 90 days before computed_at, or never. At least 0.
oldest_observed_atstring (date-time) or nullWhen the oldest evidence behind the scores was observed.
stale_subject_count requiredintegerHow many of the counted subjects were last observed more than 30 days before computed_at. At least 0.
next_observation_duestring (date-time) or nullReserved; always null for now.

PostureCounts

How many items are in each state, judged by each item's worst finding. Items without findings count as green.

FieldTypeDescription
red requiredintegerItems whose worst finding is red. At least 0.
green requiredintegerItems with no findings, or only green ones. At least 0.
yellow requiredintegerItems whose worst finding is yellow. At least 0.
transition requiredintegerItems whose worst finding is in transition. At least 0.
uncategorized requiredintegerItems whose worst finding is not yet categorized. At least 0.

Project

FieldTypeDescription
idstring (uuid)
publicUuidstring
namestring
demoProjectboolean
lastAccessTimestring (date-time)
featureFlagsarray of string
cutoffDurationstring
deletedAtstring (date-time)

ProjectList

FieldTypeDescription
projectsarray of ProjectSummary
org_uuidstring
org_namestring

ProjectSummary

FieldTypeDescription
namestringThe project's name
uuidstringThe project's id
deletedAtstring (date-time)When the project was deleted; present only in the list of deleted projects

RankedFinding

One finding on a component in the ranked list of fixes.

FieldTypeDescription
axis requiredstringThe score axis the finding counts against: pqc, vuln or agility.
cvssnumber (double) or nullThe worst CVSS score stated for the vulnerability. Absent when none was stated.
hndl requiredbooleanWhether the finding is a harvest-now-decrypt-later risk: data protected by it today could be recorded now and decrypted later.
sourcestring or nullWhere a vulnerability finding comes from, for example OSV. Absent on cryptography findings.
posture requiredstringThe finding's own state: red, yellow, transition or uncategorized. Green findings need no fix and are not listed.
summary requiredstringA short description of the finding.
guidancestring or nullAdvice about the finding in its source's own words, when the source gives any.
fix_class requiredstringThe kind of work that clears the finding: version-upgrade, dependency-upgrade, config-change, code-change, plan-migration or remediate (the defect is known but no target version is stated).
publishedstring (date-time) or nullWhen the advisory was first published. Absent on cryptography findings and when not stated.
first_seenstring (date-time) or nullWhen this portfolio first saw the finding. Absent until the finding has been scored once.
finding_key requiredstringThe finding's key, to pass as finding_key when you simulate fixing just this finding.
fix_versionstring or nullThe version the vulnerability was fixed in, as the advisory states it. Absent on cryptography findings and where the advisory states none.
vendored_packagestring or nullThe bundled package the vulnerability is about, when it is not the component's own package. The fix is then to rebuild the component with a patched copy of that package, not to upgrade the component to fix_version.
vendored_fix_versionstring or nullThe version of vendored_package that fixes the vulnerability. Present only with vendored_package, and absent when no fixed version was stated.
includes_unattributedbooleanPresent, and true, when part of the finding's evidence could not be placed on a particular component and was attributed to this one because it carries the same finding.

RankedFix

One fix in a portfolio's ranked list: a component to fix, every finding on it, where it occurs, and how much fixing it would raise the scores.

FieldTypeDescription
purlstring or nullThe component's package URL, when it has one.
rank requiredintegerThe fix's position in the whole list, starting at 1. It stays the same on every page. At least 0.
items requiredarray of stringKeys of the items inside the component that carry its findings, sorted; at most 50. items_count gives the full number.
reach requiredintegerHow many subjects contain the component. At least 0.
score requirednumber (double)How many points the portfolio's scores would gain in total, summed over the score axes, if every finding on the component were fixed. The list is ordered by this.
explainstring or nullA one-line explanation built from the worst finding.
posture requiredstringThe component's worst finding: red, yellow, transition or uncategorized.
filenamestring or nullThe component's file name, when known.
findings requiredarray of RankedFindingThe component's findings.
fix_typestring or nullReserved; always null for now.
item_key requiredstringThe fix's key, to pass as item_key when you simulate it. A key starting subject: gathers the findings in that subject that could not be placed on a particular component.
base_purlstring or nullThe package URL without its version, for grouping versions of one package.
fix_versionstring or nullThe version to upgrade the component to: the fix stated for its worst known vulnerability that states one. Upgrading clears every finding fixed at or below it. Absent when no finding states a fix version.
items_count requiredintegerHow many items inside the component carry its findings. At least 0.
occurrences requiredarray of OccurrenceEach subject the component occurs in.
fix_verifiedbooleanPresent, and true, when fix_version was checked and found free of known vulnerabilities, rather than only stated by an advisory.
reveals_scorebooleanPresent, and true, when fixing the component would produce a score on an axis that has none today. Its score stays 0 for that axis because there is no current number to improve on.
source_job_idstring or nullThe job ID of the survey the evidence came from.
findings_count requiredintegerHow many findings the component has. At least 0.
reach_breakdown requiredarray of ReachGroupWhere the component occurs by kind of artifact. Always empty for now.
dependency_upgradesarray of DependencyUpgradeThe bundled dependencies to patch, one entry each, for a component that carries other packages inside it. Absent when every finding is about the component's own package.

RankPage

A page of a portfolio's ranked list of fixes.

FieldTypeDescription
rows requiredarray of RankedFixThe fixes on this page, in rank order.
limit requiredintegerThe page size used. At least 0.
total requiredintegerHow many fixes the whole list has. At least 0.
offset requiredintegerThe starting index used. At least 0.

RateCriticality

FieldTypeDescription
value requiredstring
rationalestring

ReachGroup

How many occurrences of a component are of one kind of artifact.

FieldTypeDescription
type requiredstringThe kind of artifact.
count requiredintegerHow many occurrences are of this kind. At least 0.
environmentstring or nullThe environment, when deployments are recorded.

RegenerateReportResponse

A report regeneration that was requested. A posture report answers with portfolio_id and document_id; a survey's report answers with the new survey's ID and the job ID of each of its steps.

FieldTypeDescription
job_id requiredstringThe job to follow: the new report for a posture report, or the new survey for a survey's report.
status requiredstringAlways requested.
parent_idstring or nullThe new survey's job ID; the same as job_id.
supersedes requiredstringWhat is being replaced: the report for a posture report, or its survey for a survey's report.
document_idstring or nullThe new posture report's ID; the same as job_id.
sub_job_idsmap of string or nullEvery step of the new survey, keyed by step.
portfolio_idstring or nullThe portfolio the posture report belongs to.
index_sub_job_idstring or nullThe new survey's indexing step.
report_sub_job_idstring or nullThe new survey's post-quantum cryptography report.
upload_sub_job_idstring or nullThe new survey's upload step.
analyze_sub_job_idstring or nullThe new survey's analysis step.
submission_timestampstring (date-time) or nullWhen the regeneration was requested.
cbom_report_sub_job_idstring or nullThe new survey's cryptography bill of materials report.
composition_report_sub_job_idstring or nullThe new survey's composition report, when the original survey had one.
combined_cbom_report_sub_job_idstring or nullThe new survey's combined cryptography bill of materials report.

RegenerateSurvey

FieldTypeDescription
skipAnalyzeboolean

RenderStarted

The render steps started for a report

FieldTypeDescription
renderSubJobIdsmap of stringEach document format, such as html or pdf, mapped to the id of the job that renders it

ReportComparison

The difference between two reports, matched finding by finding across all sections.

FieldTypeDescription
to requiredComparedReport
from requiredComparedReport
added requiredarray of ComparedEntryFindings only in the to report.
moved requiredarray of ComparedEntryFindings in both reports that changed section.
removed requiredarray of ComparedEntryFindings only in the from report.
unchanged requiredinteger (int64)How many findings are in the same section in both reports.

ReportSummary

Headline figures for a report. Besides the fields listed here, the summary carries the figures its report type produces, for example totalAlgorithms, redCount, yellowCount, greenCount for a post-quantum cryptography report.

FieldTypeDescription
jobId requiredstringThe report's job ID.
sections requiredarray of stringThe sections the report has; each can be read with the section operation.
createdAtstring or nullWhen the report was produced.
surveyTagstring or nullThe tag of the survey the report was built from.
surveyType requiredstringThe kind of survey the report was built from, for example inventory or runtime.

ResolveResponse

What an identifier resolved to, and where to look at it.

FieldTypeDescription
kind requiredstringrun | step | subject.
run_idstring or nullThe run the identifier leads to, when it leads to one.
matched requiredstringWhich namespace the reference matched in, so a reader can tell a run id from an idempotency key that happens to name one.
subjectstring or nullThe subject the identifier leads to, when it leads to one.
deep_link requiredstringWhere to send the reader. Absolute when this service knows its project; otherwise relative, which resolves against the page asking.

Role

FieldTypeDescription
idstring
namestring
systemRoleboolean
permissionsarray of string

RoleList

FieldTypeDescription
rolesarray of Role

RunRow

One run: a survey or other top-level job with its steps, and, when it failed, where and why.

FieldTypeDescription
cianyThe CI identity from the run's spice:ci tag, as it was sent.
steps requiredarray of StepRowThe run's steps.
run_id requiredstringThe run's job ID.
status requiredstringPENDING, RUNNING, COMPLETED, FAILED or SKIPPED.
subjectstring or nullThe subject this run is about, when it carries one (uploads and backfills need not).
job_type requiredstringThe kind of run, for example an inventory or runtime survey.
progressinteger (int64) or nullProgress from 0 to 100, when the run reports it.
created_at requiredstring (date-time)When the run started.
deleted_atstring (date-time) or nullWhen the run was deleted. Present only on a deleted run.
updated_at requiredstring (date-time)When the run last changed.
failed_stepstring or nullThe step that failed, so a reader is told WHERE before WHY.
completenessany or null or CompletenessWire
failed_reasonstring or nullThe reason the failing step recorded, as it recorded it.
failure_classstring or nullPresent only on a failed run: upload_incomplete, analyze_failed, index_failed, render_failed, retries_exhausted or unknown.
reconcile_attemptsinteger (int64) or nullHow many times the run has been retried automatically, when it has. A run that is still being retried is taking longer than expected, not failed.

RunsResponse

A page of runs.

FieldTypeDescription
runs requiredarray of RunRowThe runs on this page.
pagination requiredModulePagination

ScoreHistory

A portfolio's recorded scores, oldest first.

FieldTypeDescription
rows requiredarray of HistoryRowOne row per recorded score.

ScoreStamps

The versions of the inputs a score was computed from. When any of them changes, the portfolio is scored again.

FieldTypeDescription
logic requiredstringThe version of the scoring logic.
inventory requiredstringThe version of the survey data.
knowledge requiredstringThe version of the vulnerability and dependency knowledge.
criticality_rev requiredinteger (int64)The revision of the criticality ratings.

SearchMatch

One report entry that matched the search: the entry as it appears in its section, plus the name of that section.

FieldTypeDescription
section requiredstringThe section the entry belongs to.

SectionPage

A page of a report section.

FieldTypeDescription
entries requiredarray of anyThe entries on this page, in the section's order. Each entry is one finding; its fields depend on the report type and usually include purl, name and explanation.
pagination requiredSectionPagination

SectionPagination

Offset pagination for a report section.

FieldTypeDescription
limit requiredintegerThe page size used. At least 0.
total requiredintegerThe number of entries in the whole section. At least 0.
lastIdstring or nullThe package URL of the last entry on this page, when it has one.
firstIdstring or nullThe package URL of the first entry on this page, when it has one.
hasMore requiredbooleanWhether more entries follow this page.

SetTeamProjects

FieldTypeDescription
projectIds requiredarray of string

SetTeamRoles

FieldTypeDescription
roleIds requiredarray of string (uuid)

SimulateFix

One fix to simulate.

FieldTypeDescription
item_key requiredstringThe row's item_key, from the state or rank operations.
dependencystring or nullA vendored dependency of the row to patch instead of one advisory: its package URL without a version. Not with finding_key.
upgrade_tostring or nullThe version to upgrade to. Defaults to the fix version the row advertises.
finding_keystring or nullOne advisory on that row to clear. Leave it out to do all of the work the row lists.

SimulateFixes

The fixes to simulate. A single fix, or a plain list of fixes, is also accepted.

FieldTypeDescription
fixes requiredarray of SimulateFixThe fixes, each naming a row from the portfolio's state or rank.

Simulation

What a portfolio's scores would be after the given fixes. Nothing is changed or recorded. rank, subject_deltas and state are present whenever the whole simulation was computed, which is always the case with rank=true. Without it, a single whole-component fix can be answered from figures prepared when the portfolio was scored; those fields are then absent and rank_available is true.

FieldTypeDescription
axes requiredarray of AxisScoreThe portfolio's scores after the fixes, in the same form as the current ones.
rankarray of RankedFix or nullThe ranked list of fixes as it would stand after the fixes.
stateany or null or PortfolioState
subjects requiredarray of SubjectScoresEvery subject's part of the scores after the fixes.
projected requiredbooleanAlways true: these are simulated scores.
computed_at requiredstring (date-time)The moment both sets of scores were computed for: the current state's computed_at.
applied_fixes requiredarray of AppliedFixThe fixes that were simulated, after a whole-component fix was expanded into one fix per finding and upgrade versions were filled in.
baseline_axes requiredarray of AxisScoreThe current scores, computed for the same moment, so the difference from axes is the effect of the fixes alone.
rank_availableboolean or nullPresent, and true, when the ranked list was left out of this answer; ask again with rank=true to get it.
subject_deltasmap of map of number (double) or nullFor each subject whose scores change, the change on each axis that moves.

SpicePass

A newly created Spice Pass.

FieldTypeDescription
jwtstringThe Spice Pass. Shown once; cannot be retrieved again.

StaleAxis

One version that changed since the document was made.

FieldTypeDescription
to requiredstringThe version a new document would use.
axis requiredstringWhat changed, for example the analysis logic or a document template.
from requiredstringThe version the document was made with.

StaleProjection

One rendered document that would come out differently if it were made again now, and why.

FieldTypeDescription
format requiredstringThe document format, for example pdf or xlsx.
lensId requiredstringThe version fingerprint the document was made with.
parentId requiredstringThe survey the document belongs to.
staleAxes requiredarray of StaleAxisEach version that changed, with its old and new value.
reportType requiredstringThe report type, for example the post-quantum cryptography report.
reportJobIdstring or nullThe report job the document was rendered from. Absent for some older documents.
currentLensId requiredstringThe version fingerprint a new document would be made with.
supersededAnchorsarray of stringSurveys this report was built from that have since been replaced. Omitted when every survey it read is still current.

StaleResponse

Rendered documents that are out of date.

FieldTypeDescription
stale requiredarray of StaleProjectionOne entry per out-of-date document; empty when everything is current.

StartSurvey

FieldTypeDescription
jobType requiredstring
tagstring
jsonTagsmap of object
targetSurveyTarget
notesstring

StartUpload

FieldTypeDescription
sha256 requiredstring
sizeBytesinteger (int64)At least 1.
encryptedChallengestring
filenamestring
commentstring
buildDatestring
bundleFormatVersionstring
targetChunkSizeBytesinteger (int64)
mimeTypestring
metadatamap of object
parentIdstring (uuid)

StepRow

One step of a run.

FieldTypeDescription
id requiredstringThe step's job ID.
status requiredstringPENDING, RUNNING, COMPLETED, FAILED or SKIPPED.
messagestring or nullThe step's latest status message.
progressinteger (int64) or nullProgress from 0 to 100, when the step reports it.
step_typestring or nullThe step, for example UPLOAD, ANALYZE, INDEX, REPORT or RENDER.
step_labelstring or nullA label naming what the step produces.
updated_at requiredstring (date-time)When the step last changed.

SubjectContents

A page of what a subject currently contains, sorted by item key.

FieldTypeDescription
items requiredarray of ContentItemThe items on this page.
limit requiredintegerThe page size used: 1000 unless the request set limit. At least 0.
total requiredintegerHow many items the subject contains. At least 0.
offset requiredintegerThe starting index used. At least 0.
subject requiredstringThe subject's name.

SubjectList

Every subject in the project.

FieldTypeDescription
subjects requiredarray of SubjectResponseThe subjects.

SubjectResponse

A subject: one application or system your surveys describe.

FieldTypeDescription
subject requiredstringThe subject's name, as given by the survey tag.
retired_atstring (date-time) or nullWhen the subject was retired; null while it is active.
criticality requiredstringAlways high/medium/low: medium is the default, not an absence.
first_seen_at requiredstring (date-time)When data for the subject was first seen.
last_observed_at requiredstring (date-time)When data for the subject was last seen.

SubjectScores

One subject's part of a portfolio's scores.

FieldTypeDescription
axes requiredarray of AxisScoreThe subject's own scores, in the same form as the portfolio's.
stale requiredbooleanWhether the subject was last observed more than 30 days before the scores were computed, or never.
agility requiredmap of stringEach assessed algorithm with how easily it can be changed: green, yellow or red. Algorithms nobody assessed are left out.
posture requiredPostureCounts
subject requiredstringThe subject's name.
inactivebooleanPresent, and true, when the subject is left out of every score because it was not observed in the last 90 days, or never.
algorithms requiredmap of string or nullEach cryptographic algorithm found in the subject, with its worst rating (red, yellow, green and so on), or null when it is not rated.
criticality requiredstringThe subject's criticality: high, medium or low. Unrated subjects count as medium.
items_total requiredintegerHow many items the subject contains. At least 0.
vuln_severitymap of integerHow many items have a known vulnerability, by the worst severity on each: critical, high, medium, low or unknown. Absent when there are none, and whenever dependency health is turned off.
no_cryptographybooleanPresent, and true, when the subject was checked and has no cryptography: its post-quantum readiness of 100 means "none found".
identified_sharenumber (double) or nullThe share of the subject's bytes that could be matched to a known package, from 0 to 1. Absent when not measured.
last_observed_atstring (date-time) or nullWhen the subject was last observed by a survey.
items_with_findings requiredintegerHow many of those items have at least one finding that is not green. At least 0.
uncategorized_algorithms requiredintegerHow many of those algorithms are not yet categorized. At least 0.

SummaryResponse

Data health for every subject.

FieldTypeDescription
subjects requiredarray of BoardRowOne row per subject.
generated_at requiredstring (date-time)When this answer was put together.

SurveyRegenerated

FieldTypeDescription
parent_idstring (uuid)
submission_timestampstring (date-time)
supersedesstring (uuid)
analyze_sub_job_idstring (uuid)
upload_sub_job_idstring (uuid)
index_sub_job_idstring (uuid)
report_sub_job_idstring (uuid)
cbom_report_sub_job_idstring (uuid)
combined_cbom_report_sub_job_idstring (uuid)
sub_job_idsmap of string (uuid)

SurveyStarted

FieldTypeDescription
parent_idstring (uuid)
submission_timestampstring (date-time)
analyze_sub_job_idstring (uuid)
upload_sub_job_idstring (uuid)

SurveyStatus

FieldTypeDescription
subJobId requiredstring (uuid)
status requiredstring
progressinteger (int32)
messagestring
resultPathstring
metadatamap of object
analyzeStatsmap of object

SurveyTarget

FieldTypeDescription
hoststring
osstring
cliVersionstring

Team

FieldTypeDescription
idstring
namestring
allProjectsboolean
systemTeamboolean
membersarray of TeamMember
projectsarray of TeamProject
rolesarray of Role

TeamList

FieldTypeDescription
teamsarray of TeamSummary

TeamMember

FieldTypeDescription
idstring
emailstring
namestring

TeamMemberList

FieldTypeDescription
usersarray of TeamMember

TeamProject

FieldTypeDescription
idstring
namestring

TeamSummary

FieldTypeDescription
idstring
namestring
allProjectsboolean
systemTeamboolean
memberCountinteger (int32)
projectCountinteger (int32)
rolesarray of string

UpdateOrganization

FieldTypeDescription
namestring
retentionDaysinteger (int32)From 1 to 365.

UpdatePortfolioRequest

Changes to a portfolio. Fields left out are not changed.

FieldTypeDescription
namestring or nullThe new name.
actorstring or nullWho made the change.
membersarray of MemberSpec or nullReplaces the whole member list.
subjectsarray of MemberSpec or nullReplaces the subject members only; package members are kept. Accepted for older clients; members is preferred.

UpdateProject

FieldTypeDescription
namestring

UpdateTeam

FieldTypeDescription
namestring
allProjectsboolean

UpdateUser

FieldTypeDescription
name requiredstring

UpdateUserPreferences

Any subset of your preferences to change.

FieldTypeDescription
timezonestringThe IANA time zone dates are shown in; null clears it.
last_contextLastContext

UploadCompleted

FieldTypeDescription
statusstring
bundleIdstring
messagestring

UploadedPart

FieldTypeDescription
partNumber requiredinteger (int32)
etag requiredstring

UploadPart

FieldTypeDescription
partNumberinteger (int32)
presignedUrlstring
offsetinteger (int64)
sizeinteger (int64)

UploadProgress

FieldTypeDescription
jobId requiredstring
progressinteger (int32)From 0 to 100.

UploadStarted

FieldTypeDescription
uploadIdstring
blobKeystring
bundleIdstring
jobIdstring
expiresIninteger (int32)
partsarray of UploadPart

UserPermissions

FieldTypeDescription
orgPermissionsarray of string
projectPermissionsmap of array of string

UserPreferences

Your own preferences.

FieldTypeDescription
timezonestringThe IANA time zone dates are shown in, such as America/Los_Angeles.
last_contextLastContext

UserProfile

FieldTypeDescription
idstring
emailstring
namestring

UserTeams

FieldTypeDescription
teamsarray of TeamSummary