Available · v1

Data Quality Intelligence

Send any JSON business record with optional field definitions and rules. Get back structural errors, values that don't make sense together, and corrections only where the intended value is certain.

  • Types, formats, and your rules checked exactly in code
  • Contradictions and placeholders found across fields
  • Interpreted findings never mark a record invalid
  • Corrections only when the intended value is certain
Request body
{
  "record_type": "customer_account",
  "record": {
    "company_name": "Northwind Traders",
    "status": "active",
    "billing_email": "billing@northwind.example",
    "contract_start": "2026-03-01",
    "contract_end": "2027-02-28",
    "address": {
      "city": "Seattle",
      "state": "WA",
      "postal_code": "98101",
      "country": "US"
    }
  },
  "fields": [
    {
      "path": "company_name",
      "type": "string",
      "required": true
    },
    {
      "path": "status",
      "type": "enum",
      "enum_values": [
        "Active",
        "Suspended",
        "Closed"
      ],
      "required": true
    },
    {
      "path": "billing_email",
      "type": "email",
      "required": true
    },
    {
      "path": "account_owner",
      "type": "string",
      "required": true
    }
  ],
  "rules": [
    {
      "type": "date_before",
      "field": "contract_start",
      "other": "contract_end"
    }
  ]
}
Response · 200 OK
{
  "request_id": "req_Gm5tQ8wLn2RvK7pX",
  "status": "invalid",
  "requires_review": false,
  "issues": [
    {
      "type": "invalid_format",
      "method": "deterministic",
      "field": "status",
      "explanation": "The value isn't one of the allowed values.",
      "evidence": [
        "record.status",
        "fields[1]"
      ]
    },
    {
      "type": "missing_required_value",
      "method": "deterministic",
      "field": "account_owner",
      "explanation": "A required value is missing or empty.",
      "evidence": [
        "record.account_owner",
        "fields[3]"
      ]
    }
  ],
  "missing_information": [
    "account_owner"
  ],
  "suggested_corrections": [
    {
      "field": "status",
      "current": "active",
      "suggested": "Active",
      "reason": "It matches an allowed value except for case or spacing."
    }
  ]
}
The problem

Valid JSON isn't valid data

A record can pass schema validation with a Boston address in California, a job title in the phone field, or a contract that ends before it starts. Bad records spread into billing, shipping, and reporting.

Structural checks
Required values, types, emails, URLs, dates, enums, ranges, lengths, and date_before, equals, and required_with rules.
Semantic checks
Each value is judged against the rest of the record for contradictions, implausible values, placeholders, and ambiguity.
Business relationships
Plain-language relationships you expect, such as "an employee can't be their own manager", are evaluated and quoted back.
Use cases

Where teams use it

  • CRM hygiene
  • Data onboarding
  • Master data review
  • Form validation
  • Integration monitoring
Integrate

One HTTP call

const response = await fetch("https://kovca.io/api/v1/data/validate", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.KOVCA_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "record_type": "customer_account",
    "record": {
      "company_name": "Northwind Traders",
      "status": "active",
      "billing_email": "billing@northwind.example",
      "contract_start": "2026-03-01",
      "contract_end": "2027-02-28",
      "address": {
        "city": "Seattle",
        "state": "WA",
        "postal_code": "98101",
        "country": "US"
      }
    },
    "fields": [
      {
        "path": "company_name",
        "type": "string",
        "required": true
      },
      {
        "path": "status",
        "type": "enum",
        "enum_values": [
          "Active",
          "Suspended",
          "Closed"
        ],
        "required": true
      },
      {
        "path": "billing_email",
        "type": "email",
        "required": true
      },
      {
        "path": "account_owner",
        "type": "string",
        "required": true
      }
    ],
    "rules": [
      {
        "type": "date_before",
        "field": "contract_start",
        "other": "contract_end"
      }
    ]
  }),
});

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

const { status, issues, suggested_corrections } = await response.json();
  • Policy Evaluation

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

  • Scope Intelligence

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

  • Content Intelligence

    Evaluate user-generated content against your platform rules and get a structured moderation recommendation.