Monitoring as Code: Learn more about the Multistep Check Construct.

What are Multistep Checks?

Multistep checks are API-focused tests that perform multiple sequential HTTP requests within a single check. They’re designed to test complete user workflows that span multiple API endpoints, ensuring that complex business processes work correctly from start to finish. Multistep checks are perfect for:
  • User authentication and authorization flows
  • E-commerce checkout and payment processes
  • Data processing and workflow pipelines
  • Multi-step form submissions
  • Complex business transaction testing
  • API dependency chain validation

How Multistep Checks Work

Multistep checks execute a series of API requests in sequence, with the ability to pass data between steps:
  1. Step Execution - Runs each API request in defined order
  2. Data Flow - Passes response data from one step to the next
  3. State Validation - Verifies system state at each step
  4. Error Handling - Manages failures and rollback scenarios
  5. Performance Tracking - Measures timing across the entire workflow
  6. Result Aggregation - Combines results from all steps
Multistep checks are powered by Playwright’s API testing mode, providing excellent debugging capabilities and detailed request/response logging.

Key Capabilities

Execute multiple API calls in a predefined order, ensuring each step completes successfully before proceeding to the next.
Extract data from API responses and use it in subsequent requests, enabling realistic workflow testing with dynamic values.
Handle multi-step authentication processes like OAuth flows, token refresh sequences, and session-based authentication chains.
Verify that each step in your business process maintains proper state and data consistency throughout the entire workflow.
Monitor response times and performance metrics for individual steps and the complete workflow to identify bottlenecks.

Timeouts

As with Browser checks, Checkly runs Multistep checks for a maximum of 240s. Scripts exceeding this will timeout. For more information on how to work with the timeout limits for Multistep and Browser checks, see Timeouts.

Built-in Runtime Variables

The Multistep Check runtime exposes a set of environment variables (e.g. process.env.CHECK_NAME) that indicate what check, check type etc. you are running.