Skip to main content

Prerequisites

Before using the SCANOSS API, ensure you have:
  • SCANOSS API key
  • curl: Command-line tool (pre-installed on Linux/macOs)
  • jq (optional): JSON processor for readable output

Authentication Setup

Configure your API key as an environment variable:
Persistent Configuration (Optional):

GetComponentAlgorithms

Retrieves cryptographic algorithms detected in a single software component identified in a software component.

Request Format

See Common API Types for ComponentRequest documentation.

HTTP Request Example

Response Examples

Successful Response

Error Response - Component Not Found

Error Response - Invalid PURL

Error Handling

Component responses include optional error fields when issues occur during processing:
  • error_message: Human-readable description of the error
  • error_code: Machine-readable error code for programmatic handling

Error Codes

  • INVALID_PURL: The provided PURL format is invalid
  • COMPONENT_NOT_FOUND: The component was not found in the database
  • NO_INFO: No cryptographic information available for the component
  • INVALID_SEMVER: The provided semantic version or requirement is invalid
When a component-level error occurs, the overall response status remains “SUCCESS” since the request was processed. Individual component errors are indicated within the component block itself.

GetComponentsAlgorithms

See Common API Types for ComponentsRequest documentation.

HTTP Request Example

Response Examples

Successful Response

Mixed Response with Error

GetComponentAlgorithmsInRange

Analyses a single software component across specified version ranges and returns all cryptographic algorithms detected along with the versions where they appear. This is useful for tracking cryptographic evolution across component development.

Request Format

See Common API Types for ComponentRequest documentation.

HTTP Request Example

Response Format

The method returns comprehensive algorithm information including:
  • component object: Contains the component analysis results
    • purl field: the requested component
    • versions array: List of component versions where cryptographic algorithms were detected
    • algorithms array: List of all cryptographic algorithms found across the version range
  • status field: Response status indicating success or failure
Each algorithm object contains:
  • Algorithm name and strength classification
  • Detection metadata and analysis results

Response Examples

Component with Algorithms Across Versions

Component with No Cryptographic Algorithms

GetComponentsAlgorithmsInRange

Batch version of GetComponentAlgorithmsInRange - analyses multiple components across version ranges and returns cryptographic algorithms for each in a single request.

Request Format

See Common API Types for ComponentsRequest documentation.

HTTP Request Example

ComponentVersionsInRange

Analyses a software component and returns lists of versions that either contain cryptographic algorithms or don’t, helping assess cryptographic presence across component evolution.

Request Format

See Common API Types for ComponentRequest documentation.

HTTP Request Example

Response Example

ComponentHintsInRange

Retrieves cryptographic hints for a single component, providing insights about cryptographic protocols, libraries, SDKs and frameworks used by the component.

Request Format

See Common API Types for ComponentRequest documentation.

HTTP Request Example

Response Format

The method returns comprehensive cryptographic hint information including:
  • purl field: the requested component
  • hints array: List of cryptographic hints detected in the component
  • version field: Shows the specific version that was analyzed
  • status field: Response status indicating success or failure
Each hint object contains:
  • Unique identifier and name of the cryptographic entity
  • Description of the detected usage or implementation
  • Category classification (protocol/library/sdk/framework)
  • Reference URL and PURL information
Hint Categories Hints are classified into the following categories:
  • protocol: Cryptographic protocols (e.g., TLS, SSH, HTTPS)
  • library: Cryptographic libraries (e.g., OpenSSL, Bouncy Castle)
  • sdk: Software Development Kits with cryptographic capabilities
  • framework: Frameworks that include cryptographic functionality

Response Examples

Component with Cryptographic Hints

Component with No Cryptographic Hints

ComponentsHintsInRange

Batch version of ComponentHintsInRange - retrieves cryptographic hints for multiple components in a single request, providing insights into cryptographic dependencies across multiple components.

Request Format

See Common API Types for ComponentsRequest documentation.

HTTP Request Example