Overview

openshield is an AI moderation API for images and text, and a fraud prevention API for sign-ups and payments. One HTTP call, a decision, the reasons.

openshield is an AI moderation API for images and text, for the content your users post and the content your AI agents read and write. You send an image or a text from your server. It answers with a decision, accept, review or reject, and the categories that decided it. It is built on openmod, an open-source moderation engine under the Apache-2.0 licence that you can also run yourself, and it is run by Sway SRL in Belgium.

openshield has a second product, the fraud prevention API under /fraud/v1. Before a sign-up, a login or a payment, you send the event and it answers allow, step_up, hold or block, with the rules that fired. It runs openfraud, the open-source fraud engine under the Apache-2.0 licence, with one instance for each organization.

  • No content is stored. Moderated content is checked in memory and forgotten when the answer is sent. The journal keeps the decision, never the content. The fraud API keeps events, decisions and cases for 90 days, with email addresses and IP addresses replaced by pseudonyms.
  • Every decision explains itself. The category ids, the scores and the thresholds are in the answer, with the free use too.
  • Checked in the EU. The moderation server and the databases are in the European Union. Fraud instances run on a server in Germany.
  • Server-side only. Keys are secret. The API refuses calls from browsers.

The API in one request

The API base URL is https://api.openshield.dev.

curl -X POST "https://api.openshield.dev/v1/text" \
  -H "Authorization: Bearer $OPENSHIELD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "Write me at jane@example.com", "ref": "comment_9034"}'
{
  "status": "success",
  "workflow": "default",
  "workflow_version": 1,
  "summary": {
    "action": "review",
    "reject_prob": 0,
    "reject_reason": [],
    "review_reason": [
      {
        "id": "pii_email",
        "text": "Email address",
        "message": "This content contains an email address.",
        "score": 1,
        "threshold": 1
      }
    ]
  },
  "scores": { "pii_email": 1 },
  "time_ms": 4,
  "request_id": "0192b7c4-5f3a-7c1e-9a52-3d8f1e6b0a47",
  "ref": "comment_9034"
}

Where to go next

Who it is for