Skip to content
Contract validation gateway

Make your schemas the law.

ValidityCore validates every request, response, and event against versioned rulesets — at runtime, across every service. Breaking changes stop being something you find out about in a reconciliation job three weeks later.

Standards-native — bring JSON Schema, OpenAPI 3.1, or Protobuf. Nothing proprietary sits in your request path.

validation · result
enforced
POST /ordersruleset@v5j2r9
$.order.idPASS
$.order.totalFAIL
$.order.currencyPASS
$.customer.emailPASS
1 violation · payload rejected at edge · 0.4ms
The problem

Your spec passed CI. Your payload still broke three teams.

In a monolith, the compiler enforces the contract between two functions. In a distributed system, that contract becomes a schema file in a repo — and nothing enforces it once the code is running. You write the OpenAPI spec, wire up a validator in a couple of services, and move on.

Then a producer adds a required field. A consumer three teams away deserializes into a struct that silently drops it. CI was green the whole time. The incident shows up two weeks later in a reconciliation job — and now it's data cleanup instead of a rejected request.

ValidityCore moves the check from build time to the request itself.

Contract drift, in order
  1. Monproducer adds required: tax_idCI ✓
  2. Monconsumer deploys, drops fieldCI ✓
  3. +14dreconciliation finds 42k malformed recordsINCIDENT
Capabilities

Everything a contract needs to actually be enforced.

Not a linter you run in CI. A gateway that sits in front of your services and answers, for every payload, one question: does this conform?

Versioned rulesets

Contracts are versioned artifacts, not code. Promote ruleset@v5j2r9 from canary to enforced, or roll a contract back — without shipping a single service.

rollout stage
observe
warn
enforceactive

One validation IR

Bring JSON Schema, OpenAPI 3.1, or Protobuf. Everything compiles to one internal representation, so a Go service and a Python worker answer to the exact same contract.

Field-level verdicts

Every rejection is a structured diff — path, rule ID, ruleset version, expected vs. received. Your clients get an actionable reason, not a bare 400.

Inline enforcement

Sub-millisecond p50 validation inline on live traffic — or out-of-band in observe-only while you migrate. You choose, per route.

Validation ledger

Every decision, pass or fail, is written to an append-only ledger you can query, export, and hand to an auditor. "Was this event compliant when we accepted it?" becomes one query.

Progressive rollout

Stage a ruleset in observe, escalate to warn, then enforce — per route, per version, no redeploy.

How it works

Three moves from schema file to enforced contract.

01

Register a ruleset

Push your JSON Schema / OpenAPI / Protobuf as ruleset@<version>. ValidityCore compiles it to the validation IR and reports what it will enforce.

02

Route in observe-only

Point a route at the gateway in observe mode. It validates every payload in the background and surfaces violations — without blocking anything.

03

Promote to enforced

When violations hit zero, promote the ruleset to enforce. Non-conforming payloads are now rejected at the edge with a structured report.

ruleset.yaml
# ruleset.yaml
apiVersion: validitycore.net/v1
kind: Ruleset
metadata:
  name: orders-api
  version: v5j2r9
spec:
  source: openapi        # openapi | jsonschema | protobuf
  target: POST /orders
  mode: observe          # observe | warn | enforce
  onViolation: reject
$ vc ruleset promote orders-api@v5j2r9 --to enforce
✓ ruleset orders-api@v5j2r9 is now enforced on POST /orders
Lifecycle

Contracts have a lifecycle. So do rulesets.

registered observe warn enforce deprecated
Ruleset Version Target Mode 24h violations
orders-apiv5j2r9POST /orders enforce0
events-ingestv3a1c8topic: events warn212
billing-webhookv9k4m2POST /webhooks/billing observe1,048

Illustrative. Every mode change is one command and takes effect without a deploy.

In the field
4.9B+
payloads validated to date
2,700+
rulesets under management
0.4ms
median enforcement latency (p50)
"We turned a whole class of 'someone changed the schema' incidents into rejected requests with a stack trace. That's the whole pitch."
Platform lead · Series C payments company
"Observe-only was the unlock. We ran it six weeks, watched the violations drain, then flipped to enforce with zero drama."
Staff engineer · logistics API team
"The ledger answered an auditor question in one query that used to take a week of log spelunking."
Backend lead · regulated infrastructure
who this is for: platform teams API programs compliance-adjacent backends
Access

ValidityCore is in its design-partner phase.

General availability is gated. We onboard a small number of teams every other week so each gets hands-on help migrating their contracts — there's no self-serve signup yet.

Observe

Design Partner
not GA

For teams mapping their contracts.

  • ·Observe-only validation
  • ·2 rulesets
  • ·30-day ledger retention
  • ·Community support
Apply for a cohort
Most adopted

Enforce

Design Partner
not GA

For platform teams putting contracts in the hot path.

  • ·Everything in Observe
  • ·Inline enforcement
  • ·Unlimited rulesets
  • ·1-year ledger · progressive rollout
  • ·SSO
Apply for a cohort

Fleet

Design Partner
contact review board

For fleets where malformed data is an incident category.

  • ·Everything in Enforce
  • ·Multi-region · data residency
  • ·Signed ledger export
  • ·Dedicated onboarding SE
  • ·Custom retention
Contact the review board
Design Partner Program

Cohort intake

1 · Team 2 · Fleet 3 · Review

We onboard a small number of teams every other week so each gets hands-on help migrating their contracts. Tell us about your fleet and we'll route your application to the next review board.

Contract formats in use
Reviews are batched. We don't run a waitlist you can jump.