Available · v1

Content Intelligence

Send user-generated content with your platform rules. Get back allow, review, or block, the categories and rules that matched, and the recommended action.

  • Your rules quoted back when they match
  • Blocks only when your rules support it
  • Uncertain and subjective cases held for review
  • Content is never stored
Request body
{
  "content": "Great blender but you can get it 40% cheaper at bestdeals-example.shop, just message me on WhatsApp +1 555 0100.",
  "content_type": "product_review",
  "context": "Marketplace product reviews",
  "policy": {
    "disallowed": [
      "Links or contact details that take buyers off the platform",
      "Reviews of a different product than the one listed"
    ],
    "allowed": [
      "Negative reviews and criticism of products or service"
    ],
    "block_categories": [
      "spam",
      "threats",
      "harassment"
    ]
  }
}
Response · 200 OK
{
  "request_id": "req_Lt6qN3wRv8KzM1pY",
  "decision": "block",
  "recommended_action": "block_submission",
  "categories": [
    {
      "category": "spam",
      "assessment": "likely"
    },
    {
      "category": "policy_violation",
      "assessment": "likely"
    }
  ],
  "policy_matches": [
    {
      "rule": "Links or contact details that take buyers off the platform",
      "source": "policy.disallowed[0]",
      "assessment": "likely"
    }
  ],
  "signals": [
    "custom_rule_matched"
  ]
}
The problem

Moderation needs consistency, not guesswork

Reviews, comments, and posts arrive faster than people can read them. Rules are applied unevenly, and over-blocking honest criticism is as costly as missing spam.

Default categories
Spam, harassment, threats, sexual content, violent content, and prohibited promotion, documented exactly.
Your policy
Disallowed and allowed rules in plain language, each evaluated separately, with categories you choose to block.
Conservative escalation
Possible matches, subjective rules, and categories you didn't choose to block go to review, never straight to a block.
Use cases

Where teams use it

  • Review moderation
  • Community content
  • Listing text review
  • Support forums
  • In-app messaging
Integrate

One HTTP call

const response = await fetch("https://kovca.io/api/v1/content/moderate", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.KOVCA_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "content": "Great blender but you can get it 40% cheaper at bestdeals-example.shop, just message me on WhatsApp +1 555 0100.",
    "content_type": "product_review",
    "context": "Marketplace product reviews",
    "policy": {
      "disallowed": [
        "Links or contact details that take buyers off the platform",
        "Reviews of a different product than the one listed"
      ],
      "allowed": [
        "Negative reviews and criticism of products or service"
      ],
      "block_categories": [
        "spam",
        "threats",
        "harassment"
      ]
    }
  }),
});

if (!response.ok) {
  const { error, request_id } = await response.json();
  throw new Error(`${error.code}: ${error.message} (${request_id})`);
}

const { decision, recommended_action, categories } = await response.json();
  • Policy Evaluation

    Check requests against the policies you write and get a structured, advisory decision.

  • Data Quality Intelligence

    Find missing values, contradictions, and semantic inconsistencies in structured business records.

  • Scope Intelligence

    Check whether a requested change is within an agreed statement of work, excluded, or needs a change request.