One endpoint between upload and decision.
Drop the call inside your upload pipeline. Get a verdict back — engineered for sub-200 ms. Keep the rest of your moderation logic in your own stack.
curl -X POST https://api.visork.com/v1/images/analyze \ -H "Authorization: Bearer $VISORK_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "image_url": "https://your-cdn/uploads/4f2a.jpg", "modules": ["csam"], "threshold": 0.85 }'
Post the image, choose modules, set a threshold.
One call. Five moving parts.
The image moves through your pipeline, hits Visork, and comes back with a verdict your code can act on. No queues to manage. No state to remember on our side beyond the audit log.
- User uploadImage hits your platform.
- Your backendForward to /v1/images/analyze.
- Visork APIInference + scoring.
- Verdict + logJSON response, signed audit log.
- Your actionBlock · review · quarantine · allow.
- User uploadImage hits your platform.
- Your backendForward to /v1/images/analyze.
- Visork APIInference + scoring.
- Verdict + logJSON response, signed audit log.
- Your actionBlock · review · quarantine · allow.
curl -X POST https://api.visork.com/v1/images/analyze \ -H "Authorization: Bearer $VISORK_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "image_url": "https://your-cdn/uploads/4f2a.jpg", "modules": ["csam"], "threshold": 0.85 }'
Official SDKs (PHP, Node.js, Python, Java) are on the long-term roadmap. REST works from any language today — the call above is the whole integration surface.
A verdict, a score, and a signed audit trail.
Two levers your team controls: the threshold per module (precision vs recall) and the action taken on a verdict. Everything else — model updates, calibration, EU residency — is on us.
Set the precision/recall trade-off per module. The same model, your risk profile. Scores just under the threshold fall into a review band, so borderline uploads route to a human instead of auto-blocking.
Next: push, batch, and a compliance export.
REST gets you to a verdict today. The next pieces of the integration toolkit — webhooks, batch processing, compliance reporting — are in development and will ship as separate, documented endpoints.
Webhook notifications
Coming soonPush alerts for flagged content the moment it lands. Async-native moderation workflows without polling.
Batch processing
Coming soonRe-scan an existing archive of uploads. Useful when adding new modules to historical data.
Compliance reporting
Coming soonExportable audit summaries in formats suited to regulators and legal review.
Further protocol and platform work
RoadmapScope and timing are shared under NDA during scoping.
{
"event": "analysis.flagged",
"verdict": "block",
"score": 0.974,
"audit_log_id": "log_8c1f02b9"
}Sample webhook payload · final schema in development
We don't publish module order or dates — a published sequence is a map for competitors rather than something you can plan against. You get the real sequencing under NDA during scoping.
Ready when your backend is.
One scoping call, then an API key and 100 credits. The call itself drops into your upload flow in an afternoon.