api.magebean.com

Magebean API Reference

Technical reference for API endpoints used by Magebean CLI, including request fields, response contracts, and network behavior.

API-backed rules submit endpoint-specific JSON payloads. The POST request schemas below reflect the current Magebean CLI implementation.

Summary

Most checks execute locally. Rules that require Magebean advisory, package-status, or Adobe patch data call the corresponding API endpoint with the documented request body.

API base URLhttps://api.magebean.com
Primary CLI useAdvisory lookup, package status, and Adobe/Magento security-patch evaluation.
Request dataDefined per endpoint in the POST request schemas below.
TransportHTTPS JSON requests; optional API tokens are sent in the authorization header when configured.

Endpoint index

The CLI calls a POST endpoint when a selected rule requires that endpoint's dataset or evaluation.

MethodPathPurposeRequest data
GET/healthService healthNo
GET/latest-cvesLegacy latest CVE feedNo
GET/v1/latest-cvesVersioned latest CVE feedNo
GET/v1/statsDataset statisticsNo
GET/v1/packages/{vendor}/{package}Advisories for a Composer packageNo
GET/v1/cves/{cve}Find an advisory by CVE IDNo
GET/v1/vulns/{id}Find a vulnerability by Magebean IDNo
GET/v1/bundles/latestLatest vulnerability bundleNo
GET/v1/uncovered-packagesPackages without dataset coverageNo
POST/v1/osv/advisoriesResolve advisories for installed Composer packagesPackage names, versions, ecosystem, client metadata
POST/v1/adobe/security-patchesEvaluate Adobe/Magento security patch statusProduct, Magento version, empty evidence containers, client metadata
POST/v1/packages/statusResolve package status and lifecycle metadataPackage names and versions

Common conventions

Clients should send Accept: application/json. Requests containing JSON should also send Content-Type: application/json.

Base URL: https://api.magebean.com
Accept: application/json
Content-Type: application/json

The read-only routes are publicly addressable. Integrations must not assume ingestion routes are anonymous; their deployed authorization policy still applies.

Like any HTTPS service, the server or infrastructure can observe ordinary connection metadata: public source IP, request time and path, TLS/HTTP metadata, and a User-Agent header when supplied. This is not Magento scan content.

Read-only endpoints

GET /health

Checks service availability. Request body: none.

curl --fail-with-body https://api.magebean.com/health

GET /latest-cves

Legacy route for the latest CVE definitions. Request body: none.

curl --fail-with-body \
  --header 'Accept: application/json' \
  https://api.magebean.com/latest-cves

GET /v1/latest-cves

Versioned route for the latest CVE definitions. The definitions are downloaded for local matching; the request does not need a package list, composer.lock, configuration, or scan results.

curl --fail-with-body \
  --header 'Accept: application/json' \
  https://api.magebean.com/v1/latest-cves

GET /v1/stats

Returns aggregate statistics about the Magebean vulnerability dataset. Request body: none.

curl --fail-with-body \
  --header 'Accept: application/json' \
  https://api.magebean.com/v1/stats

GET /v1/packages/{vendor}/{package}

Returns vulnerability information for a Composer package. The package identifier in the URL is visible to the API; local package files, installed version, and scan results are not implied by this lookup.

ParameterLocationDescription
vendorPathComposer vendor, for example magento.
packagePathComposer package, for example product-community-edition.
curl --fail-with-body \
  --header 'Accept: application/json' \
  https://api.magebean.com/v1/packages/magento/product-community-edition

Clients must URL-encode path segments.

GET /v1/cves/{cve}

Returns information for a public CVE identifier.

curl --fail-with-body \
  --header 'Accept: application/json' \
  https://api.magebean.com/v1/cves/CVE-2024-34102

GET /v1/vulns/{id}

Returns a vulnerability using its Magebean dataset identifier.

curl --fail-with-body \
  --header 'Accept: application/json' \
  https://api.magebean.com/v1/vulns/ID

GET /v1/bundles/latest

Returns the latest generated vulnerability bundle. Request body: none. Clients should honor the response Content-Type rather than assuming a media type.

curl --fail-with-body \
  https://api.magebean.com/v1/bundles/latest

GET /v1/uncovered-packages

Returns package entries recorded as not covered by the vulnerability dataset. Calling this route does not upload the caller's package inventory.

curl --fail-with-body \
  --header 'Accept: application/json' \
  https://api.magebean.com/v1/uncovered-packages

POST endpoints used by Magebean CLI

The payloads in this section are generated by ComposerCheck in the current Magebean CLI source.

POST /v1/osv/advisories

Requests advisories for installed Composer packages. Packages are read from composer.lock and sent in batches.

{
  "schema_version": "magebean-osv-request-v1",
  "ecosystem": "Packagist",
  "packages": [
    {"name": "vendor/package", "version": "1.2.3"}
  ],
  "client": {"name": "magebean-cli", "version": "1.0.0"}
}

POST /v1/packages/status

Requests package status, classification, lifecycle, release, or withdrawal metadata used by the selected rule.

{
  "schema_version": "magebean-package-status-request-v1",
  "packages": [
    {"name": "vendor/package", "version": "1.2.3"}
  ]
}

The package set varies by rule and can contain all locked packages or a subset such as direct dependencies, Adobe core packages, or Magento modules.

POST /v1/adobe/security-patches

Evaluates the installed Magento product and version against Adobe security-patch data.

{
  "schema_version": "magebean-adobe-patch-request-v1",
  "product": "magento-open-source",
  "installed_version": "2.4.8-p1",
  "evidence": {
    "packages": {},
    "patch_artifacts": []
  },
  "client": {"name": "magebean-cli", "version": "1.0.0"}
}

The v1 schema retains empty evidence containers for compatibility. Installed package constraints, patch identifiers, applied status, local paths, and file fingerprints are evaluated by the CLI after the API returns alternative_rules.

Error handling

StatusMeaning
2xxRequest completed successfully.
400Invalid path value, query, or JSON payload.
401 / 403Authentication or authorization failed.
404Route or requested entity was not found.
405HTTP method is unsupported.
415Request media type is unsupported.
422Payload validation failed.
429Rate limit exceeded.
5xxService could not complete the request.

Clients should primarily handle HTTP statuses until a formal error response schema is published.

Magebean CLI data disclosure

Request data is determined by the endpoint and selected rule. The CLI sends JSON fields, not the composer.lock file itself.

EndpointFields generated by the CLI
/v1/osv/advisoriesschema_version, ecosystem, packages[].name, packages[].version, client.name, client.version
/v1/packages/statusschema_version, packages[].name, packages[].version
/v1/adobe/security-patchesschema_version, product, installed_version, empty evidence.packages, empty evidence.patch_artifacts, client

Adobe patch alternatives are matched locally against installed packages, applied patch identifiers, and file fingerprints. Standard HTTPS connection metadata and configured authorization headers are visible to the receiving service.

Remote scans invoked with --url additionally connect to the selected storefront for externally observable checks.

Verification

Inspect an API request:

curl --verbose https://api.magebean.com/v1/latest-cves

Inspect the CLI in a disposable environment with an HTTPS-capable debugging proxy, or monitor DNS and outbound connections during a scan. Review verbose logs before publishing them because they may contain environment-specific IP, proxy, and TLS information.

Consumers should prefer /v1/... over the legacy route. Response fields, POST payload fields, pagination, caching, rate-limit headers, and error objects are contractual only when verified against the implementation or a published OpenAPI document.

Security and API questions: support@magebean.com.