Skip to content

What comes back

Part of the API reference. Authentication, scopes, rate limits and errors are on the overview.

BitHive Reporting Desk API · 0.11.0

What comes back

ContractState

ParameterTypeDescription
id requiredstring (uuid)
kind requiredstringnotice_clause for a customer's notice clause, gdpr_controller for a controller the account processes personal data for.
counterparty requiredstring
archived_at requiredstring,null (date-time)When the contract was archived; null while it is in use.

Product

ParameterTypeDescription
id requiredstring (uuid)
name requiredstring
created_at requiredstring (date-time)
archived requiredbooleanAn archived product is no longer monitored.

ProductList

ParameterTypeDescription
products requiredarray of object

SBOM

ParameterTypeDescription
id requiredstring (uuid)
product_id requiredstring (uuid)
format requiredstring
spec_version requiredstringVersion of the specification the document follows, for example 1.6 or SPDX-2.3.
sha256 requiredstringSHA-256 of the stored document, in lower-case hexadecimal. It addresses the document.
component_count requiredintegerComponents the document listed, after repetitions were dropped.
source requiredstringWhether the upload came through the interface or this API.
created_at requiredstring (date-time)
releasestringThe release the document describes. Absent when nobody named it and the document gave none.
on_market requiredbooleanThe release is on the market, so it stays monitored after newer uploads.
monitored requiredbooleanMatching and cases follow this upload, because it is on the market or it is the product's latest.
on_market_refusedbooleanOnly in the answer to an upload: on_market=true was asked while the product already had 25 releases on the market. The document is stored all the same, and monitored while it is the latest upload.
generated_fromarray of stringOnly for a document the Reporting Desk wrote from lockfiles or manifests (API 0.9.0): the names of the files, without their directories.
partialbooleanOnly for a document the Reporting Desk wrote, and only when true: the files list only part of what the build uses (a pom.xml names no transitive dependency, nor need a requirements.txt without a --hash on every pinned line, and a go.mod for a Go before 1.17 names only the direct ones), so the components not in the document are not monitored.
left_outintegerOnly for a partial document the Reporting Desk wrote: how many dependencies the files named without an exact version, and so left out.

ReleaseChange

ParameterTypeDescription
releasestringThe release's new name; an empty string removes it.
on_marketbooleanTrue puts the release on the market, false takes it off.

SBOMList

ParameterTypeDescription
sboms requiredarray of object

Component

ParameterTypeDescription
name requiredstring
version requiredstringEmpty when the document stated no version; such a component cannot be matched.
purl requiredstringPackage URL as the document carried it, empty when it carried none.

ComponentList

ParameterTypeDescription
components requiredarray of object
total requiredinteger

Finding

ParameterTypeDescription
id requiredstring (uuid)
component requiredobject
vulnerability requiredobject
evidence requiredstringWhether the feed stated the affected version outright, or the version was compared against a published range; cpe when a component without a matched package URL was matched by its CPE name and NVD's affected versions, so the build may carry a backported fix; check when its CPE names no vendor and it was matched on the product alone, which raises no case or alert until a person confirms the vendor in the interface.
matched_rangestringThe range that decided a compared match.
state requiredstring
exploited requiredbooleanThe vulnerability is known to be exploited, which starts the 24-hour report.
exploited_cvestringThe identifier the exploitation catalogue lists it under.
exploited_sincestring (date)The day the catalogue added it.
ransomware requiredbooleanThe catalogue has linked it to a ransomware campaign.
first_seen_at requiredstring (date-time)When the Reporting Desk first saw this finding. Reporting deadlines are measured from our own knowledge.
last_seen_at requiredstring (date-time)
sbom_id requiredstring (uuid)The monitored upload the finding was made in.
releasestringThe release that upload describes. Absent when nobody named it.
decisionobjectThe current statement about the release and the vulnerability. Absent when none is current or the release has no name.

Decision

ParameterTypeDescription
id requiredstring (uuid)
release requiredstring
vulnerability requiredstringThe vulnerability's identifier, as the findings name it.
status requiredstring
justificationstringWhy the release is not affected; for not_affected only.
impact_statementstringWhy the release is not affected, in the account's words; for not_affected only.
action_categorystringThe remediation; for affected only.
action_statementstringWhat the account's customers should do; for affected only.
decided_at requiredstring (date-time)
supersedesstring (uuid)The statement this one replaced, absent for the first of its release and vulnerability.
finding_idstring (uuid)The finding it was made on, absent once matching replaced that finding or when made through the API.
stale requiredbooleanThe advisory changed after the statement was made, or a component was matched after it. The statement stays current until somebody decides again.

