CypherScan API
Scan files before they hit production
Use the CypherScan API to scan files for malware, exposed secrets, and risky patterns before they enter your application, CMS, or deployment pipeline.
Get your API key instantly
Create your API key and start securing upload workflows immediately.
API keys remain private inside your CypherScan dashboard.
Ask questions or get setup help in the CypherNet Security Discord.
Install official CypherScan integrations for WordPress, Strapi, Payload CMS, Directus, and Ghost. Every integration uses the same secure presigned upload workflow.
Explore realistic examples of exposed secrets, malware indicators, suspicious ZIP uploads, and risky payloads detected by CypherScan.
Secure upload API
Presigned upload workflow
CypherScan integrations no longer send uploaded files through the scan endpoint as multipart FormData. Files are uploaded directly to temporary object storage and scanned by object key.
Request a presigned upload
Authenticate with your CypherScan API key and request a temporary upload URL.
Upload the file
Upload the file directly to the temporary object storage URL returned by CypherScan.
Request the scan
Submit the returned objectKey to the scan endpoint for security analysis.
Apply the verdict
Allow or block the original CMS upload according to the CypherScan verdict.
Authentication header
Authorization: Bearer YOUR_API_KEY Content-Type: application/json
API endpoints
New integrations should use the canonical authenticated presigned upload endpoint below. Upload the file to the returned temporary URL, then submit the returned objectKey to /api/v1/scan.
POST /api/v1/upload/presign
PUT PRESIGNED_UPLOAD_URL
POST /api/v1/scan
{
"objectKey": "TEMPORARY_OBJECT_KEY"
}API and plugin scans automatically enter Agent
With an active CypherScan Agent subscription, authenticated file scans through /api/v1/scanautomatically create API/plugin Agent observations. Send a stablex-cypherscan-clientvalue such as your application or plugin name so the integration is identifiable in Agent. No second Agent event request is required for normal API/plugin scans.
x-cypherscan-client: my-production-app
Canonical plugin contract
Payload, Strapi, Directus, Ghost, and custom upload integrations should use the authenticated /api/v1/scanAPI as their canonical scanner path. This keeps quota enforcement, ScanLog persistence, Threat Memory, webhooks, and the API/plugin Agent source on one implementation. WordPress keeps its dedicated Agent event route because it also identifies a WordPress site as a first-class monitored source.
The historical Payload endpoints/api/plugin/payload/scanand/api/v1/plugin/payload/scanare deprecated compatibility bridges only. New integrations must not depend on them.
Agent event sources
With an active CypherScan Agent subscription, completed scans can also be attached to S3 and CI/CD sources. These endpoints do not upload or scan the file themselves; they attach an existing CypherScan scanId to the Agent source so it can enter the attention pipeline. Event-driven artifacts are evaluated independently: a second risky artifact is not suppressed merely because it has the same security score or verdict as the previous artifact.
POST /api/v1/agent/s3/event
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"bucket": "example-bucket",
"prefix": "uploads",
"objectKey": "uploads/file.pdf",
"scanId": "SCAN_ID",
"eventName": "OBJECT_CREATED",
"versionId": "OPTIONAL_VERSION_ID",
"eTag": "OPTIONAL_ETAG"
}POST /api/v1/agent/cicd/event
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
"provider": "github-actions",
"pipeline": "production-build",
"runId": "RUN_ID",
"scanId": "SCAN_ID",
"stage": "build",
"artifactName": "artifact.zip",
"commitSha": "OPTIONAL_COMMIT_SHA",
"environment": "production"
}Agent targeted verification
Controller can authorize a bounded verification step before an Agent finding is escalated. Website findings use a fresh website re-observation. WordPress, S3, CI/CD, and API/plugin findings replay the persisted CypherScan scan evidence for the same account. GitHub findings replay the stored push evidence through the deterministic repository-risk rules. These verification steps are internal and do not perform external remediation.
Integration-specific configuration
Use the documentation page or GitHub README for your CMS integration to confirm its exact presign endpoint, environment variables, blocking behavior, and Fail Open or Fail Closed configuration.
API keys remain private in your dashboard. Never expose a CypherScan API key in browser-side code or a public repository.