api.magebean.com

Magebean API Reference

Reference for Magebean's public API and its relationship with Magebean CLI, including endpoint behavior, request bodies, and what data leaves the machine running the scan.

Privacy summary: Magebean CLI downloads vulnerability definitions. Download requests do not upload local Magento files, credentials, package inventories, findings, evidence, reports, or telemetry.

Summary

Magebean CLI is offline-first. Security checks run locally. The API provides vulnerability data and lookup endpoints; a normal local scan does not upload Magento project content or scan output.

API base URLhttps://api.magebean.com
Primary CLI useDownload vulnerability definitions for local matching.
CLI scan uploadNo scan upload during normal local scans.
TelemetryNo command analytics or telemetry uploaded.

Endpoint index

The existence of a POST endpoint does not mean Magebean CLI calls it during a normal local scan.

MethodPathPurposeUploads a CLI scan?
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/advisoriesOSV advisory ingestionNot part of a CLI scan
POST/v1/adobe/security-patchesAdobe patch ingestionNot part of a CLI scan
POST/v1/packages/statusPackage coverage lookupSends only the submitted payload

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

These endpoints are not scan-upload endpoints and are not needed to download the CVE feed. Callers must follow the deployed payload and authorization contract.

POST /v1/osv/advisories

Accepts OSV advisory data for an ingestion or integration workflow. Magento project data must not be submitted here.

POST /v1/osv/advisories HTTP/1.1
Host: api.magebean.com
Accept: application/json
Content-Type: application/json

{ ... OSV advisory payload ... }

POST /v1/adobe/security-patches

Accepts Adobe security-patch data for an ingestion or integration workflow.

POST /v1/adobe/security-patches HTTP/1.1
Host: api.magebean.com
Accept: application/json
Content-Type: application/json

{ ... Adobe security-patch payload ... }

POST /v1/packages/status

Checks coverage for package identifiers supplied by the caller. Unlike bodyless GET routes, this endpoint sends the package values placed in its request body.

POST /v1/packages/status HTTP/1.1
Host: api.magebean.com
Accept: application/json
Content-Type: application/json

{ ... package-status request ... }

Only explicitly submitted fields are application data sent to Magebean. Clients should minimize the payload and must not include composer.lock, credentials, source code, store data, or scan evidence unless a future published contract requires it.

The exact JSON fields and validation constraints are not guessed here. They should be copied from the deployed handler or a published OpenAPI schema before third-party integration.

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

The bodyless CVE download sends the method, endpoint path, ordinary headers, and unavoidable network metadata. It does not send:

composer.json or composer.lock
installed package names or versions
Magento version, edition, installation path, or store URL
app/etc/env.php, configuration, credentials, or environment variables
source code, file contents, local paths, or permissions
customer, order, product, admin, or database data
findings, evidence, summaries, or reports
secrets, API keys, tokens, analytics, or telemetry

Package discovery, rules, and CVE matching run locally.

When a user explicitly supplies --url, the CLI connects to that selected Magento storefront for externally observable checks. That traffic goes to the selected store, not api.magebean.com.

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.