DecisionList

ParameterTypeDescription
decisions requiredarray of object

NewDecision

ParameterTypeDescription
releases requiredarray of stringThe named releases the statement is about; one statement is written for each.
vulnerability requiredstring
status requiredstring
justificationstring
impact_statementstring
action_categorystring
action_statementstring

FindingList

ParameterTypeDescription
findings requiredarray of object
total requiredinteger
exploited requiredintegerHow many of them start a reporting deadline.

NotMonitoredGroup

ParameterTypeDescription
reason requiredstring
ecosystemstringThe ecosystem, when the reason is about one, so a client can see that it is Alpine rather than only that something is unsupported.
explanationstringWhat specifically is unsolved. For "version could not be read": these versions cannot be ordered, so they are not checked against advisories that give a range of affected versions; they are still matched against advisories that list their exact version, which means such a component can have findings and still be counted here as not monitored.
components requiredinteger

Coverage

ParameterTypeDescription
sbom_idstring (uuid)The upload this describes; absent when the product has none.
components requiredinteger
monitored requiredinteger
monitored_percent requirednumberThe monitored share, rounded to one decimal place.
not_monitored requiredarray of object

CaseList

ParameterTypeDescription
cases requiredarray of object
next_cursor requiredstringnullSent as cursor, reads the next page; null on the last.

CaseSummary

A CRA case as a list shows it.

ParameterTypeDescription
id requiredstring (uuid)
type requiredstringThe trigger of Article 14, paragraph 1 or 3.
state requiredstringHow far the case has come: open, each stage recorded as submitted in turn, closed after the final report, or dismissed.
product_id requiredstring (uuid)
cve requiredstringnullThe CVE the exploitation catalogue lists, or the one entered with the case.
euvd_id requiredstringnullThe EU Vulnerability Database's identifier entered with the case.
advisory_id requiredstringnullThe advisory the product's components were matched against.
detected_at requiredstring (date-time)When the case was recorded. Never changes.
became_aware_at requiredstring (date-time)When the manufacturer became aware, which the 24- and 72-hour deadlines count from.
next_deadline requiredobject or nullThe stage whose stored deadline comes next and is not met; null when the case has no open deadline: always when the case is closed or dismissed, and also while it is still running but the next report's clock has not started, for example a vulnerability's final report before fix_available_at is recorded. null does not mean that no report is owed; read the case's state for that.

CaseDueStage

ParameterTypeDescription
stage requiredstring
due_at requiredstring (date-time)

Case

A CRA case with its stored deadlines and the state of each stage's report.

ParameterTypeDescription
id requiredstring (uuid)
type requiredstring
state requiredstring
product_id requiredstring (uuid)
cve requiredstringnull
euvd_id requiredstringnull
advisory_id requiredstringnull
detected_at requiredstring (date-time)
became_aware_at requiredstring (date-time)
next_deadline requiredobject or nullThe stage whose stored deadline comes next and is not met; null when the case has no open deadline: always when the case is closed or dismissed, and also while it is still running but the next report's clock has not started, for example a vulnerability's final report before fix_available_at is recorded. null does not mean that no report is owed; read the case's state for that.
first_notified_at requiredstring,null (date-time)The first successful delivery of an alert about the case; null while none arrived.
first_acknowledged_at requiredstring,null (date-time)When a person first took the case up.
fix_available_at requiredstring,null (date-time)When a corrective or mitigating measure became available, which a vulnerability's final report counts from.
occurred_at requiredstring,null (date-time)When a severe incident occurred, as the manufacturer stated it.
deadlines requiredarray of objectThe stored deadlines, in the order they fall due. A stage that waits for its moment has none yet.
reports requiredarray of objectEach stage's report, early warning, notification and final report in that order.

CaseDeadline

