Skip to content
jmod.

The content moderation API

Move fast.
Keep control.

Image and text signals, delivered through a lean Rust API.Your platform makes the call.

Illustration: images and text flow through moderation to category scores, an optional policy evaluation, and a response. This slowed animation does not represent request latency.

Reduced motion · static view

A small footprint.

Direct requests. Reused connections. Minimal processing overhead.

0.03 ms

Local p95 service overhead with a mocked model. Model latency and image transfer are additional.

LESS OVERHEAD. MORE MOMENTUM.

Every millisecond,
accounted for.

Fast moderation starts with a short request path. Jmod keeps its own work lean and reports application, provider, and total service timing separately, so you can see where time is spent.

01 /

Take the direct route.

Your backend calls Rust directly. No frontend server or account API in the moderation path.

02 /

Keep connections ready.

A reused HTTP client and connection pool reduce repeated connection setup between requests.

03 /

Keep scores moving.

The score-only path has no database writes or human review step. Decide what happens next in your own workflow.

THE PLATFORM

Clear signals.
Your decisions.

One endpoint for images and text. A policy that fits your platform.

01 /

See the signal.

Get category scores for each submission, with flags and coverage you can inspect. Understand what was assessed—and what wasn’t.

02 /

Set your standard.

A community forum and a claims platform have different needs. Choose category thresholds that make sense for your audience.

03 /

Control what’s next.

Use the scores in your own workflow, or request a rule-based recommendation. Your platform decides what gets published.

SIGNALS, WITH CONTEXT

Set the line.
We’ll show you the signals.

Use a 1–10 confidence scale to build a policy for each category. The same content can follow different rules on different platforms.

Try your threshold
POLICY PLAYGROUNDDEMO

sample-upload.jpg

IMAGE · ILLUSTRATIVE SCORES

CATEGORYCONFIDENCE / 10
Sexual content6.4
Graphic violence1.2
Self-harm1.0
5.0 / 10
MORE CAUTIOUSMORE PERMISSIVE

Hold for review

Block threshold stays at 9.0.

REVIEW

Move the threshold to try a rule. These sample values show category confidence, not severity.

BUILT FOR DEVELOPERS

One request.
A useful response.

Send an image URL, text, or both. Receive structured category signals that work with the platform you already have.

  • Scores by default. Optional policy recommendations.
  • Explicit coverage for every input type.
  • Request IDs that connect to your workflow.
  • Separate API and provider timing.

Built to keep overhead low. A dedicated Rust API, reused connections, and a focused request path. Live response times also depend on image transfer and model processing.

curl http://localhost:3002/v1/moderations \
  -H "Authorization: Bearer $JMOD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image_url": "https://example.com/image.jpg",
    "reference_id": "upload_042",
    "policy": {
      "rules": [{
        "category": "sexual",
        "review_at": 5,
        "block_at": 8
      }]
    }
  }'
LOCAL DEVELOPMENT ENDPOINTJSON OVER HTTPS IN PRODUCTION

ROOM FOR HUMAN JUDGMENT

PLANNED

Some calls need a person.

An optional review inbox is on the roadmap. Inspect flagged uploads, make a decision, and keep a record of why—without adding a human step to every request.

01

Inspect the upload

Image, caption, scores, and the rule that triggered review.

02

Make the call

Approve or reject, with a record of the reviewer’s decision.

03

Keep your platform in sync

A planned webhook workflow for the final outcome.

A FEW DETAILS

Good questions.
Clear answers.

Your platform.
Your standards.

Make moderation part of your product, on your terms.

Start with the API