Skip to content
Intelligence

ContractRadar

Deterministic contract change-governance: compare declared schemas, localise structural changes to JSON Pointers, classify them breaking / minor / cosmetic, and record the configured routing intent.

Pilot onboarding
Contracts watched
5 · demo
Open breaking
3
Changes recorded
6
Provider L0 body
≈200 B when changed
Guided journey
ContractRadar golden path
DEMOLOCALSIMULATED INPUTidle

Runs the existing canonical, classification and impact engines in memory. It does not write to the workspace, call the network or deliver notifications.

Step 1 of 8

Choose path

Run the isolated guided demo or continue with your own contracts.

Start once to compute the complete deterministic story. All roles can inspect this read-only demo; workspace write permissions are not used.

Radar
Contracts under watch · 5
ServiceRevFingerprint (L0)FieldsLast changeSeen
Payment
payment
v3sha256:5dbad8eaed…3/4This contract change can break an existing consumer.demo
Order Management
order-management
v2sha256:603a984092…4/4This contract change can break an existing consumer.demo
Shipment Tracking
shipment-tracking
v2sha256:bf0edf001a…2/4This additive change can still require consumer review.demo
Billing Account
billing-account
v2sha256:1e62cc5b02…2/3Meaning or presentation changed without a structural break.demo
Customer Account
customer-account
v2sha256:71185ac338…1/2This additive change can still require consumer review.demo
Change feed
Detected · localised · classified · routed
  • paymentThis contract change can break an existing consumer.alert intentv7
    • This contract change can break an existing consumer.domain-changedrange [0, 1000000] → [0, 500000]#/components/schemas/payment/properties/amount
    sha256:a74dae8d54…sha256:5dbad8eaed…
  • customer-accountThis additive change can still require consumer review.log intentv6
    • This additive change can still require consumer review.enum-value-addedenum += 'enterprise'#/components/schemas/customer-account/properties/segment
    sha256:c6dca59d5b…sha256:71185ac338…
  • billing-accountMeaning or presentation changed without a structural break.suppress intentv5
    acknowledged
    • Meaning or presentation changed without a structural break.meaning-changedbusiness meaning edited#/components/schemas/billing-account/properties/amount/description
    sha256:65de0ff161…sha256:1e62cc5b02…
  • shipment-trackingThis additive change can still require consumer review.log intentv4
    • This additive change can still require consumer review.field-addednew optional field 'trackingRef'#/components/schemas/shipment-tracking/properties/trackingRef
    sha256:4602839da6…sha256:bf0edf001a…
  • order-managementThis contract change can break an existing consumer.alert intentv3
    • This contract change can break an existing consumer.field-now-required'channel' became required#/components/schemas/order-management/required
    sha256:c81d159a66…sha256:603a984092…
  • paymentThis contract change can break an existing consumer.alert intentv2
    • This contract change can break an existing consumer.enum-value-removedenum -= 'rate_limit'#/components/schemas/payment/properties/action
    sha256:a74dae8d54…sha256:b8d74dbd80…
Governance
Routing policy
This contract change can break an existing consumer.
Removed enum / required field / type change — records alert intent.
This additive change can still require consumer review.
Additive: new optional field, new enum value — records log intent.
Meaning or presentation changed without a structural break.
Meaning / scenario / title edits — records suppress intent.
Alert channel

This local screen persists the intended route only. It does not send a webhook or page anyone. Provider headers and outbound connectors are separate, paid-pilot integration scope.

Provider
Live sandbox radar

ContractRadar consumes the Companion Sandbox's L0/L1/L2 change-governance surface.

Paid-pilot proof
Reproducible before → after ContractRadar audit
Synthetic sample onlynot customer evidence

The files are bundled demonstration fixtures. The export is not a compliance attestation, production monitoring result, or proof that a webhook, page, or external notification was sent.

RC 0.10.1-rc.3 · scope: #/components/schemas/OrderCreate
Express Audit synthetic preflight

Prepare a tamper-evident local intake receipt

This preflight is fixed to the bundled synthetic pair. It accepts no customer identity, customer specification, attachment, credential, confidential payload, payment, or external submission.

local · unsubmitted · synthetic only
Evaluation reference
SYNTHETIC-LOCAL-DEMO
API
Synthetic Orders API
Version pair
1.0.0 → 1.1.0
Scope
#/components/schemas/OrderCreate
Sample
synthetic-orders-api-1.0.0-to-1.1.0
Analysis hash
sha256:4c9200015cf8a401c087b00a12660e130e00caa0191d51fc693672d0af528c92
Buyer / operator quickstart
  1. 1.Prepare this receipt only against the bundled synthetic baseline/candidate pair.
  2. 2.Download the JSON and Markdown copies and verify that both carry the same receipt and analysis hashes.
  3. 3.Review the proposed fixed scope, exclusions, support boundary, and unvalidated EUR 1,250 price hypothesis.
  4. 4.Do not enter or provide customer identity, customer specifications, credentials, secrets, personal data, or confidential payloads in this build.
  5. 5.Before any real engagement, obtain written scope acceptance and agree a separately authorised secure transfer channel.
  6. 6.Treat the receipt as local and unsubmitted until a human records an independently verified commercial hand-off.
