Available · v1

Compatibility Intelligence

Determine whether two products work together using structured specifications, compatibility rules, and intelligent evaluation. Works for any industry: you define what compatibility means, and every result shows the requirements checked and the request fields behind them.

  • Four outcomes: compatible, incompatible, conditional, or unknown
  • Your own requirements are compared exactly, with unit conversion
  • Conditions are returned only when your documentation states them
  • Missing information is reported, never filled in
Request body
{
  "product_a": {
    "name": "Example Ceramic Front Brake Pads",
    "category": "brake pads",
    "specifications": {
      "vehicle_make": "Honda",
      "vehicle_model": "Civic",
      "model_years": "2016-2021"
    }
  },
  "product_b": {
    "name": "2018 Honda Civic LX",
    "category": "vehicle",
    "specifications": {
      "make": "Honda",
      "model": "Civic",
      "model_year": 2018
    }
  },
  "context": {
    "use_case": "Install the brake pads on the vehicle's front axle"
  },
  "requirements": [
    {
      "name": "make",
      "check": "equal",
      "value": "product_a.specifications.vehicle_make",
      "against": "product_b.specifications.make"
    },
    {
      "name": "model",
      "check": "equal",
      "value": "product_a.specifications.vehicle_model",
      "against": "product_b.specifications.model"
    },
    {
      "name": "model_year",
      "check": "in_range",
      "value": "product_b.specifications.model_year",
      "against": "product_a.specifications.model_years"
    }
  ]
}
Response · 200 OK
{
  "request_id": "req_Q8vN2kLx7RmT4bYc",
  "status": "compatible",
  "compatible": true,
  "summary": "The supplied evidence supports using these products together, with no unresolved requirements.",
  "checks": [
    {
      "requirement": "make",
      "status": "passed",
      "method": "deterministic",
      "product_a_value": "Honda",
      "product_b_value": "Honda",
      "explanation": "The values match.",
      "evidence": [
        "product_a.specifications.vehicle_make",
        "product_b.specifications.make"
      ]
    },
    {
      "requirement": "model",
      "status": "passed",
      "method": "deterministic",
      "product_a_value": "Civic",
      "product_b_value": "Civic",
      "explanation": "The values match.",
      "evidence": [
        "product_a.specifications.vehicle_model",
        "product_b.specifications.model"
      ]
    },
    {
      "requirement": "model_year",
      "status": "passed",
      "method": "deterministic",
      "product_a_value": "2016-2021",
      "product_b_value": "2018",
      "explanation": "The value is within the other product's range.",
      "evidence": [
        "product_b.specifications.model_year",
        "product_a.specifications.model_years"
      ]
    }
  ],
  "conditions": [],
  "missing_information": [],
  "requires_review": false
}
The problem

"Will these work together?" is hard to answer at scale

Vehicle parts, HVAC equipment, electronics, plumbing, and industrial components all have their own fitment rules. Hand-written logic for each catalog doesn't scale, and a plausible-sounding guess is worse than no answer when the wrong part ships.

Your rules, any industry
Define requirements such as equal, overlap, in_list, in_range, at_most, and at_least between any two specifications. Units like mm, psi, BTU/h, and lb-ft are converted for you.
Evidence interpretation
Supplied compatibility statements and documentation are interpreted to find support, denials, and conditions. Specifications both products share are checked when they must match.
Explainable results
Each check lists its status, whether it was compared in code or interpreted, and the request fields used as evidence.
Outcomes

Four answers, never a forced yes or no

compatible
The supplied evidence supports the use case, and no requirement is left open.
incompatible
At least one requirement fails, such as a model year outside the fitment range or a different refrigerant.
conditional
They work together only if a documented condition is met: an adapter, a firmware update, a configuration change, or reduced functionality.
unknown
The evidence is missing, ambiguous, or contradictory. Kovca says so instead of guessing, and lists what's missing.
Use cases

Where teams use it

  • Ecommerce compatibility checks
  • Automotive parts fitment
  • HVAC equipment matching
  • Electronics and accessories
  • Industrial components
  • Product configuration
  • CPQ validation
Integrate

One HTTP call

const response = await fetch("https://kovca.io/api/v1/compatibility/check", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.KOVCA_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "product_a": {
      "name": "Example Ceramic Front Brake Pads",
      "category": "brake pads",
      "specifications": {
        "vehicle_make": "Honda",
        "vehicle_model": "Civic",
        "model_years": "2016-2021"
      }
    },
    "product_b": {
      "name": "2018 Honda Civic LX",
      "category": "vehicle",
      "specifications": {
        "make": "Honda",
        "model": "Civic",
        "model_year": 2018
      }
    },
    "context": {
      "use_case": "Install the brake pads on the vehicle's front axle"
    },
    "requirements": [
      {
        "name": "make",
        "check": "equal",
        "value": "product_a.specifications.vehicle_make",
        "against": "product_b.specifications.make"
      },
      {
        "name": "model",
        "check": "equal",
        "value": "product_a.specifications.vehicle_model",
        "against": "product_b.specifications.model"
      },
      {
        "name": "model_year",
        "check": "in_range",
        "value": "product_b.specifications.model_year",
        "against": "product_a.specifications.model_years"
      }
    ]
  }),
});

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

const { status, compatible, checks, conditions, missing_information } = await response.json();
  • Returns Intelligence

    Classify return requests, check them against your return policy, and get a suggested next step.

  • Catalog Matching

    Decide whether two product records are the same item, a different variant, or a different product.

  • Listing Intelligence

    Check product listings for contradictions, missing attributes, unsupported claims, and your listing requirements before publication.

  • Warranty Intelligence

    Classify warranty claims, check them against the warranty terms you supply, and get the next workflow step.