ParameterTypeDescription
stage requiredstring
due_at requiredstring (date-time)
basis requiredstringThe moment the deadline is counted from.
basis_at requiredstring (date-time)
met_at requiredstring,null (date-time)When the stage's report was submitted, as recorded; null until then.
on_time requiredbooleannullWhether the stage's report was submitted by due_at: true when met_at is not after it, null until a report is recorded. It compares the two times as BitHive holds them. due_at is counted from the moment the stage's clock starts: the moment of awareness for the early warning and the notification, fix_available_at for a vulnerability's final report, and the recorded submission of the notification for a severe incident's final report. Changing that moment moves due_at and can change on_time. It says nothing else about the obligation.
rule requiredstringThe rule that computed the deadline; empty on a deadline an earlier release wrote, until it is given its rule.
rule_version requiredinteger

CaseReport

ParameterTypeDescription
stage requiredstring
state requiredstringnone, a draft is saved, or recorded as submitted.
submitted_at requiredstring,null (date-time)When the report was submitted on ENISA's platform, as recorded.
recorded_at requiredstring,null (date-time)When it was marked submitted in the Reporting Desk.

RecordList

ParameterTypeDescription
records requiredarray of object

RecordSummary

An incident record as a list shows it, with its nearest running deadline.

ParameterTypeDescription
id requiredstring (uuid)
summary requiredstring
state requiredstringThe case state, open until the record is closed.
entered_at requiredstring (date-time)
aware_at requiredstring (date-time)
occurred_at requiredstring,null (date-time)
regimes requiredarray of string
next_deadline requiredobject or null

NextDeadline

ParameterTypeDescription
obligation requiredstring
stage requiredstring
due_at requiredstring (date-time)
overdue requiredboolean

Record

An incident record with the obligations the token's creator sees.

ParameterTypeDescription
id requiredstring (uuid)
summary requiredstring
state requiredstring
entered_at requiredstring (date-time)
aware_at requiredstring (date-time)
occurred_at requiredstring,null (date-time)
regimes requiredarray of string
next_deadline requiredobject or null
detail requiredstring
definitions requiredarray of string
answers requiredobject
items requiredarray of object
obligations requiredarray of object

RecordItem

ParameterTypeDescription
kind requiredstring
name requiredstring

Obligation

One obligation of a module on a record, keyed by its type and its party.

ParameterTypeDescription
key requiredstring
regime requiredstring
type requiredstring
party requiredobject
party_name requiredstring
applicability requiredstring
suggested requiredstring
reason requiredstring
decided_by requiredstring
decided_at requiredstring (date-time)
stages requiredarray of object

ObligationParty

ParameterTypeDescription
kind requiredstring
idstring (uuid)

RecordStage

A stage and its stored deadline, or the moment it waits for; closed by an answer.

ParameterTypeDescription
id requiredstring
closed requiredboolean
due_at requiredstring,null (date-time)
met_at requiredstring,null (date-time)
rule requiredstring
rule_version requiredinteger
waiting_for requiredstring

NewRecord

What is stated when an incident is recorded.

ParameterTypeDescription
summary requiredstring
detailstring
aware_at requiredstring (date-time)
occurred_atstring,null (date-time)
definitions requiredarray of string
legal_entitiesarray of string (uuid)
contractsarray of string (uuid)
member_statesarray of string
servicesarray of string
answersobject

NewSubmission

A stage's report as submitted, with where it went.

ParameterTypeDescription
obligation requiredstring
stage requiredstring
language requiredstring
values requiredobject
submitted_at requiredstring (date-time)
submitted_by requiredstring
referencestring
sent requiredobjectThe channel it went over, by recipient.
not_sent_reasonstring

Submission

The submission copy of a stage's report.

ParameterTypeDescription
record requiredstring (uuid)
obligation requiredstring
stage requiredstring
submitted_at requiredstring (date-time)
recorded_at requiredstring (date-time)
submitted_by requiredstring
reference requiredstring
channel requiredstring
recipient requiredstring
sent requiredarray of object
not_sent requiredarray of string
template requiredstring
template_version requiredinteger
language requiredstring
sha256 requiredstring

SubmissionSent

ParameterTypeDescription
recipient requiredstring
channel requiredstring

Problem

RFC 9457 problem details.

ParameterTypeDescription
type requiredstring
title requiredstring
status requiredinteger
detailstring

The contract itself. This page is built from the OpenAPI document of the service. It is published as a file, so a client generator can read the same contract this page describes. Download openapi.yaml

Docs

Start free 14-day trial