← TypeMorph
no spec required · runs in browser · free

Your API changed.
Did you notice?

Save a known-good API response as a baseline. Compare any future response against it. Instantly catch type changes, removed fields, and renamed keys — before they reach production. No OpenAPI spec. No config.

Try it — save a baseline, then check for drift

The silent production killer

Third-party APIs change without warning. Internal services drift between deploys. The response still returns 200 OK — but the shape quietly changed:

  • userId changed from number to string after a database migration
  • email was removed because the new endpoint uses a different user model
  • created_at was renamed to createdAt in a "non-breaking" refactor
  • a required field appeared that your older clients never send

Every existing drift detection tool requires an OpenAPI spec. Most APIs — especially third-party ones — don’t have one. TypeMorph infers the schema from the actual response, so you can monitor anything.

Automate it in CI

# First run — saves baseline
curl -s https://api.example.com/users/1 \
  | npx typemorph-cli check --baseline .typemorph/users.json

# Subsequent runs — compares against baseline
curl -s https://api.example.com/users/1 \
  | npx typemorph-cli check --baseline .typemorph/users.json

# GitHub Actions
- name: API Schema Drift Check
  run: |
    curl -s https://api.example.com/users/1 | \
    npx typemorph-cli check \
      --baseline .typemorph/users.json \
      --format github >> $GITHUB_STEP_SUMMARY

Commit your .typemorph/ baseline files to Git. Every CI run compares the live API against the same reference point. Breaking changes fail the job before deployment.

FAQ

What is API schema drift?

When an API response changes shape over time — a field is removed, a type changes from number to string, a key is renamed — that's drift. It often happens silently: the API still returns 200 OK, but your app breaks downstream.

Do I need an OpenAPI spec?

No. TypeMorph infers the schema directly from your JSON response. Paste any JSON and save it as a baseline — no spec file, no configuration.

Does my data get uploaded?

No. Everything runs in your browser. The baseline is saved to your browser's localStorage. No server, no API keys, no retention.

How is this different from the Environment Diff tool?

Environment Diff compares two responses side-by-side (staging vs prod). Drift Check is for monitoring a single endpoint over time — you save a baseline once and compare future responses against it.

Can I automate this in CI?

Yes — use typemorph-cli check. It exits with code 1 on breaking changes and supports --format github for PR comments. Commit your baseline files to Git so every CI run compares against the same reference.