Baseline
OpenAPI 3.1
Synthetic Orders API v1.0.0
orders-api.before.openapi.json
Candidate
OpenAPI 3.1
Synthetic Orders API v1.1.0
orders-api.after.openapi.json
Prepare the local synthetic receipt, then run the versioned demo to unlock the receipt-bound, explicitly watermarked sample evidence export.
Commercial entitlement boundary

Demo proves the method. Real work still requires separate human gates.

mailbox unverified · no in-app checkout
Free demo
€0

Bundled synthetic inputs, local classification, and exports permanently marked SAMPLE.

No customer data · no commercial entitlement
ContractRadar Express Audit
€1,250 hypothesis

One API, one customer-provided baseline/candidate OpenAPI pair, one declared schema scope, deterministic classification, executive PDF, machine-readable JSON appendix, and a 60-minute findings readout.

Proposed scope only · unvalidated price · no transaction
Team Pilot
€2.5k–€7.5k hypothesis

Multiple contract pairs, agreed governance rules, prioritised findings, and a team readout.

Unvalidated range · separate written scope · no transaction

The in-app demo is a synthetic, local sample and takes no payment. EUR 1,250 is an unvalidated price hypothesis, not a transaction or validated willingness-to-pay signal. Commercial entitlement starts only after written scope and commercial acceptance. AWP1-DEMO-* licence keys and sandbox demo keys never authorise customer evidence, paid monitoring, or production use. There is no active payment processor or automatic paid activation in this build.

Standard target: two business days after valid inputs and written scope acceptance. Remediation, runtime traffic analysis, continuous monitoring, webhooks, SSO, and production integration are excluded.

UNVERIFIED/HOLD: sales@apimaster.dev is the intended APIMaster-domain sales address, but inbound/outbound delivery, ownership and staffing have not been proved. The application does not expose a mailto action or response-time promise. No action sends mail, charges a card, uploads a specification, or grants access. Use the verified local synthetic receipt above for this release candidate.

Provider-assisted watch · L0 simulation
Fingerprint Lab — inspect the response-body budget

In this browser-only simulation, an API spec is reduced to one canonical SHA-256 using a demonstration policy that strips servers. A real pilot must agree the canonicalisation and volatile-field policy. To ask "did anything change?" you send the hash as an If-None-Match ETag: unchanged → 304 with an empty body; changed → a fresh ~200-byte L0, and only then do you pull L1/L2. Edit the spec and press Poll to simulate that exchange; no HTTP request is sent.

OpenAPI spec (editable)
L0 response (the whole payload)
{
  "api": "Orders API",
  "version": "2.4.1",
  "schemaHash": "sha256:5c4617bcf9dc80ababfbec299942c951751dd791a7cddb98c521e2403733064e"
}
L0 payload
125 B
Full spec
1019 B
Saved per poll
87.7%

This L0 JSON body stays ~125 bytes even as the source spec grows. In this simulation an unchanged poll has a 304 and a 0-byte response body. Request bytes, response headers, TLS, polling frequency, and any L1/L2 fetches are not included.

Poll timeline
Press Poll L0 to baseline, press again (unchanged → 304), then edit the spec and Poll again to see the simulated drift decision from the compact fingerprint response.
Why ContractRadar
Stop shipping silent API breaks
ContractRadar one-pager: tiered hash-based radar (L0 did anything change, L1 what changed, L2 how bad is it), detect → localize → classify → notify flow, problem/why-now/moat/validation summary and the ~200 bytes/day promise.The whole story on one sheet — click to open the full one-pager.Open ↗

A partner narrows one enum, makes one field required, changes one type — and three integrations break in production weeks later. ContractRadar makes declared structural drift easier to surface and prove: it fingerprints the agreed contract scope and turns supported changes into dated, localised, severity-graded, machine-readable evidence.

Detect

A provider-assisted L0 fingerprint can reveal declared contract drift; an unchanged response may use ETag/304.

Localise

L1 Merkle fingerprints + L2 diff pin the change to an exact RFC-6901 JSON Pointer.

Classify

Supported structural changes are graded breaking / minor / cosmetic; a human still owns the release decision.

Route

The local app records alert / log / suppress intent. Actual paging or webhook delivery requires a connector.

≈ 200 B

typical changed L0 response body in the provider-assisted design; request and header bytes are extra.

3 levels

breaking / minor / cosmetic policy intent, so a connector can reserve paging for declared breaks.

Deterministic

fingerprint + supported structural classification; notification delivery and the release decision stay explicit.

How it compares
CapabilityContractRadarManual changelogoasdiff in CIUptime monitor
Catches a one-word / enum / domain change
Localises to an exact JSON Pointer
Classifies severity automatically
Can feed consumer signals (connector required)
Zero manual changelog writing
Provider-assisted L0 response body ≈ 200 bytes

full · partial / manual · none