Drift
Drift verifies that your API actually behaves the way your OpenAPI contract says it should.
APIs evolve. Implementations change. Edge cases emerge.
But the specification your consumers rely on often stays the same.
Eventually, the two diverge.
This is API Drift — when your API implementation no longer matches its contract.
When drift happens:
- integrations break unexpectedly
- documentation becomes unreliable
- client SDKs behave incorrectly
- releases introduce unintended breaking changes
These issues are often discovered late, after deployment, when they are harder and more expensive to fix.
Drift helps prevent this problem. It runs real requests against your API and validates the responses against your OpenAPI specification.

For more background, see What Is API Drift?.
Why Teams Like Drift
Drift provides:
- Spec-driven: OpenAPI is the source of truth
- CLI-first: Suitable for local use and CI pipelines
- Declarative: Deterministic, versioned-controllable test suites
- Scriptable: Lua hooks for setup, validation and advanced workflows
- Extensible: Plugin architecture for different verification or reporting needs
- Flexible: Run standalone or embed into existing test frameworks
- Contract-aware: Integrates with PactFlow for contract testing workflows
This makes the contract executable as part of a continuous verification workflow.
Tutorials
| Tutorial | What you will learn |
|---|---|
| Interactive Onboarding with drift init | Use the guided TUI to authenticate, select an endpoint, and produce a first passing test on your own API |
| Getting Started | Run your first Drift verification manually against the public Petstore API |
| Managing State | Set up lifecycle hooks for tests that require specific system state to exist before they run |
| Embedding Drift in Your Test Framework | Run Drift as a step inside Jest, pytest, or another existing test framework |
| Interactive BDCT Tutorial (Killercoda) | Hands-on, browser-based walkthrough of Bi-Directional Contract Testing with Drift and PactFlow |