Code and supply chain security logo

EU CRA Readiness Check

$2.40 USDC per call · Developer and security · POST /api/v1/pipelines/cra-readiness · Id cra-readiness

Repository or manifests in, EU Cyber Resilience Act Art. 14 position out: dependency-advisor resolves every declared package to its locked version (deterministic, no model), those versions go to cra-exploit-clock as package URLs (OSV, CISA KEV, EPSS, EUVD), and each actively exploited component is joined back to the manifest that declares it with the fixed versions and the advisor's findings. Reports the 24 h / 72 h / 14 day reporting deadlines from the awareness time. Charged once, dependency-advisor + cra-exploit-clock at 20% below their combined list price; not charged when a required step fails.

What you get

One call tells a manufacturer whether an exploited vulnerability in its own dependency tree starts the CRA reporting clock, and which manifest line to change.

Call it

Send the JSON body below to https://agents.writerslogic.com/api/v1/pipelines/cra-readiness. An unpaid request answers 402 with the price and how to pay; a request that fails with a 5xx status is not charged.

curl -i -X POST https://agents.writerslogic.com/api/v1/pipelines/cra-readiness \
  -H 'content-type: application/json' \
  -d '{"repo":"star7th/htq","product":{"name":"htq"}}'

Input

FieldTypeRequiredDescription
repostring; length 3..200noPublic GitHub repository: owner/repo, https://github.com/owner/repo[/tree/ref], a commit URL, or a pull request URL (analyzed at the PR head).
refstring; length 0..200noBranch, tag or commit; defaults to the default branch.
filesarray<object>; max 600 itemsnoAlternative to repo: manifests (package.json, lockfile, pyproject.toml, requirements.txt, Cargo.toml) and source files with repository-relative paths.
ecosystemsarray<string; one of "npm", "pypi", "cargo">; max 3 itemsnoRestrict the analysis; default all detected.
repoLicensestring; length 0..100noSPDX id of the repository's license, for alternative ranking; detected from manifests or LICENSE when absent.
productobjectnoYour product with digital elements; used only to fill the draft fields (defaults to the SBOM's own product name).
awareness_timestring; length 0..40noWhen the manufacturer became aware, ISO 8601 with UTC offset (e.g. 2026-11-04T09:30:00Z). Defaults to now. Taken as given; this agent cannot verify it.
fix_available_atstring; length 0..40noWhen a corrective or mitigating measure became available, ISO 8601 with UTC offset; sets the Art. 14(2)(c) final-report date.

Example request body

{
  "repo": "star7th/htq",
  "product": {
    "name": "htq"
  }
}

Result

The response is { "data": ..., "_provenance": ... }. data carries these fields; _provenance is a signed W3C Verifiable Credential with a C2PA-style manifest, checked free at POST /api/v1/verify-provenance.

FieldTypeRequiredDescription
readinessstring; one of "REPORTABLE_CANDIDATES", "NO_EXPLOITED_EVIDENCE", "INSUFFICIENT_EVIDENCE", "NO_RESOLVED_VERSIONS"noREPORTABLE_CANDIDATES when an exploited vulnerability affects a resolved dependency; NO_EXPLOITED_EVIDENCE only when every resolved dependency was fully checked and none was unresolved.
fixPlanarray<object>no
deadlinesone ofno
nextStepanynocra-exploit-clock's next_step, or null.
unresolvedarray<object>no
resultsobjectyesEach executed member step's full result, keyed by step id (forEach steps: one entry per item).
stepsobjectyesPer step: status (ok | skipped | failed), reason, attempts, ms, inputSha256, outputSha256, and the output hashes of the upstream steps its input was derived from.
partialbooleanyesTrue when an optional step was missing or a member returned its own partial result.
missingarray<object>yes
deterministicbooleanyesTrue only when every executed member answered without a model.

Pay and connect

Available through: x402 (USDC on Base), MCP, RapidAPI, Apify.

Machine-readable